On Mon, Nov 09, 2020 at 07:13:08PM -0600, Eric W. Biederman wrote: > Peter Collingbourne <pcc@xxxxxxxxxx> writes: > > The kernel currently clears the tag bits (i.e. bits 56-63) in the fault > > address exposed via siginfo.si_addr and sigcontext.fault_address. However, > > the tag bits may be needed by tools in order to accurately diagnose > > memory errors, such as HWASan [1] or future tools based on the Memory > > Tagging Extension (MTE). > > > > We should not stop clearing these bits in the existing fault address > > fields, because there may be existing userspace applications that are > > expecting the tag bits to be cleared. Instead, create a new pair of > > fields in siginfo._sigfault, and store the tag bits of FAR_EL1 there, > > together with a mask specifying which bits are valid. > > > > A flag is added to si_faultflags to allow userspace to determine whether > > the values in the fields are valid. [...] > What prevents adding a sigaction sa_flag SA_EXPOSE_TABITS that when set > causes the high bits to be set, and when clear (the default) will have > the signal delivery code clear those bits. Thanks for the review so far Eric. If the SA_EXPOSE_TAGBITS idea works, I'd much rather have that than the ultra generic xflags approach. Given that Peter is going to rework this part, could you please pick the first clean-up patches via your tree? If there are dependencies with the reworked arm64 patches, I'm also happy for them to go via your tree. Thanks. -- Catalin