All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.