Page MenuHomeFreeBSD

xen/intr: move isrc allocation to architecture (aarch64 version)
Needs ReviewPublic

Authored by ehem_freebsd_m5p.com on Jul 5 2021, 6:41 PM.

Details

Summary

The isrc allocation has been moved to architecture code where
the decision to allocate or not can be made.

This means setting of several fields needs to be handled by architecture
code. Modify the prototype of xen_arch_intr_alloc(), start passing the
variables needed, and finally set them on aarch64.

This also means releasing of isrcs also needs to be moved to
architecture code.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 40321
Build 37210: arc lint + arc unit

Event Timeline

A fair bit of work has gone into figuring out the prototype for xen_arch_intr_alloc().

The child device name was added on the principle it could be used as part of the printf-format argument for intr_event_create() or intr_isrc_register(). I'm now suspect that may be incorrect, in which case "name" could be removed.

Originally it looked like M_XENINTR should remain part of xen_intr.c, but the allocation needed to move to architecture. The reason was the PVHv1 code still needed to do an allocation. With that allocation removed, it could be possible to move M_XENINTR to architecture, at which point neither xen_arch_intr_alloc() nor xen_arch_intr_release() would need the mtype argument.