Hello, Roman! On Wed, May 29, 2019 at 04:34:40PM +0000, Roman Gushchin wrote: > On Wed, May 29, 2019 at 04:27:15PM +0200, Uladzislau Rezki wrote: > > Hello, Roman! > > > > > On Mon, May 27, 2019 at 11:38:40AM +0200, Uladzislau Rezki (Sony) wrote: > > > > Refactor the NE_FIT_TYPE split case when it comes to an > > > > allocation of one extra object. We need it in order to > > > > build a remaining space. > > > > > > > > Introduce ne_fit_preload()/ne_fit_preload_end() functions > > > > for preloading one extra vmap_area object to ensure that > > > > we have it available when fit type is NE_FIT_TYPE. > > > > > > > > The preload is done per CPU in non-atomic context thus with > > > > GFP_KERNEL allocation masks. More permissive parameters can > > > > be beneficial for systems which are suffer from high memory > > > > pressure or low memory condition. > > > > > > > > Signed-off-by: Uladzislau Rezki (Sony) <urezki@xxxxxxxxx> > > > > --- > > > > mm/vmalloc.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- > > > > 1 file changed, 76 insertions(+), 3 deletions(-) > > > > > > Hi Uladzislau! > > > > > > This patch generally looks good to me (see some nits below), > > > but it would be really great to add some motivation, e.g. numbers. > > > > > The main goal of this patch to get rid of using GFP_NOWAIT since it is > > more restricted due to allocation from atomic context. IMHO, if we can > > avoid of using it that is a right way to go. > > > > From the other hand, as i mentioned before i have not seen any issues > > with that on all my test systems during big rework. But it could be > > beneficial for tiny systems where we do not have any swap and are > > limited in memory size. > > Ok, that makes sense to me. Is it possible to emulate such a tiny system > on kvm and measure the benefits? Again, not a strong opinion here, > but it will be easier to justify adding a good chunk of code. > It seems it is not so straightforward as it looks like. I tried it before, but usually the systems gets panic due to out of memory or just invokes the OOM killer. I will upload a new version of it, where i embed "preloading" logic directly into alloc_vmap_area() function. Thanks. -- Vlad Rezki