Linux IOMMU Development
 help / color / mirror / Atom feed
From: Robin Murphy <robin.murphy-5wv7dgnIgG8@public.gmane.org>
To: Alex Williamson
	<alex.williamson-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	Glenn Serre <gserre-yk0uUPyXz1dBDgjK7y7TUQ@public.gmane.org>
Cc: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org
Subject: Re: [PATCH 1/1] arch/x86: Add CONFIG_IOMMU_DEFAULT_PT for iommu=pt
Date: Fri, 30 Sep 2016 17:19:18 +0100	[thread overview]
Message-ID: <36ee18e0-5950-75fd-ac00-fb84ebcb0ebb@arm.com> (raw)
In-Reply-To: <20160929130122.401aa85d-1yVPhWWZRC1BDLzU/O5InQ@public.gmane.org>

On 29/09/16 20:01, Alex Williamson wrote:
> On Thu, 29 Sep 2016 11:41:53 -0700
> Glenn Serre <gserre-yk0uUPyXz1dBDgjK7y7TUQ@public.gmane.org> wrote:
> 
>> Good morning,
>>
>> On 09/29/2016 11:31 AM, Alex Williamson wrote:
>>> On Thu, 29 Sep 2016 09:58:55 -0700
>>> Glenn Serre <gserre-43mecJUBy8ZBDgjK7y7TUQ@public.gmane.org> 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 <gserre-43mecJUBy8ZBDgjK7y7TUQ@public.gmane.org>
>>>> ---
>>>>   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
>>>> iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org
>>>> 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
> iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org
> https://lists.linuxfoundation.org/mailman/listinfo/iommu
> 

  parent reply	other threads:[~2016-09-30 16:19 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-29 16:58 [PATCH 1/1] arch/x86: Add CONFIG_IOMMU_DEFAULT_PT for iommu=pt Glenn Serre
     [not found] ` <2ebef311-b346-f3ed-2fca-ce4715b84c9d-43mecJUBy8ZBDgjK7y7TUQ@public.gmane.org>
2016-09-29 18:11   ` Konrad Rzeszutek Wilk
     [not found]     ` <20160929181150.GC9432-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2016-09-29 18:18       ` Glenn Serre
     [not found]         ` <ed808649-22d6-8447-5ddb-5d19665b7fa3-43mecJUBy8ZBDgjK7y7TUQ@public.gmane.org>
2016-09-29 18:20           ` Konrad Rzeszutek Wilk
2016-09-29 18:31   ` Alex Williamson
     [not found]     ` <20160929123115.7afcc88e-1yVPhWWZRC1BDLzU/O5InQ@public.gmane.org>
2016-09-29 18:41       ` Glenn Serre
     [not found]         ` <66f8f023-41a6-17e0-2df0-190cf5edb7ec-43mecJUBy8ZBDgjK7y7TUQ@public.gmane.org>
2016-09-29 19:01           ` Alex Williamson
     [not found]             ` <20160929130122.401aa85d-1yVPhWWZRC1BDLzU/O5InQ@public.gmane.org>
2016-09-30 16:19               ` Robin Murphy [this message]
2016-10-04 16:11   ` [PATCH v1 " Glenn Serre
     [not found]     ` <6b2c6f0b-cce8-b8f6-37c2-d4cc453bd603-43mecJUBy8ZBDgjK7y7TUQ@public.gmane.org>
2016-10-04 16:52       ` Konrad Rzeszutek Wilk
     [not found]         ` <20161004165232.GD2428-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2016-10-04 17:00           ` Glenn Serre
     [not found]             ` <04ab568e-8088-cf23-facb-7ef3fecf4bb6-43mecJUBy8ZBDgjK7y7TUQ@public.gmane.org>
2016-10-04 17:03               ` Konrad Rzeszutek Wilk
     [not found]                 ` <20161004170358.GE2428-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2016-10-04 17:32                   ` Glenn Serre
     [not found]                     ` <ad5f24df-99e3-d9c7-4ca3-ba3de820da8e-43mecJUBy8ZBDgjK7y7TUQ@public.gmane.org>
2016-10-17 18:13                       ` [PATCH v2 1/2] " Glenn Serre
     [not found]                         ` <f3608ce9-af12-9ac8-7503-1ccd45983ee7-43mecJUBy8ZBDgjK7y7TUQ@public.gmane.org>
2016-10-17 18:15                           ` [PATCH v2 2/2] Documentation/kernel-parameters.txt : Remove IA-64 from iommu=pt doc Glenn Serre
2018-08-15 13:01                           ` [v2,1/2] arch/x86: Add CONFIG_IOMMU_DEFAULT_PT for iommu=pt luca.boccassi-Re5JQEeQqe8AvxtiuMwx3w

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=36ee18e0-5950-75fd-ac00-fb84ebcb0ebb@arm.com \
    --to=robin.murphy-5wv7dgnigg8@public.gmane.org \
    --cc=alex.williamson-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=gserre-yk0uUPyXz1dBDgjK7y7TUQ@public.gmane.org \
    --cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox