As far as I understand, these options complement each other, specifically, iommu
manages the use of this technology in the system, the force
value ensures that it will always be used no matter what; and intel_iommu
is the technology itself, an IOMMU specification (Intel VT-d), just as there is one for AMD (AMD-Vi) amd_iommu
.
Just analyze the following configuration options:
General iommu
(input/output memory management unit) options:
off
Don't initialize and use any kind of IOMMU.
noforce
Don't force hardware IOMMU usage when it is not needed. (default).
force
Force the use of the hardware IOMMU even when it is not actually needed (e.g. because < 3 GB memory).
soft
Use software bounce buffering (SWIOTLB) (default for Intel machines). This can be used to prevent the usage of an available hardware IOMMU.
Now, Intel IOMMU:
intel_iommu
[DMAR] Intel IOMMU driver (DMAR) option
DMAR: Direct Memory Access Remapping
on
Enables the Intel IOMMU Driver.
There are more options for intel_iommu
(off
, igfx_off
, forcedac
, ...), but they are not relevant to this question.
I am not a specialist in this topic, perhaps I am missing something, so here are some sources: