[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 1/4] iommu: introduce dom0-iommu option
On Wed, Aug 08, 2018 at 06:10:39AM -0600, Jan Beulich wrote: > >>> On 08.08.18 at 12:07, <roger.pau@xxxxxxxxxx> wrote: > > +Note that all the above options are mutually exclusive. Specifying more > > than > > +one on the `dom0-iommu` command line will result in undefined behavior. > > Isn't this more strict than it needs to be? "none", afaict, always takes > precedence if enabled. What color a bike shed is simply doesn't matter > when it doesn't exist. Right, that's due to the current implementation and the way this is stored, but I don't think we want to spell out any of this in order to not give any guarantees. For example: dom0-iommu=none,relaxed Shouldn't be used, albeit with the current implementation relaxed will be basically ignored I don't think we want to write this down anywhere because people shouldn't rely on this behavior. > > --- a/xen/arch/x86/x86_64/mm.c > > +++ b/xen/arch/x86/x86_64/mm.c > > @@ -1426,7 +1426,8 @@ int memory_add(unsigned long spfn, unsigned long > > epfn, unsigned int pxm) > > if ( ret ) > > goto destroy_m2p; > > > > - if ( iommu_enabled && !iommu_passthrough && > > !need_iommu(hardware_domain) ) > > + if ( iommu_enabled && !iommu_dom0_passthrough && > > + !need_iommu(hardware_domain) ) > > This makes already clear that you need to better distinguish Dom0 and > hwdom here, but it's not immediately clear to me which direction the > changes should be made: Do you mean truly only Dom0 throughout > this patch, or hwdom? While the doc and command line option name can > perhaps left as is, internal variable names should not say Dom0 when > they don't mean Dom0. Otoh if you mean only Dom0, then the use of > hardware_domain above (and elsewhere) is now wrong. Hm, everything is kind of mixed here. Existing variables already use _dom0_ (iommu_dom0_strict for example). I can rename them to iommu_hwdom_, because AFAICT this applies to the hardware domain. > > +static int __init parse_dom0_iommu_param(const char *s) > > +{ > > + const char *ss; > > + int rc = 0; > > + > > + do { > > + ss = strchr(s, ','); > > + if ( !ss ) > > + ss = strchr(s, '\0'); > > + > > + if ( !strncmp(s, "none", ss - s) ) > > + iommu_dom0_passthrough = true; > > + else if ( !strncmp(s, "strict", ss - s) ) > > + iommu_dom0_strict = true; > > + else if ( !strncmp(s, "relaxed", ss - s) ) > > + iommu_dom0_strict = false; > > Perhaps better just have one of the two, and make them truly > boolean? Or would that conflict with further patches / plans? I don't think this will cause a lot of conflicts, some rebasing issues but no big deal. I've used this syntax as discussed in a previous version and agreed with Paul and Kevin. I'm OK with this, and I think it's clear, but I don't have a strong opinion so if you think this is not clear I can change it. I would just like to reach a consensus on the nomenclature of the option ASAP, so the bikeshed can be as small as possible :). Thanks, Roger. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |