Re: [PATCH V2] x86/tboot: add an option to disable iommu force on
From: Shaohua Li
Date: Thu Apr 27 2017 - 10:49:52 EST
On Thu, Apr 27, 2017 at 10:42:07AM +0200, Joerg Roedel wrote:
> On Thu, Apr 27, 2017 at 08:51:42AM +0200, Ingo Molnar wrote:
> > > + tboot_noforce [Default Off]
> > > + Do not force the Intel IOMMU enabled under tboot.
> > > + By default, tboot will force Intel IOMMU on, which
> > > + could harm performance of some high-throughput
> > > + devices like 40GBit network cards, even if identity
> > > + mapping is enabled.
> > > + Note that using this option lowers the security
> > > + provided by tboot because it makes the system
> > > + vulnerable to DMA attacks.
> >
> > So what's the purpose of this kernel option?
> >
> > It sure isn't the proper solution for correctly architectured hardware/firmware
> > (which can just choose not to expose the IOMMU!), and for one-time hacks for
> > special embedded systems or for debugging why not just add an iommu=off option to
> > force it off?
>
> I guess that tboot requires an IOMMU to be present in order to work. It
> will do initial IOMMU setup and hands the hardware over to Linux later
> on.
>
> The problem solved here is that someone wants tboot for security
> reasons, but doesn't want the performance penalty of having the IOMMU
> enabled and can live with the risk of an DMA attack.
This is exactly the usage for us. And please note, not everybody should
sacrifice the DMA security. It is only required when the pcie device hits iommu
hardware limitation. In our enviroment, normal network workloads (as high as
60k pps) are completely ok with iommu enabled. Only the XDP workload, which can
do around 200k pps, is suffering from the problem. So completely forcing iommu
off for some workloads without the performance issue isn't good because of the
DMA security.
Thanks,
Shaohua