On Tue, Jun 9, 2009 at 7:20 PM, Bhanu Nagendra Pisupati<bpisu...@cs.indiana.edu> wrote: > First off, I really am a big fan of filesystem interfaces as used in Plan 9 > - after all my PhD work was based on the model :)
Did you do this on Plan 9 or bring some of the filesystem sanity of another OS? > My objective here is to debate and understand how the points made in the > paper relate to the Plan9 networking model. > >>> * performance overhead: app requesting data from a socket typically needs >>> to perform 2 system calls (select/read or alt/read) >> >> alt ? which is not required ? is not a system call. only a read or write >> is >> required. > > Well, select() or alt might or might not be required depending on whether > you want your thread to wait till the read operation waiting for data from > the network completes. You may argue that since threads are "cheap" in Plan9 > you can afford to have a thread wait on the read operation. But that to me > is a different question... > >>> * lack of an "kernel up-call API": which allows the kernel to inform an >>> app each time network data is available >> >> plan 9 uses synchronous i/o, so this statement doesn't make sense >> in plan 9. you can use threads to do i/o asynch w.r.t. your application, >> but the i/o itself is still synchronous w.r.t. the kernel. > > Whether the IO is synchronous or not, there is this > read()->process()->read()... alternating sequence of operations that is > required, wherein the application has to explicitly go fetch data from the > network using the read operation. To borrow text from the paper: > <snip> > The API does not provide the programmer a way in which to say, "Whenever > there is data for me, call me to process it directly." > </snip> > > >>> * hard to implement "multi homing" with support for multiple network >>> interfaces >> >> i have no idea how this relates to the use of a fs in implementing the >> network stack. why would using a filsystem (or not) make any difference >> in the ability to multihome? >> >> by the way, plan 9 beats the pants off anything else i've used for >> multiple >> network / interface support. it's support for mulitple ip stacks is quite >> neat. > > The question was meant to ask as to how easy it is to programmatically use > the filesystem interface in a multi home network. But I agree that support > for multiple network interfaces in Plan9 is way superior. > >