Re: [PATCH next] vt: fix a warning when kmalloc alloc large memory
From: Nicolas Pitre
Date: Fri Mar 27 2020 - 22:55:28 EST
On Sat, 28 Mar 2020, Chen Wandun wrote:
> If the memory size that use kmalloc() to allocate exceed MAX_ORDER pages,
> it will hit the WARN_ON_ONCE(!(gfp_mask & __GFP_NOWARN)), so add memory
> allocation flag __GFP_NOWARN to silence a warning, othervise, it will
> cause panic if panic_on_warn is enable.
Wow! How do you manage that? You need something like a 1024x1024 text
screen to get such a big memory allocation.
Still, GFP_NOWARN is not a proper fix. This kmalloc() should rather be
replaced by vmalloc(), and corresponding kfree() should then be vfree().
There is no need for this allocation to be physically contiguous.
Nicolas