All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Vrabel <david.vrabel@citrix.com>
To: Wei Liu <wei.liu2@citrix.com>
Cc: Wei Liu <liuw@liuw.name>, Ian Campbell <Ian.Campbell@citrix.com>,
	"konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
	"annie.li@oracle.com" <annie.li@oracle.com>
Subject: Re: [Xen-devel] [PATCH 5/6] xen-netback: coalesce slots before copying
Date: Tue, 26 Mar 2013 11:13:38 +0000	[thread overview]
Message-ID: <515182E2.50103@citrix.com> (raw)
In-Reply-To: <20130325190911.GC7004@zion.uk.xensource.com>

On 25/03/13 19:09, Wei Liu wrote:
> On Mon, Mar 25, 2013 at 06:29:29PM +0000, David Vrabel wrote:
>>>>
>>>
>>> Are you suggesting move the default macro value to header file? It is
>>> just an estimation, I have no knowledge of the accurate maximum value,
>>> so I think make it part of the protocol a bad idea.
>>
>> How is the author of a new frontend supposed to know how many slots they
>> can use per packet if it is not precisely defined?
>>
> 
> A new frontend shuold use the scheme you mentioned below to get the
> maximum value. For old frontends that cannot be fixed, administrator can
> configure max_skb_slots to accommodate their need.

I'm happy to the threshold for fatal errors to be configurable via a
module parameter.

>>> Do you have a handle on the maximum value?
>>
>> Backends should provide the value to the frontend via a xenstore key
>> (e.g., max-slots-per-frame).  This value should be at least 18 (the
>> historical value of MAX_SKB_FRAGS).
>>
>> The frontend may use up to this specified value or 17 if the
>> max-slots-per-frame key is missing.
>>
>> Supporting at least 18 in the backend is required for existing
>> frontends.  Limiting frontends to 17 allows them to work with all
>> backends (including recent Linux version that only supported 17).
>>
>> It's not clear why 19 or 20 were suggested as possible values.  I
>> checked back to 2.6.18 and MAX_SKB_FRAGS there is (65536/PAGE_SIZE + 2)
> 
> Because the check is >= MAX_SKB_FRAGS originally and James Harper told
> me that "Windows stops counting on 20".
> 
>> == 18.
>>
>> Separately, it may be sensible for the backend to drop packets with more
>> frags than max-slots-per-frame up to some threshold where anything more
>> is considered malicious (i.e., 1 - 18 slots is a valid packet, 19-20 are
>> dropped and 21 or more is a fatal error).
>>
> 
> Why drop the packet when we are able to process it? Frontend cannot know
> it has crossed the line anyway.

Because it's a change to the protocol and we do not want to do this for
a regression fix.

As a separate fix we can consider increasing the number of slots
per-packet once there is a mechanism to report this to the front end.

