Linux IOMMU Development
 help / color / mirror / Atom feed
From: Alex Williamson <alex.williamson-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: 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: Thu, 29 Sep 2016 13:01:22 -0600	[thread overview]
Message-ID: <20160929130122.401aa85d@t450s.home> (raw)
In-Reply-To: <66f8f023-41a6-17e0-2df0-190cf5edb7ec-43mecJUBy8ZBDgjK7y7TUQ@public.gmane.org>

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,

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=  
> >  

  parent reply	other threads:[~2016-09-29 19:01 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 [this message]
     [not found]             ` <20160929130122.401aa85d-1yVPhWWZRC1BDLzU/O5InQ@public.gmane.org>
2016-09-30 16:19               ` Robin Murphy
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=20160929130122.401aa85d@t450s.home \
    --to=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