Messages in this thread | | | From | "Yu, Fenghua" <> | Date | Mon, 20 Apr 2009 10:27:24 -0700 | Subject | RE: [PATCH] Intel IOMMU Pass Through Support |
| |
>On Wed, 2009-04-15 at 17:19 -0700, Fenghua Yu wrote: >> + if (iommu_pass_through) >> + if (!pass_through) { >> + printk(KERN_INFO >> + "Pass Through is not supported by >hardware.\n"); >> + iommu_pass_through = 0; >> + } > >So if we ask for pass-through and the hardware doesn't support it, we >end up in full-translation mode? Wouldn't it be better to set up 1:1 >mappings for each device instead? > >(We probably want to fix up the code which sets up 1:1 mappings to >actually share page tables where appropriate, and to use superpages). > >Also, did we already have a discussion about whether this should be an >intel_iommu= parameter, or a generic iommu= one?
For this patch, I would just fall back to "normal" translation if without hardware pass-through support.
I'm doing 1:1 mapping now to speed up mapping and unmapping. When the 1:1 mapping is implemented, the fall back from pass-through will go to 1:1 mapping which will be "normal" translation.
BTW, I think most of (or newer) VT-d hardware supports pass through feature now. So it won't fail anyway if pass through is wanted.
So at this point, this should be fine.
> >> ret = domain_context_mapping_one(domain, >> - pci_domain_nr(parent- >>bus), >> - parent->bus->number, >> - parent->devfn); >> + pci_domain_nr(parent- >>bus), >> + parent->bus->number, >> + parent->devfn, >translation); > >Whitespace damage here -- you're modifying continuation lines which used >to be right underneath the 'domain' parameter, and you're making them >not line up properly. > >You have the same problem elsewhere for newly-added code too, in fact: > >> + ret = domain_context_mapping(domain, pdev, >> + CONTEXT_TT_PASS_THROUGH); >
OK. I'll change this to align to the upper parameter.
Thanks.
-Fenghuas
| |