netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Evgeniy Polyakov <zbr@ioremap.net>
To: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Vladislav Bolkhovitin <vst@vlnb.net>,
	linux-scsi@vger.kernel.org,
	James Bottomley <James.Bottomley@HansenPartnership.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>,
	Mike Christie <michaelc@cs.wisc.edu>,
	Jeff Garzik <jeff@garzik.org>,
	Boaz Harrosh <bharrosh@panasas.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	linux-kernel@vger.kernel.org, scst-devel@lists.sourceforge.net,
	Bart Van Assche <bart.vanassche@gmail.com>,
	"Nicholas A. Bellinger" <nab@linux-iscsi.org>,
	netdev@vger.kernel.org, Rusty Russell <rusty@rustcorp.com.au>,
	Herbert Xu <herbert@gondor.apana.org.au>,
	David Miller <davem@davemloft.net>
Subject: Re: [PATCH][RFC 23/23]: Support for zero-copy TCP transmit of user space data
Date: Sat, 20 Dec 2008 01:33:15 +0300	[thread overview]
Message-ID: <20081219223314.GA2736@ioremap.net> (raw)
In-Reply-To: <494C1E5E.7070809@goop.org>

On Fri, Dec 19, 2008 at 02:21:18PM -0800, Jeremy Fitzhardinge (jeremy@goop.org) wrote:
> >There maybe a problem though, if iscsi will run over xen network, but in
> >this case xen may copy the data, or iscsi may do that after determining
> >that underlying network device does not allow shared info destructor
> >(vis device/route flag for example).
> >  
> 
> Xen only needs the callback in the case of traffic originating in 
> another Xen domain.  If iscsi is involved, it will be running in the 
> other domain, and so all its callbacks and so on will happen there.  
> There's no conflict.

That's good news.

> >>Wouldn't you only need to do the lookup on the last put?
> >>
> >>An external lookup table might well for for us, if the net_put_page() 
> >>change is acceptable to the network folk.
> >>    
> >
> >That sounds like the best solution for this problem.
> >  
> 
> An external lookup would just need to change put_page -> net_put_page, I 
> think.

It is not needed I think, having skb shared info destructor has access
to the all pages in that skb.

> >David, will you accept shared info destructor?
> >  
> 
> I'm not very familiar with the network stack, but am I right in assuming 
> that the shared_info destructor would be called when the network stack 
> has finished with all the pages it refers to?  And those pages could be 
> the combination of pages separately submitted in different skbs?

Shared info is freed when there are no skbs referring to the shared info
in question. Skb holds all pages in shared info in the fraglist array,
so when it is about to be freed, it means that network stack does not
use it (particulary it will putpage every page in fraglist). Usually
there are two skbs in the network stack per packet in TCP (allocated at
once though via fastclone mechanims): one is provided to the device
(and will be freed there) and another one is placed into retransmit
queue, where it will be located and freed when ack has been received.

There may be another layers which may clone skb, but its shared info
structure (shared between the clones) will only be freed when all users
freed appropriate cloned skbs.

-- 
	Evgeniy Polyakov

  reply	other threads:[~2008-12-19 22:33 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-10 18:26 [PATCH][RFC 0/23] New SCSI target framework (SCST) and 4 target drivers Vladislav Bolkhovitin
2008-12-10 19:01 ` [PATCH][RFC 21/23]: iSCSI target driver Vladislav Bolkhovitin
2008-12-11 22:55   ` Nicholas A. Bellinger
2008-12-11 22:59     ` Nicholas A. Bellinger
2008-12-12 19:26     ` Vladislav Bolkhovitin
2008-12-10 19:02 ` [PATCH][RFC 22/23]: Documentation for iSCSI-SCST Vladislav Bolkhovitin
2008-12-10 19:04 ` [PATCH][RFC 23/23]: Support for zero-copy TCP transmit of user space data Vladislav Bolkhovitin
2008-12-10 21:45   ` Evgeniy Polyakov
2008-12-11 18:16     ` Vladislav Bolkhovitin
2008-12-11 19:12       ` James Bottomley
2008-12-12 19:25         ` Vladislav Bolkhovitin
2008-12-12 19:37           ` James Bottomley
2008-12-15 17:58             ` Vladislav Bolkhovitin
2008-12-15 23:18               ` Christoph Hellwig
2008-12-16 18:57                 ` Vladislav Bolkhovitin
2008-12-18 18:35                   ` [RFC]: " Vladislav Bolkhovitin
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
2008-12-16 16:00     ` [PATCH][RFC 23/23]: " Bart Van Assche
2008-12-16 17:41       ` Evgeniy Polyakov
2008-12-19 20:21   ` Jeremy Fitzhardinge
2008-12-19 22:04     ` Evgeniy Polyakov
2008-12-19 22:21       ` Jeremy Fitzhardinge
2008-12-19 22:33         ` Evgeniy Polyakov [this message]
2008-12-20  1:56           ` Jeremy Fitzhardinge
2008-12-20  2:02             ` Herbert Xu
2008-12-20  6:14               ` Jeremy Fitzhardinge
2008-12-20  6:51                 ` Herbert Xu
2008-12-20  7:43                   ` Jeremy Fitzhardinge
2008-12-20  8:10                     ` Herbert Xu
2008-12-20 10:32                       ` Evgeniy Polyakov
2008-12-20 19:39                         ` Jeremy Fitzhardinge
2008-12-22  0:43                           ` Rusty Russell
2008-12-23 19:14                             ` Vladislav Bolkhovitin
2008-12-23 19:16                         ` Vladislav Bolkhovitin
2008-12-23 21:38                           ` Evgeniy Polyakov
2008-12-24 14:37                             ` Vladislav Bolkhovitin
2008-12-24 14:44                               ` Evgeniy Polyakov
2008-12-24 17:46                                 ` Vladislav Bolkhovitin
2008-12-24 18:08                                   ` Evgeniy Polyakov
2008-12-30 17:37                                     ` Vladislav Bolkhovitin
2008-12-30 21:35                                       ` Evgeniy Polyakov
2008-12-23 19:13     ` 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=20081219223314.GA2736@ioremap.net \
    --to=zbr@ioremap.net \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=akpm@linux-foundation.org \
    --cc=bart.vanassche@gmail.com \
    --cc=bharrosh@panasas.com \
    --cc=davem@davemloft.net \
    --cc=fujita.tomonori@lab.ntt.co.jp \
    --cc=herbert@gondor.apana.org.au \
    --cc=jeff@garzik.org \
    --cc=jeremy@goop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=michaelc@cs.wisc.edu \
    --cc=nab@linux-iscsi.org \
    --cc=netdev@vger.kernel.org \
    --cc=rusty@rustcorp.com.au \
    --cc=scst-devel@lists.sourceforge.net \
    --cc=torvalds@linux-foundation.org \
    --cc=vst@vlnb.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;
as well as URLs for NNTP newsgroup(s).