The commit is pushed to "branch-rh9-5.14.vz9.1.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git after rh9-5.14.0-4.vz9.10.16 ------> commit eae0e0652510dd46be66a487d896a8753e5b684e Author: Alexander Mikhalitsyn <alexander.mikhalit...@virtuozzo.com> Date: Mon Oct 25 15:55:22 2021 +0300
mm: tcache: handle not initialized tcache properly in tcache_shrink_count We have explicit call to shrink_tcache in do_try_to_free_pages. In almost all cases this is safe, because at the time when this call happens we have tcache subsystem fully initialized. But on early boot staged it may occur that kernel is under memory preassure in some of zones (in our case ZONE_DMA), then do_try_to_free_pages will be called during the reclaim procedures and kernel crashes because tcache_nodeinfo structures are not initialized. TBD: investigate why we meet problems with ZONE_DMA in kexec'ed kernel and fix that. https://jira.sw.ru/browse/PSBM-135139 Signed-off-by: Alexander Mikhalitsyn <alexander.mikhalit...@virtuozzo.com> --- mm/tcache.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mm/tcache.c b/mm/tcache.c index 27c2764f9c26..3c872c3bd03b 100644 --- a/mm/tcache.c +++ b/mm/tcache.c @@ -1194,6 +1194,9 @@ unsigned long tcache_shrink_count(struct shrinker *shrink, atomic_long_t *nr_pages = &tcache_nodeinfo[sc->nid].nr_pages; long ret; + if (unlikely(!tcache_nodeinfo)) + return 0; + ret = atomic_long_read(nr_pages); WARN_ON(ret < 0); return ret >= 0 ? ret : 0; _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel