From mboxrd@z Thu Jan 1 00:00:00 1970 To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> In-reply-to: Your message of "Tue, 21 Apr 2009 17:03:07 BST." References: <6fca5b4a2b0c1df84043eddf28ce3f52@lsub.org> From: Bakul Shah Date: Tue, 21 Apr 2009 09:38:12 -0700 Message-Id: <20090421163812.B8BA65B24@mail.bitblocks.com> Subject: Re: [9fans] Plan9 - the next 20 years Topicbox-Message-UUID: ee4328e6-ead4-11e9-9d60-3106f5b1d025 On Tue, 21 Apr 2009 17:03:07 BST roger peppe wrote: > the idea with my proposal is to have an extension that > changes as few of the semantics of 9p as possible: > > C->S Tsequence tag=3D1 sid=3D1 > C->S Topen tag=3D2 sid=3D1 fid=3D20 mode=3D0 > C->S Tread tag=3D3 sid=3D1 fid=3D20 count=3D8192 > C->S Tclunk tag=3D4 sid=3D1 > S->C Rsequence tag=3D1 > S->C Ropen tag=3D2 qid=3D... > S->C Rread tag=3D3 data=3D... > S->C Rclunk tag=3D4 > > would be exactly equivalent to: > > C->S Topen tag=3D2 fid=3D20 mode=3D0 > S->C Ropen tag=3D2 qid=3D... > C->S Tread tag=3D3 fid=3D20 count=3D8192 > S->C Rread tag=3D3 data=3D... > C->S Tclunk tag=3D4 > S->C Rclunk tag=3D4 > > and the client-side interface could be designed so > that the client code is the same regardless of whether > the server implements Tsequence or not (for instance, > in-kernel drivers need not implement it). Do you really need a Tsequence? Seems to me this should already work.... Let me illustrate with a timing diagram: Strict request/response: 1 2 3 4 5 012345678901234567890123456789012345678901234567890 C: Topen Tread Tclunk | S: Ropen Rread Rclunk Pipelined case: 1 2 3 4 5 012345678901234567890123456789012345678901234567890 C: Topen Tread Tclunk | S: Ropen Rread Rclunk Here latency is 8 time units (one column = 1 time unit). In the first case it takes 48 time units from Topen to Rclunk received by server. In the second case it takes 28 time units. In the pipelined case, from a server's perspective, client's requests just get to it faster (and may already be waiting!). It doesn't have to do anything special. What am I missing?