[Vm-dev] 64bits Guardian failure on Squeak 5.3 RC1
Nicolas Cellier
nicolas.cellier.aka.nice at gmail.com
Thu Feb 27 19:08:34 UTC 2020
Ah yes, thanks, I tried QEMU via homebrew, but couldn't have it installing
ubuntu, nor starting my already initialized images... Maybe 4.2.0 is too
recent? I give up for now.
Since we do not have to wait long for crash, I just used traditional trial
and restart with hardware watchpoints.
What happens is that loadObjectsFrom: is overwriting the textures...
(lldb) p state
(B3DRasterizerState) $12 = {
faceAlloc = 0x0000000108fbb6c8
edgeAlloc = 0x0000000108fdb6d8
attrAlloc = 0x0000000108feb6e8
aet = 0x0000000108fef6f8
addedEdges = 0x0000000108ff3708
fillList = 0x0000000108ff7710
nObjects = 1111
objects = 0x000000010920af98
nTextures = 1
textures = 0x000000010920c100
spanSize = 2048
spanBuffer = 0x0000000108ff7998
spanDrawer = 0x0000000100479960 (Squeak`copyBitsFromtoat at
BitBltPlugin.c:1359)
}
There is just 4456 bytes offset between objects and textures addresses...
But we pretend we are going to store 1111 pointers to B3DPrimitiveObject
into this objects field...
Obviously, that ain't gonna work on a 64bits VM.
Let's take a look at B3DPrimitiveRasterizerData>>initObjects: nObjects
objects _ B3DPrimitiveRasterizerData new: nObjects
B3DPrimitiveRasterizerData is variableWordSubclass: so it needs to allocate
twice more words on a 64 bits VM...
With a bit of luck, we can fix it at image side...
Le jeu. 27 févr. 2020 à 19:44, Paul DeBruicker <pdebruic at gmail.com> a
écrit :
>
> libvirt & qemu are supported on macos (https://libvirt.org/platforms.html)
> &
> can use PMU
> (
> https://stackoverflow.com/questions/46490857/how-to-enable-pmu-in-kvm-guest
> )
>
> You can use homebrew to install libvirt & qemu
>
> brew install libvirt qemu
>
> virt-manager & virt-viewer (https://virt-manager.org/) are GUI tools
> create/manage/view KVM virtual machines. Macos support and install
> instructions are here:
>
> https://github.com/jeffreywildman/homebrew-virt-manager
>
> Or instead of virt-manager you can just use the command line and then
> install VNC on the vm:
>
>
> https://linuxconfig.org/how-to-create-and-manage-kvm-virtual-machines-from-cli#h9-create-the-new-virtual-machine
>
>
>
> Nicolas Cellier wrote
> > Well, I've tried to install rr and all its dependencies on Ubuntu 16...
> > But...
> > I have no available machine to run linux natively.
> >
> > To run rr inside a virtual machine, virtualization of perf counters needs
> > to be enabled...
> > https://github.com/mozilla/rr/wiki/Building-And-Installing
> >
> > I'm using parallels, but not the Pro version, because I don't like the
> > annual pricing model, for personal use it's just too much.
> > Unfortunately, only pro edition supports PMU virtualization
> >
> https://download.parallels.com/desktop/v11/docs/en_US/Parallels%20Desktop%20User%27s%20Guide/37830.htm
> >
> > Maybe it's time to change of VM provider, but for now, that's too many
> > hurdles, I give up...
> >
> > Le mer. 26 févr. 2020 à 22:04, Nicolas Cellier <
>
> > nicolas.cellier.aka.nice@
>
> >> a écrit :
> >
> >>
> >>
> >> Le mer. 26 févr. 2020 à 21:56, Nicolas Cellier <
> >>
>
> > nicolas.cellier.aka.nice@
>
> >> a écrit :
> >>
> >>> Hi Stephane,
> >>> this is the worse game for VM developers ;)
> >>>
> >> Hem, I meant the worst ever, even worse than my globish dialect ;)
> >>
> >> No just kidding, very good game for finding our own bugs!
> >>>
> >>> I just ran in debugger, and it crash in b3dDrawSTWRGB
> >>> But it seems like the function received an already corrupted texture...
> >>>
> >>> (lldb) p *texture
> >>> (B3DTexture) $10 = {
> >>> width = 152691968
> >>> height = 1
> >>> depth = 152842368
> >>> rowLength = 1
> >>> sMask = 152740096
> >>> sShift = 1
> >>> tMask = 152789728
> >>> tShift = 1
> >>> cmSize = 152890496
> >>> colormap = 0x000000010916dd80
> >>> data = 0x0000000109179f60
> >>> }
> >>>
> >>> The width, depth and color map size are insane.
> >>> (lldb) p/x texture->width
> >>> (int) $5 = 0x0919e500
> >>> (lldb) p/x texture->depth
> >>> (int) $6 = 0x091c3080
> >>> (lldb) p/x texture->sMask
> >>> (int) $7 = 0x091aa100
> >>> (lldb) p/x texture->tMask
> >>> (int) $8 = 0x091b62e0
> >>> (lldb) p/x texture->cmSize
> >>> (int) $9 = 0x091cec80
> >>>
> >>> Now it remains to discover how this got corrupted...
> >>> I wish I could run the debugger backward in time...
> >>> Maybe it's time to learn a new skill and explore the rr capability on
> >>> linux as recommended once by Jan Vrany.
> >>>
> >>>
> >>> Le mer. 26 févr. 2020 à 10:35, Stéphane Rollandin <
>
> > lecteur@
>
> > >
> >>> a écrit :
> >>>
> >>>> > http://files.squeak.org/5.3rc1/Squeak5.3rc1-19414-64bit/
> >>>> > Please give them a try and report any issues here on the mailing
> >>>> list.
> >>>> The Guardians game does not run in the 64bit version - it crashes
> >>>> immediately.
> >>>>
> >>>> Guardians:
> >>>> http://www.zogotounga.net/comp/guardians.htm
> >>>>
> >>>> Code:
> >>>>
> >>>>
> http://www.zogotounga.net/comp/squeak/guardians/Guardians-builder-0.94.sar
> >>>>
> >>>> (to see the crash, just install the above sar and follow the
> >>>> instructions for starting the game)
> >>>>
> >>>>
> >>>> Stef
> >>>>
> >>>>
>
>
>
>
>
> --
> Sent from: http://forum.world.st/Squeak-VM-f104410.html
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20200227/86a412d0/attachment.html>
More information about the Vm-dev
mailing list