All of lore.kernel.org
 help / color / mirror / Atom feed
From: Malcolm Crossley <malcolm.crossley@citrix.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: Andrew Cooper <Andrew.Cooper3@citrix.com>,
	"xiantao.zhang@intel.com" <xiantao.zhang@intel.com>,
	xen-devel <xen-devel@lists.xen.org>
Subject: Re: [PATCH] VTD/Intremap: Disable Intremap on Chipset 5500/5520/X58 due	to errata
Date: Thu, 17 Jan 2013 10:02:23 +0000	[thread overview]
Message-ID: <50F7CC2F.9060507@citrix.com> (raw)
In-Reply-To: <50F7C93402000078000B6A74@nat28.tlf.novell.com>

On 17/01/13 08:49, Jan Beulich wrote:
>>>> On 16.01.13 at 22:09, Malcolm Crossley <malcolm.crossley@citrix.com> wrote:
>> On 16/01/13 13:57, Jan Beulich wrote:
>>>>>> On 16.01.13 at 00:27, Malcolm Crossley <malcolm.crossley@citrix.com> wrote:
>>>> +/* 5500/5520/X58 Chipset Interrupt remapping errata, for stepping B-3.
>>>> + * Fixed in stepping C-2. */
>>>> +void __init tylersburg_intremap_quirk(void)
>>>> +{
>>>> +    uint32_t bus, device;
>>>> +    uint8_t rev;
>>>> +
>>>> +    for ( bus = 0; bus < 0x100; bus++ )
>>>> +    {
>>>> +        /* Match on System Management Registers on Device 20 Function 0 */
>>>> +        device = pci_conf_read32(0, bus, 20, 0, PCI_VENDOR_ID);
>>>> +        rev = pci_conf_read8(0, bus, 20, 0, PCI_REVISION_ID);
>>>> +
>>>> +        if ( rev == 0x13 && device == 0x342e8086 )
>>>> +        {
>>>> +            dprintk(XENLOG_INFO VTDPREFIX,
>>>> +                    "Disabling Interrupt Remapping due to Intel 5500/5520/X58 Chipset errata #47, #53\n");
>>>> +            iommu_intremap = 0;
>>> Unless it is guaranteed that no system with this chipset can have
>>> x2APIC, I don't think this is right. For one, this happens way too
>>> late (namely after x2apic_bsp_setup()). And second, if you move
>>> this earlier, such systems with x2APIC pre-enabled won't boot
>>> anymore.
>> After some digging, I discovered that the errata affects chipsets
>> (5520,5500,X58) which don't have IOMMU EIM( Extended Interrupt Mode)
>> support. EIM is required to support x2APIC mode and so this means the
>> chipset can't support x2APIC mode and so we should never see a system
>> with x2APIC enabled.
> Malcolm,
>
> I still don't feel well with this making a small security hole bigger
> (the erratum to me mainly means that with lost interrupts we
> might observe systems hangs in the worst case, or maybe
> data corruption if recovery code in the OSes doesn't work well).
> Whereas with interrupt remapping disabled passthrough
> becomes inherently insecure (and the host vulnerable to guest
> attacks).
>
> So the question really is whether, rather than disabling interrupt
> remapping, disabling the IOMMU as a whole wouldn't be the
> better (read: more secure) workaround.
The patch is just achieving the same effect in Xen as the BIOS 
workaround recommended in the Intel errata document.

I also don't like the making the security hole bigger but I think we are 
making an Xen IOMMU support policy change if we disable the IOMMU 
support when interrupt remapping is not supported.

Additionally, I believe that if we make this policy change then we will 
disable Xen IOMMU support for the Intel 3100/3200 chipset series.




>

  parent reply	other threads:[~2013-01-17 10:02 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-15 23:27 [PATCH] VTD/Intremap: Disable Intremap on Chipset 5500/5520/X58 due to errata Malcolm Crossley
2013-01-16  8:00 ` Zhang, Xiantao
2013-01-16 13:57 ` Jan Beulich
2013-01-16 21:09   ` Malcolm Crossley
2013-01-17  8:49     ` Jan Beulich
2013-01-17  9:01       ` Ian Campbell
2013-01-17  9:09         ` Jan Beulich
2013-01-17  9:15           ` Ian Campbell
2013-01-17  9:33             ` Jan Beulich
2013-01-17  9:51               ` Ian Campbell
2013-01-17 10:01                 ` Jan Beulich
2013-01-17 10:02       ` Malcolm Crossley [this message]
2013-01-17 10:41         ` Jan Beulich
2013-01-16 14:14 ` Jan Beulich
2013-01-16 14:33   ` Malcolm Crossley

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=50F7CC2F.9060507@citrix.com \
    --to=malcolm.crossley@citrix.com \
    --cc=Andrew.Cooper3@citrix.com \
    --cc=JBeulich@suse.com \
    --cc=xen-devel@lists.xen.org \
    --cc=xiantao.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.