Unnamed repository
By default kernel have vm.zone_reclaim_mode = 0 and large page
allocation might fail as kernel is very conservative on memory
reclaiming. If the page allocation failure is not handled carefully
it could lead to more serious problems.
This issue can be reproduced by change with following steps:
- Fill up page cache use:
# dd if=/dev/urandom of=/test bs=1M count=1300
- Now the memory is filled with write cache:
# free -m
total used free shared buff/cache available
Mem: 1790 184 132 2 1473 1348
Swap: 2119 7 2112
- Insert a module which simply calls "kmalloc(SZ_1M, GFP_KERNEL)" for
512 times: (Notice: vmalloc don't have such problem)
# insmod debug_module.ko
- Got following allocation failure:
insmod: page allocation failure: order:8, mode:0x40cc0(GFP_KERNEL|__GFP_COMP), nodemask=(null),cpuset=/,mems_allowed=0
- Clean up and repeat again with vm.zone_reclaim_mode = 3, OOM is not
observed.
In kdump kernel there is usually only one online CPU and limited memory,
so we set vm.zone_reclaim_mode = 3 to let kernel reclaim memory more
aggresively to avoid such issue.
Signed-off-by: Kairui Song <kasong@redhat.com>
Acked-by: Pingfan Liu <piliu@redhat.com>
|
||
|---|---|---|
| .gitignore | ||
| 98-kexec.rules | ||
| 98-kexec.rules.ppc64 | ||
| dracut-early-kdump-module-setup.sh | ||
| dracut-early-kdump.sh | ||
| dracut-kdump-capture.service | ||
| dracut-kdump-emergency.service | ||
| dracut-kdump-emergency.target | ||
| dracut-kdump-error-handler.service | ||
| dracut-kdump-error-handler.sh | ||
| dracut-kdump.sh | ||
| dracut-module-setup.sh | ||
| dracut-monitor_dd_progress | ||
| early-kdump-howto.txt | ||
| fadump-howto.txt | ||
| kdump-dep-generator.sh | ||
| kdump-in-cluster-environment.txt | ||
| kdump-lib-initramfs.sh | ||
| kdump-lib.sh | ||
| kdump-udev-throttler | ||
| kdump.conf | ||
| kdump.conf.5 | ||
| kdump.service | ||
| kdump.sysconfig | ||
| kdump.sysconfig.aarch64 | ||
| kdump.sysconfig.i386 | ||
| kdump.sysconfig.ppc64 | ||
| kdump.sysconfig.ppc64le | ||
| kdump.sysconfig.s390x | ||
| kdump.sysconfig.x86_64 | ||
| kdumpctl | ||
| kdumpctl.8 | ||
| kexec-kdump-howto.txt | ||
| kexec-tools-2.0.20-fix-broken-multiboot2-buliding-for-i386.patch | ||
| kexec-tools-2.0.20-makedumpfile-Do-not-proceed-when-get_num_dumpable_cyclic-fails.patch | ||
| kexec-tools-2.0.20-makedumpfile-Fix-exclusion-range-in-find_vmemmap_pages.patch | ||
| kexec-tools-2.0.20-makedumpfile-Fix-inconsistent-return-value-from-find_vmemmap.patch | ||
| kexec-tools-2.0.20-makedumpfile-Increase-SECTION_MAP_LAST_BIT-to-4.patch | ||
| kexec-tools-2.0.20-makedumpfile-x86_64-Fix-incorrect-exclusion-by-e-option.patch | ||
| kexec-tools.spec | ||
| live-image-kdump-howto.txt | ||
| mkdumprd | ||
| mkdumprd.8 | ||
| README | ||
| sources | ||
| zanata-notes.txt | ||
Adding a patch to kexec-tools ============================= There is a mailing list kexec@lists.fedoraproject.org where all the dicussion related to fedora kexec-tools happen. All the patches are posted there for inclusion and committed to kexec-tools after review. So if you want your patches to be included in fedora kexec-tools package, post these to kexec@lists.fedoraproject.org. One can subscribe to list and browse through archives here. https://admin.fedoraproject.org/mailman/listinfo/kexec