From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Ting-Wei Lan <lantw44@gmail.com>, xen-devel@lists.xen.org
Cc: Yang Zhang <yang.z.zhang@intel.com>,
Julien Grall <julien.grall@citrix.com>,
Kevin Tian <kevin.tian@intel.com>, Wei Liu <wei.liu2@citrix.com>,
Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH v3] VT-d: add iommu=igfx option to workaround graphics issues
Date: Wed, 5 Aug 2015 13:18:05 +0100 [thread overview]
Message-ID: <55C1FEFD.4040205@citrix.com> (raw)
In-Reply-To: <1438765893-3123-1-git-send-email-lantw44@gmail.com>
On 05/08/15 10:11, Ting-Wei Lan wrote:
> When using Linux >= 3.19 (commit 47591df) as dom0 on some Intel Ironlake
> devices, It is possible to encounter graphics issues that make screen
> unreadable or crash the system. It was reported in freedesktop bugzilla:
>
> https://bugs.freedesktop.org/show_bug.cgi?id=90037
>
> As we still cannot find a proper fix for this problem, this patch adds
> iommu=igfx option to control whether Intel graphics IOMMU is enabled.
> Running Xen with iommu=no-igfx is similar to running Linux with
> intel_iommu=igfx_off, which disables IOMMU for Intel GPU. This can be
> used by users to manually workaround the problem before a fix is
> available for i915 driver.
>
> Signed-off-by: Ting-Wei Lan <lantw44@gmail.com>
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Wei: I think this is a candidate for inclusion into 4.6
~Andrew
> ---
> Changed since v2:
> * Make no-igfx available for all Intel devices, not just Calpella/Ironlake
> Changed since v1:
> * Replace igfx_off with igfx
>
> docs/misc/xen-command-line.markdown | 11 ++++++++++-
> xen/drivers/passthrough/iommu.c | 3 +++
> xen/drivers/passthrough/vtd/quirks.c | 3 +++
> xen/include/xen/iommu.h | 2 +-
> 4 files changed, 17 insertions(+), 2 deletions(-)
>
> diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown
> index 13f03ad..486e53b 100644
> --- a/docs/misc/xen-command-line.markdown
> +++ b/docs/misc/xen-command-line.markdown
> @@ -793,7 +793,7 @@ debug hypervisor only).
> > Default: `new` unless directed-EOI is supported
>
> ### iommu
> -> `= List of [ <boolean> | force | required | intremap | qinval | snoop | sharept | dom0-passthrough | dom0-strict | amd-iommu-perdev-intremap | workaround_bios_bug | verbose | debug ]`
> +> `= List of [ <boolean> | force | required | intremap | qinval | snoop | sharept | dom0-passthrough | dom0-strict | amd-iommu-perdev-intremap | workaround_bios_bug | igfx | verbose | debug ]`
>
> > Sub-options:
>
> @@ -867,6 +867,15 @@ debug hypervisor only).
> >> ignored (normally IOMMU setup fails if any of the devices listed by a DRHD
> >> entry aren't PCI discoverable).
>
> +> `igfx` (VT-d)
> +
> +> Default: `true`
> +
> +>> Enable IOMMU for Intel graphics devices. The intended usage of this option
> +>> is `no-igfx`, which is silimar to Linux `intel_iommu=igfx_off` option used
> +>> to workaround graphics issues. If adding `no-igfx` fixes anything, you
> +>> should file a bug reporting the problem.
> +
> > `verbose`
>
> > Default: `false`
> diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
> index cc12735..966cc66 100644
> --- a/xen/drivers/passthrough/iommu.c
> +++ b/xen/drivers/passthrough/iommu.c
> @@ -47,6 +47,7 @@ bool_t __read_mostly force_iommu;
> bool_t __hwdom_initdata iommu_dom0_strict;
> bool_t __read_mostly iommu_verbose;
> bool_t __read_mostly iommu_workaround_bios_bug;
> +bool_t __read_mostly iommu_igfx = 1;
> bool_t __read_mostly iommu_passthrough;
> bool_t __read_mostly iommu_snoop = 1;
> bool_t __read_mostly iommu_qinval = 1;
> @@ -87,6 +88,8 @@ static void __init parse_iommu_param(char *s)
> force_iommu = val;
> else if ( !strcmp(s, "workaround_bios_bug") )
> iommu_workaround_bios_bug = val;
> + else if ( !strcmp(s, "igfx") )
> + iommu_igfx = val;
> else if ( !strcmp(s, "verbose") )
> iommu_verbose = val;
> else if ( !strcmp(s, "snoop") )
> diff --git a/xen/drivers/passthrough/vtd/quirks.c b/xen/drivers/passthrough/vtd/quirks.c
> index 69d29ab..92cff1d 100644
> --- a/xen/drivers/passthrough/vtd/quirks.c
> +++ b/xen/drivers/passthrough/vtd/quirks.c
> @@ -72,6 +72,9 @@ int is_igd_vt_enabled_quirk(void)
> {
> u16 ggc;
>
> + if ( !iommu_igfx )
> + return 0;
> +
> if ( !IS_ILK(ioh_id) )
> return 1;
>
> diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
> index 8eb764a..29eed51 100644
> --- a/xen/include/xen/iommu.h
> +++ b/xen/include/xen/iommu.h
> @@ -29,7 +29,7 @@
>
> extern bool_t iommu_enable, iommu_enabled;
> extern bool_t force_iommu, iommu_verbose;
> -extern bool_t iommu_workaround_bios_bug, iommu_passthrough;
> +extern bool_t iommu_workaround_bios_bug, iommu_igfx, iommu_passthrough;
> extern bool_t iommu_snoop, iommu_qinval, iommu_intremap;
> extern bool_t iommu_hap_pt_share;
> extern bool_t iommu_debug;
next prev parent reply other threads:[~2015-08-05 12:18 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-17 19:05 [PATCH] VT-d: add iommu=igfx_off option to workaround graphics issues Ting-Wei Lan
2015-07-17 19:36 ` Andrew Cooper
2015-07-18 8:46 ` 藍挺瑋
2015-07-19 15:53 ` Julien Grall
2015-07-20 8:27 ` Andrew Cooper
2015-07-20 10:19 ` Julien Grall
2015-07-20 1:28 ` Tian, Kevin
2015-07-20 8:21 ` Andrew Cooper
2015-07-20 10:44 ` Ting-Wei Lan
2015-07-21 0:57 ` Tian, Kevin
2015-07-21 6:56 ` Jan Beulich
2015-07-21 7:05 ` Tian, Kevin
2015-07-21 7:16 ` Jan Beulich
2015-07-21 7:23 ` Tian, Kevin
2015-07-21 7:33 ` Jan Beulich
2015-07-23 16:41 ` Ting-Wei Lan
2015-07-20 8:46 ` Jan Beulich
2015-07-25 16:57 ` [PATCH v2] VT-d: add iommu=igfx " Ting-Wei Lan
2015-07-26 16:47 ` Andrew Cooper
2015-07-31 1:26 ` Tian, Kevin
2015-07-31 8:37 ` Ting-Wei Lan
2015-08-04 2:00 ` Tian, Kevin
2015-08-05 9:11 ` [PATCH v3] " Ting-Wei Lan
2015-08-05 12:18 ` Andrew Cooper [this message]
2015-08-05 13:35 ` Wei Liu
2015-08-05 17:10 ` [PATCH v4] " Ting-Wei Lan
2015-08-06 0:49 ` Tian, Kevin
2015-08-06 8:25 ` Wei Liu
2015-08-06 9:28 ` Ian Campbell
2015-07-20 12:12 ` [PATCH] VT-d: add iommu=igfx_off " Andrew Cooper
2015-07-20 12:24 ` Jan Beulich
2015-07-20 12:34 ` Andrew Cooper
2015-07-20 13:55 ` Jan Beulich
2015-07-20 14:12 ` Andrew Cooper
2015-07-20 14:25 ` Jan Beulich
2015-07-21 1:15 ` Tian, Kevin
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=55C1FEFD.4040205@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=jbeulich@suse.com \
--cc=julien.grall@citrix.com \
--cc=kevin.tian@intel.com \
--cc=lantw44@gmail.com \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xen.org \
--cc=yang.z.zhang@intel.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.