Socket I/O Problems with UNIX Squeak 3.8a1 VM

David Shaffer cdshaffer at acm.org
Mon Aug 22 15:57:50 UTC 2005


Ragnar Hojland Espinosa wrote:

>On Sat, Aug 20, 2005 at 11:33:09AM -0400, David Shaffer wrote:
>  
>
>>I have been trying to figure out why Squeak performs so badly as a
>>webserver.  With some help from John McIntosh (thanks John!) I was able
>>to track down a problem in the Unix VM's socket I/O support.  The
>>problem is the standard "missed signal" when using select().  When the
>>Squeak VM enters aioPoll() it uses a select() to check for activity on
>>various sockets (and other file descriptors -- but I'll stick to TCP
>>sockets here).  For server sockets (passive TCP sockets) who have
>>received new connections it proceeds to call accept() once and then
>>signal the appropriate semaphore.  The problem is that more than one new
>>    
>>
>
>Looong time ago I posted a patch to use the new 2.6 kernel AIO
>support.  Maybe this would work better?  I don't know... I'll need
>some caffeine :)
>
>  
>
Thanks, I'll search the archives.  This seems like the right way to
implement Squeak's AIO (map it directly to UNIX AIO) but there are so
many UNIX platform differences in this department.  Maybe things have
improved since I last looked though.  If we could build a UNIX AIO-based
implementation of the VM that ran on most UNIX platforms that would be a
big step.

David




More information about the Squeak-dev mailing list