Pardon my ignorance but Im still a little bit confused. Are these statements correct? 1) Reading from a memory location (mmaped) with uncorrectable AND unknown error (also called as latent error) results in a machine-check (which usually results in a SIGBUS , default action in /sys/devices/system/machinecheck/machinecheckN).
2) Reading from a memory location (mmaped) with known error (badblock list) also results in a SIGBUS. 3) Reading via file interface (read()) will result in IO error returned in "both" the above cases. 4) Writing, however, in all the above cases does not result in any error. -KK On Monday, January 7, 2019, 5:13:25 PM EST, Dan Williams <dan.j.willi...@intel.com> wrote: On Mon, Jan 7, 2019 at 1:28 PM Kamal Kakri <kamalkakri2...@yahoo.com> wrote: > > Will it be OK to say that the behavior shall be same irrespective of if its >load or store to a memory location with uncorrectable error (UCE) ? No. Machine check exceptions occur on the consumption of poison (UCE), stores don't consume poison. > I see errors being reported at the granularity of blocks (badblock list). Is > SIGBUS generated when the bad location is accessed or if the page (or block) > having bad location is accessed? SIGBUS is triggered preemptively if the kernel can determine that a badblock exists in a page it is about to be faulted-in to the process. It also triggers in the recovery path after a process has consumed poison and the kernel was able to contain it by killing that affected process. _______________________________________________ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm