Page MenuHomeFreeBSD

arm64: Add SError handler registration
Needs RevisionPublic

Authored by stevek on Mar 27 2024, 5:56 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Apr 26, 4:32 AM
Unknown Object (File)
Mon, Apr 22, 11:56 AM
Unknown Object (File)
Mon, Apr 22, 11:53 AM
Unknown Object (File)
Mon, Apr 22, 11:50 AM
Unknown Object (File)
Mon, Apr 22, 11:49 AM
Unknown Object (File)
Mon, Apr 22, 11:47 AM
Unknown Object (File)
Mon, Apr 22, 11:46 AM
Unknown Object (File)
Thu, Apr 4, 5:59 AM
Subscribers

Details

Reviewers
andrew
manu
Summary

Allow drivers to handle SErrors.

The KPI currently only allows registering, not deregistering.

Obtained from: Juniper Networks, Inc.

Diff Detail

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

Event Timeline

andrew requested changes to this revision.Mar 28 2024, 3:28 PM

This is dangerous to do. It is imlpementation defined if an SError is a precise or imprecise exception. If it is imprecise the instruction stream may be out of sync, e.g. instructions before ELR haven't executed and instructions after it have completed (see "Definition of a precise exception and imprecise exception" from the Arm Architecture Reference Manual for the full definition). Because we have to assume an SError is imprecise we can't handle them in do_serror.

If FEAT_RAS is implemented then we may be able to return from do_serror, although it is not clear if all of the RAS errors are precise.

This revision now requires changes to proceed.Mar 28 2024, 3:28 PM