From: Jakub Kicinski <jakub.kicinski@netronome.com>
To: "netdev@vger.kernel.org" <netdev@vger.kernel.org>
Cc: David Miller <davem@davemloft.net>,
Michael Chan <mchan@broadcom.com>,
Prashant Sreedharan <prashant@broadcom.com>,
Amit Kumar Salecha <amit.salecha@qlogic.com>,
Ben Hutchings <ben@decadent.org.uk>
Subject: Question regarding {G,S}CHANNELS API
Date: Thu, 7 Jan 2016 15:43:24 +0000 [thread overview]
Message-ID: <20160107154324.4081743c@jkicinski-Precision-T1700> (raw)
Hi!
I'm trying to understand how number of "separate" rx/tx vs combined
channels should be configured. I'd like to express asymmetric but
mostly combined queue configuration (i.e. min(rx, tx) is combined the
rest is separate). Since default number of RX queues is just 8 it is
tempting to allocate 8 RX queues but num_online_cpus() TX queues. Does
this configuration make sense? What should ethtool -l report?
I had a look through the drivers and it seems that most of them fall
nicely into the all combined and all separate categories. Two
exceptions I found are bnxt_en (recent Michael's changes) and tg3.
bnxt_en can switch between combined and separate mode. tg3 is more
interesting, it uses separate rx/tx parameters but combines first
min(rx, tx) of the queues as I would like to.
The problem is if I hijack the "separate" rx/tx queues parameters like
tg3 does there is no way for the user to express that (s)he truly wants
them separate. Also it seems that tg3 goes against the ethtool manual
which states:
> rx N Changes the number of channels with only receive queues.
> tx N Changes the number of channels with only transmit queues.
Which indicates that if user wants 8 rx, 12 tx and combining (s)he
should do:
ethtool -L ethX combined 8 tx 4
This, however, makes the max_* info from SCHANNLES quite imprecise
since device which has 16 IRQs and 16 queues in each directions would
probably report:
max_rx: 16
max_tx: 16
max_combined: 16
But setting 'ethtool -L ethX combined 16 tx 8' would obviously
fail even though parameters are within 1..max limits.
Any comments/advice would be much appreciated.
next reply other threads:[~2016-01-07 15:43 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-07 15:43 Jakub Kicinski [this message]
2016-01-07 21:24 ` Question regarding {G,S}CHANNELS API Prashant Sreedharan
2016-01-08 11:41 ` Jakub Kicinski
2016-01-08 18:17 ` Prashant Sreedharan
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=20160107154324.4081743c@jkicinski-Precision-T1700 \
--to=jakub.kicinski@netronome.com \
--cc=amit.salecha@qlogic.com \
--cc=ben@decadent.org.uk \
--cc=davem@davemloft.net \
--cc=mchan@broadcom.com \
--cc=netdev@vger.kernel.org \
--cc=prashant@broadcom.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