SystemTracer64 progress

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

SystemTracer64 progress

David T. Lewis
 
Over the weekend I made some progress in getting SystemTracer updated
to do 64-bit image tracing. Previously SystemTracer64 did not work on
little-endian machines (Mantis 5240). This is corrected now, and the
code is on SqueakSource in project "SystemTracing".

I can now trace a Squeak 3.10.2 image to 64-bit format on my Linux
AMD box (little endian), producing a runnable 64-bit image. For
an up to date Squeak trunk image, I can trace a 64 image that
loads and runs (display opens and things start working), but that
has problems with resuming its background processes (low space
watcher etc). Possibly it's related to the block closure changes,
although I believe there was an earlier report of a Pharo image
with block closures being successfully traced to 64 bit format.

Dave

Reply | Threaded
Open this post in threaded view
|

Re: SystemTracer64 progress

johnmci
 
excellent news

On 2010-01-11, at 7:55 PM, David T. Lewis wrote:

>
> Over the weekend I made some progress in getting SystemTracer updated
> to do 64-bit image tracing. Previously SystemTracer64 did not work on
> little-endian machines (Mantis 5240). This is corrected now, and the
> code is on SqueakSource in project "SystemTracing".
>
> I can now trace a Squeak 3.10.2 image to 64-bit format on my Linux
> AMD box (little endian), producing a runnable 64-bit image. For
> an up to date Squeak trunk image, I can trace a 64 image that
> loads and runs (display opens and things start working), but that
> has problems with resuming its background processes (low space
> watcher etc). Possibly it's related to the block closure changes,
> although I believe there was an earlier report of a Pharo image
> with block closures being successfully traced to 64 bit format.
>
> Dave
>

--
===========================================================================
John M. McIntosh <[hidden email]>   Twitter:  squeaker68882
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================




Reply | Threaded
Open this post in threaded view
|

Re: SystemTracer64 progress

johnmci
In reply to this post by David T. Lewis
 
It has to be about the word size issue. Send a screen shot of the walkbacks.


On 2010-01-11, at 7:55 PM, David T. Lewis wrote:

>
> Over the weekend I made some progress in getting SystemTracer updated
> to do 64-bit image tracing. Previously SystemTracer64 did not work on
> little-endian machines (Mantis 5240). This is corrected now, and the
> code is on SqueakSource in project "SystemTracing".
>
> I can now trace a Squeak 3.10.2 image to 64-bit format on my Linux
> AMD box (little endian), producing a runnable 64-bit image. For
> an up to date Squeak trunk image, I can trace a 64 image that
> loads and runs (display opens and things start working), but that
> has problems with resuming its background processes (low space
> watcher etc). Possibly it's related to the block closure changes,
> although I believe there was an earlier report of a Pharo image
> with block closures being successfully traced to 64 bit format.
>
> Dave
>

--
===========================================================================
John M. McIntosh <[hidden email]>   Twitter:  squeaker68882
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================




Reply | Threaded
Open this post in threaded view
|

Re: SystemTracer64 progress

Levente Uzonyi-2
In reply to this post by David T. Lewis
 
On Mon, 11 Jan 2010, David T. Lewis wrote:

>
> Over the weekend I made some progress in getting SystemTracer updated
> to do 64-bit image tracing. Previously SystemTracer64 did not work on
> little-endian machines (Mantis 5240). This is corrected now, and the
> code is on SqueakSource in project "SystemTracing".
>
> I can now trace a Squeak 3.10.2 image to 64-bit format on my Linux
> AMD box (little endian), producing a runnable 64-bit image. For

Sounds great.

> an up to date Squeak trunk image, I can trace a 64 image that
> loads and runs (display opens and things start working), but that
> has problems with resuming its background processes (low space
> watcher etc). Possibly it's related to the block closure changes,
> although I believe there was an earlier report of a Pharo image
> with block closures being successfully traced to 64 bit format.

Another approach may be to apply the trunk changes to the 64-bit 3.10.2
image. I guess that would be a great test for the system too.


Levente

>
> Dave
>
>
Reply | Threaded
Open this post in threaded view
|

Re: SystemTracer64 progress

jannik laval
In reply to this post by David T. Lewis
 
