Page MenuHomeFreeBSD

x86: change signatures of ipi_{bitmap,swi}_handler() to take pointer
ClosedPublic

Authored by kib on Mar 6 2026, 12:02 AM.
Tags
None
Referenced Files
F163207318: D55679.id173244.diff
Tue, Jul 21, 1:40 AM
Unknown Object (File)
Sun, Jul 19, 12:27 PM
Unknown Object (File)
Sat, Jul 18, 7:20 PM
Unknown Object (File)
Sat, Jul 18, 5:18 PM
Unknown Object (File)
Sat, Jul 18, 5:35 AM
Unknown Object (File)
Wed, Jul 15, 7:11 AM
Unknown Object (File)
Wed, Jul 15, 7:11 AM
Unknown Object (File)
Mon, Jun 29, 10:06 PM

Details

Summary
instead of the frame itself.  It is some stretch of the amd64 ABI, and
is not easily fullfilled when handlers are called from C and not asm.

Diff Detail

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

Event Timeline

kib requested review of this revision.Mar 6 2026, 12:02 AM
This revision is now accepted and ready to land.Mar 7 2026, 12:22 AM

Drat. Phabricator flagged me due to the Xen changes, but I didn't look too closely since it seemed neutral.

I've gotten the impression trap frames are being passed around too much. I think curthread should be updated rather closer to the handler and not at intr_event_execute_handlers(). Updating at intr_event_execute_handlers() causes problems for cascading PICs since they go through the function twice. This isn't too much of a problem on x86 since only Xen uses the functionality (a proper driver for Hyper-V likely would too, Bhyve may want in the future). For other architectures it is a real problem.

Notice Github #1748 (this was proposed a while back, I'm unsure of the last 2 commits and the clock path needs checking).