[PATCH 3/3] powerpc/mm/hash64: Make vmalloc 56T on hash

Michael Ellerman mpe at ellerman.id.au
Thu Aug 3 10:00:48 AEST 2017


"Aneesh Kumar K.V" <aneesh.kumar at linux.vnet.ibm.com> writes:

> Michael Ellerman <mpe at ellerman.id.au> writes:
>
>> On 64-bit book3s, with the hash MMU, we currently define the kernel
>> virtual space (vmalloc, ioremap etc.), to be 16T in size. This is a
>> leftover from pre v3.7 when our user VM was also 16T.
>>
>> Of that 16T we split it 50/50, with half used for PCI IO and ioremap
>> and the other 8T for vmalloc.
>>
>> We never bothered to make it any bigger because 8T of vmalloc ought to
>> be enough for anybody. But it turns out that's not true, the per cpu
>> allocator wants large amounts of vmalloc space, not to make large
>> allocations, but to allow a large stride between allocations, because
>> we use pcpu_embed_first_chunk().
>>
>> With a bit of juggling we can keep 8T for the IO etc. and make the
>> vmalloc space 56T. The only complication is the check of the address
>
> What is the significance of 56T number ? Can you add a comment regarding
> why 56TB was selected ?

Yeah good point. Currently we have 16T, 8T for vmalloc, 8T for IO mappings. We
don't seem to have any need for more IO mappings, so we keep that as 8T,
giving us 64T - 8T = 56T for vmalloc.

Will update the change log.

cheers


More information about the Linuxppc-dev mailing list