From: David Miller <davem@davemloft.net>
To: kaber@trash.net
Cc: viro@ZenIV.linux.org.uk, Brian_Oostenbrink@pmc-sierra.com,
linux-net@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: Re-queueing of skb in vlan_skb_recv
Date: Fri, 11 Apr 2008 10:54:13 -0700 (PDT) [thread overview]
Message-ID: <20080411.105413.34923074.davem@davemloft.net> (raw)
In-Reply-To: <47FF614E.7040500@trash.net>
From: Patrick McHardy <kaber@trash.net>
Date: Fri, 11 Apr 2008 15:02:06 +0200
> Al Viro wrote:
> > On Fri, Apr 11, 2008 at 02:46:35PM +0200, Patrick McHardy wrote:
> >> Brian Oostenbrink wrote:
> >>> In vlan_skb_recv, packets are generally stripped of their vlan header,
> >>> and then re-queued via netif_rx(). Is there a reason for re-queuing
> >>> these instead of calling netif_receive_skb() directly? On our system
> >>> (an embedded linux router), this re-queuing has a significant
> >>> performance penalty.
> >> Its done to save stack space. There's currently a discussion
> >> about making loopback use netif_receive_skb in case enough
> >> stack is still available. Once that patch gets merged I'll
> >> change VLAN in a similar way.
> >
> > Another possibility would be to allow ->func() of packet_type to return an
> > skb for reprocessing...
>
> That should work fine for VLAN, but not for loopback since its
> called on the TX path. I think I prefer Eric's suggested way
> because it doesn't require to change all the other existing
> packet_type users.
I think Al's idea is the most elegant proposed so far and we could do
something similar on the TX side as well.
Yes, it means diddling with a lot of call sites, but we do that all
the time and it's heaps better then these "check the stack space
remaining" hacks being proposed.
next prev parent reply other threads:[~2008-04-11 17:54 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <8A9D56C5E50F774BABE033F1710B357601084C42@BBY1EXM11.pmc_nt.nt.pmc-sierra.bc.ca>
2008-04-11 12:46 ` Re-queueing of skb in vlan_skb_recv Patrick McHardy
2008-04-11 12:53 ` Al Viro
2008-04-11 13:02 ` Patrick McHardy
2008-04-11 17:54 ` David Miller [this message]
2008-04-13 4:47 ` Patrick McHardy
2008-04-11 12:53 ` Jeremy Jackson
2008-04-11 13:02 ` Patrick McHardy
2008-04-11 15:44 ` Stephen Hemminger
2008-04-11 16:16 ` Patrick McHardy
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=20080411.105413.34923074.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=Brian_Oostenbrink@pmc-sierra.com \
--cc=kaber@trash.net \
--cc=linux-net@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=viro@ZenIV.linux.org.uk \
/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).