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
next prev parent reply other threads:[~2013-03-26 11:13 UTC|newest]
Thread overview: 53+ 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 14:21 ` [Xen-devel] " David Vrabel
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 14:23 ` [Xen-devel] " David Vrabel
2013-03-25 14:39 ` Jan Beulich
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:59 ` David Miller
2013-03-25 17:24 ` Eric Dumazet
2013-03-25 20:49 ` Ben Hutchings
2013-03-25 18:32 ` Wei Liu
2013-03-25 18:39 ` David Miller
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 14:25 ` [Xen-devel] " David Vrabel
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 11:08 ` [PATCH 5/6] xen-netback: coalesce slots before copying 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 18:29 ` David Vrabel
2013-03-25 19:09 ` Wei Liu
2013-03-26 9:16 ` Paul Durrant
2013-03-26 9:51 ` 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:27 ` David Laight
2013-03-26 10:52 ` James Harper
2013-03-26 11:06 ` David Vrabel
2013-03-26 11:15 ` James Harper
2013-03-26 11:13 ` David Vrabel [this message]
2013-03-26 11:29 ` Wei Liu
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-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:47 ` David Vrabel
2013-03-25 12:00 ` Wei Liu
2013-03-25 12:53 ` [Xen-devel] " Jan Beulich
2013-03-25 13:52 ` Wei Liu
2013-03-25 16:21 ` David Miller
2013-03-25 16:58 ` [Xen-devel] " Konrad Rzeszutek Wilk
2013-03-27 10:03 ` William Dauchy
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 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).