From: Tim Wilkinson (tim@transvirtual.com)
Date: Fri Oct 16 1998 - 17:02:45 EDT
Before someone goes off removing this indirection table could they please
demonstrate that putting in direction functions will make any significant different
to performance. If we're worried about the performance issue here then I'd like it
to be a valid concern - otherwise lets worry about the places where Kaffe's
performance does suck (GC for example).
Cheers
Tim
Godmar Back wrote:
> >
> > we (Tim?) first have to sync again, there are too many differences (the
> > TimerClient actually had a few other flaws).
>
> So I'm holding off checking in my fixes.
>
> >
> > The only jthread thing (besides interrupt) I'm aware of is the
> > jthreadedBlockEAGAIN(int fd), I added for the blocked getNextEvent() (no
> > polling n the AWT anymore). Is this already in the public tree? I guess I
> > didn't tell you that I managed to implement this on the jthreads basis. Oh yes,
>
> No, you didn't tell me. Glad to hear it, though.
>
> > I also rearranged things so that we can inline a couple of funcs (e.g. the
> > infamous intsDisable(), intsRestore()), and I was thinking about using a jump
> > table for the interrupt dispatcher (to save the switch).
>
> A jump table might make sense, but maybe we should look at the assembly
> code first to see what gcc makes out of the switch.
>
> About the intsDisable etc. issue: I strongly agree with you that using
> indirect function calls is a severe and unnecessary overhead. In general,
> I don't see the need for using a function table for the thread interface
> at all. I think using a header file (similar jthread.h) to agree on the
> interface between VM and threading system is a better and more efficient
> solution. Tim talked about the necessity of linking precompiled threading
> systems and VM together; either I don't fully understand what he was
> referring to, or I don't see how that would have been prevented.
>
> In general, I think function tables should only be used if you have more
> than one implementation of something in a given binary (examples: function
> tables for device drivers in Linux, COM object tables.) or if you need to
> make a decision as to which system to use at run-time (the latter is not
> possible in Kaffe because the function table is a global variable.)
>
> >
> > Unfortunately, I have to leave tomorrow (being in Atlanta next week, then
> > Berkeley, then Colorado), so you probably should talk this over with Tim.
> >
>
> Have a good trip.
>
> - Godmar
-- Tim Wilkinson Tel: +1 510 704 1660 Transvirtual Technologies, Inc., Fax: +1 510 704 1893 Berkeley, CA, USA. Email: tim@transvirtual.com
This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 19:57:00 EDT