HomeFreeBSD

x86/iommu: Reduce the number of queued invalidation interrupts

Description

x86/iommu: Reduce the number of queued invalidation interrupts

Restructure dmar_qi_task() so as to reduce the number of invalidation
completion interrupts. Specifically, because processing completed
invalidations in dmar_qi_task() can take quite some time, don't reenable
completion interrupts until processing has completed a first time. Then,
check a second time after reenabling completion interrupts, so that
any invalidations that complete just before interrupts are reenabled
do not linger until a future invalidation might raise an interrupt.
(Recent changes have made checking for completed invalidations cheap; no
locking is required.)

Reviewed by: kib
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D36054

Details

Provenance
alcAuthored on Jul 31 2022, 7:28 PM
Reviewer
kib
Differential Revision
D36054: x86/iommu: Reduce the number of queued invalidation interrupts
Parents
rG35ce7d40f986: powerpc/booke: Clamp MAXCPU to 32 for Book-E platforms
Branches
Unknown
Tags
Unknown