From: Jakub Kicinski <kuba@kernel.org>
To: "Zulkifli, Muhammad Husaini" <muhammad.husaini.zulkifli@intel.com>
Cc: "Nguyen, Anthony L" <anthony.l.nguyen@intel.com>,
"davem@davemloft.net" <davem@davemloft.net>,
"pabeni@redhat.com" <pabeni@redhat.com>,
"edumazet@google.com" <edumazet@google.com>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"Neftin, Sasha" <sasha.neftin@intel.com>,
"horms@kernel.org" <horms@kernel.org>,
"bcreeley@amd.com" <bcreeley@amd.com>,
Naama Meir <naamax.meir@linux.intel.com>
Subject: Re: [PATCH net v3 2/2] igc: Modify the tx-usecs coalesce setting
Date: Fri, 25 Aug 2023 17:34:29 -0700 [thread overview]
Message-ID: <20230825173429.2a2d0d9f@kernel.org> (raw)
In-Reply-To: <SJ1PR11MB6180835AA3B1C2CC9611B44AB8E3A@SJ1PR11MB6180.namprd11.prod.outlook.com>
On Fri, 25 Aug 2023 03:44:35 +0000 Zulkifli, Muhammad Husaini wrote:
> > I see. Maybe it's better to combine the patches, they are a bit hard to review
> > in separation.
>
> IMHO, I would like to separate get and set function in different patch.
> Maybe I can add more details in commit message. Is it okay?
That's exactly what confused me. You made it sound like first patch is
only about GET but it actually also changes SET.
> > I was just thinking of something along the lines of:
> >
> > if (adapter->flags & IGC_FLAG_QUEUE_PAIRS &&
> > adapter->tx_itr_setting != adapter->rx_itr_setting)
> > ... error ...
> >
> > would that work?
>
> Thank you for the suggestion, but it appears that additional checking is required.
> I tested it with the code below, and it appears to work.
>
> /* convert to rate of irq's per second */
> if ((old_tx_itr != ec->tx_coalesce_usecs) && (old_rx_itr == ec->rx_coalesce_usecs)) {
> adapter->tx_itr_setting =
> igc_ethtool_coalesce_to_itr_setting(ec->tx_coalesce_usecs);
> adapter->rx_itr_setting = adapter->tx_itr_setting;
> } else if ((old_rx_itr != ec->rx_coalesce_usecs) && (old_tx_itr == ec->tx_coalesce_usecs)) {
> adapter->rx_itr_setting =
> igc_ethtool_coalesce_to_itr_setting(ec->rx_coalesce_usecs);
> adapter->tx_itr_setting = adapter->rx_itr_setting;
> } else {
> NL_SET_ERR_MSG_MOD(extack, "Unable to set both TX and RX due to Queue Pairs Flag");
> return -EINVAL;
> }
What if user space does:
cmd = "ethtool -C eth0 "
if rx_mismatch:
cmd += "rx-usecs " + rxu + " "
if tx_mismatch:
cmd += "tx-usecs " + txu + " "
system(cmd)
Why do you think that the auto-update of the other value matters
so much? With a clear warning user should be able to figure
out that they need to set the values identically.
If you want to auto-update maybe only allow rx-usecs changes?
Basically:
if (old_tx != ec->tx_coalesce_usecs) {
NL_SET_ERR_MSG_MOD(extack, "Queue Pair mode enabled, both Rx and Tx coalescing controlled by rx-usecs");
return -EINVAL;
}
rx_itr = tx_itr = logic(ec->tx_coalesce_usecs);
I hate these auto-magic changes, because I had to email support /
vendors in the past asking them "what does the device _actually_
do" / "what is the device capable of" due to the driver doing magic.
The API is fairly clear. If user wants rx and tx to be different,
and the device does not support that -- error.
next prev parent reply other threads:[~2023-08-26 0:34 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-22 22:16 [PATCH net v3 0/2][pull request] igc: Enhance the tx-usecs coalesce setting implementation Tony Nguyen
2023-08-22 22:16 ` [PATCH net v3 1/2] igc: Expose tx-usecs coalesce setting to user Tony Nguyen
2023-08-22 22:16 ` [PATCH net v3 2/2] igc: Modify the tx-usecs coalesce setting Tony Nguyen
2023-08-24 2:19 ` Jakub Kicinski
2023-08-24 22:50 ` Zulkifli, Muhammad Husaini
2023-08-25 0:00 ` Jakub Kicinski
2023-08-25 3:44 ` Zulkifli, Muhammad Husaini
2023-08-26 0:34 ` Jakub Kicinski [this message]
2023-09-04 0:59 ` Zulkifli, Muhammad Husaini
2023-09-05 17:15 ` Jakub Kicinski
2023-09-06 2:52 ` Zulkifli, Muhammad Husaini
2023-09-06 14:46 ` Jakub Kicinski
2023-09-06 15:02 ` Zulkifli, Muhammad Husaini
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=20230825173429.2a2d0d9f@kernel.org \
--to=kuba@kernel.org \
--cc=anthony.l.nguyen@intel.com \
--cc=bcreeley@amd.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=muhammad.husaini.zulkifli@intel.com \
--cc=naamax.meir@linux.intel.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sasha.neftin@intel.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;
as well as URLs for NNTP newsgroup(s).