From: David Miller <davem@davemloft.net>
To: ron.mercer@qlogic.com
Cc: netdev@vger.kernel.org
Subject: Re: [RFC net-next PATCH 0/4] qlge: Performance changes for qlge.
Date: Mon, 17 Aug 2009 17:57:00 -0700 (PDT) [thread overview]
Message-ID: <20090817.175700.207432952.davem@davemloft.net> (raw)
In-Reply-To: <1250543329-15123-1-git-send-email-ron.mercer@qlogic.com>
From: Ron Mercer <ron.mercer@qlogic.com>
Date: Mon, 17 Aug 2009 14:08:45 -0700
> 1) Do TX completions in send path (with cleaner timer).
You should really do them in NAPI context.
When you do them from hardware interrupt context, they all
get rescheduled into a softirq for the real SKB freeing
work anyways.
So by doing it in NAPI poll, you're avoiding some needless
overhead.
BTW, it's insanely confusing that there is a function called
qlge_msix_tx_isr() that of all things does RX work :-/
> 2) Change RSS queue count to match MSIx vector count instead
> of CPU count. Some platforms didn't offer enough vectors
> for our previous approach.
Ideally you want "max(num_msix_vectors, num_cpus)" because
if you hook up more MSIX vectors than you have cpus it's just
extra overhead and depending upon the descrepency between the
two counts it might unevenly distribute traffic work amongst
the cpus.
> 3) Change large RX buffer logic to use either multiple pages
> or chunks of pages based on MTU and system page size.
>
> Examples:
>
> 64k Pages with 1500 MTU. The RX buffers size would be
> 2048 bytes and there would be 32 per page.
>
> 4k pages with 9000 MTU. The RX buffer size would be 16k,
> or 4 pages per buffer.
This is wasteful, does the card have a mechnism by which it
can dynamically carve up pages depending upon the actual
frame size?
If anything, make sure that skb->truesize gets set to something
reasonable, or else TCP is going to reallocate SKBs when the
receive queue limits are hit.
next prev parent reply other threads:[~2009-08-18 0:56 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-17 21:08 [RFC net-next PATCH 0/4] qlge: Performance changes for qlge Ron Mercer
2009-08-17 21:08 ` [RFC net-next PATCH 1/4] qlge: Remove workqueue usage from data path Ron Mercer
2009-08-17 21:08 ` [RFC net-next PATCH 2/4] qlge: Move TX completion processing to send path Ron Mercer
2009-08-17 21:08 ` [RFC net-next PATCH 3/4] qlge: Change rx_ring to MSIX vector mapping Ron Mercer
2009-08-17 21:08 ` [RFC net-next PATCH 4/4] qlge: Change large rx buffer logic Ron Mercer
2009-08-18 0:57 ` David Miller [this message]
2009-08-18 21:26 ` [RFC net-next PATCH 0/4] qlge: Performance changes for qlge Ron Mercer
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=20090817.175700.207432952.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
--cc=ron.mercer@qlogic.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