New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 894349 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Oct 17
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

min_filelist_kbytes is not working on kernel 3.14 x86_64 boards

Project Member Reported by vovoy@chromium.org, Oct 11

Issue description

When I am checking autotest platform_LowMemoryTest failures on 3.14 x86_64 boards, I found that the file page count is very low when the system OOM. It suggests that min_filelist_kbytes is not working. When almost all file pages are dropped, the system is very sluggish.

There are only 512 KB file pages in DMA32 zone when OOM.

2018-10-11T01:39:55.307924+00:00 NOTICE kernel: [11557.574515] DMA32 free:89228kB min:89388kB low:111732kB high:134080kB active_anon:149784kB inactive_anon:155936kB active_file:184kB inactive_file:328kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:2013428kB managed:1965496kB mlocked:0kB dirty:0kB writeback:0kB mapped:1328kB shmem:61584kB slab_reclaimable:16832kB slab_unreclaimable:27744kB kernel_stack:2448kB pagetables:14844kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:469326 all_unreclaimable? yes

The autotest kernel log:
https://storage.cloud.google.com/chromeos-autotest-results/247293942-chromeos-test/chromeos4-row3-rack7-host20/platform_LowMemoryTest/sysinfo/messages


The root cause:

MEMCG is enabled on 3.14 x86_64 boards:
https://cs.corp.google.com/chromeos_public/src/third_party/kernel/v3.14/chromeos/config/x86_64/chromeos-intel-pineview.flavour.config?rcl=1d5df63f14b586828a01173c04e0927e468b3d13&l=14

and file_is_low always return false when MEMCG is enabled:
https://cs.corp.google.com/chromeos_public/src/third_party/kernel/v3.14/mm/vmscan.c?rcl=1d5df63f14b586828a01173c04e0927e468b3d13&l=1870

 
Description: Show this description
Description: Show this description
Cc: bhthompson@chromium.org
Labels: -Pri-3 M-72 Pri-2
Hi, Bernie, CONFIG_MEMCG is enabled on kernel 3.14 x86_64 boards by: https://crrev.com/c/363972 , but the commit message didn't mention MEMCG. And I think MEMCG is not used on kernel 3.14 boards. Is it OK to disable MEMCG on 3.14 x86_64 boards?


Good find!  I know Android uses memcg, so maybe it was assumed that it was a requirement for ARC++ ?  I'm guessing it's not actually required though since we don't have it turned on in 3.18 or 4.4 etc (yet)
Project Member

Comment 5 by bugdroid1@chromium.org, Oct 12

Labels: merge-merged-chromeos-3.14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/4c29f5871148d59c8630364423d6ad066915b1d7

commit 4c29f5871148d59c8630364423d6ad066915b1d7
Author: Kuo-Hsin Yang <vovoy@chromium.org>
Date: Fri Oct 12 11:47:16 2018

CHROMIUM: config: turn off unused configs on x86_64 boards

CONFIG_MEMCG and CONFIG_MM_OWNER are only enabled on kernel 3.14 x86_64
boards and are not actually used.

BUG= chromium:894349 
TEST=build and boot

Change-Id: I9637bc4b0fed3bafebc3c4a9e8450ee113b4caf6
Signed-off-by: Kuo-Hsin Yang <vovoy@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1278430
Commit-Ready: Vovo Yang <vovoy@chromium.org>
Tested-by: Vovo Yang <vovoy@chromium.org>
Reviewed-by: Sonny Rao <sonnyrao@chromium.org>

[modify] https://crrev.com/4c29f5871148d59c8630364423d6ad066915b1d7/chromeos/config/x86_64/chromeos-intel-pineview.flavour.config

Status: Fixed (was: Started)
Project Member

Comment 7 by bugdroid1@chromium.org, Dec 13

Labels: merge-merged-chromeos-4.4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/94dec01ea7cf20bf3e1bfaeff82c72953803d834

commit 94dec01ea7cf20bf3e1bfaeff82c72953803d834
Author: Kuo-Hsin Yang <vovoy@chromium.org>
Date: Thu Dec 13 11:12:19 2018

CHROMIUM: mm: checking min_filelist_kbytes in global reclaim

There are 2 types of memory reclaim: 1. global reclaim is triggered when
system free memory is under global memory watermark. 2. memcg reclaim is
triggered when memory usage of a memcg exceeded its limit. Reserving
file pages in global reclaim is sufficient to avoid system-wide file
page thrashing. Reserving file pages in memcg reclaim requires
min_filelist_kbytes settings for each memcg, it can be done when needed.

BUG= chromium:894349 
TEST=checking meminfo file page size in low memory condition

Change-Id: Id78a45e117ac4b54c12f8b722d4cc7d357594345
Signed-off-by: Kuo-Hsin Yang <vovoy@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1372671
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Vovo Yang <vovoy@chromium.org>

[modify] https://crrev.com/94dec01ea7cf20bf3e1bfaeff82c72953803d834/mm/vmscan.c

Sign in to add a comment