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