* [PATCH net-next] Documentation: add a description for net.core.high_order_alloc_disable
@ 2022-07-06 8:53 Antoine Tenart
2022-07-06 13:24 ` Eric Dumazet
0 siblings, 1 reply; 4+ messages in thread
From: Antoine Tenart @ 2022-07-06 8:53 UTC (permalink / raw)
To: davem, kuba, pabeni, edumazet; +Cc: Antoine Tenart, netdev
A description is missing for the net.core.high_order_alloc_disable
option in admin-guide/sysctl/net.rst ; add it. The above sysctl option
was introduced by commit ce27ec60648d ("net: add high_order_alloc_disable
sysctl/static key").
Cc: Eric Dumazet <edumazet@google.com>
Signed-off-by: Antoine Tenart <atenart@kernel.org>
---
Documentation/admin-guide/sysctl/net.rst | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/Documentation/admin-guide/sysctl/net.rst b/Documentation/admin-guide/sysctl/net.rst
index fcd650bdbc7e..85ab83411359 100644
--- a/Documentation/admin-guide/sysctl/net.rst
+++ b/Documentation/admin-guide/sysctl/net.rst
@@ -391,6 +391,16 @@ GRO has decided not to coalesce, it is placed on a per-NAPI list. This
list is then passed to the stack when the number of segments reaches the
gro_normal_batch limit.
+high_order_alloc_disable
+------------------------
+
+By default the allocator for page frags tries to use high order pages (order-3
+on x86). While the default behavior gives good results in most cases, some users
+might hit a contention in page allocations/freeing. This allows to opt-in for
+order-0 allocation instead.
+
+Default: 0
+
2. /proc/sys/net/unix - Parameters for Unix domain sockets
----------------------------------------------------------
--
2.36.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH net-next] Documentation: add a description for net.core.high_order_alloc_disable
2022-07-06 8:53 [PATCH net-next] Documentation: add a description for net.core.high_order_alloc_disable Antoine Tenart
@ 2022-07-06 13:24 ` Eric Dumazet
2022-07-06 21:18 ` Jakub Kicinski
0 siblings, 1 reply; 4+ messages in thread
From: Eric Dumazet @ 2022-07-06 13:24 UTC (permalink / raw)
To: Antoine Tenart; +Cc: David Miller, Jakub Kicinski, Paolo Abeni, netdev
On Wed, Jul 6, 2022 at 10:53 AM Antoine Tenart <atenart@kernel.org> wrote:
>
> A description is missing for the net.core.high_order_alloc_disable
> option in admin-guide/sysctl/net.rst ; add it. The above sysctl option
> was introduced by commit ce27ec60648d ("net: add high_order_alloc_disable
> sysctl/static key").
>
> Cc: Eric Dumazet <edumazet@google.com>
> Signed-off-by: Antoine Tenart <atenart@kernel.org>
> ---
> Documentation/admin-guide/sysctl/net.rst | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/Documentation/admin-guide/sysctl/net.rst b/Documentation/admin-guide/sysctl/net.rst
> index fcd650bdbc7e..85ab83411359 100644
> --- a/Documentation/admin-guide/sysctl/net.rst
> +++ b/Documentation/admin-guide/sysctl/net.rst
> @@ -391,6 +391,16 @@ GRO has decided not to coalesce, it is placed on a per-NAPI list. This
> list is then passed to the stack when the number of segments reaches the
> gro_normal_batch limit.
>
> +high_order_alloc_disable
> +------------------------
> +
> +By default the allocator for page frags tries to use high order pages (order-3
> +on x86). While the default behavior gives good results in most cases, some users
> +might hit a contention in page allocations/freeing. This allows to opt-in for
> +order-0 allocation instead.
>
Note:
linux-5.14 allowed high-order pages to be stored on the per-cpu lists.
I ran again the benchmark cited in commit ce27ec60648d to confirm that
the slowdown we had before 5.14 for
high number of alloc/frees per second is no more.
for thr in {1..30}
do
sysctl -wq net.core.high_order_alloc_disable=0
T0=`./super_netperf $thr -H 127.0.0.1 -l 15`
sysctl -wq net.core.high_order_alloc_disable=1
T1=`./super_netperf $thr -H 127.0.0.1 -l 15`
echo $thr:$T0:$T1
done
1:62799:48115
2:121604:94588
3:183240:138376
4:241544:184639
5:302641:232985
6:358566:276494
7:418464:316401
8:470687:362562
9:528084:401193
10:586269:446422
11:642764:482556
12:696490:530701
13:748840:573388
14:808681:610787
15:856676:645813
16:912061:687695
17:966847:738943
18:1011960:771893
19:1056554:798815
20:1109519:844586
21:1159857:849445
22:1203224:888646
23:1226389:933538
24:1238174:964386
...
+
> +Default: 0
> +
> 2. /proc/sys/net/unix - Parameters for Unix domain sockets
> ----------------------------------------------------------
>
> --
> 2.36.1
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH net-next] Documentation: add a description for net.core.high_order_alloc_disable
2022-07-06 13:24 ` Eric Dumazet
@ 2022-07-06 21:18 ` Jakub Kicinski
2022-07-07 7:23 ` Antoine Tenart
0 siblings, 1 reply; 4+ messages in thread
From: Jakub Kicinski @ 2022-07-06 21:18 UTC (permalink / raw)
To: Antoine Tenart; +Cc: Eric Dumazet, David Miller, Paolo Abeni, netdev
On Wed, 6 Jul 2022 15:24:58 +0200 Eric Dumazet wrote:
> linux-5.14 allowed high-order pages to be stored on the per-cpu lists.
>
> I ran again the benchmark cited in commit ce27ec60648d to confirm that
> the slowdown we had before 5.14 for
> high number of alloc/frees per second is no more.
Sounds useful to know - Antoine, do you reckon we can include a mention
of this knob being mostly of historical importance?
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH net-next] Documentation: add a description for net.core.high_order_alloc_disable
2022-07-06 21:18 ` Jakub Kicinski
@ 2022-07-07 7:23 ` Antoine Tenart
0 siblings, 0 replies; 4+ messages in thread
From: Antoine Tenart @ 2022-07-07 7:23 UTC (permalink / raw)
To: Jakub Kicinski; +Cc: Eric Dumazet, David Miller, Paolo Abeni, netdev
Quoting Jakub Kicinski (2022-07-06 23:18:39)
> On Wed, 6 Jul 2022 15:24:58 +0200 Eric Dumazet wrote:
> > linux-5.14 allowed high-order pages to be stored on the per-cpu lists.
> >
> > I ran again the benchmark cited in commit ce27ec60648d to confirm that
> > the slowdown we had before 5.14 for
> > high number of alloc/frees per second is no more.
>
> Sounds useful to know - Antoine, do you reckon we can include a mention
> of this knob being mostly of historical importance?
Sure, I'll send a v2 with that.
Thanks!
Antoine
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-07-07 7:23 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-06 8:53 [PATCH net-next] Documentation: add a description for net.core.high_order_alloc_disable Antoine Tenart
2022-07-06 13:24 ` Eric Dumazet
2022-07-06 21:18 ` Jakub Kicinski
2022-07-07 7:23 ` Antoine Tenart
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.