Page MenuHomeFreeBSD

arm64: mte: handle synchronous tag check faults
ClosedPublic

Authored by andrew on Thu, Mar 19, 4:05 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Apr 16, 1:22 AM
Unknown Object (File)
Tue, Apr 14, 4:58 AM
Unknown Object (File)
Sun, Apr 12, 7:32 PM
Unknown Object (File)
Sun, Apr 12, 6:07 AM
Unknown Object (File)
Sat, Apr 11, 8:03 PM
Unknown Object (File)
Sat, Apr 11, 4:01 PM
Unknown Object (File)
Sat, Apr 11, 6:06 AM
Unknown Object (File)
Wed, Apr 8, 9:56 AM
Subscribers

Details

Summary

The Memory Tagging Extension supports both Synchronous and Asynchronous
faults, called Tag Check Faults, which are configurable via
SCTLR_EL1.TCF0 for userspace and SCTLR_EL1.TCF for the kernel.

This commit adds support for handling synchronous tag check faults at
EL0 and EL1, although these are only enabled on a per-process basis in
userspace, kernel space does not enable tag check faults. A TCF in the
kernel will cause a kernel panic like any other virtual memory fault,
and a TCF in userspace will result in a SIGSEGV

Sponsored by: Arm Ltd
Signed-off-by: Harry Moulton <harry.moulton@arm.com>

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 71528
Build 68411: arc lint + arc unit

Event Timeline

sys/sys/signal.h
309–310

These should probably be 100 & 101 or similar

andrew added inline comments.
sys/sys/signal.h
309–310

@kib Do you have a preference for what values these should be? They will be architecture dependant like SEGV_PKUERR below.

sys/sys/signal.h
309–310

Yes, I selected some high value for amd PKRU to allow space for MI code additions. So 100 and later are fine as arch-specific values.

Please add a prefix into the comment, like /* arm64: synchronous MTE ... */

Change the SEGV_MTE* values

This revision is now accepted and ready to land.Tue, Apr 14, 9:56 AM