Re: [PATCH] shmem: avoid huge pages for small files

From: Kirill A. Shutemov
Date: Mon Oct 17 2016 - 10:56:07 EST


On Mon, Oct 17, 2016 at 04:12:46PM +0200, Michal Hocko wrote:
> On Mon 17-10-16 15:30:21, Kirill A. Shutemov wrote:
> [...]
> > >From fd0b01b9797ddf2bef308c506c42d3dd50f11793 Mon Sep 17 00:00:00 2001
> > From: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>
> > Date: Mon, 17 Oct 2016 14:44:47 +0300
> > Subject: [PATCH] shmem: avoid huge pages for small files
> >
> > Huge pages are detrimental for small file: they causes noticible
> > overhead on both allocation performance and memory footprint.
> >
> > This patch aimed to address this issue by avoiding huge pages until file
> > grown to specified size. This would cover most of the cases where huge
> > pages causes regressions in performance.
> >
> > By default the minimal file size to allocate huge pages is equal to size
> > of huge page.
>
> ok
>
> > We add two handle to specify minimal file size for huge pages:
> >
> > - mount option 'huge_min_size';
> >
> > - sysfs file /sys/kernel/mm/transparent_hugepage/shmem_min_size for
> > in-kernel tmpfs mountpoint;
>
> Could you explain who might like to change the minimum value (other than
> disable the feautre for the mount point) and for what reason?

Depending on how well CPU microarchitecture deals with huge pages, you
might need to set it higher in order to balance out overhead with benefit
of huge pages.

In other case, if it's known in advance that specific mount would be
populated with large files, you might want to set it to zero to get huge
pages allocated from the beginning.

> > @@ -238,6 +238,12 @@ values:
> > - "force":
> > Force the huge option on for all - very useful for testing;
> >
> > +Tehre's limit on minimal file size before kenrel starts allocate huge
> > +pages for it. By default it's size of huge page.
>
> Smoe tyopse

Wlil fxi!

--
Kirill A. Shutemov