Page MenuHomeFreeBSD

Move instructions into the arm64 exception vectors
ClosedPublic

Authored by andrew on Jan 5 2022, 3:14 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Sep 2, 2:51 AM
Unknown Object (File)
Wed, Aug 28, 8:23 PM
Unknown Object (File)
Sat, Aug 24, 11:17 AM
Unknown Object (File)
Tue, Aug 20, 3:34 PM
Unknown Object (File)
Tue, Aug 13, 5:03 AM
Unknown Object (File)
Jun 25 2024, 6:25 PM
Unknown Object (File)
May 25 2024, 8:56 PM
Unknown Object (File)
May 24 2024, 4:37 PM
Subscribers

Details

Summary

We have 32 instructions in each exception vector on arm64. Previously
only one was used to branch to the handler function. We can split the
start of these functions and move some of the instructions into the
vectors.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

andrew requested review of this revision.Jan 5 2022, 3:14 PM

What's the advantage of setting up the handlers this way?

sys/arm64/arm64/exception.S
39
274

Why is it not vempty 0?

Fix vempty exception level values

What's the advantage of setting up the handlers this way?

I expect any reasonable implementation to prefetch the whole cache line from the exception vector, on exception. Using a single instruction there wastes cache.

This revision is now accepted and ready to land.Jan 6 2022, 12:53 AM