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, Jul 15, 7:11 AM
Unknown Object (File)
Wed, Jul 15, 7:11 AM
Unknown Object (File)
Mon, Jun 29, 10:06 PM
Unknown Object (File)
Mon, Jun 22, 2:07 PM
Unknown Object (File)
Mon, Jun 22, 1:32 PM
Unknown Object (File)
Jun 16 2026, 12:38 PM
Unknown Object (File)
Jun 16 2026, 8:40 AM
Unknown Object (File)
Jun 4 2026, 7:18 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).