David

  parent reply	other threads:[~2013-03-26 11:13 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-25 11:08 [PATCH 0/6 V2] Bundle fixes for Xen netfront / netback Wei Liu
2013-03-25 11:08 ` [PATCH 1/6] xen-netfront: remove unused variable `extra' Wei Liu
2013-03-25 11:08 ` Wei Liu
2013-03-25 14:21   ` [Xen-devel] " David Vrabel
2013-03-25 14:21   ` David Vrabel
2013-03-25 16:20   ` David Miller
2013-03-25 16:20   ` David Miller
2013-03-25 11:08 ` [PATCH 2/6] xen-netfront: reduce gso_max_size to account for ethernet header Wei Liu
2013-03-25 11:08 ` Wei Liu
2013-03-25 13:54   ` Malcolm Crossley
2013-03-25 14:23   ` [Xen-devel] " David Vrabel
2013-03-25 14:39     ` Jan Beulich
2013-03-25 14:39     ` Jan Beulich
2013-03-25 14:23   ` David Vrabel
2013-03-25 15:50   ` Sergei Shtylyov
2013-03-25 15:50   ` Sergei Shtylyov
2013-03-25 16:18   ` David Miller
2013-03-25 16:54     ` Eric Dumazet
2013-03-25 16:54     ` Eric Dumazet
2013-03-25 16:59       ` David Miller
2013-03-25 17:24         ` Eric Dumazet
2013-03-25 17:24         ` Eric Dumazet
2013-03-25 20:49         ` Ben Hutchings
2013-03-25 20:49         ` Ben Hutchings
2013-03-25 16:59       ` David Miller
2013-03-25 18:32     ` Wei Liu
2013-03-25 18:32     ` Wei Liu
2013-03-25 18:39       ` David Miller
2013-03-25 18:39       ` David Miller
2013-03-25 19:09         ` Malcolm Crossley
2013-03-25 16:18   ` David Miller
2013-03-25 16:56   ` Konrad Rzeszutek Wilk
2013-03-25 16:56   ` Konrad Rzeszutek Wilk
2013-03-25 11:08 ` [PATCH 3/6] xen-netfront: frags -> slots in xennet_get_responses Wei Liu
2013-03-25 11:08 ` Wei Liu
2013-03-25 14:25   ` [Xen-devel] " David Vrabel
2013-03-25 14:25   ` David Vrabel
2013-03-25 16:20   ` David Miller
2013-03-25 16:20   ` David Miller
2013-03-25 11:08 ` [PATCH 4/6] xen-netback: remove skb in xen_netbk_alloc_page Wei Liu
2013-03-25 16:20   ` David Miller
2013-03-25 16:20   ` David Miller
2013-03-25 11:08 ` Wei Liu
2013-03-25 11:08 ` [PATCH 5/6] xen-netback: coalesce slots before copying Wei Liu
2013-03-25 11:08 ` Wei Liu
2013-03-25 15:13   ` David Vrabel
2013-03-25 15:47     ` [Xen-devel] " Wei Liu
2013-03-25 16:34       ` David Vrabel
2013-03-25 16:58         ` Wei Liu
2013-03-25 17:06           ` [Xen-devel] " Wei Liu
2013-03-25 17:06           ` Wei Liu
2013-03-25 18:29           ` [Xen-devel] " David Vrabel
2013-03-25 19:09             ` Wei Liu
2013-03-26  9:16               ` Paul Durrant
2013-03-26  9:16               ` [Xen-devel] " Paul Durrant
2013-03-26  9:51                 ` Wei Liu
2013-03-26  9:51                 ` [Xen-devel] " Wei Liu
2013-03-26 11:00                 ` James Harper
2013-03-26 11:24                   ` Paul Durrant
2013-03-26 11:29                     ` James Harper
2013-03-26 11:38                       ` Paul Durrant
2013-03-26 11:38                       ` [Xen-devel] " Paul Durrant
2013-03-26 11:29                     ` James Harper
2013-03-26 11:24                   ` Paul Durrant
2013-03-26 11:27                   ` David Laight
2013-03-26 11:27                   ` [Xen-devel] " David Laight
2013-03-26 11:00                 ` James Harper
2013-03-26 10:52               ` James Harper
2013-03-26 10:52               ` [Xen-devel] " James Harper
2013-03-26 11:06                 ` David Vrabel
2013-03-26 11:15                   ` James Harper
2013-03-26 11:15                   ` [Xen-devel] " James Harper
2013-03-26 11:06                 ` David Vrabel
2013-03-26 11:13               ` David Vrabel
2013-03-26 11:13               ` David Vrabel [this message]
2013-03-26 11:29                 ` Wei Liu
2013-03-26 11:29                 ` [Xen-devel] " Wei Liu
2013-03-25 19:09             ` Wei Liu
2013-03-25 18:29           ` David Vrabel
2013-03-25 16:34       ` David Vrabel
2013-03-25 15:47     ` Wei Liu
2013-03-25 15:13   ` David Vrabel
2013-03-25 16:20   ` David Miller
2013-03-25 16:20   ` David Miller
2013-03-25 16:57   ` [Xen-devel] " Konrad Rzeszutek Wilk
2013-04-09 15:10     ` Ian Campbell
2013-04-09 15:10     ` Ian Campbell
2013-03-25 16:57   ` Konrad Rzeszutek Wilk
2013-03-26 18:02   ` David Vrabel
2013-03-26 18:02   ` David Vrabel
2013-03-25 11:08 ` [PATCH 6/6] xen-netback: don't disconnect frontend when seeing oversize frame Wei Liu
2013-03-25 11:08 ` Wei Liu
2013-03-25 11:47   ` David Vrabel
2013-03-25 12:00     ` Wei Liu
2013-03-25 12:00     ` Wei Liu
2013-03-25 11:47   ` David Vrabel
2013-03-25 12:53   ` Jan Beulich
2013-03-25 12:53   ` [Xen-devel] " Jan Beulich
2013-03-25 13:52     ` Wei Liu
2013-03-25 13:52     ` [Xen-devel] " Wei Liu
2013-03-25 16:21   ` David Miller
2013-03-25 16:21   ` David Miller
2013-03-25 16:58   ` [Xen-devel] " Konrad Rzeszutek Wilk
2013-03-27 10:03     ` William Dauchy
2013-03-27 10:03     ` William Dauchy
2013-03-25 16:58   ` Konrad Rzeszutek Wilk

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=515182E2.50103@citrix.com \
    --to=david.vrabel@citrix.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=annie.li@oracle.com \
    --cc=konrad.wilk@oracle.com \
    --cc=liuw@liuw.name \
    --cc=netdev@vger.kernel.org \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xen.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.