New native layer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Casey,

Following my previous mail, please try this small performance test. It 
illustrates what I want to do and the performance "loss" that is expected.

Simply unpack and run make.

Cheers,

Guilhem.

Casey Marshall wrote:
> On Feb 2, 2006, at 10:27 AM, Guilhem Lavaux wrote:
> 
>> Casey Marshall wrote:
>>
>>> On Jan 31, 2006, at 6:10 PM, David P Grove wrote:
>>>
>>>> Jikes RVM also does m-to-n threading, so it's there's more than 1 VM
>>>> that's whacky in this regard.  The things we need to do are most   
>>>> likely
>>>> different than what Kaffe needs to do, but having a chance to   
>>>> inject a VM
>>>> callback before the thread dives off into a blocking system call is
>>>> something we would like to be able to do.  We have some linux  specific
>>>> hacks (evil with dlopen to intercept poll, select, etc), but  it's  
>>>> fragile
>>>> and doesn't work on other platforms like AIX and OS X that Jikes   
>>>> RVM runs
>>>> on.
>>>>
>>> Would my suggestion for Enter/Exit callbacks help this?
>>
>>
>> Though enter/exit callbacks may help for a few syscalls but it  won't 
>> for some (like blocking read/write). For these new calls you  need 
>> handle blocking queues in the VM thread scheduler. That needs  to put 
>> the fd into non-blocking mode and when you do a read you  first check 
>> if there is any data (in non-blocking mode) and if  there is not data 
>> then the thread system queues the current thread  and tells the 
>> scheduler to jump somewhere else until some datas are  available on 
>> the specified fd. So we must really stick to rerouting  a few IOs. I 
>> am sure that handling m-to-n  threading system is as  difficult as 
>> what we are doing (maybe more).
>>
> 
> Aha, I grok the issue now. Would it make sense to do conditional  
> compilation based on a "green threads" model, so that you can compile  
> all blocking I/O calls to support such a model, if configured thusly?  
> Or would file descriptor callbacks help -- where the FD is put into  
> non-blocking mode before the call, then reset after, with support to  
> catch the `EAGAIN' if it arrives?
> 
> Also, I'm sure you could write a kernel-threads compatible library  that 
> also supported user-mode thread models at the same time (the  
> restrictions on the former seem to be a subset of the latter), but  
> don't know about what performance drain that would incur on kernel  
> threaded systems. Because, "one POSIX library to rule them all," that  
> supported both thread models, would still be an awesome thing.
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: perf.tar.gz
Type: application/x-tar
Size: 850 bytes
Desc: not available
Url : http://developer.classpath.org/pipermail/classpath/attachments/20060204/ee83e747/perf.tar.tar

[Index of Archives]     [Linux Kernel]     [Linux Cryptography]     [Fedora]     [Fedora Directory]     [Red Hat Development]

  Powered by Linux