On 29/09/16 20:01, Alex Williamson wrote:
> On Thu, 29 Sep 2016 11:41:53 -0700
> Glenn Serre <[email protected]> wrote:
> 
>> Good morning,
>>
>> On 09/29/2016 11:31 AM, Alex Williamson wrote:
>>> On Thu, 29 Sep 2016 09:58:55 -0700
>>> Glenn Serre <[email protected]> wrote:
>>>  
>>>> Add CONFIG_IOMMU_DEFAULT_PT for iommu=pt
>>>>
>>>> Allow default to iommu=pt without adding to command line.
>>>> Add iommu=nopt to turn off default.
>>>>
>>>> Signed-off-by: Glenn Serre <[email protected]>
>>>> ---
>>>>   Documentation/kernel-parameters.txt | 3 ++-
>>>>   arch/x86/Kconfig                    | 7 +++++++
>>>>   arch/x86/kernel/pci-dma.c           | 6 ++++++
>>>>   3 files changed, 15 insertions(+), 1 deletion(-)
>>>>
>>>> --- a/Documentation/kernel-parameters.txt
>>>> +++ b/Documentation/kernel-parameters.txt
>>>> @@ -1607,7 +1607,8 @@
>>>>            nomerge
>>>>            forcesac
>>>>            soft
>>>> -          pt              [x86, IA-64]
>>>> +          pt              [x86]
>>>> +          nopt            [x86]
>>>>            nobypass        [PPC/POWERNV]
>>>>                    Disable IOMMU bypass, using IOMMU for PCI devices.
>>>>
>>>> --- a/arch/x86/Kconfig
>>>> +++ b/arch/x86/Kconfig
>>>> @@ -845,6 +845,15 @@
>>>>    def_bool y
>>>>    depends on CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU
>>>>
>>>> +config IOMMU_DEFAULT_PT
>>>> +  int "Default iommu pt value (0-1)"
>>>> +  range 0 1
>>>> +  default "0"
>>>> +  prompt "Set to 1 to default to iommu=pt"  
>>>
>>> An integer that can be either zero or one... IOW a bool.  There's
>>> support for bools in Kconfig.  
>>
>> We had discussion about that during in-house code review.  My initial 
>> take was bool like INTEL_IOMMU_DEFAULT_ON, but reviewers thought the 
>> current "right" way was range 0-1 like MTRR_SANITIZER_ENABLE_DEFAULT to 
>> avoid an ifdef, else, endif:
>>
>> #ifdef CONFIG_IOMMU_DEFAULT_PT
>> int iommu_pass_through __read_mostly = 1;
>> #else
>> int iommu_pass_through __read_mostly;
>> #endif /* CONFIG_IOMMU_DEFAULT_PT */
>>
>> I'll go with whatever y'all prefer.
> 
> Ok, I didn't really think it all the way through I guess.  Still, my
> opinion is that it's strange to have a yes/no Kconfig option take a 0/1
> parameter and I'd probably rather have the slightly uglier code for the
> benefit of a more intuitive Kconfig.  Maybe others disagree.  Thanks,

Actually, there's no need for ugly code *or* an unintuitive Kconfig
type. See e.g. __pat_enabled in arch/x86/mm/pat.c ;)

Robin.

> 
> Alex
> 
>>>  
>>>> +  help
>>>> +    Setting this option to 1 will set iommu passthrough (iommu=pt)
>>>> +    by default.  Use iommu=nopt to override.
>>>> +
>>>>   config MAXSMP
>>>>    bool "Enable Maximum number of SMP Processors and NUMA Nodes"
>>>>    depends on X86_64 && SMP && DEBUG_KERNEL
>>>> --- a/arch/x86/kernel/pci-dma.c
>>>> +++ b/arch/x86/kernel/pci-dma.c
>>>> @@ -43,7 +43,7 @@
>>>>    * useful if a user wants to use an IOMMU only for KVM device
>>>> assignment to
>>>>    * guests and not for driver dma translation.
>>>>    */
>>>> -int iommu_pass_through __read_mostly;
>>>> +int iommu_pass_through __read_mostly = CONFIG_IOMMU_DEFAULT_PT;
>>>>
>>>>   extern struct iommu_table_entry __iommu_table[], __iommu_table_end[];
>>>>
>>>> @@ -196,6 +196,8 @@
>>>>   #endif
>>>>            if (!strncmp(p, "pt", 2))
>>>>                    iommu_pass_through = 1;
>>>> +          if (!strncmp(p, "nopt", 4))
>>>> +                  iommu_pass_through = 0;
>>>>
>>>>            gart_parse_options(p);
>>>>
>>>> _______________________________________________
>>>> iommu mailing list
>>>> [email protected]
>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.linuxfoundation.org_mailman_listinfo_iommu&d=DQICAg&c=IL_XqQWOjubgfqINi2jTzg&r=3biwyMBB1JD9rm0R5wqz7zcDVkNif9HJ5Pflrr18dkw&m=6weXbuobXVwdVUVGUJUzgHf_32Tr95Ey128v4XLFPjs&s=XTyH-JkxzIj-W47wN4KHobMOdUQjXNnrngKhCndmG9I&e=
>>>>   
>>>  
> 
> _______________________________________________
> iommu mailing list
> [email protected]
> https://lists.linuxfoundation.org/mailman/listinfo/iommu
> 

_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to