lkml.org 
[lkml]   [1998]   [Jun]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Solaris Doors API for Linux
Jason Lango wrote:
> What makes Doors interesting and innovative is that the API allows for
> certain speed optimizations: The kernel can control the allocation of
> threads in the server process, keeping it roughly proportional to the
> number of client requests at any one time. Also, large amounts of
> data may be passed efficiently by mapping the underlying physical
> pages between processes (the pages are mapped copy-on-write).

Quite nice.

We used similar optimizations with similar results in a project sometime
ago (see: http://gsd.di.uminho.pt/~jop/docs/extabs.ps.gz), where we
developed a similar IPC primitive, albeit without the a nice general
purpose API like "doors".

However, after implementing virtual copy, we found out that most of
the round-trip overhead for small messages was attributable to
the scheduler, so we arranged that when sending a request, the
remaining timeslice of the client was explicitly provided to the
server, avoiding the cost of selecting the process to schedule.
(This was done in a function called sleep_on_and_wakeup, with two
wait_queues as parameters.) This wass possible because the client
would forcibly block waiting for the answer after sending the
request, which I believe also happens with doors.

Have you considered something like this? I don't have the figures
here, but I remember that it was a big win. It also was a long time
ago (Linux 1.1), so I don't know if the same would happen now...

--
Jose Orlando Pereira
* mailto:jop@di.uminho.pt * http://gsd.di.uminho.pt/~jop *

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu

\
 
 \ /
  Last update: 2005-03-22 13:42    [W:0.056 / U:0.064 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site