From 1dfe717a3ea9adaeaad4c93648b24674e6a7e0bc Mon Sep 17 00:00:00 2001 From: Feng Wu Date: Tue, 1 Mar 2016 14:42:52 +0100 Subject: [PATCH] VT-d: add a command line parameter for posted-interrupts Enable VT-d Posted-Interrupts and add a command line parameter for it. Signed-off-by: Feng Wu Reviewed-by: Kevin Tian Acked-by: Jan Beulich --- docs/misc/xen-command-line.markdown | 9 ++++++++- xen/drivers/passthrough/iommu.c | 3 +++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown index 6435f8eb0a..ca77e3bcc3 100644 --- a/docs/misc/xen-command-line.markdown +++ b/docs/misc/xen-command-line.markdown @@ -873,7 +873,7 @@ debug hypervisor only). > Default: `new` unless directed-EOI is supported ### iommu -> `= List of [ | force | required | intremap | qinval | snoop | sharept | dom0-passthrough | dom0-strict | amd-iommu-perdev-intremap | workaround_bios_bug | igfx | verbose | debug ]` +> `= List of [ | force | required | intremap | intpost | qinval | snoop | sharept | dom0-passthrough | dom0-strict | amd-iommu-perdev-intremap | workaround_bios_bug | igfx | verbose | debug ]` > Sub-options: @@ -900,6 +900,13 @@ debug hypervisor only). >> Control the use of interrupt remapping (DMA remapping will always be enabled >> if IOMMU functionality is enabled). +> `intpost` + +> Default: `false` + +>> Control the use of interrupt posting, which depends on the availability of +>> interrupt remapping. + > `qinval` (VT-d) > Default: `true` diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c index 0b2abf4dc7..b64676f32f 100644 --- a/xen/drivers/passthrough/iommu.c +++ b/xen/drivers/passthrough/iommu.c @@ -32,6 +32,7 @@ static void iommu_dump_p2m_table(unsigned char key); * off|no|false|disable Disable IOMMU (default) * force|required Don't boot unless IOMMU is enabled * no-intremap Disable interrupt remapping + * intpost Enable VT-d Interrupt posting * verbose Be more verbose * debug Enable debugging messages and checks * workaround_bios_bug Workaround some bios issue to still enable @@ -105,6 +106,8 @@ static void __init parse_iommu_param(char *s) iommu_qinval = val; else if ( !strcmp(s, "intremap") ) iommu_intremap = val; + else if ( !strcmp(s, "intpost") ) + iommu_intpost = val; else if ( !strcmp(s, "debug") ) { iommu_debug = val; -- 2.30.2