On Thu, 2015-23-07 at 06:43:56 UTC, Ian Munsie wrote: > From: Ian Munsie <imun...@au1.ibm.com> > > userspace programs using cxl currently have to use two strategies for > dealing with MMIO errors simultaneously. They have to check every read > for a return of all Fs in case the adapter has gone away and the kernel > has not yet noticed, and they have to deal with SIGBUS in case the > kernel has already noticed, invalidated the mapping and marked the > context as failed. > > In order to simplify things, this patch adds an alternative approach > where the kernel will return a page filled with Fs instead of delivering > a SIGBUS. This allows userspace to only need to deal with one of these > two error paths, and is intended for use in libraries that use cxl > transparently and may not be able to safely install a signal handler. > > This approach will only work if certain constraints are met. Namely, if > the application is both reading and writing to an address in the problem > state area it cannot assume that a non-FF read is OK, as it may just be > reading out a value it has previously written. Further - since only one > page is used per context a write to a given offset would be visible when > reading the same offset from a different page in the mapping (this only > applies within a single context, not between contexts). > > An application could deal with this by e.g. making sure it also reads > from a read-only offset after any reads to a read/write offset. > > Due to these constraints, this functionality must be explicitly > requested by userspace when starting the context by passing in the > CXL_START_WORK_ERR_FF flag. > > Signed-off-by: Ian Munsie <imun...@au1.ibm.com> > Acked-by: Michael Neuling <mi...@neuling.org>
Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/d9232a3da8683cd9c985 cheers -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/