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
Unknown Object (File)
Wed, Apr 29, 10:06 AM
Unknown Object (File)
Wed, Apr 29, 10:02 AM
Unknown Object (File)
Mon, Apr 27, 3:20 PM
Unknown Object (File)
Sat, Apr 25, 12:32 PM
Unknown Object (File)
Tue, Apr 21, 12:53 PM
Unknown Object (File)
Mon, Apr 20, 9:50 AM
Unknown Object (File)
Mon, Apr 20, 7:33 AM
Unknown Object (File)
Fri, Apr 17, 7:05 AM

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).