Hi David,

I cannot write my changes.
So you can have them in attachment.

In these .cs, there is a merge with your version .15.
And it works with Pharo.

Cheers

Jannik





On Jan 12, 2010, at 04:55 , David T. Lewis wrote:

>
> Over the weekend I made some progress in getting SystemTracer updated
> to do 64-bit image tracing. Previously SystemTracer64 did not work on
> little-endian machines (Mantis 5240). This is corrected now, and the
> code is on SqueakSource in project "SystemTracing".
>
> I can now trace a Squeak 3.10.2 image to 64-bit format on my Linux
> AMD box (little endian), producing a runnable 64-bit image. For
> an up to date Squeak trunk image, I can trace a 64 image that
> loads and runs (display opens and things start working), but that
> has problems with resuming its background processes (low space
> watcher etc). Possibly it's related to the block closure changes,
> although I believe there was an earlier report of a Pharo image
> with block closures being successfully traced to 64 bit format.
>
> Dave
>



1-System-Tracing-forPharo.cs (61K) Download Attachment
2-SystemTracing-dtl.15.1.cs (110K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: SystemTracer64 progress

David T. Lewis
In reply to this post by johnmci
 
On Mon, Jan 11, 2010 at 08:16:07PM -0800, John M McIntosh wrote:

>
> On 2010-01-11, at 7:55 PM, David T. Lewis wrote:
> >
> > I can now trace a Squeak 3.10.2 image to 64-bit format on my Linux
> > AMD box (little endian), producing a runnable 64-bit image. For
> > an up to date Squeak trunk image, I can trace a 64 image that
> > loads and runs (display opens and things start working), but that
> > has problems with resuming its background processes (low space
> > watcher etc). Possibly it's related to the block closure changes,
> > although I believe there was an earlier report of a Pharo image
> > with block closures being successfully traced to 64 bit format.
>  
> It has to be about the word size issue. Send a screen shot of the walkbacks.
>

I retraced the image, and it fails differently at different points
in the startup.  Unfortunately I did not save the image that was giving
me useful debugger walkbacks.

In any case I can confirm that the Pharo 64 bit image with closures does
work on my machine (so it's nothing related to the VM), and also that
I can successfully trace an older Squeak image to 64 bits on my little
endian box, so I'm probably going to be looking for something related
to endianness in the 64 bit tracer.

Jannik sent his latest changes too, so I'll compare that.

If anyone has a big endian machine handy, it would be good to confirm
if the latest Squeak trunk can be traced successfully to 64 bit format
on a big endian box (i.e. load latest SqS/SystemTracing into trunk image,
run "SystemTracer64 writeImage: 'clone64.image' " and verify that works).
I expect the answer will be yes but I can't confirm.

Dave

 
Reply | Threaded
Open this post in threaded view
|

Re: SystemTracer64 progress

David T. Lewis
In reply to this post by jannik laval
 
On Tue, Jan 12, 2010 at 08:31:11AM +0100, Laval Jannik wrote:

>
> On Jan 12, 2010, at 04:55 , David T. Lewis wrote:
>
> > Over the weekend I made some progress in getting SystemTracer updated
> > to do 64-bit image tracing. Previously SystemTracer64 did not work on
> > little-endian machines (Mantis 5240). This is corrected now, and the
> > code is on SqueakSource in project "SystemTracing".
> >
> > I can now trace a Squeak 3.10.2 image to 64-bit format on my Linux
> > AMD box (little endian), producing a runnable 64-bit image. For
> > an up to date Squeak trunk image, I can trace a 64 image that
> > loads and runs (display opens and things start working), but that
> > has problems with resuming its background processes (low space
> > watcher etc). Possibly it's related to the block closure changes,
> > although I believe there was an earlier report of a Pharo image
> > with block closures being successfully traced to 64 bit format.
> >
>  
> Hi David,
>
> I cannot write my changes.
> So you can have them in attachment.
>
> In these .cs, there is a merge with your version .15.
> And it works with Pharo.

Jannik,

Thank you for sending this. I will compare and merge as soon as I
have some more free time.

Also, your PharoCore64-1.1-11152-UNSTABLE image works fine on my
Linux box.

Dave

Reply | Threaded
Open this post in threaded view
|

Re: SystemTracer64 progress

David T. Lewis
In reply to this post by David T. Lewis
 
Levente,

Great, thank you. I just added to as developer on SqueakSource/SystemTracing.
Please go ahead and commit your changes directly if you like.

The discrepancy between Squeak trunk and Pharo is minor (Jannik
has been posting his changes), so we can easily resolve this.

The main open issue is why Squeak trunk and Pharo images traced to
64 bit format on my Intel box are failing. It's got to be something
I have not spotted yet in the word swapping in SystemTracer64, and
it appears to affect only these new images, I can trace a Squeak 3.8
to 64 bits on Intel without problems. And the Pharo image that
Jannik traced with a big endian machine works fine, so it must
be a byte ordering issue of some sort.

Dave


On Wed, Jan 13, 2010 at 07:31:18AM +0100, Levente Uzonyi wrote:

> Hi Dave,
>
> I got some time to clean up the SystemTracing package a bit. I made
> two versions. One which just fixes, enhances, removes methods and another
> which completely removes NoAssocIdentityDictionary. I could successfully
> trace images with SystemTracer2 and SystemTracer64 in both Squeak trunk
> (8863) and Pharo 1.1 dev (11138)  images, though I don't have a vm for
> 64-bit images at the moment, so I couldn't test the 64-bit images. The
> traced Pharo image raised an error at startup because SmalltalkImage
> didn't understand #setPlatformPreferences, that method was removed. I ran
> all tests in the traced images and everything seemed to be fine except
> for #testUndeclared. It fails, because PositionableStream has two
> extension methods, which reference a missing class variable, but that
> should be OK if the SystemTracing package is unloaded. The changes are
> available here under the MIT license if you're interested:
> http://leves.web.elte.hu/squeak/
>
>
> Cheers,
> Levente
>
> P.S.: I removed NoAssocIdentityDictionary, because it didn't show any
> benefit compared to PluggableDictionary. I also tried IdentityDictionary,
> but it's really slow, because it uses #identityHash (or
> #scaledIdentityHash) instead of #largeHash (which should be called
> #largeIdentityHash). Tracing 400k+ objects with IdentityDictionary means
> that there are ~1000 objects for every possible value of #identityHash.
> Therefore I removed the possibility to change the dictionary class
> directly. Subclasses can override #newLargeIdentityDictionaryOfSize: if
> necessary.
Reply | Threaded
Open this post in threaded view
|

Re: SystemTracer64 progress

jannik laval
In reply to this post by David T. Lewis
 
Hi Dave,

Thank you for your feedback :),
Now, in the PharoCore64, some tests crash or loops.

I will see that :)

