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) ? 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? - KK On Thursday, January 3, 2019, 9:04:09 PM EST, Elliott, Robert (Persistent Memory) <elli...@hpe.com> wrote: Kamal Kakri wrote: > What do you mean by: > > "The application itself shouldn't be terminated with SIGBUS - that's > for an application doing memory accesses that cannot be resolved." > > Can you elaborate with an example ?
DAX (direct access). If the application uses mmap() of a file or device so it can do loads directly from persistent memory addresses and it tries to load from an address with an uncorrectable error, the CPU cannot complete that instruction without causing data corruption. There's no data value that means "this is bad data." So, the only remedy to unhang that thread is for the kernel to send a signal to the application; it might decide it doesn't really need that data after all and do something else, or might terminate if it doesn't know how to recover. --- Robert Elliott, HPE Persistent Memory _______________________________________________ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm