From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL,URIBL_SBL_A autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 21832 invoked from network); 28 Jan 2021 00:18:58 -0000 Received: from tb-ob20.topicbox.com (173.228.157.66) by inbox.vuxu.org with ESMTPUTF8; 28 Jan 2021 00:18:58 -0000 Received: from tb-mx1.topicbox.com (tb-mx1.nyi.icgroup.com [10.90.30.61]) by tb-ob20.topicbox.com (Postfix) with ESMTP id 827D528A84 for ; Wed, 27 Jan 2021 19:18:55 -0500 (EST) (envelope-from bounce.mM6e7a64ad95ea27ac3c73a9ac.r522be890-2105-11eb-b15e-8d699134e1fa@9fans.bounce.topicbox.com) Received: by tb-mx1.topicbox.com (Postfix, from userid 1132) id 400C814B3848; Wed, 27 Jan 2021 19:18:55 -0500 (EST) ARC-Authentication-Results: i=2; topicbox.com; arc=pass; dkim=pass (2048-bit rsa key sha256) header.d=messagingengine.com header.i=@messagingengine.com header.b=Kr4uIlES header.a=rsa-sha256 header.s=fm1 x-bits=2048; dmarc=none policy.published-domain-policy=none policy.applied-disposition=none policy.evaluated-disposition=none (p=none,d=none,d.eval=none) policy.policy-from=p header.from=aqwari.net; spf=pass smtp.mailfrom=droyo@aqwari.net smtp.helo=out5-smtp.messagingengine.com; x-internal-arc=fail (as.1.topicbox.com=pass, ams.1.topicbox.com=fail (message has been altered)) (Message modified while forwarding at Topicbox) ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=mime-version:message-id:in-reply-to:references :date:from:to:subject:content-type:list-help:list-id:list-post :list-subscribe:reply-to:content-transfer-encoding :list-unsubscribe; s=sysmsg-1; t=1611793135; bh=QUEfD2LZjZn+DQxt CfCll/CR/CUtVoz1jRcXvmUX700=; b=UyJQaCC9neNIUWN5VmsZcXMYQNhSm0tW OH4SAk0xW7+rZBStS38FyZRS8gMoGCtmM/Pz67URXJj8Ut6pKKhKCxRNE5AClgpN hmDU8arRsV4qpjgvXpZdem7yPvg8ct80zunite77QhkJeqwFcpqKGRvgvOJ45CDU YEdNHKaZPt8= ARC-Seal: i=2; a=rsa-sha256; cv=pass; d=topicbox.com; s=sysmsg-1; t= 1611793135; b=KEeoL35pqY88g1EpBg3ZsMDmu5eS4vLhL8WBZ6uBRR6QkSxEH1 PgTTY2KsYz90bcWRVNNOH+evuTy8O4+7uVMsMheEOFgirPm/GX/gmbfHKenSoUT+ dKxkGNRV/7Fvh4uR/B/E9neHNzszjsfprKBjQVQ87SRsDi2MWtCDS0fiE= Authentication-Results: topicbox.com; arc=pass; dkim=pass (2048-bit rsa key sha256) header.d=messagingengine.com header.i=@messagingengine.com header.b=Kr4uIlES header.a=rsa-sha256 header.s=fm1 x-bits=2048; dmarc=none policy.published-domain-policy=none policy.applied-disposition=none policy.evaluated-disposition=none (p=none,d=none,d.eval=none) policy.policy-from=p header.from=aqwari.net; spf=pass smtp.mailfrom=droyo@aqwari.net smtp.helo=out5-smtp.messagingengine.com; x-internal-arc=fail (as.1.topicbox.com=pass, ams.1.topicbox.com=fail (message has been altered)) (Message modified while forwarding at Topicbox) X-Received-Authentication-Results: tb-mx0.topicbox.com; arc=none (no signatures found); bimi=skipped (DMARC did not pass); dkim=pass (2048-bit rsa key sha256) header.d=messagingengine.com header.i=@messagingengine.com header.b=Kr4uIlES header.a=rsa-sha256 header.s=fm1 x-bits=2048; dmarc=none policy.published-domain-policy=none policy.applied-disposition=none policy.evaluated-disposition=none (p=none,d=none,d.eval=none) policy.policy-from=p header.from=aqwari.net; iprev=pass smtp.remote-ip=66.111.4.29 (out5-smtp.messagingengine.com); spf=pass smtp.mailfrom=droyo@aqwari.net smtp.helo=out5-smtp.messagingengine.com; x-aligned-from=pass (Address match); x-ptr=pass smtp.helo=out5-smtp.messagingengine.com policy.ptr=out5-smtp.messagingengine.com; x-return-mx=pass header.domain=aqwari.net policy.is_org=yes (MX Records found: in2-smtp.messagingengine.com,in1-smtp.messagingengine.com); x-return-mx=pass smtp.domain=aqwari.net policy.is_org=yes (MX Records found: in2-smtp.messagingengine.com,in1-smtp.messagingengine.com); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=-100 state=0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=9fans.net; h= mime-version:message-id:in-reply-to:references:date:from:to :subject:content-type:list-help:list-id:list-post:list-subscribe :reply-to:content-transfer-encoding:list-unsubscribe; s=dkim-1; bh=QUEfD2LZjZn+DQxtCfCll/CR/CUtVoz1jRcXvmUX700=; b=W3xnwwP8f5/5 WUCcciFcCaOW78MejyEzukNJ7YSpnO1U39SHf5q6aV/SU0Ojf5IqCvhgNKH9or7D qIWlq9wf3oQegZqGtUYybq2iLsZ1xFmNVGAJY788NtIlOe03dEtm31I+zxBHl8gG 8pp9W4XtORacX6dzmp9rUNfhAXuuo68= Received: from tb-mx0.topicbox.com (localhost.local [127.0.0.1]) by tb-mx0.topicbox.com (Postfix) with ESMTP id 99044148528D for <9fans@9fans.net>; Wed, 27 Jan 2021 19:18:46 -0500 (EST) (envelope-from droyo@aqwari.net) Received: from tb-mx0.topicbox.com (localhost [127.0.0.1]) by tb-mx0.topicbox.com (Authentication Milter) with ESMTP id CECA8ED5336; Wed, 27 Jan 2021 19:18:46 -0500 ARC-Seal: i=1; a=rsa-sha256; cv=none; d=topicbox.com; s=arcseal; t= 1611793126; b=Gu1rn7bb/+IgipEYCmq4xpf/LgB5bcQbSqncrq02x16CqecebC jyBq632NvM1Uo/kCfcWyelHxAo0ZhaCZ465BrZWl/rgbEla90Lq8vpHF9gIr3MTI uPqbkUcV4YMznbRXGkVW+wx2L03oK2wAmHU4NKcgGSQxM/S4fHY2z46j1wTRlm2m d3f5v+WtVtA/+uZYoIfuT/RVeuz8QGpu3tElqYqF3EHzGpO59P0ptpRJz94pNO/p 6SqW4AaoPA6VpCTzNg62rKvVYcSyw4MqoDFsUppy50WMyZwmtgnQSi1H0LvcfS7H vf7RVd9JlW3y7vcSxiudWY5xVbXLdv+AkWUg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=mime-version:message-id:in-reply-to:references :date:from:to:subject:content-type; s=arcseal; t=1611793126; bh= xmVlMHG+NFDCPc4vfcTWpXkcRZG0h2bdZ+xDIhoJcAU=; b=uHIVkpnvJeA/EIKK cnfSw+kJjTx3e5VWWt+ZC6eFCTXo8vm+rkWJJIVim4AgoDKeWSFj/ZqTkxfjYLOy M5TqmnX5SlE53YvChKvIYDM2MbzONa2OlYosI2rULCmFDLcdilVE4Pco0yFIjEOz pkwzSagoCXuo4mLrLVw5HZ8XADp24yCPSuSZ08bPZmVqBW66eGEPNXpjk6uhmyvt CRAzPACm1LxEsZnv3DXSL6CZLpmTBkgV4Is6f9Imj53Ta+ChBHItaCnYC3ut+pb3 ODGbY0mDLoGWhYzyxYNZiM51lp6DloC36qqhHEMp3zXOspLlmk8Zt1/bVhruzw/h KUnHGw== ARC-Authentication-Results: i=1; tb-mx0.topicbox.com; arc=none (no signatures found); bimi=skipped (DMARC did not pass); dkim=pass (2048-bit rsa key sha256) header.d=messagingengine.com header.i=@messagingengine.com header.b=Kr4uIlES header.a=rsa-sha256 header.s=fm1 x-bits=2048; dmarc=none policy.published-domain-policy=none policy.applied-disposition=none policy.evaluated-disposition=none (p=none,d=none,d.eval=none) policy.policy-from=p header.from=aqwari.net; iprev=pass smtp.remote-ip=66.111.4.29 (out5-smtp.messagingengine.com); spf=pass smtp.mailfrom=droyo@aqwari.net smtp.helo=out5-smtp.messagingengine.com; x-aligned-from=pass (Address match); x-ptr=pass smtp.helo=out5-smtp.messagingengine.com policy.ptr=out5-smtp.messagingengine.com; x-return-mx=pass header.domain=aqwari.net policy.is_org=yes (MX Records found: in2-smtp.messagingengine.com,in1-smtp.messagingengine.com); x-return-mx=pass smtp.domain=aqwari.net policy.is_org=yes (MX Records found: in2-smtp.messagingengine.com,in1-smtp.messagingengine.com); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=-100 state=0 X-ME-VSCause: gggruggvucftvghtrhhoucdtuddrgeduledrvdelgddulecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdpuffr tefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnth hsucdlqddutddtmdenucfjughrpefofgggkfgjfhffhffvufgtsehttdertderredtnecu hfhrohhmpedfffgrvhhiugcutehrrhhohihofdcuoegurhhohihosegrqhifrghrihdrnh gvtheqnecuggftrfgrthhtvghrnhepheekheefieetudfhhefftefgtdegfeeuvdevhfeh leettdehtdffgeekgeeileegnecukfhppeeiiedrudduuddrgedrvdelnecuvehluhhsth gvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepieeirdduuddurdegrddvledphhgv lhhopehouhhthedqshhmthhprdhmvghsshgrghhinhhgvghnghhinhgvrdgtohhmpdhmrg hilhhfrhhomhepoegurhhohihosegrqhifrghrihdrnhgvtheqpdhmrghilhhfrhhomhep ughrohihohesrghqfigrrhhirdhnvght X-ME-VSScore: -100 X-ME-VSCategory: clean Received-SPF: pass (aqwari.net: Sender is authorized to use 'droyo@aqwari.net' in 'mfrom' identity (mechanism 'include:spf.messagingengine.com' matched)) receiver=tb-mx0.topicbox.com; identity=mailfrom; envelope-from="droyo@aqwari.net"; helo=out5-smtp.messagingengine.com; client-ip=66.111.4.29 Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by tb-mx0.topicbox.com (Postfix) with ESMTPS for <9fans@9fans.net>; Wed, 27 Jan 2021 19:18:46 -0500 (EST) (envelope-from droyo@aqwari.net) Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 2DDA05C0235 for <9fans@9fans.net>; Wed, 27 Jan 2021 19:18:46 -0500 (EST) Received: from imap21 ([10.202.2.71]) by compute6.internal (MEProxy); Wed, 27 Jan 2021 19:18:46 -0500 X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrvdelgddulecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefofgggkfgjfhffhffvufgtsehttdertderredtnecuhfhrohhmpedfffgrvhhi ugcutehrrhhohihofdcuoegurhhohihosegrqhifrghrihdrnhgvtheqnecuggftrfgrth htvghrnhepheekheefieetudfhhefftefgtdegfeeuvdevhfehleettdehtdffgeekgeei leegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug hrohihohesrghqfigrrhhirdhnvght X-ME-Proxy: Received: by mailuser.nyi.internal (Postfix, from userid 501) id C8BBD51C005D; Wed, 27 Jan 2021 19:18:45 -0500 (EST) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.5.0-alpha0-84-gfc141fe8b8-fm-20210125.001-gfc141fe8 Mime-Version: 1.0 Message-Id: <829ad45b-941b-46f9-acef-7eddf541104f@www.fastmail.com> In-Reply-To: <21AE5944012F26AD61546F797F677050@eigenstate.org> References: <21AE5944012F26AD61546F797F677050@eigenstate.org> Date: Wed, 27 Jan 2021 19:17:48 -0500 From: "David Arroyo" To: "Kyle Farwell via 9fans" <9fans@9fans.net> Subject: Re: [9fans] Dual dialing/forking sessions to increase 9P throughput Content-Type: text/plain; charset="UTF-8" Topicbox-Policy-Reasoning: allow: sender is a member Topicbox-Message-UUID: 65c51cee-60fe-11eb-be2a-fe42a9c31bed Archived-At: =?UTF-8?B?PGh0dHBzOi8vOWZhbnMudG9waWNib3guY29tL2dyb3Vwcy85?= =?UTF-8?B?ZmFucy9UZTY5YmIwZmNlMGYwZmZhZi1NNmU3YTY0YWQ5NWVhMjdhYzNjNzNh?= =?UTF-8?B?OWFjPg==?= List-Help: List-Id: "9fans" <9fans.9fans.net> List-Post: List-Software: Topicbox v0 List-Subscribe: Precedence: list Reply-To: 9fans <9fans@9fans.net> Content-Transfer-Encoding: quoted-printable List-Unsubscribe: , Topicbox-Delivery-ID: 2:9fans:437d30aa-c441-11e9-8a57-d036212d11b0:522be890-2105-11eb-b15e-8d699134e1fa:M6e7a64ad95ea27ac3c73a9ac:1:lAHwIi5wp7sxEgMZzi27g_-FJJY9EMdP4esTJnb5ypA On Wed, Jan 27, 2021, at 11:25, Ethan Gardener wrote: > fcp(1)?=20 You are right, but fcp(1) would only produce multiple parallel read and write messages, I'm talking about a more general approach. fcp is probably a better compromise, though, as ori points out the client can get complicated pretty quickly when trying to solve the problem more generally: On Wed, Jan 27, 2021, at 11:52, ori@eigenstate.org wrote: > This also has some hairy edge cases. For example, > what happens to the actions in the pipeline if one > of the operations fails? Yes, the tradeoff of this pipelining is that the client becomes a lot more complex, but for this specific problem, the client would need to be prepared to receive and discard Rerror messages for each message after the failed one, just surfacing the first error to whatever system call or library function kicked off this sequence of messages. > I think that for this kind of pipelining to be > effective, 9p may need some notion of 'bundles', > where the first failure, short write, or other > exceptional operation would cause all other > commands in the bundle to be ignored. You can get pretty close to "bundles" without changing the protocol by having the client reserve a few bits of storage in the Tag header to group requests in a pipeline together: # Bundle 1, sent at once Twalk tag=3D0x0100 fid=3D0 newfid=3D1 "foo/bar" Topen tag=3D0x0101 fid=3D1 O_RDONLY Twrite tag=3D0x0102 fid=3D1 data Tclunk tag=3D0x0103 fid=3D1 Then the client could use a trie or some similar data structure on the tag of an R-message to get the "state" of a pipeline. > Another issue is that its' difficult to retrofit > this pipelining into the plan 9 system call > interface; when do you return an error from > read(2)? what if there are mutiple Treads? This is a harder problem, I think. What if non-contiguous reads or writes succeed? An mmap()-style API might fare better here, but that comes with its own drawbacks. I don't have a good answer here, but I think since Twrite and Rread messages are elastic it is always better to just send larger messages, increasing msize if necessary. > how do you handle congestion if you can stuff as many 9p packets down > a single connection as possible? There's no packet loss, but you can > end up with very long delays as small reads like /dev/mouse get queued > behind bulk transfers. The problem you describe is analagous to the "buffer bloat" problem. In the lower protocols like TCP it is solved by making the sender aware of the bandwidth delay product and sizing its buffers appropriately. So it could be handled by using a model-based congestion avoidance algorithm like BBR or Vegas, and sending messages out of a prioritized queue, where "interactive" files like /dev/mouse are prioritized. David ------------------------------------------ 9fans: 9fans Permalink: https://9fans.topicbox.com/groups/9fans/Te69bb0fce0f0ffaf-M6e7a6= 4ad95ea27ac3c73a9ac Delivery options: https://9fans.topicbox.com/groups/9fans/subscription