Re: [squeak-dev] Re: MessageTally problems

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

Re: [squeak-dev] Re: MessageTally problems

David T. Lewis
 
(CC to vm-dev list)

I added Mantis 7515 to track this issue.

http://bugs.squeak.org/view.php?id=7515
"Need way to add timer checks to #dispathFunctionPointer: without performance hit"

Dave

On Fri, Apr 23, 2010 at 11:11:29PM +0200, Brent Pinkney wrote:

> Hi Andreas,
>
> > Look at primitiveResponse. You need to make sure that
> >
> > ioMSecs() > nextWakeupTick ifTrue:[self checkForInterrupts].
>
> Ok, I have compared the 3.6-0 interp.c against the 3.10-4 interp.c (both from www.squeakvm.org).
>
> I have made a patch to Squeak-3.10-4/platforms/unix/src/vm/interp.c to (hopefully) restore the 3.6 profiling behaviour.
> My changes are...
>
>
> #define DoProfilerTimerCheck 1
>
> sqInt dispatchFunctionPointer(void * aFunctionPointer) {
>
>         int timerPending;
>         int startTime;
>
>         /* this is required if the MessageTally is to function correctly */
>         if (DoProfilerTimerCheck) {
>                 timerPending = foo->nextWakeupTick != 0;
>                 if (timerPending) {
>                         startTime = ioLowResMSecs();
>                 }
>         }
>         ((void (*)(void))aFunctionPointer)();
>         if (DoProfilerTimerCheck) {
>                 if (timerPending) {
>                         if ((ioLowResMSecs()) != startTime) {
>                                 if (((ioMSecs()) & MillisecondClockMask) >= foo->nextWakeupTick) {
>                                         if (foo->successFlag) {
>                                                 checkForInterrupts();
>                                         } else {
>                                                 foo->interruptCheckCounter = 0;
>                                         }
>                                 }
>                         }
>                 }
>         }
> }
>
>
> I would be grateful for any insight as to whether this is the correct change - it seems to profile correctly on my Kubuntu 8.04
> box.
>
> I am willing to pursue this change back into VMMaker once blessed.
>
> Brent
>
>