On Tue, 2015-11-24 at 10:34 -0500, Jeff Moyer wrote:
Vishal Verma [off-list ref] writes:
quoted
NVDIMM devices, which can behave more like DRAM rather than block
devices, may develop bad cache lines, or 'poison'. A block device
exposed by the pmem driver can then consume poison via a read (or
write), and cause a machine check. On platforms without machine
check recovery features, this would mean a crash.
The block device maintaining a runtime list of all known sectors
that
have poison can directly avoid this, and also provide a path forward
to enable proper handling/recovery for DAX faults on such a device.
Use the new badblock management interfaces to add a badblocks list
to
gendisks.
Because disk_alloc_badblocks can fail, you need to check for a NULL
disk->bb in all of the utility functions you've defined.
Thanks, Jeff - I'll fix this. I have a handful of other fixes queued up
too, will send out a v2 soon.
-Vishal