* [PATCH] net: make CONFIG_BQL actually end user configurable
@ 2012-03-06 3:38 Paul Gortmaker
[not found] ` <CAA93jw5HadpvBvtZvf6ArK3tdm=7Cs9sLYeHO9WN6rJOfPLPbA@mail.gmail.com>
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Paul Gortmaker @ 2012-03-06 3:38 UTC (permalink / raw)
To: therbert; +Cc: davem, eric.dumazet, netdev, Paul Gortmaker
Without the defining string or help text, LKC won't ever bother
to ask the end user for a setting for CONFIG_BQL -- you could
delete it from your .config and run make oldconfig and not a
thing would change -- it would still be silently re-enabled.
While most people will have no reason to turn this off, the
ability to do so can be useful for testing BQL support additions
on previously BQL-unaware drivers and similar.
The kconfig help text is largely taken from the original RFC
patchset 0/N header sent to netdev@vger.kernel.org in fall 2011.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
[Apologies if this was explicitly blocked for a reason; I couldn't
find a reason after searching netdev or threads at bufferbloat.net ]
diff --git a/net/Kconfig b/net/Kconfig
index e07272d..fd1d815 100644
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -241,10 +241,15 @@ config NETPRIO_CGROUP
a per-interface basis
config BQL
- boolean
+ boolean "Byte Queue Limits"
depends on SYSFS
select DQL
default y
+ ---help---
+ Byte queue limits are a mechanism to limit the size of the transmit
+ hardware queue on a NIC by a number of bytes. The goal of these byte
+ queue limits is to reduce latency caused by excessive queuing in
+ hardware without sacrificing throughput.
config HAVE_BPF_JIT
bool
--
1.7.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread[parent not found: <CAA93jw5HadpvBvtZvf6ArK3tdm=7Cs9sLYeHO9WN6rJOfPLPbA@mail.gmail.com>]
* Re: [PATCH] net: make CONFIG_BQL actually end user configurable
[not found] ` <CAA93jw5HadpvBvtZvf6ArK3tdm=7Cs9sLYeHO9WN6rJOfPLPbA@mail.gmail.com>
@ 2012-03-06 4:09 ` Paul Gortmaker
2012-03-06 5:57 ` Tom Herbert
0 siblings, 1 reply; 6+ messages in thread
From: Paul Gortmaker @ 2012-03-06 4:09 UTC (permalink / raw)
To: Dave Taht; +Cc: therbert, davem, eric.dumazet, netdev
[Re: [PATCH] net: make CONFIG_BQL actually end user configurable] On 05/03/2012 (Mon 19:45) Dave Taht wrote:
>
>
> On Mon, Mar 5, 2012 at 7:38 PM, Paul Gortmaker <paul.gortmaker@windriver.com>
> wrote:
>
> Without the defining string or help text, LKC won't ever bother
> to ask the end user for a setting for CONFIG_BQL -- you could
> delete it from your .config and run make oldconfig and not a
> thing would change -- it would still be silently re-enabled.
>
>
>
> My specific problems with BQL as currently implemented are:
>
> 1) There is no way to tell if a driver has it actually enabled or not
> at run time.
In a similar vein, I was interested in a (quick) way to tell if a
driver has it actually enabled *correctly*. I'd coded up the basic
changes for a common PPC NIC, but I was then left wondering what I
could use as a quick high-water-mark to see if I'd really managed
to implement it correctly via some level of real run-time testing.
If we want to get driver authors involved in adding support to their
favourite hardware, some description of a basic sanity test would
probably be a worthwhile description to have.
Paul.
--
>
> 2) Down below 100Mbit (the range that I care about) the controller
> can automatically allocate more ram than I would like for the outstanding
> data. I can (and do) easily control this by overriding the BQL default
> to something that makes things behave closer to what a ns2 model
> would predict (about 3k seems optimal) without affecting throughput.
>
> whether or not this is a problem in the real world is yet to be seen.
>
>
> While most people will have no reason to turn this off, the
> ability to do so can be useful for testing BQL support additions
> on previously BQL-unaware drivers and similar.
>
> The kconfig help text is largely taken from the original RFC
> patchset 0/N header sent to netdev@vger.kernel.org in fall 2011.
>
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> ---
>
> [Apologies if this was explicitly blocked for a reason; I couldn't
> find a reason after searching netdev or threads at bufferbloat.net ]
>
> diff --git a/net/Kconfig b/net/Kconfig
> index e07272d..fd1d815 100644
> --- a/net/Kconfig
> +++ b/net/Kconfig
> @@ -241,10 +241,15 @@ config NETPRIO_CGROUP
> a per-interface basis
>
> config BQL
> - boolean
> + boolean "Byte Queue Limits"
> depends on SYSFS
> select DQL
> default y
> + ---help---
> + Byte queue limits are a mechanism to limit the size of the
> transmit
> + hardware queue on a NIC by a number of bytes. The goal of these
> byte
> + queue limits is to reduce latency caused by excessive queuing in
> + hardware without sacrificing throughput.
>
> config HAVE_BPF_JIT
> bool
> --
> 1.7.9.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
>
>
> --
> Dave Täht
> SKYPE: davetaht
> US Tel: 1-239-829-5608
> http://www.bufferbloat.net
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH] net: make CONFIG_BQL actually end user configurable
2012-03-06 4:09 ` Paul Gortmaker
@ 2012-03-06 5:57 ` Tom Herbert
0 siblings, 0 replies; 6+ messages in thread
From: Tom Herbert @ 2012-03-06 5:57 UTC (permalink / raw)
To: Paul Gortmaker; +Cc: Dave Taht, davem, eric.dumazet, netdev
>> 1) There is no way to tell if a driver has it actually enabled or not
>> at run time.
>
> In a similar vein, I was interested in a (quick) way to tell if a
> driver has it actually enabled *correctly*. I'd coded up the basic
> changes for a common PPC NIC, but I was then left wondering what I
> could use as a quick high-water-mark to see if I'd really managed
> to implement it correctly via some level of real run-time testing.
>
The sysfs variables should be good to view the operation and effects
of BQL. To disable BQL (at least limit checking) "echo max >
limit_min" should be sufficient.
It is true there is no way to determine that BQL is implement for a
device, the sysfs variables are always created. If it is
unimplemented then inflight and limit variables are always zero.
> If we want to get driver authors involved in adding support to their
> favourite hardware, some description of a basic sanity test would
> probably be a worthwhile description to have.
That would be good. The best window into BQL is the sysfs variables
(inflight and limit). Setting zero or max to limit_min should impact
the number of queued bytes being reported. ("watch cat *" in tx-0I'm
still intending to get the document on BQL out, the sanity check would
be good to describe there I think.
Thanks,
Tom
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] net: make CONFIG_BQL actually end user configurable
2012-03-06 3:38 [PATCH] net: make CONFIG_BQL actually end user configurable Paul Gortmaker
[not found] ` <CAA93jw5HadpvBvtZvf6ArK3tdm=7Cs9sLYeHO9WN6rJOfPLPbA@mail.gmail.com>
@ 2012-03-06 4:11 ` David Miller
2012-03-06 4:11 ` John Fastabend
2 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2012-03-06 4:11 UTC (permalink / raw)
To: paul.gortmaker; +Cc: therbert, eric.dumazet, netdev
From: Paul Gortmaker <paul.gortmaker@windriver.com>
Date: Mon, 5 Mar 2012 22:38:16 -0500
> While most people will have no reason to turn this off, the
> ability to do so can be useful for testing BQL support additions
> on previously BQL-unaware drivers and similar.
It's intentionally like this.
> The kconfig help text is largely taken from the original RFC
> patchset 0/N header sent to netdev@vger.kernel.org in fall 2011.
And this it why the final version that got checked in didn't
have the help text nor the user configurability. I asked for
it to be this way.
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH] net: make CONFIG_BQL actually end user configurable
2012-03-06 3:38 [PATCH] net: make CONFIG_BQL actually end user configurable Paul Gortmaker
[not found] ` <CAA93jw5HadpvBvtZvf6ArK3tdm=7Cs9sLYeHO9WN6rJOfPLPbA@mail.gmail.com>
2012-03-06 4:11 ` David Miller
@ 2012-03-06 4:11 ` John Fastabend
2012-03-06 4:17 ` Paul Gortmaker
2 siblings, 1 reply; 6+ messages in thread
From: John Fastabend @ 2012-03-06 4:11 UTC (permalink / raw)
To: Paul Gortmaker; +Cc: therbert, davem, eric.dumazet, netdev
On 3/5/2012 7:38 PM, Paul Gortmaker wrote:
> Without the defining string or help text, LKC won't ever bother
> to ask the end user for a setting for CONFIG_BQL -- you could
> delete it from your .config and run make oldconfig and not a
> thing would change -- it would still be silently re-enabled.
>
> While most people will have no reason to turn this off, the
> ability to do so can be useful for testing BQL support additions
> on previously BQL-unaware drivers and similar.
>
> The kconfig help text is largely taken from the original RFC
> patchset 0/N header sent to netdev@vger.kernel.org in fall 2011.
>
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> ---
>
> [Apologies if this was explicitly blocked for a reason; I couldn't
> find a reason after searching netdev or threads at bufferbloat.net ]
>
It was intentional "The Kconfig entry and option is merely for
expressing internal dependencies,". See the comments in the patch
http://patchwork.ozlabs.org/patch/128727/
And corresponding mail,
http://lists.openwall.net/netdev/2011/12/01/130
.John
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH] net: make CONFIG_BQL actually end user configurable
2012-03-06 4:11 ` John Fastabend
@ 2012-03-06 4:17 ` Paul Gortmaker
0 siblings, 0 replies; 6+ messages in thread
From: Paul Gortmaker @ 2012-03-06 4:17 UTC (permalink / raw)
To: John Fastabend; +Cc: therbert, davem, eric.dumazet, netdev
On Mon, Mar 5, 2012 at 11:11 PM, John Fastabend
<john.r.fastabend@intel.com> wrote:
> On 3/5/2012 7:38 PM, Paul Gortmaker wrote:
[...]
>>
>> [Apologies if this was explicitly blocked for a reason; I couldn't
>> find a reason after searching netdev or threads at bufferbloat.net ]
>>
>
> It was intentional "The Kconfig entry and option is merely for
> expressing internal dependencies,". See the comments in the patch
Thanks Dave and John. Something told me this wasn't by accident, but
somehow I still managed to overlook this in my search. :(
Paul.
--
>
> http://patchwork.ozlabs.org/patch/128727/
>
> And corresponding mail,
>
> http://lists.openwall.net/netdev/2011/12/01/130
>
> .John
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2012-03-06 5:57 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-06 3:38 [PATCH] net: make CONFIG_BQL actually end user configurable Paul Gortmaker
[not found] ` <CAA93jw5HadpvBvtZvf6ArK3tdm=7Cs9sLYeHO9WN6rJOfPLPbA@mail.gmail.com>
2012-03-06 4:09 ` Paul Gortmaker
2012-03-06 5:57 ` Tom Herbert
2012-03-06 4:11 ` David Miller
2012-03-06 4:11 ` John Fastabend
2012-03-06 4:17 ` Paul Gortmaker
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).