From: John Lumby <johnlumby@hotmail.com>
To: Francois Romieu <romieu@fr.zoreil.com>
Cc: netdev@vger.kernel.org, Ben Hutchings <bhutchings@solarflare.com>,
nic_swsd@realtek.com
Subject: Re: r8169 : always copying the rx buffer to new skb
Date: Tue, 26 Apr 2011 22:18:43 -0400 [thread overview]
Message-ID: <4DB77D03.9070507@hotmail.com> (raw)
In-Reply-To: <4DAFA9F9.5080909@hotmail.com>
Anyone have any further thoughts on the proposal to avoid memcpy'ing?
(see earlier post)
I also have a question concerning NAPI. I've found that much of the
CPU saved from not memcpy'ing is burned in extra rx_interrupt'ing, and
much of that seems to be wasted (no new packets). So the actual
benefit is rather less than I think should be possible.
I've tried some tinkering with the napi weight but can't find any
setting which really improves the ratio of rx packets to hard interrupts
significantly. The problem seems to be that each successive
rtl8169_poll() is driven too soon after the last one (in this
particular workload). The napi weight doesn't directly influence that.
So - question :
is there any way, when returning from rtl8169_poll, to tell napi
something like :
" finish this interrupt context and let something else run on this
CPU (always CPU0 on my machine) BUT reschedule another napi poll on
this same device at some time after that "
the point being that rtl8169_poll will, for this case, NOT re-enable
the NIC's napi interrupts, in the hope that maybe some user work can be
dispatched, so something else will have to schedule the next napi
poll for it. Conceptually, if rtl8169_poll finds no rx work done
on this call, it wants to cause a yield() and then try again.
Except it can't from within the interrupt.
I appreciate this could lead to delays in handling new work so might be
dangerous, but it seems to me to be in line with NAPI objectives so I
wanted to try it . But don't know how. Any hints or thoughts
appreciated.
John
next prev parent reply other threads:[~2011-04-27 2:18 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-18 17:08 r8169 : always copying the rx buffer to new skb John Lumby
2011-04-18 17:27 ` Ben Hutchings
2011-04-18 21:26 ` John Lumby
2011-04-20 19:13 ` Francois Romieu
2011-04-21 3:41 ` John Lumby
2011-04-21 3:52 ` John Lumby
2011-04-27 2:18 ` John Lumby [this message]
2011-04-27 3:57 ` Eric Dumazet
2011-04-27 20:35 ` Francois Romieu
2011-04-29 1:55 ` John Lumby
2011-04-29 4:54 ` Eric Dumazet
2011-05-02 19:04 ` Chris Friesen
2011-05-03 11:59 ` hayeswang
2011-04-18 18:21 ` Francois Romieu
-- strict thread matches above, loose matches on Subject: below --
2011-06-27 22:54 John Lumby
2011-06-28 7:55 ` Francois Romieu
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=4DB77D03.9070507@hotmail.com \
--to=johnlumby@hotmail.com \
--cc=bhutchings@solarflare.com \
--cc=netdev@vger.kernel.org \
--cc=nic_swsd@realtek.com \
--cc=romieu@fr.zoreil.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 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.