linux/drivers/lightnvm
Igor Konopko 6e46b8b24f lightnvm: pblk: cleanly fail when there is not enough memory
L2P table can be huge in many cases, since it typically requires 1GB
of DRAM for 1TB of drive. When there is not enough memory available,
OOM killer turns on and kills random processes, which can be very
annoying for users.

This patch changes the flag for L2P table allocation on order to handle
this situation in more user friendly way.

GFP_KERNEL and __GPF_HIGHMEM are default flags used in parameterless
vmalloc() calls, so they are also keeped in that patch. Additionally
__GFP_NOWARN flag is added in order to hide very long dmesg warn in
case of the allocation failures. The most important flag introduced
in that patch is __GFP_RETRY_MAYFAIL, which would cause allocator
to try use free memory and if not available to drop caches, but not
to run OOM killer.

Signed-off-by: Igor Konopko <igor.j.konopko@intel.com>
Reviewed-by: Hans Holmberg <hans.holmberg@cnexlabs.com>
Reviewed-by: Javier González <javier@javigon.com>
Signed-off-by: Matias Bjørling <mb@lightnvm.io>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-05-06 10:19:17 -06:00
..
core.c lightnvm: dynamic DMA pool entry size 2018-12-11 12:22:35 -07:00
Kconfig lightnvm: remove dependencies on BLK_DEV_NVME and PCI 2018-10-09 08:25:05 -06:00
Makefile lightnvm: remove rrpc 2018-01-05 08:50:12 -07:00
pblk-cache.c lightnvm: pblk: add SPDX license tag 2018-10-09 08:25:08 -06:00
pblk-core.c lightnvm: pblk: remove unused smeta_ssec field 2019-05-06 10:19:17 -06:00
pblk-gc.c lightnvm: pblk: fix race during put line 2019-05-06 10:19:17 -06:00
pblk-init.c lightnvm: pblk: cleanly fail when there is not enough memory 2019-05-06 10:19:17 -06:00
pblk-map.c lightnvm: pblk: ensure that erase is chunk aligned 2019-05-06 10:19:17 -06:00
pblk-rb.c lightnvm: pblk: fix race condition on GC 2019-02-11 08:18:08 -07:00
pblk-read.c lightnvm: pblk: reduce L2P memory footprint 2019-05-06 10:19:16 -06:00
pblk-recovery.c lightnvm: pblk: reduce L2P memory footprint 2019-05-06 10:19:16 -06:00
pblk-rl.c pblk: fix max_io calculation 2019-03-07 08:59:26 -07:00
pblk-sysfs.c lightnvm: pblk: support packed metadata 2018-12-11 12:22:35 -07:00
pblk-trace.h lightnvm: pblk: fix TRACE_INCLUDE_PATH 2019-02-11 08:18:07 -07:00
pblk-write.c lightnvm: pblk: fix race condition on GC 2019-02-11 08:18:08 -07:00
pblk.h lightnvm: pblk: remove unused smeta_ssec field 2019-05-06 10:19:17 -06:00