Cheers,
Jannik

On Jan 12, 2010, at 13:29 , David T. Lewis wrote:

>
> On Tue, Jan 12, 2010 at 08:31:11AM +0100, Laval Jannik wrote:
>>
>> On Jan 12, 2010, at 04:55 , David T. Lewis wrote:
>>
>>> Over the weekend I made some progress in getting SystemTracer updated
>>> to do 64-bit image tracing. Previously SystemTracer64 did not work on
>>> little-endian machines (Mantis 5240). This is corrected now, and the
>>> code is on SqueakSource in project "SystemTracing".
>>>
>>> I can now trace a Squeak 3.10.2 image to 64-bit format on my Linux
>>> AMD box (little endian), producing a runnable 64-bit image. For
>>> an up to date Squeak trunk image, I can trace a 64 image that
>>> loads and runs (display opens and things start working), but that
>>> has problems with resuming its background processes (low space
>>> watcher etc). Possibly it's related to the block closure changes,
>>> although I believe there was an earlier report of a Pharo image
>>> with block closures being successfully traced to 64 bit format.
>>>
>>
>> Hi David,
>>
>> I cannot write my changes.
>> So you can have them in attachment.
>>
>> In these .cs, there is a merge with your version .15.
>> And it works with Pharo.
>
> Jannik,
>
> Thank you for sending this. I will compare and merge as soon as I
> have some more free time.
>
> Also, your PharoCore64-1.1-11152-UNSTABLE image works fine on my
> Linux box.
>
> Dave
>