Re: [PATCH] AMD IOMMU: revert "x86, AMD IOMMU: honor iommu=offinstead of amd_iommu=off"

From: FUJITA Tomonori
Date: Mon Sep 22 2008 - 11:25:56 EST


On Mon, 22 Sep 2008 16:27:13 +0200
Joerg Roedel <joerg.roedel@xxxxxxx> wrote:

> On Mon, Sep 22, 2008 at 11:16:25PM +0900, FUJITA Tomonori wrote:
> > On Mon, 22 Sep 2008 16:07:49 +0200
> > Joerg Roedel <joerg.roedel@xxxxxxx> wrote:
> >
> > > On Mon, Sep 22, 2008 at 10:35:08PM +0900, FUJITA Tomonori wrote:
> > > > This is against tip/x86/iommu.
> > > >
> > > > =
> > > > From: FUJITA Tomonori <fujita.tomonori@xxxxxxxxxxxxx>
> > > > Subject: [PATCH] AMD IOMMU: revert "x86, AMD IOMMU: honor iommu=off instead of amd_iommu=off"
> > > >
> > > > This reverts:
> > > >
> > > > commit 8b14518fadd9d5915827d86d5c10e602fedf042e
> > > > Author: Joerg Roedel <joerg.roedel@xxxxxxx>
> > > > Date: Thu Jul 3 19:35:09 2008 +0200
> > > >
> > > > x86, AMD IOMMU: honor iommu=off instead of amd_iommu=off
> > > >
> > > > This patch removes the amd_iommu=off kernel parameter and honors the generic
> > > >
> > > > iommu=off parameter for the same purpose.
> > > >
> > > >
> > > > The above commit is wrong.
> > >
> > > It isn't. The user normally don't care about the type of IOMMU in the
> > > system. So disabling it with iommu=off is the right way. To achieve what
> > > you want its better to add iommu=gart and iommu=amd to the option
> > > parser. This will be consistent with Calgary and SWIOTLB too.
> >
> > I'm not talking about what the best way to disable IOMMUs for
> > users. I'm talking about how the current code works. It's a different
> > topic. If you want to fix this, that's fine.
> >
> > I just pointed out:
> >
> > - You think that iommu=off and amd_iommu=off worked in the same way,
> > but they didn't.
> >
> > - This commit removed the useful feature.
>
> Ok, let me explain it this way. Before there was an AMD IOMMU driver
> the user had to pass iommu=off to disable iommu usage at all and
> iommu=soft to just disable usage of hardware IOMMUs.

iommu=soft is not the correct way to disable usage of hardware
IOMMUs. You don't always need SWIOTLB. pci-nommu.c is better if
possible.

> Further you have iommu=calgary to select the Calgary driver.

I don't think that users need to have iommu=calgary parameter to use
calgary IOMMU by default. If you enable CONFIG_CALGARY_IOMMU,
CALGARY_IOMMU_ENABLED_BY_DEFAULT is also enabled by default. If a
kernel finds calgary IOMMU, the kernel uses it by default.

It's also consistent with how SWIOTLB. Users don't need iommu=soft
parameter to enable SWIOTLB. A kernel enables SWIOTLB automatically
when necessary.


Well, this is the problem about the IOMMUs parameters. The IOMMUs
parameters are too complicated for everyone.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/