linux/drivers/nvme/host
Jens Axboe cb5b7262b0 nvme: provide fallback for discard alloc failure
When boxes are run near (or to) OOM, we have a problem with the discard
page allocation in nvme. If we fail allocating the special page, we
return busy, and it'll get retried. But since ordering is honored for
dispatch requests, we can keep retrying this same IO and failing. Behind
that IO could be requests that want to free memory, but they never get
the chance.

Allocate a fixed discard page per controller for a safe fallback, and use
that if the initial allocation fails.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
Reviewed-by: Keith Busch <keith.busch@intel.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2018-12-13 09:59:00 +01:00
..
core.c nvme: provide fallback for discard alloc failure 2018-12-13 09:59:00 +01:00
fabrics.c nvme-fabrics: allow user passing data digest 2018-12-13 09:58:56 +01:00
fabrics.h nvme-fabrics: allow user passing data digest 2018-12-13 09:58:56 +01:00
fault_inject.c nvme: Add fault injection feature 2018-03-26 08:53:43 -06:00
fc.c nvme: add a numa_node field to struct nvme_ctrl 2018-12-07 22:26:55 -07:00
Kconfig nvme-tcp: add NVMe over TCP host driver 2018-12-13 09:58:58 +01:00
lightnvm.c lightnvm: disable interleaved metadata 2018-12-11 12:22:35 -07:00
Makefile nvme-tcp: add NVMe over TCP host driver 2018-12-13 09:58:58 +01:00
multipath.c nvme: add a numa_node field to struct nvme_ctrl 2018-12-07 22:26:55 -07:00
nvme.h nvme: provide fallback for discard alloc failure 2018-12-13 09:59:00 +01:00
pci.c nvme: fix irq vs io_queue calculations 2018-12-11 06:27:46 -07:00
rdma.c nvme: add a numa_node field to struct nvme_ctrl 2018-12-07 22:26:55 -07:00
tcp.c nvme-tcp: add NVMe over TCP host driver 2018-12-13 09:58:58 +01:00
trace.c nvme: add disk name to trace events 2018-07-24 15:55:48 +02:00
trace.h nvme-core: add async event trace helper 2018-10-01 14:16:12 -07:00