[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1460989033.10638.120.camel@edumazet-glaptop3.roam.corp.google.com>
Date: Mon, 18 Apr 2016 07:17:13 -0700
From: Eric Dumazet <eric.dumazet@...il.com>
To: Saeed Mahameed <saeedm@....mellanox.co.il>
Cc: Saeed Mahameed <saeedm@...lanox.com>,
"David S. Miller" <davem@...emloft.net>,
Linux Netdev List <netdev@...r.kernel.org>,
Or Gerlitz <ogerlitz@...lanox.com>,
Tal Alon <talal@...lanox.com>,
Tariq Toukan <tariqt@...lanox.com>,
Eran Ben Elisha <eranbe@...lanox.com>,
Achiad Shochat <achiad@...lanox.com>
Subject: Re: [PATCH net-next V2 05/11] net/mlx5e: Support RX multi-packet
WQE (Striding RQ)
On Mon, 2016-04-18 at 16:05 +0300, Saeed Mahameed wrote:
> On Mon, Apr 18, 2016 at 3:48 PM, Eric Dumazet <eric.dumazet@...il.com> wrote:
> > On Sun, 2016-04-17 at 17:29 -0700, Eric Dumazet wrote:
> >
> >>
> >> If really you need to allocate physically contiguous memory, have you
> >> considered converting the order-5 pages into 32 order-0 ones ?
> >
> > Search for split_page() call sites for examples.
> >
> >
>
> Thanks Eric, we are already evaluating split_page as we speak.
>
> We did look but could not find any specific alloc_pages API that
> allocates many physically contiguous pages with order0 ! so we assume
> it is ok to use split_page.
Note: I have no idea of split_page() performance :
Buddy page allocator has to aggregate pages into order-5, then we would
undo the work, touching 32 cache lines.
You might first benchmark a simple loop doing
loop 10,000,000 times
Order-5 allocation
split into 32 order-0
free 32 pages
Another idea would be to have a way to control max number of order-5
pages that a port would be using.
Since driver always own a ref on a order-5 pages, idea would be to
maintain a circular ring of up to XXX such pages, so that we can detect
an abnormal use and fallback to order-0 immediately.
Powered by blists - more mailing lists