From: Jarek Poplawski <jarkao2@gmail.com>
To: Stephen Hemminger <shemminger@vyatta.com>
Cc: David Miller <davem@davemloft.net>,
eric.dumazet@gmail.com, herbert@gondor.apana.org.au,
netdev@vger.kernel.org
Subject: Re: [PATCH] sky2: don't do GRO on second port
Date: Mon, 30 Aug 2010 21:09:00 +0200 [thread overview]
Message-ID: <20100830190900.GA3141@del.dom.local> (raw)
In-Reply-To: <20100830105117.0f0cf140@nehalam>
On Mon, Aug 30, 2010 at 10:51:17AM -0700, Stephen Hemminger wrote:
>
> There's something very important I forgot to tell you.
> What?
>
> Don't cross the GRO streams.
> Why?
>
> It would be bad.
> I'm fuzzy on the whole good/bad thing. What do you mean, "bad"?
>
> Try to imagine all the Internet as you know it stopping instantaneously
> and every bit in every packet swapping at the speed of light.
> Total packet reordering.
> Right. That's bad. Okay. All right. Important safety tip. Thanks, Hubert
Looks really bad to me, so... let's forget it! ;-) (At least until
next next.)
Jarek P.
>
> The simplest way to stop this is just avoid doing GRO on the second port.
> Very few Marvell boards support two ports per ring, and GRO is just
> an optimization.
>
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
>
>
> --- a/drivers/net/sky2.c 2010-08-30 10:13:28.211536096 -0700
> +++ b/drivers/net/sky2.c 2010-08-30 10:22:01.347183151 -0700
> @@ -2520,24 +2520,27 @@ static inline void sky2_tx_done(struct n
> }
> }
>
> -static inline void sky2_skb_rx(const struct sky2_port *sky2,
> +static inline void sky2_skb_rx(struct napi_struct *napi,
> + const struct sky2_port *sky2,
> u32 status, struct sk_buff *skb)
> {
> #ifdef SKY2_VLAN_TAG_USED
> - u16 vlan_tag = be16_to_cpu(sky2->rx_tag);
> if (sky2->vlgrp && (status & GMR_FS_VLAN)) {
> - if (skb->ip_summed == CHECKSUM_NONE)
> + u16 vlan_tag = be16_to_cpu(sky2->rx_tag);
> +
> + if (skb->ip_summed == CHECKSUM_NONE ||
> + sky2->netdev != napi->dev)
> vlan_hwaccel_receive_skb(skb, sky2->vlgrp, vlan_tag);
> else
> - vlan_gro_receive(&sky2->hw->napi, sky2->vlgrp,
> - vlan_tag, skb);
> + vlan_gro_receive(napi, sky2->vlgrp, vlan_tag, skb);
> return;
> }
> #endif
> - if (skb->ip_summed == CHECKSUM_NONE)
> + if (skb->ip_summed == CHECKSUM_NONE ||
> + sky2->netdev != napi->dev)
> netif_receive_skb(skb);
> else
> - napi_gro_receive(&sky2->hw->napi, skb);
> + napi_gro_receive(napi, skb);
> }
>
> static inline void sky2_rx_done(struct sky2_hw *hw, unsigned port,
> @@ -2638,7 +2641,7 @@ static int sky2_status_intr(struct sky2_
>
> skb->protocol = eth_type_trans(skb, dev);
>
> - sky2_skb_rx(sky2, status, skb);
> + sky2_skb_rx(&hw->napi, sky2, status, skb);
>
> /* Stop after net poll weight */
> if (++work_done >= to_do)
next prev parent reply other threads:[~2010-08-30 19:09 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-27 20:50 [PATCH] net: Fix vlan_gro_frags vs netpoll and bonding paths Jarek Poplawski
2010-08-28 0:13 ` Herbert Xu
2010-08-28 9:44 ` Jarek Poplawski
2010-08-28 10:54 ` [RFC] gro: Is it ok to share a single napi from several devs ? Eric Dumazet
2010-08-28 14:31 ` Jarek Poplawski
2010-08-28 14:48 ` Eric Dumazet
2010-08-28 15:16 ` Jarek Poplawski
2010-08-28 17:14 ` Stephen Hemminger
2010-08-28 21:41 ` David Miller
2010-08-28 22:31 ` Stephen Hemminger
2010-08-28 22:33 ` David Miller
2010-08-29 9:59 ` Jarek Poplawski
2010-08-29 17:06 ` David Miller
2010-08-29 18:39 ` Eric Dumazet
2010-08-30 6:42 ` Jarek Poplawski
2010-08-30 15:57 ` Stephen Hemminger
2010-08-30 16:50 ` David Miller
2010-08-30 17:51 ` [PATCH] sky2: don't do GRO on second port Stephen Hemminger
2010-08-30 19:09 ` Jarek Poplawski [this message]
2010-09-01 21:51 ` David Miller
2010-09-01 21:55 ` Stephen Hemminger
2010-09-02 9:18 ` Jarek Poplawski
2010-09-02 12:53 ` Jarek Poplawski
2010-09-02 16:30 ` David Miller
2010-09-02 16:48 ` Jarek Poplawski
2010-09-02 8:33 ` Jarek Poplawski
2010-09-02 9:31 ` Eric Dumazet
2010-09-02 9:55 ` Jarek Poplawski
2010-09-02 10:41 ` Eric Dumazet
2010-09-02 11:02 ` Jarek Poplawski
2010-09-02 12:09 ` Eric Dumazet
2010-09-02 12:28 ` Jarek Poplawski
2010-09-02 17:08 ` David Miller
2010-09-02 21:26 ` Herbert Xu
2010-09-03 5:23 ` Eric Dumazet
2010-09-02 9:32 ` Jarek Poplawski
2010-08-30 18:36 ` [RFC] gro: Is it ok to share a single napi from several devs ? Jarek Poplawski
2010-08-30 19:59 ` [RFC] netpoll: " Eric Dumazet
2010-08-30 20:12 ` Stephen Hemminger
2010-08-30 20:19 ` Eric Dumazet
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=20100830190900.GA3141@del.dom.local \
--to=jarkao2@gmail.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=herbert@gondor.apana.org.au \
--cc=netdev@vger.kernel.org \
--cc=shemminger@vyatta.com \
/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).