Thread (13 messages) 13 messages, 2 authors, 2018-11-01

[PATCH v3] mm/page_owner: use kvmalloc instead of kmalloc

From: Miles Chen <hidden>
Date: 2018-10-30 06:56:07
Also in: linux-mediatek, linux-mm, lkml

On Tue, 2018-10-30 at 07:06 +0100, Michal Hocko wrote:
On Tue 30-10-18 09:29:10, Miles Chen wrote:
quoted
On Mon, 2018-10-29 at 09:17 +0100, Michal Hocko wrote:
quoted
On Mon 29-10-18 09:07:08, Michal Hocko wrote:
[...]
quoted
Besides that, the following doesn't make much sense to me. It simply
makes no sense to use vmalloc for sub page allocation regardless of
HIGHMEM.
OK, it is still early morning here. Now I get the point of the patch.
You just want to (ab)use highmeme for smaller requests. I do not like
this, to be honest. It causes an internal fragmentation and more
importantly the VMALLOC space on 32b where HIGHMEM is enabled (do we
have any 64b with HIGHMEM btw?) is quite small to be wasted like that.
thanks for your comment. It looks like that using vmalloc fallback for
sub page allocation is not good here.

Your comment gave another idea:

1. force kbuf to PAGE_SIZE
2. allocate a page by alloc_page(GFP_KERNEL | __GFP_HIGHMEM); so we can
get a highmem page if possible
3. use kmap/kunmap pair to create mapping for this page. No vmalloc
space is used.
4. do not change kvmalloc logic.
If you mean for this particular situation then is this really worth
it? I mean this is a short term allocation for root only so you do not
have to worry about low mem depletion.
The 1...3 are applied to print_page_owner(), not in kmalloc() or
kvmalloc() logic. 


It's a real problem when using page_owner.
I found this issue recently: I'm not able to read page_owner information
during a overnight test. (error: read failed: Out of memory). I replace
kmalloc() with vmalloc() and it worked well.
If you are thiking in more generic terms to allow kmalloc to use highmem
then I am not really sure this will work out.
I'm thinking about modify print_page_owner().
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help