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

Reply via email to