From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 From: Venkatesh Srinivas Date: Tue, 26 Oct 2010 23:02:32 -0400 Message-ID: To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: multipart/alternative; boundary=0016364d2cbd1d761e04939076ec Subject: [9fans] A little more ado about async Tclunk Topicbox-Message-UUID: 6e8300a2-ead6-11e9-9d60-3106f5b1d025 --0016364d2cbd1d761e04939076ec Content-Type: text/plain; charset=UTF-8 Hi folks, I just committed a very simple implementation of asynchronous TClunk to inferno-npe. The implementation will only defer sending clunks when MCACHE is specified on the mount (via the new -j option to Inferno's mount, analogous to Plan 9's mount -C) and when the file is not marked ORCLOSE. The implementation is very simple -- I queue the RPCs devmnt would issue synchronously and send them from a single kproc, one-after-another. There is no attempt to overlap the TClunks. There is no logic to handle flushing a deferred clunks on an unmount yet. The diff is not as clean as I would like, but it works. I connected from an inferno-npe client to an inferno-os server, sharing the Plan9 source tree from August 16th and measured the time required for fcp -R 16 -W 16 to get the sources to /plan9/sys/src/cmd/cwfs and to get /plan9/sys/src/9. The server is approximately 15ms away from the client; both are running Linux. For the cwfs sources, it takes me an average of 5.68sec (stdev 0.57s, 6 tests) issuing synchronous clunks (the default) and an average of 4.54sec (stdev 0.31s, 6 tests) issuing asynchronous clunks. For the 9 kernel sources, it took about 51s with synchronous clunks, about 41s with asynchronous clunks on. I only did 3 tries with the 9 sources. Thought this might be interesting... -- vs --0016364d2cbd1d761e04939076ec Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi folks,

I just committed a very simple implementation = of asynchronous TClunk to inferno-npe. The implementation will only defer s= ending clunks when MCACHE is specified on the mount (via the new -j option = to Inferno's mount, analogous to Plan 9's mount -C) and when the fi= le is not marked ORCLOSE. The implementation is very simple -- I queue the = RPCs devmnt would issue synchronously and send them from a single kproc, on= e-after-another. There is no attempt to overlap the TClunks. There is no lo= gic to handle flushing a deferred clunks on an unmount yet. The diff is not= as clean as I would like, but it works.

I connected from an inferno-npe client to an inferno-os= server, sharing the Plan9 source tree from August 16th and measured the ti= me required for fcp -R 16 -W 16 to get the sources to /plan9/sys/src/cmd/cw= fs and to get /plan9/sys/src/9. =C2=A0The server is approximately 15ms away= from the client; both are running Linux.

For the cwfs sources, it takes me an average of 5.68sec= (stdev 0.57s, 6 tests) issuing synchronous clunks (the default) and an ave= rage of 4.54sec (stdev 0.31s, 6 tests) issuing asynchronous clunks.

For the 9 kernel sources, it took about 51s with synchr= onous clunks, about 41s with asynchronous clunks on. I only did 3 tries wit= h the 9 sources.

Thought this might be interesting= ...
-- vs

--0016364d2cbd1d761e04939076ec--