From: Vladislav Bolkhovitin <vst@vlnb.net>
To: linux-mm@kvack.org
Cc: Christoph Hellwig <hch@infradead.org>,
James Bottomley <James.Bottomley@HansenPartnership.com>,
linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org,
scst-devel@lists.sourceforge.net,
Bart Van Assche <bart.vanassche@gmail.com>,
netdev@vger.kernel.org
Subject: [RFC]: Support for zero-copy TCP transmit of user space data
Date: Thu, 18 Dec 2008 21:35:09 +0300 [thread overview]
Message-ID: <494A97DD.7080503@vlnb.net> (raw)
In-Reply-To: <4947FA1C.2090509@vlnb.net>
Hello linux-mm,
Recently I submitted a new SCSI target framework (SCST) and 4 target
drivers for it for the first iteration of review and comments. See
http://lkml.org/lkml/2008/12/10/245 for details.
An iSCSI target driver iSCSI-SCST was a part of the patchset
(http://lkml.org/lkml/2008/12/10/293). For it a nice optimization to
have TCP zero-copy transmit of user space data was implemented. Patch,
implementing this optimization was also sent in the patchset, see
http://lkml.org/lkml/2008/12/10/296.
I would like to ask, if the approach used in this patch can be
acceptable from your point of view? I understand, that extending struct
page is a very much undesirable, but, from other side:
- This approach is very simple and straightforward. The patch is only
309 lines long, including comments. All other alternative
implementations would be at least an order of magnitude more complicated.
- Related kernel config option
TCP_ZERO_COPY_TRANSFER_COMPLETION_NOTIFICATION should be disabled by
default in general distro kernels, so the would be no harm at all from
this patch. ISCSI-SCST can work without this patch or with
TCP_ZERO_COPY_TRANSFER_COMPLETION_NOTIFICATION option disabled, although
with user space device handlers it will work considerably worse. Only
few distro kernels users need an iSCSI target and only few among such
users need to use user space device handlers. People who need both iSCSI
target *and* fast working user space device handlers would simply enable
that option and rebuild the kernel. Rejecting this patch provides much
worse alternative: those people would also have to *patch* the kernel at
first, only then enable that option, then rebuild the kernel.
- Although usage of struct page to keep network related pointer might
look as a layering violation, it isn't. I wrote in
http://lkml.org/lkml/2008/12/15/190 why.
Thanks,
Vlad
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next parent reply other threads:[~2008-12-18 18:33 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <494009D7.4020602@vlnb.net>
[not found] ` <494012C4.7090304@vlnb.net>
[not found] ` <20081210214500.GA24212@ioremap.net>
[not found] ` <4941590F.3070705@vlnb.net>
[not found] ` <1229022734.3266.67.camel@localhost.localdomain>
[not found] ` <4942BAB8.4050007@vlnb.net>
[not found] ` <1229110673.3262.94.camel@localhost.localdomain>
[not found] ` <49469ADB.6010709@vlnb.net>
[not found] ` <20081215231801.GA27168@infradead.org>
[not found] ` <4947FA1C.2090509@vlnb.net>
2008-12-18 18:35 ` Vladislav Bolkhovitin [this message]
2008-12-18 18:43 ` David M. Lloyd
2008-12-19 17:37 ` Vladislav Bolkhovitin
2008-12-19 19:07 ` Jens Axboe
2008-12-19 19:17 ` Vladislav Bolkhovitin
2008-12-19 19:27 ` Jens Axboe
2008-12-19 21:58 ` Evgeniy Polyakov
2008-12-23 19:11 ` Vladislav Bolkhovitin
2008-12-19 11:27 ` Andi Kleen
2008-12-19 17:38 ` Vladislav Bolkhovitin
2008-12-19 18:00 ` Andi Kleen
2008-12-19 17:57 ` Vladislav Bolkhovitin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=494A97DD.7080503@vlnb.net \
--to=vst@vlnb.net \
--cc=James.Bottomley@HansenPartnership.com \
--cc=bart.vanassche@gmail.com \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-scsi@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=scst-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox