[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <85726648-82f3-6b6b-a749-03c4159e78f3@google.com>
Date: Wed, 13 Mar 2019 15:40:04 -0400
From: Barret Rhoden <brho@...gle.com>
To: Christopher Lameter <cl@...ux.com>
Cc: Dennis Zhou <dennis@...nel.org>, Eial Czerwacki <eial@...lemp.com>,
tj@...nel.org, linux-kernel@...r.kernel.org,
Shai Fultheim <shai@...lemp.com>,
Oren Twaig <oren@...lemp.com>,
"Paul E. McKenney" <paulmck@...ux.ibm.com>
Subject: Re: [PATCH] percpu/module resevation: change resevation size iff
X86_VSMP is set
Hi -
On 03/01/2019 04:54 PM, Christopher Lameter wrote:
> On Fri, 1 Mar 2019, Barret Rhoden wrote:
>
>> I'm not familiar with VSMP - how bad is it to use L1 cache alignment instead
>> of 4K page alignment? Maybe some structures can use the smaller alignment?
>> Or maybe have VSMP require SRCU-using modules to be built-in?
>
> It is very expensive. VMSP exchanges 4K segments via RDMA between servers
> to build a large address space and run a kernel in the large address
> space. Using smaller segments can cause a lot of
> "cacheline" bouncing (meaning transfers of 4K segments back and forth
> between servers).
>
Given that these are large machines, would it be OK to statically
reserve 64K on them for modules' percpu data?
The bug that led me to here was from someone running on a non-VSMP
machine but had that config set. Perhaps we make it more clear in the
Kconfig option to not set it on other machines. That might make it less
likely anyone on a non-VSMP machine pays the 64K overhead.
Are there any other alternatives? Not using static SRCU in any code
that could be built as a module seems a little harsh.
Thanks,
Barret
Powered by blists - more mailing lists