lkml.org 
[lkml]   [2015]   [Jul]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: 4.2-rc2: hitting "file-max limit 8192 reached"
On Tue, 14 Jul 2015 08:54:11 -0700 Dave Hansen <dave.hansen@intel.com> wrote:

> My laptop has been behaving strangely with 4.2-rc2. Once I log in to my
> X session, I start getting all kinds of strange errors from applications
> and see this in my dmesg:
>
> VFS: file-max limit 8192 reached
>
> Could this be from CONFIG_DEFERRED_STRUCT_PAGE_INIT=y? files_init()
> seems top be sizing files_stat.max_files from memory sizes.

argh.

> vfs_caches_init() uses nr_free_pages() to figure out what the "current
> kernel size" is in early boot. *But* since we have not freed most of
> our memory, nr_free_pages() is low and makes us calculate the reserve as
> if the kernel we huge.
>
> Adding some printk's confirms this. Broken kernel:
>
> vfs_caches_init() mempages: 4026972
> vfs_caches_init() reserve: 4021629
> vfs_caches_init() mempages (after reserve minus): 5343
> files_init() n: 2137
> files_init() files_stat.max_files: 8192
>
> Working kernel:
>
> vfs_caches_init() mempages: 4026972
> vfs_caches_init() reserve: 375
> vfs_caches_init() mempages2: 4026597
> files_init() n: 1610638
> files_init() files_stat.max_files: 1610638
>
> Do we have an alternative to call instead of nr_free_pages() in
> vfs_caches_init()?
>
> I guess we could save off 'nr_initialized' in memmap_init_zone() and
> then use "nr_initialized - nr_free_pages()", but that seems a bit hackish.

There are a lot of things that might be affected this way. Callers of
nr_free_buffer_pages(), nr_free_pagecache_pages(), etc.

If we'd fully used the memory hotplug infrastructure then everything
would work - all those knobs which are sized off free-memory would get
themselves resized as more memory comes on line. But quite a few
things have been missed.



\
 
 \ /
  Last update: 2015-07-14 18:21    [W:0.168 / U:0.376 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site