Page MenuHomeFreeBSD

Change DMAR sysctl node
ClosedPublic

Authored by br on Jul 25 2020, 7:59 PM.

Details

Summary

Change all _hw_dmar to _hw_iommu

Test Plan

Boot on amd64

Diff Detail

Lint
Lint Skipped
Unit
Unit Tests Skipped

Event Timeline

br requested review of this revision.Jul 25 2020, 7:59 PM
br created this revision.
sys/dev/iommu/iommu_gas.c
737–738

Mmm, I think the node should be declared unconditionally, regardless of the INVARIANTS build. Also I remember that nodes should be RW if any mib below them is rw.

sys/x86/iommu/intel_utils.c
658–660

This should not link in non-INVARIANTS kernels.

Also, I asked to put dmar-specific mibs under hw.iommu.dmar.

o _hw_iommu is RW
o _hw_iommu is declared regardless INVARIANTS support
o dmar sysctl options are under _hw_iommu_dmar, not _hw_iommu
o _hw_iommu_dmar are all INVARIANTS only

sys/dev/iommu/iommu_gas.c
737–738

All fixed. sorry

sys/dev/iommu/iommu_gas.c
738

This one should be under INVARIANTS indeed.

sys/x86/iommu/intel_utils.c
669

None of these sysctls should be under INVARIANTS. They are all either informational or knobs to tune performance.

sysctl knobs present in all kernels, regardless of INVARIANTS

sys/x86/iommu/intel_utils.c
658–660

what do you mean that it should not link (in non-invariants kernel) ?

This revision is now accepted and ready to land.Jul 25 2020, 9:28 PM
sys/x86/iommu/intel_utils.c
658–660

I mean that for non-INVARIANTS kernels the node (or whatever, I do not remember already) was defined only under INVARIANTS (i.e. nowhere), while declared and used. Then linker should compain about undefined symbol.

This revision was automatically updated to reflect the committed changes.