From: "Dmitry Kravkov" <dmitry@broadcom.com>
To: davem@davemloft.net, netdev@vger.kernel.org
Cc: "Ariel Elior" <ariele@broadcom.com>,
"Dmitry Kravkov" <dmitry@broadcom.com>,
"Eilon Greenstein" <eilong@broadcom.com>
Subject: [PATCH net-next 09/13] bnx2x: add pri_map module parameter
Date: Thu, 10 Nov 2011 17:14:10 +0200 [thread overview]
Message-ID: <1320938054-31288-10-git-send-email-dmitry@broadcom.com> (raw)
In-Reply-To: <1320938054-31288-1-git-send-email-dmitry@broadcom.com>
From: Ariel Elior <ariele@broadcom.com>
The optional parameter pri_map is used to map the
skb->priority to a Class Of Service (CoS) in the HW.
This 32 bit parameter is evaluated by the driver as 8
values of 4 bits each. Each nibble sets the desired
HW queue number for that priority.
Also:
on the 5771x family this feature is unavailable (a single COS services all).
on the 57712 family two classes of service are available.
on the 578xx family three classes of service are availabe.
configuring priorities to unavailable COSs will log an error and default to
COS 0.
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
---
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 26 ++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
index 967c41b..5b44b85 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -92,6 +92,10 @@ MODULE_FIRMWARE(FW_FILE_NAME_E1);
MODULE_FIRMWARE(FW_FILE_NAME_E1H);
MODULE_FIRMWARE(FW_FILE_NAME_E2);
+static uint pri_map;
+module_param(pri_map, uint, 0);
+MODULE_PARM_DESC(pri_map, " Priority to HW queue mapping");
+
static int multi_mode = 1;
module_param(multi_mode, int, 0);
MODULE_PARM_DESC(multi_mode, " Multi queue mode "
@@ -9682,6 +9686,25 @@ static int __devinit bnx2x_get_hwinfo(struct bnx2x *bp)
return rc;
}
+static void bnx2x_init_multi_cos(struct bnx2x *bp)
+{
+ int pri, cos;
+ for (pri = 0; pri < BNX2X_MAX_PRIORITY; pri++) {
+ cos = ((pri_map & (0xf << pri*4)) >> pri*4);
+ if (cos < bp->max_cos) {
+ bp->prio_to_cos[pri] = cos;
+ DP(BNX2X_MSG_SP, "configuring priority %d to cos %d",
+ pri, cos);
+ } else {
+ netdev_err(bp->dev,
+ "Illegal COS (%d) for priority %d "
+ "Max COS allowed is %d "
+ "defaulting to 0\n", cos, pri, bp->max_cos - 1);
+ bp->prio_to_cos[pri] = 0;
+ }
+ }
+}
+
static void __devinit bnx2x_read_fwinfo(struct bnx2x *bp)
{
int cnt, i, block_end, rodi;
@@ -10832,6 +10855,9 @@ static int __devinit bnx2x_init_one(struct pci_dev *pdev,
*/
bnx2x_set_int_mode(bp);
+ /* configure priority to cos map according to pri_map module param */
+ bnx2x_init_multi_cos(bp);
+
/* Add all NAPI objects */
bnx2x_add_all_napi(bp);
--
1.7.7.2
next prev parent reply other threads:[~2011-11-10 15:14 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-10 15:14 [PATCH net-next 00/13] bnx2x series Dmitry Kravkov
2011-11-10 15:14 ` [PATCH net-next 01/13] bnx2x: allow FCoE and DCB for 578xx Dmitry Kravkov
2011-11-10 15:14 ` [PATCH net-next 02/13] bnx2x: use rx_queue index for skb_record_rx_queue() Dmitry Kravkov
2011-11-10 15:14 ` [PATCH net-next 03/13] bnx2x: remove unused variable Dmitry Kravkov
2011-11-10 15:14 ` [PATCH net-next 04/13] bnx2x: separate FCoE and iSCSI license initialization Dmitry Kravkov
2011-11-10 15:14 ` [PATCH net-next 05/13] bnx2x: propagate DCBX negotiation Dmitry Kravkov
2011-11-10 15:14 ` [PATCH net-next 06/13] bnx2x: DCBX: use #define instead of magic Dmitry Kravkov
2011-11-10 15:14 ` [PATCH net-next 07/13] bnx2x: simplify definition of RX_SGE_MASK_LEN and use it Dmitry Kravkov
2011-11-10 15:14 ` [PATCH net-next 08/13] bnx2x: remove unused #define Dmitry Kravkov
2011-11-10 15:14 ` Dmitry Kravkov [this message]
2011-11-10 17:39 ` [PATCH net-next 09/13] bnx2x: add pri_map module parameter Ben Hutchings
[not found] ` <CAM8tLiMATfsH1mqmgrALX9o+5nWEahntCAc2ewm0RF_kbt=82A@mail.gmail.com>
2011-11-10 20:21 ` Dmitry Kravkov
2011-11-10 20:34 ` John Fastabend
2011-11-13 12:30 ` Dmitry Kravkov
2011-11-12 5:50 ` David Miller
2011-11-10 15:14 ` [PATCH net-next 10/13] bnx2x: add fan failure event handling Dmitry Kravkov
2011-11-10 15:14 ` [PATCH net-next 11/13] bnx2x: prevent race in statistics flow Dmitry Kravkov
2011-11-10 15:14 ` [PATCH net-next 12/13] bnx2x: Remove on-stack napi struct variable Dmitry Kravkov
2011-11-10 15:14 ` [PATCH net-next 13/13] bnx2x: update driver version to 1.70.35-0 Dmitry Kravkov
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=1320938054-31288-10-git-send-email-dmitry@broadcom.com \
--to=dmitry@broadcom.com \
--cc=ariele@broadcom.com \
--cc=davem@davemloft.net \
--cc=eilong@broadcom.com \
--cc=netdev@vger.kernel.org \
/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).