Re: [PATCH v2 00/10] evacuate struct page from the block layer, introduce __pfn_t

From: Rik van Riel
Date: Fri May 08 2015 - 10:54:33 EST


On 05/08/2015 10:05 AM, Ingo Molnar wrote:
> * Rik van Riel <riel@xxxxxxxxxx> wrote:

>> Memory trends point in one direction, file size trends in another.
>>
>> For persistent memory, we would not need 4kB page struct pages
>> unless memory from a particular area was in small files AND those
>> files were being actively accessed. [...]
>
> Average file size on my system's /usr is 12.5K:
>
> triton:/usr> ( echo -n $(echo $(find . -type f -printf "%s\n") | sed 's/ /+/g' | bc); echo -n "/"; find . -type f -printf "%s\n" | wc -l; ) | bc
> 12502
>
>> [...] Large files (mapped in 2MB chunks) or inactive small files
>> would not need the 4kB page structs around.
>
> ... they are the utter uncommon case. 4K is here to stay, and for a
> very long time - until humans use computers I suspect.

There's a bit of an 80/20 thing going on, though.

The average file size may be small, but most data is used by
large files.

Additionally, a 2MB pmem area that has no small files on it that
are currently open will also not need 4kB page structs.

A system with 2TB of pmem might still only have a few thousand
small files open at any point in time. The rest of the memory
is either in large files, or in small files that have not been
opened recently. We can reclaim the struct pages of 4kB pages
that are not currently in use.

--
All rights reversed
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/