All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
@ 2015-01-21 20:55 Elena Ufimtseva
  2015-01-22  9:53 ` Jan Beulich
  0 siblings, 1 reply; 27+ messages in thread
From: Elena Ufimtseva @ 2015-01-21 20:55 UTC (permalink / raw)
  To: xen-devel
  Cc: kevin.tian, tim, jbeulich, yang.z.zhang, boris.ostrovsky, roger.pau

p2m_mmio_direct should result in setting IOMMUF_readable and IOMMUF_writable
flags.
When pvh domain maps mmio regions, the EPT entries are not getting mapped.
This leads to IOMMU Page faults for some devices, as for example USB Host
controllers with embedded Debug devices. See pvh-set-need_iommu-early RFC
patch discussion fgor detail.

I will appreciate your comments and ideas in regards to this change.

Looking at Roger patches (xen/pvh: check permissions when adding MMIO regions)
the mmio memory type is proposed to be changed from p2m_mmio_direct to p2m_access_rw.
This type still does not have proper IOMMU flags mapping.

Signed-off-by: Elena Ufimtseva <elena.ufimtseva@oracle.com>
---
 xen/include/asm-x86/p2m.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/include/asm-x86/p2m.h b/xen/include/asm-x86/p2m.h
index 5f7fe71..7b918de 100644
--- a/xen/include/asm-x86/p2m.h
+++ b/xen/include/asm-x86/p2m.h
@@ -695,6 +695,7 @@ static inline unsigned int p2m_get_iommu_flags(p2m_type_t p2mt)
     case p2m_grant_map_rw:
     case p2m_ram_logdirty:
     case p2m_map_foreign:
+    case p2m_mmio_direct:
         flags =  IOMMUF_readable | IOMMUF_writable;
         break;
     case p2m_ram_ro:
-- 
2.1.3

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-21 20:55 [PATCH RFC] p2m: p2m_mmio_direct set RW permissions Elena Ufimtseva
@ 2015-01-22  9:53 ` Jan Beulich
  2015-01-22 10:59   ` Andrew Cooper
  0 siblings, 1 reply; 27+ messages in thread
From: Jan Beulich @ 2015-01-22  9:53 UTC (permalink / raw)
  To: Elena Ufimtseva
  Cc: kevin.tian, tim, xen-devel, yang.z.zhang, boris.ostrovsky, roger.pau

>>> On 21.01.15 at 21:55, <elena.ufimtseva@oracle.com> wrote:
> p2m_mmio_direct should result in setting IOMMUF_readable and IOMMUF_writable
> flags.
> When pvh domain maps mmio regions, the EPT entries are not getting mapped.
> This leads to IOMMU Page faults for some devices, as for example USB Host
> controllers with embedded Debug devices. See pvh-set-need_iommu-early RFC
> patch discussion fgor detail.

Even more so that the two patches aren't even a series, that part
of the description belongs here, not in the other patch.

> I will appreciate your comments and ideas in regards to this change.
> 
> Looking at Roger patches (xen/pvh: check permissions when adding MMIO 
> regions)
> the mmio memory type is proposed to be changed from p2m_mmio_direct to 
> p2m_access_rw.
> This type still does not have proper IOMMU flags mapping.

A fundamental question is what business devices have to DMA their
own (or other devices') MMIO space. I could remotely see a need
for this for e.g. frame buffers, but I have difficulty understanding
this for USB devices. Please at the very least provide details on the
MMIO regions that those devices have, and which of them you
observed IOMMU faults on.

Jan

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-22  9:53 ` Jan Beulich
@ 2015-01-22 10:59   ` Andrew Cooper
  2015-01-22 11:09     ` Jan Beulich
  0 siblings, 1 reply; 27+ messages in thread
From: Andrew Cooper @ 2015-01-22 10:59 UTC (permalink / raw)
  To: Jan Beulich, Elena Ufimtseva
  Cc: kevin.tian, tim, xen-devel, yang.z.zhang, boris.ostrovsky, roger.pau

On 22/01/15 09:53, Jan Beulich wrote:
>>>> On 21.01.15 at 21:55, <elena.ufimtseva@oracle.com> wrote:
>> p2m_mmio_direct should result in setting IOMMUF_readable and IOMMUF_writable
>> flags.
>> When pvh domain maps mmio regions, the EPT entries are not getting mapped.
>> This leads to IOMMU Page faults for some devices, as for example USB Host
>> controllers with embedded Debug devices. See pvh-set-need_iommu-early RFC
>> patch discussion fgor detail.
> Even more so that the two patches aren't even a series, that part
> of the description belongs here, not in the other patch.
>
>> I will appreciate your comments and ideas in regards to this change.
>>
>> Looking at Roger patches (xen/pvh: check permissions when adding MMIO 
>> regions)
>> the mmio memory type is proposed to be changed from p2m_mmio_direct to 
>> p2m_access_rw.
>> This type still does not have proper IOMMU flags mapping.
> A fundamental question is what business devices have to DMA their
> own (or other devices') MMIO space. I could remotely see a need
> for this for e.g. frame buffers, but I have difficulty understanding
> this for USB devices. Please at the very least provide details on the
> MMIO regions that those devices have, and which of them you
> observed IOMMU faults on.

It would appear that, in this case, it is a USB controller lacking an
appropriate RMRR description in the ACPI tables.

I feel it would be better to have a command line option to add extra
RMRRs, similar to ivrs_{hpet,ioapic} for AMD firmware issues.  Of
course, this would also rely on the RMRR series currently still in design.

~Andrew

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-22 10:59   ` Andrew Cooper
@ 2015-01-22 11:09     ` Jan Beulich
  2015-01-22 11:37       ` Roger Pau Monné
  0 siblings, 1 reply; 27+ messages in thread
From: Jan Beulich @ 2015-01-22 11:09 UTC (permalink / raw)
  To: Andrew Cooper
  Cc: Elena Ufimtseva, kevin.tian, tim, xen-devel, yang.z.zhang,
	boris.ostrovsky, roger.pau

>>> On 22.01.15 at 11:59, <andrew.cooper3@citrix.com> wrote:
> On 22/01/15 09:53, Jan Beulich wrote:
>>>>> On 21.01.15 at 21:55, <elena.ufimtseva@oracle.com> wrote:
>>> p2m_mmio_direct should result in setting IOMMUF_readable and IOMMUF_writable
>>> flags.
>>> When pvh domain maps mmio regions, the EPT entries are not getting mapped.
>>> This leads to IOMMU Page faults for some devices, as for example USB Host
>>> controllers with embedded Debug devices. See pvh-set-need_iommu-early RFC
>>> patch discussion fgor detail.
>> Even more so that the two patches aren't even a series, that part
>> of the description belongs here, not in the other patch.
>>
>>> I will appreciate your comments and ideas in regards to this change.
>>>
>>> Looking at Roger patches (xen/pvh: check permissions when adding MMIO 
>>> regions)
>>> the mmio memory type is proposed to be changed from p2m_mmio_direct to 
>>> p2m_access_rw.
>>> This type still does not have proper IOMMU flags mapping.
>> A fundamental question is what business devices have to DMA their
>> own (or other devices') MMIO space. I could remotely see a need
>> for this for e.g. frame buffers, but I have difficulty understanding
>> this for USB devices. Please at the very least provide details on the
>> MMIO regions that those devices have, and which of them you
>> observed IOMMU faults on.
> 
> It would appear that, in this case, it is a USB controller lacking an
> appropriate RMRR description in the ACPI tables.

No, RMRRs only reference RAM pages afaik.

Jan

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-22 11:09     ` Jan Beulich
@ 2015-01-22 11:37       ` Roger Pau Monné
  2015-01-22 11:54         ` Jan Beulich
  0 siblings, 1 reply; 27+ messages in thread
From: Roger Pau Monné @ 2015-01-22 11:37 UTC (permalink / raw)
  To: Jan Beulich, Andrew Cooper
  Cc: Elena Ufimtseva, kevin.tian, tim, xen-devel, yang.z.zhang,
	boris.ostrovsky

El 22/01/15 a les 12.09, Jan Beulich ha escrit:
>>>> On 22.01.15 at 11:59, <andrew.cooper3@citrix.com> wrote:
>> On 22/01/15 09:53, Jan Beulich wrote:
>>>>>> On 21.01.15 at 21:55, <elena.ufimtseva@oracle.com> wrote:
>>>> p2m_mmio_direct should result in setting IOMMUF_readable and IOMMUF_writable
>>>> flags.
>>>> When pvh domain maps mmio regions, the EPT entries are not getting mapped.
>>>> This leads to IOMMU Page faults for some devices, as for example USB Host
>>>> controllers with embedded Debug devices. See pvh-set-need_iommu-early RFC
>>>> patch discussion fgor detail.
>>> Even more so that the two patches aren't even a series, that part
>>> of the description belongs here, not in the other patch.
>>>
>>>> I will appreciate your comments and ideas in regards to this change.
>>>>
>>>> Looking at Roger patches (xen/pvh: check permissions when adding MMIO 
>>>> regions)
>>>> the mmio memory type is proposed to be changed from p2m_mmio_direct to 
>>>> p2m_access_rw.
>>>> This type still does not have proper IOMMU flags mapping.
>>> A fundamental question is what business devices have to DMA their
>>> own (or other devices') MMIO space. I could remotely see a need
>>> for this for e.g. frame buffers, but I have difficulty understanding
>>> this for USB devices. Please at the very least provide details on the
>>> MMIO regions that those devices have, and which of them you
>>> observed IOMMU faults on.
>>
>> It would appear that, in this case, it is a USB controller lacking an
>> appropriate RMRR description in the ACPI tables.
> 
> No, RMRRs only reference RAM pages afaik.

According to Linux IOMMU support document RMRRs reference regions marked
as "reserved" in the e820 memory map:

https://www.kernel.org/doc/Documentation/Intel-IOMMU.txt

I don't think we are setting proper IOMMU entries for this regions at
all with the current PVH Dom0 code. IMHO instead of just adding IOMMU
entries for every MMIO region we should just add IOMMU entries for the
RMRR regions.

Roger.

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-22 11:37       ` Roger Pau Monné
@ 2015-01-22 11:54         ` Jan Beulich
  0 siblings, 0 replies; 27+ messages in thread
From: Jan Beulich @ 2015-01-22 11:54 UTC (permalink / raw)
  To: Roger Pau Monné
  Cc: Elena Ufimtseva, kevin.tian, Andrew Cooper, tim, xen-devel,
	yang.z.zhang, boris.ostrovsky

>>> On 22.01.15 at 12:37, <roger.pau@citrix.com> wrote:
> El 22/01/15 a les 12.09, Jan Beulich ha escrit:
>>>>> On 22.01.15 at 11:59, <andrew.cooper3@citrix.com> wrote:
>>> On 22/01/15 09:53, Jan Beulich wrote:
>>>>>>> On 21.01.15 at 21:55, <elena.ufimtseva@oracle.com> wrote:
>>>>> p2m_mmio_direct should result in setting IOMMUF_readable and IOMMUF_writable
>>>>> flags.
>>>>> When pvh domain maps mmio regions, the EPT entries are not getting mapped.
>>>>> This leads to IOMMU Page faults for some devices, as for example USB Host
>>>>> controllers with embedded Debug devices. See pvh-set-need_iommu-early RFC
>>>>> patch discussion fgor detail.
>>>> Even more so that the two patches aren't even a series, that part
>>>> of the description belongs here, not in the other patch.
>>>>
>>>>> I will appreciate your comments and ideas in regards to this change.
>>>>>
>>>>> Looking at Roger patches (xen/pvh: check permissions when adding MMIO 
>>>>> regions)
>>>>> the mmio memory type is proposed to be changed from p2m_mmio_direct to 
>>>>> p2m_access_rw.
>>>>> This type still does not have proper IOMMU flags mapping.
>>>> A fundamental question is what business devices have to DMA their
>>>> own (or other devices') MMIO space. I could remotely see a need
>>>> for this for e.g. frame buffers, but I have difficulty understanding
>>>> this for USB devices. Please at the very least provide details on the
>>>> MMIO regions that those devices have, and which of them you
>>>> observed IOMMU faults on.
>>>
>>> It would appear that, in this case, it is a USB controller lacking an
>>> appropriate RMRR description in the ACPI tables.
>> 
>> No, RMRRs only reference RAM pages afaik.
> 
> According to Linux IOMMU support document RMRRs reference regions marked
> as "reserved" in the e820 memory map:
> 
> https://www.kernel.org/doc/Documentation/Intel-IOMMU.txt 

Exactly. And MMIO PCI BARs in particular are never to be
reflected in the E820 (not the least because they're relocatable).

> I don't think we are setting proper IOMMU entries for this regions at
> all with the current PVH Dom0 code. IMHO instead of just adding IOMMU
> entries for every MMIO region we should just add IOMMU entries for the
> RMRR regions.

Yes, RMRR regions should certainly be put there as r/w entries.

Jan

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-30 16:34               ` Elena Ufimtseva
@ 2015-01-30 16:48                 ` Jan Beulich
  0 siblings, 0 replies; 27+ messages in thread
From: Jan Beulich @ 2015-01-30 16:48 UTC (permalink / raw)
  To: Elena Ufimtseva
  Cc: kevin.tian, andrew.cooper3, tim, yang.z.zhang, xen-devel,
	boris.ostrovsky

>>> On 30.01.15 at 17:34, <elena.ufimtseva@oracle.com> wrote:
> On Tue, Jan 27, 2015 at 08:24:36AM +0000, Jan Beulich wrote:
>> >>> On 26.01.15 at 18:30, <elena.ufimtseva@oracle.com> wrote:
>> > On Mon, Jan 26, 2015 at 05:06:12PM +0000, Jan Beulich wrote:
>> >> >>> On 26.01.15 at 17:57, <elena.ufimtseva@oracle.com> wrote:
>> >> > On Fri, Jan 23, 2015 at 10:50:23AM +0000, Jan Beulich wrote:
>> >> >> >>> On 22.01.15 at 18:34, <elena.ufimtseva@oracle.com> wrote:
>> >> >> > (XEN)  00000000d56f0000 - 00000000d5fff000 (reserved)
>> >> >> 
>> >> >> So this is where one of the RMRRs sits in (and also where
>> >> >> the faults occur according to the two numbers you sent
>> >> >> earlier, which - as others have already said - is an indication
>> >> >> of the reported RMRRs being incomplete), ...
>> >> >> 
>> >> >> > (XEN)  00000000d5fff000 - 00000000d6000000 (usable)
>> >> >> > (XEN)  00000000d7000000 - 00000000df200000 (reserved)
>> >> >> 
>> >> >> ... and this is the exact range of the other one. But the usable
>> >> >> entry between them is a sign of the firmware not doing the
>> >> >> best job in assigning resources.
>> >> >> 
>> >> >> I don't, btw, think that blindly mapping all the reserved regions
>> >> >> into PVH Dom0's P2M would be (or is, if that's what's happening
>> >> >> today) correct - these regions are named reserved for a
>> >> >> reason. In the case here it's actually RAM, not MMIO, and
>> >> >> Dom0 (as well as Xen) has no business accessing these (for others
>> >> >> this may be different, e.g. the LAPIC and IO-APIC ones below,
>> >> >> but Xen learns/knows of them by means different from looking
>> >> >> at the memory map).
>> >> > 
>> >> > I understand this this. At the same time I think pv dom0 does exactly
>> >> > this blind mapping. I also tried to map these regions as read-only and
>> >> > that worked. Can be this an option for these ram regions?
>> >> 
>> >> No - they're reserved, so there shouldn't be _any_ access to them.
>> >> The only possible workaround I see as acceptable would be the
>> >> already proposed addition of a command line option allowing to
>> >> specify additional RMRR-like regions.
>> >> 
>> > 
>> > Understood. And I am guessing the permissions overloading option should
>> > be available as well? For example, RW or R only. RMRRs are always mapped 
>> > with RW.
>> 
>> That's an option, but not a requirement imo.
>> 
>> > Why can be this a platform quirk?
>> 
>> Did you mean "can't"? If not, I don't understand the question. If so,
>> remember that we're talking about RAM allocated by the firmware
>> for special purposes. Hence such a quirk would need tailoring to any
>> particular published firmware version, and would need to take into
>> account any differences in the memory use that may result from
>> setting firmware options differently (and assuming that the memory
>> use is deterministic across boots when the options don't change -
>> I've seen systems where memory use differed between warm and
>> cold boots). IOW, not something that's likely to be practical.
> 
> What about pv dom0 case? pv dom0 maps these reserved memory ranges with
> RW access rights. Should be this unified in some way?

I'm again having some difficulty relating the question to the context
given. But anyway - where do you see Dom0 getting reserved
memory regions mapped RW unconditionally? The fact that
iommu_inclusive_mapping=1 by default is to cover firmware bugs
afaik. I could see us altering this at some point to only behave that
way on older systems. But that's a decision mainly to be made by
the VT-d maintainers.

Jan

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-27  8:24             ` Jan Beulich
  2015-01-27 15:07               ` Elena Ufimtseva
@ 2015-01-30 16:34               ` Elena Ufimtseva
  2015-01-30 16:48                 ` Jan Beulich
  1 sibling, 1 reply; 27+ messages in thread
From: Elena Ufimtseva @ 2015-01-30 16:34 UTC (permalink / raw)
  To: Jan Beulich
  Cc: kevin.tian, andrew.cooper3, tim, yang.z.zhang, xen-devel,
	boris.ostrovsky

On Tue, Jan 27, 2015 at 08:24:36AM +0000, Jan Beulich wrote:
> >>> On 26.01.15 at 18:30, <elena.ufimtseva@oracle.com> wrote:
> > On Mon, Jan 26, 2015 at 05:06:12PM +0000, Jan Beulich wrote:
> >> >>> On 26.01.15 at 17:57, <elena.ufimtseva@oracle.com> wrote:
> >> > On Fri, Jan 23, 2015 at 10:50:23AM +0000, Jan Beulich wrote:
> >> >> >>> On 22.01.15 at 18:34, <elena.ufimtseva@oracle.com> wrote:
> >> >> > (XEN)  00000000d56f0000 - 00000000d5fff000 (reserved)
> >> >> 
> >> >> So this is where one of the RMRRs sits in (and also where
> >> >> the faults occur according to the two numbers you sent
> >> >> earlier, which - as others have already said - is an indication
> >> >> of the reported RMRRs being incomplete), ...
> >> >> 
> >> >> > (XEN)  00000000d5fff000 - 00000000d6000000 (usable)
> >> >> > (XEN)  00000000d7000000 - 00000000df200000 (reserved)
> >> >> 
> >> >> ... and this is the exact range of the other one. But the usable
> >> >> entry between them is a sign of the firmware not doing the
> >> >> best job in assigning resources.
> >> >> 
> >> >> I don't, btw, think that blindly mapping all the reserved regions
> >> >> into PVH Dom0's P2M would be (or is, if that's what's happening
> >> >> today) correct - these regions are named reserved for a
> >> >> reason. In the case here it's actually RAM, not MMIO, and
> >> >> Dom0 (as well as Xen) has no business accessing these (for others
> >> >> this may be different, e.g. the LAPIC and IO-APIC ones below,
> >> >> but Xen learns/knows of them by means different from looking
> >> >> at the memory map).
> >> > 
> >> > I understand this this. At the same time I think pv dom0 does exactly
> >> > this blind mapping. I also tried to map these regions as read-only and
> >> > that worked. Can be this an option for these ram regions?
> >> 
> >> No - they're reserved, so there shouldn't be _any_ access to them.
> >> The only possible workaround I see as acceptable would be the
> >> already proposed addition of a command line option allowing to
> >> specify additional RMRR-like regions.
> >> 
> > 
> > Understood. And I am guessing the permissions overloading option should
> > be available as well? For example, RW or R only. RMRRs are always mapped 
> > with RW.
> 
> That's an option, but not a requirement imo.
> 
> > Why can be this a platform quirk?
> 
> Did you mean "can't"? If not, I don't understand the question. If so,
> remember that we're talking about RAM allocated by the firmware
> for special purposes. Hence such a quirk would need tailoring to any
> particular published firmware version, and would need to take into
> account any differences in the memory use that may result from
> setting firmware options differently (and assuming that the memory
> use is deterministic across boots when the options don't change -
> I've seen systems where memory use differed between warm and
> cold boots). IOW, not something that's likely to be practical.
> 
> Jan

What about pv dom0 case? pv dom0 maps these reserved memory ranges with
RW access rights. Should be this unified in some way?

> 

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-27 15:05               ` Elena Ufimtseva
@ 2015-01-28  2:28                 ` Tian, Kevin
  0 siblings, 0 replies; 27+ messages in thread
From: Tian, Kevin @ 2015-01-28  2:28 UTC (permalink / raw)
  To: Elena Ufimtseva
  Cc: andrew.cooper3, tim, xen-devel, JBeulich, Zhang, Yang Z,
	xen-devel, boris.ostrovsky

> From: Elena Ufimtseva [mailto:elena.ufimtseva@oracle.com]
> Sent: Tuesday, January 27, 2015 11:06 PM
> 
> On Tue, Jan 27, 2015 at 06:41:39AM +0000, Tian, Kevin wrote:
> > > From: Elena Ufimtseva [mailto:elena.ufimtseva@oracle.com]
> > > Sent: Tuesday, January 27, 2015 1:31 AM
> > >
> > > On Mon, Jan 26, 2015 at 05:06:12PM +0000, Jan Beulich wrote:
> > > > >>> On 26.01.15 at 17:57, <elena.ufimtseva@oracle.com> wrote:
> > > > > On Fri, Jan 23, 2015 at 10:50:23AM +0000, Jan Beulich wrote:
> > > > >> >>> On 22.01.15 at 18:34, <elena.ufimtseva@oracle.com> wrote:
> > > > >> > (XEN)  00000000d56f0000 - 00000000d5fff000 (reserved)
> > > > >>
> > > > >> So this is where one of the RMRRs sits in (and also where
> > > > >> the faults occur according to the two numbers you sent
> > > > >> earlier, which - as others have already said - is an indication
> > > > >> of the reported RMRRs being incomplete), ...
> > > > >>
> > > > >> > (XEN)  00000000d5fff000 - 00000000d6000000 (usable)
> > > > >> > (XEN)  00000000d7000000 - 00000000df200000 (reserved)
> > > > >>
> > > > >> ... and this is the exact range of the other one. But the usable
> > > > >> entry between them is a sign of the firmware not doing the
> > > > >> best job in assigning resources.
> > > > >>
> > > > >> I don't, btw, think that blindly mapping all the reserved regions
> > > > >> into PVH Dom0's P2M would be (or is, if that's what's happening
> > > > >> today) correct - these regions are named reserved for a
> > > > >> reason. In the case here it's actually RAM, not MMIO, and
> > > > >> Dom0 (as well as Xen) has no business accessing these (for others
> > > > >> this may be different, e.g. the LAPIC and IO-APIC ones below,
> > > > >> but Xen learns/knows of them by means different from looking
> > > > >> at the memory map).
> > > > >
> > > > > I understand this this. At the same time I think pv dom0 does exactly
> > > > > this blind mapping. I also tried to map these regions as read-only and
> > > > > that worked. Can be this an option for these ram regions?
> > > >
> > > > No - they're reserved, so there shouldn't be _any_ access to them.
> > > > The only possible workaround I see as acceptable would be the
> > > > already proposed addition of a command line option allowing to
> > > > specify additional RMRR-like regions.
> >
> > yes the proposal RMRR change would allow an user to specify arbitrary
> > regions which should cover such bogus platform.
> 
> Is dom0 rmrr-like region override option is in rmrr design proposal? I
> saw you briefly mentioned this.
> 

current proposal only covers normal VMs, so the proposed enhancements
are in VM config file. For dom0, looks we have to extend cmdline instead.

Thanks
Kevin

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-27  8:24             ` Jan Beulich
@ 2015-01-27 15:07               ` Elena Ufimtseva
  2015-01-30 16:34               ` Elena Ufimtseva
  1 sibling, 0 replies; 27+ messages in thread
From: Elena Ufimtseva @ 2015-01-27 15:07 UTC (permalink / raw)
  To: Jan Beulich
  Cc: kevin.tian, andrew.cooper3, tim, yang.z.zhang, xen-devel,
	boris.ostrovsky

On Tue, Jan 27, 2015 at 08:24:36AM +0000, Jan Beulich wrote:
> >>> On 26.01.15 at 18:30, <elena.ufimtseva@oracle.com> wrote:
> > On Mon, Jan 26, 2015 at 05:06:12PM +0000, Jan Beulich wrote:
> >> >>> On 26.01.15 at 17:57, <elena.ufimtseva@oracle.com> wrote:
> >> > On Fri, Jan 23, 2015 at 10:50:23AM +0000, Jan Beulich wrote:
> >> >> >>> On 22.01.15 at 18:34, <elena.ufimtseva@oracle.com> wrote:
> >> >> > (XEN)  00000000d56f0000 - 00000000d5fff000 (reserved)
> >> >> 
> >> >> So this is where one of the RMRRs sits in (and also where
> >> >> the faults occur according to the two numbers you sent
> >> >> earlier, which - as others have already said - is an indication
> >> >> of the reported RMRRs being incomplete), ...
> >> >> 
> >> >> > (XEN)  00000000d5fff000 - 00000000d6000000 (usable)
> >> >> > (XEN)  00000000d7000000 - 00000000df200000 (reserved)
> >> >> 
> >> >> ... and this is the exact range of the other one. But the usable
> >> >> entry between them is a sign of the firmware not doing the
> >> >> best job in assigning resources.
> >> >> 
> >> >> I don't, btw, think that blindly mapping all the reserved regions
> >> >> into PVH Dom0's P2M would be (or is, if that's what's happening
> >> >> today) correct - these regions are named reserved for a
> >> >> reason. In the case here it's actually RAM, not MMIO, and
> >> >> Dom0 (as well as Xen) has no business accessing these (for others
> >> >> this may be different, e.g. the LAPIC and IO-APIC ones below,
> >> >> but Xen learns/knows of them by means different from looking
> >> >> at the memory map).
> >> > 
> >> > I understand this this. At the same time I think pv dom0 does exactly
> >> > this blind mapping. I also tried to map these regions as read-only and
> >> > that worked. Can be this an option for these ram regions?
> >> 
> >> No - they're reserved, so there shouldn't be _any_ access to them.
> >> The only possible workaround I see as acceptable would be the
> >> already proposed addition of a command line option allowing to
> >> specify additional RMRR-like regions.
> >> 
> > 
> > Understood. And I am guessing the permissions overloading option should
> > be available as well? For example, RW or R only. RMRRs are always mapped 
> > with RW.
> 
> That's an option, but not a requirement imo.
> 
> > Why can be this a platform quirk?
> 
> Did you mean "can't"? If not, I don't understand the question. If so,

Yes, that is "can't".

> remember that we're talking about RAM allocated by the firmware
> for special purposes. Hence such a quirk would need tailoring to any
> particular published firmware version, and would need to take into
> account any differences in the memory use that may result from
> setting firmware options differently (and assuming that the memory
> use is deterministic across boots when the options don't change -
> I've seen systems where memory use differed between warm and
> cold boots). IOW, not something that's likely to be practical.

I see, thanks for explanation.
> 
> Jan
> 

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-27  6:41             ` Tian, Kevin
@ 2015-01-27 15:05               ` Elena Ufimtseva
  2015-01-28  2:28                 ` Tian, Kevin
  0 siblings, 1 reply; 27+ messages in thread
From: Elena Ufimtseva @ 2015-01-27 15:05 UTC (permalink / raw)
  To: Tian, Kevin
  Cc: andrew.cooper3, tim, xen-devel, JBeulich, Zhang, Yang Z,
	xen-devel, boris.ostrovsky

On Tue, Jan 27, 2015 at 06:41:39AM +0000, Tian, Kevin wrote:
> > From: Elena Ufimtseva [mailto:elena.ufimtseva@oracle.com]
> > Sent: Tuesday, January 27, 2015 1:31 AM
> > 
> > On Mon, Jan 26, 2015 at 05:06:12PM +0000, Jan Beulich wrote:
> > > >>> On 26.01.15 at 17:57, <elena.ufimtseva@oracle.com> wrote:
> > > > On Fri, Jan 23, 2015 at 10:50:23AM +0000, Jan Beulich wrote:
> > > >> >>> On 22.01.15 at 18:34, <elena.ufimtseva@oracle.com> wrote:
> > > >> > (XEN)  00000000d56f0000 - 00000000d5fff000 (reserved)
> > > >>
> > > >> So this is where one of the RMRRs sits in (and also where
> > > >> the faults occur according to the two numbers you sent
> > > >> earlier, which - as others have already said - is an indication
> > > >> of the reported RMRRs being incomplete), ...
> > > >>
> > > >> > (XEN)  00000000d5fff000 - 00000000d6000000 (usable)
> > > >> > (XEN)  00000000d7000000 - 00000000df200000 (reserved)
> > > >>
> > > >> ... and this is the exact range of the other one. But the usable
> > > >> entry between them is a sign of the firmware not doing the
> > > >> best job in assigning resources.
> > > >>
> > > >> I don't, btw, think that blindly mapping all the reserved regions
> > > >> into PVH Dom0's P2M would be (or is, if that's what's happening
> > > >> today) correct - these regions are named reserved for a
> > > >> reason. In the case here it's actually RAM, not MMIO, and
> > > >> Dom0 (as well as Xen) has no business accessing these (for others
> > > >> this may be different, e.g. the LAPIC and IO-APIC ones below,
> > > >> but Xen learns/knows of them by means different from looking
> > > >> at the memory map).
> > > >
> > > > I understand this this. At the same time I think pv dom0 does exactly
> > > > this blind mapping. I also tried to map these regions as read-only and
> > > > that worked. Can be this an option for these ram regions?
> > >
> > > No - they're reserved, so there shouldn't be _any_ access to them.
> > > The only possible workaround I see as acceptable would be the
> > > already proposed addition of a command line option allowing to
> > > specify additional RMRR-like regions.
> 
> yes the proposal RMRR change would allow an user to specify arbitrary 
> regions which should cover such bogus platform.

Is dom0 rmrr-like region override option is in rmrr design proposal? I
saw you briefly mentioned this.

> 
> > >
> > 
> > Understood. And I am guessing the permissions overloading option should
> > be available as well? For example, RW or R only. RMRRs are always mapped
> > with
> > RW.
> > Why can be this a platform quirk?
> > 
> 
> I don't see why you want permission overloading here. Unless there's a clear
> description from vendor about the exact behavior, we even don't know how
> to describe this quirk since it's only based on your experiments (who knows
> whether the controller may use R or RW in different situations) :-)

Its going to be hard to describe override option too )

> Thanks
> Kevin

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-26 17:30           ` Elena Ufimtseva
  2015-01-27  6:41             ` Tian, Kevin
@ 2015-01-27  8:24             ` Jan Beulich
  2015-01-27 15:07               ` Elena Ufimtseva
  2015-01-30 16:34               ` Elena Ufimtseva
  1 sibling, 2 replies; 27+ messages in thread
From: Jan Beulich @ 2015-01-27  8:24 UTC (permalink / raw)
  To: Elena Ufimtseva
  Cc: kevin.tian, andrew.cooper3, tim, yang.z.zhang, xen-devel,
	boris.ostrovsky

>>> On 26.01.15 at 18:30, <elena.ufimtseva@oracle.com> wrote:
> On Mon, Jan 26, 2015 at 05:06:12PM +0000, Jan Beulich wrote:
>> >>> On 26.01.15 at 17:57, <elena.ufimtseva@oracle.com> wrote:
>> > On Fri, Jan 23, 2015 at 10:50:23AM +0000, Jan Beulich wrote:
>> >> >>> On 22.01.15 at 18:34, <elena.ufimtseva@oracle.com> wrote:
>> >> > (XEN)  00000000d56f0000 - 00000000d5fff000 (reserved)
>> >> 
>> >> So this is where one of the RMRRs sits in (and also where
>> >> the faults occur according to the two numbers you sent
>> >> earlier, which - as others have already said - is an indication
>> >> of the reported RMRRs being incomplete), ...
>> >> 
>> >> > (XEN)  00000000d5fff000 - 00000000d6000000 (usable)
>> >> > (XEN)  00000000d7000000 - 00000000df200000 (reserved)
>> >> 
>> >> ... and this is the exact range of the other one. But the usable
>> >> entry between them is a sign of the firmware not doing the
>> >> best job in assigning resources.
>> >> 
>> >> I don't, btw, think that blindly mapping all the reserved regions
>> >> into PVH Dom0's P2M would be (or is, if that's what's happening
>> >> today) correct - these regions are named reserved for a
>> >> reason. In the case here it's actually RAM, not MMIO, and
>> >> Dom0 (as well as Xen) has no business accessing these (for others
>> >> this may be different, e.g. the LAPIC and IO-APIC ones below,
>> >> but Xen learns/knows of them by means different from looking
>> >> at the memory map).
>> > 
>> > I understand this this. At the same time I think pv dom0 does exactly
>> > this blind mapping. I also tried to map these regions as read-only and
>> > that worked. Can be this an option for these ram regions?
>> 
>> No - they're reserved, so there shouldn't be _any_ access to them.
>> The only possible workaround I see as acceptable would be the
>> already proposed addition of a command line option allowing to
>> specify additional RMRR-like regions.
>> 
> 
> Understood. And I am guessing the permissions overloading option should
> be available as well? For example, RW or R only. RMRRs are always mapped 
> with RW.

That's an option, but not a requirement imo.

> Why can be this a platform quirk?

Did you mean "can't"? If not, I don't understand the question. If so,
remember that we're talking about RAM allocated by the firmware
for special purposes. Hence such a quirk would need tailoring to any
particular published firmware version, and would need to take into
account any differences in the memory use that may result from
setting firmware options differently (and assuming that the memory
use is deterministic across boots when the options don't change -
I've seen systems where memory use differed between warm and
cold boots). IOW, not something that's likely to be practical.

Jan

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-26 17:30           ` Elena Ufimtseva
@ 2015-01-27  6:41             ` Tian, Kevin
  2015-01-27 15:05               ` Elena Ufimtseva
  2015-01-27  8:24             ` Jan Beulich
  1 sibling, 1 reply; 27+ messages in thread
From: Tian, Kevin @ 2015-01-27  6:41 UTC (permalink / raw)
  To: Elena Ufimtseva, xen-devel
  Cc: andrew.cooper3, tim, xen-devel, JBeulich, Zhang, Yang Z, boris.ostrovsky

> From: Elena Ufimtseva [mailto:elena.ufimtseva@oracle.com]
> Sent: Tuesday, January 27, 2015 1:31 AM
> 
> On Mon, Jan 26, 2015 at 05:06:12PM +0000, Jan Beulich wrote:
> > >>> On 26.01.15 at 17:57, <elena.ufimtseva@oracle.com> wrote:
> > > On Fri, Jan 23, 2015 at 10:50:23AM +0000, Jan Beulich wrote:
> > >> >>> On 22.01.15 at 18:34, <elena.ufimtseva@oracle.com> wrote:
> > >> > (XEN)  00000000d56f0000 - 00000000d5fff000 (reserved)
> > >>
> > >> So this is where one of the RMRRs sits in (and also where
> > >> the faults occur according to the two numbers you sent
> > >> earlier, which - as others have already said - is an indication
> > >> of the reported RMRRs being incomplete), ...
> > >>
> > >> > (XEN)  00000000d5fff000 - 00000000d6000000 (usable)
> > >> > (XEN)  00000000d7000000 - 00000000df200000 (reserved)
> > >>
> > >> ... and this is the exact range of the other one. But the usable
> > >> entry between them is a sign of the firmware not doing the
> > >> best job in assigning resources.
> > >>
> > >> I don't, btw, think that blindly mapping all the reserved regions
> > >> into PVH Dom0's P2M would be (or is, if that's what's happening
> > >> today) correct - these regions are named reserved for a
> > >> reason. In the case here it's actually RAM, not MMIO, and
> > >> Dom0 (as well as Xen) has no business accessing these (for others
> > >> this may be different, e.g. the LAPIC and IO-APIC ones below,
> > >> but Xen learns/knows of them by means different from looking
> > >> at the memory map).
> > >
> > > I understand this this. At the same time I think pv dom0 does exactly
> > > this blind mapping. I also tried to map these regions as read-only and
> > > that worked. Can be this an option for these ram regions?
> >
> > No - they're reserved, so there shouldn't be _any_ access to them.
> > The only possible workaround I see as acceptable would be the
> > already proposed addition of a command line option allowing to
> > specify additional RMRR-like regions.

yes the proposal RMRR change would allow an user to specify arbitrary 
regions which should cover such bogus platform.

> >
> 
> Understood. And I am guessing the permissions overloading option should
> be available as well? For example, RW or R only. RMRRs are always mapped
> with
> RW.
> Why can be this a platform quirk?
> 

I don't see why you want permission overloading here. Unless there's a clear
description from vendor about the exact behavior, we even don't know how
to describe this quirk since it's only based on your experiments (who knows
whether the controller may use R or RW in different situations) :-)

Thanks
Kevin

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-26 17:06         ` Jan Beulich
@ 2015-01-26 17:30           ` Elena Ufimtseva
  2015-01-27  6:41             ` Tian, Kevin
  2015-01-27  8:24             ` Jan Beulich
  0 siblings, 2 replies; 27+ messages in thread
From: Elena Ufimtseva @ 2015-01-26 17:30 UTC (permalink / raw)
  To: xen-devel
  Cc: kevin.tian, andrew.cooper3, tim, xen-devel, JBeulich,
	yang.z.zhang, boris.ostrovsky

On Mon, Jan 26, 2015 at 05:06:12PM +0000, Jan Beulich wrote:
> >>> On 26.01.15 at 17:57, <elena.ufimtseva@oracle.com> wrote:
> > On Fri, Jan 23, 2015 at 10:50:23AM +0000, Jan Beulich wrote:
> >> >>> On 22.01.15 at 18:34, <elena.ufimtseva@oracle.com> wrote:
> >> > (XEN)  00000000d56f0000 - 00000000d5fff000 (reserved)
> >> 
> >> So this is where one of the RMRRs sits in (and also where
> >> the faults occur according to the two numbers you sent
> >> earlier, which - as others have already said - is an indication
> >> of the reported RMRRs being incomplete), ...
> >> 
> >> > (XEN)  00000000d5fff000 - 00000000d6000000 (usable)
> >> > (XEN)  00000000d7000000 - 00000000df200000 (reserved)
> >> 
> >> ... and this is the exact range of the other one. But the usable
> >> entry between them is a sign of the firmware not doing the
> >> best job in assigning resources.
> >> 
> >> I don't, btw, think that blindly mapping all the reserved regions
> >> into PVH Dom0's P2M would be (or is, if that's what's happening
> >> today) correct - these regions are named reserved for a
> >> reason. In the case here it's actually RAM, not MMIO, and
> >> Dom0 (as well as Xen) has no business accessing these (for others
> >> this may be different, e.g. the LAPIC and IO-APIC ones below,
> >> but Xen learns/knows of them by means different from looking
> >> at the memory map).
> > 
> > I understand this this. At the same time I think pv dom0 does exactly
> > this blind mapping. I also tried to map these regions as read-only and
> > that worked. Can be this an option for these ram regions?
> 
> No - they're reserved, so there shouldn't be _any_ access to them.
> The only possible workaround I see as acceptable would be the
> already proposed addition of a command line option allowing to
> specify additional RMRR-like regions.
> 

Understood. And I am guessing the permissions overloading option should
be available as well? For example, RW or R only. RMRRs are always mapped with
RW.
Why can be this a platform quirk?

> Jan
> 

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-26 16:57       ` Elena Ufimtseva
@ 2015-01-26 17:06         ` Jan Beulich
  2015-01-26 17:30           ` Elena Ufimtseva
  0 siblings, 1 reply; 27+ messages in thread
From: Jan Beulich @ 2015-01-26 17:06 UTC (permalink / raw)
  To: Elena Ufimtseva
  Cc: kevin.tian, andrew.cooper3, tim, xen-devel, yang.z.zhang,
	boris.ostrovsky

>>> On 26.01.15 at 17:57, <elena.ufimtseva@oracle.com> wrote:
> On Fri, Jan 23, 2015 at 10:50:23AM +0000, Jan Beulich wrote:
>> >>> On 22.01.15 at 18:34, <elena.ufimtseva@oracle.com> wrote:
>> > (XEN)  00000000d56f0000 - 00000000d5fff000 (reserved)
>> 
>> So this is where one of the RMRRs sits in (and also where
>> the faults occur according to the two numbers you sent
>> earlier, which - as others have already said - is an indication
>> of the reported RMRRs being incomplete), ...
>> 
>> > (XEN)  00000000d5fff000 - 00000000d6000000 (usable)
>> > (XEN)  00000000d7000000 - 00000000df200000 (reserved)
>> 
>> ... and this is the exact range of the other one. But the usable
>> entry between them is a sign of the firmware not doing the
>> best job in assigning resources.
>> 
>> I don't, btw, think that blindly mapping all the reserved regions
>> into PVH Dom0's P2M would be (or is, if that's what's happening
>> today) correct - these regions are named reserved for a
>> reason. In the case here it's actually RAM, not MMIO, and
>> Dom0 (as well as Xen) has no business accessing these (for others
>> this may be different, e.g. the LAPIC and IO-APIC ones below,
>> but Xen learns/knows of them by means different from looking
>> at the memory map).
> 
> I understand this this. At the same time I think pv dom0 does exactly
> this blind mapping. I also tried to map these regions as read-only and
> that worked. Can be this an option for these ram regions?

No - they're reserved, so there shouldn't be _any_ access to them.
The only possible workaround I see as acceptable would be the
already proposed addition of a command line option allowing to
specify additional RMRR-like regions.

Jan

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-23 10:50     ` Jan Beulich
@ 2015-01-26 16:57       ` Elena Ufimtseva
  2015-01-26 17:06         ` Jan Beulich
  0 siblings, 1 reply; 27+ messages in thread
From: Elena Ufimtseva @ 2015-01-26 16:57 UTC (permalink / raw)
  To: xen-devel
  Cc: kevin.tian, andrew.cooper3, tim, JBeulich, yang.z.zhang, boris.ostrovsky

On Fri, Jan 23, 2015 at 10:50:23AM +0000, Jan Beulich wrote:
> >>> On 22.01.15 at 18:34, <elena.ufimtseva@oracle.com> wrote:
> > On Thu, Jan 22, 2015 at 04:42:52PM +0100, Roger Pau Monné wrote:
> >> El 22/01/15 a les 16.18, Elena Ufimtseva ha escrit:
> >> > 
> >> > ----- JBeulich@suse.com wrote:
> >> > 
> >> >>>>> On 22.01.15 at 12:37, <roger.pau@citrix.com> wrote:
> >> >>> El 22/01/15 a les 12.09, Jan Beulich ha escrit:
> >> >>>>>>> On 22.01.15 at 11:59, <andrew.cooper3@citrix.com> wrote:
> >> >>>>> On 22/01/15 09:53, Jan Beulich wrote:
> >> >>>>>>>>> On 21.01.15 at 21:55, <elena.ufimtseva@oracle.com> wrote:
> >> >>>>>>> p2m_mmio_direct should result in setting IOMMUF_readable and
> >> >> IOMMUF_writable
> >> >>>>>>> flags.
> >> >>>>>>> When pvh domain maps mmio regions, the EPT entries are not
> >> >> getting mapped.
> >> >>>>>>> This leads to IOMMU Page faults for some devices, as for example
> >> >> USB Host
> >> >>>>>>> controllers with embedded Debug devices. See
> >> >> pvh-set-need_iommu-early RFC
> >> >>>>>>> patch discussion fgor detail.
> >> >>>>>> Even more so that the two patches aren't even a series, that
> >> >> part
> >> >>>>>> of the description belongs here, not in the other patch.
> >> >>>>>>
> >> >>>>>>> I will appreciate your comments and ideas in regards to this
> >> >> change.
> >> >>>>>>>
> >> >>>>>>> Looking at Roger patches (xen/pvh: check permissions when adding
> >> >> MMIO 
> >> >>>>>>> regions)
> >> >>>>>>> the mmio memory type is proposed to be changed from
> >> >> p2m_mmio_direct to 
> >> >>>>>>> p2m_access_rw.
> >> >>>>>>> This type still does not have proper IOMMU flags mapping.
> >> >>>>>> A fundamental question is what business devices have to DMA
> >> >> their
> >> >>>>>> own (or other devices') MMIO space. I could remotely see a need
> >> >>>>>> for this for e.g. frame buffers, but I have difficulty
> >> >> understanding
> >> >>>>>> this for USB devices. Please at the very least provide details on
> >> >> the
> >> >>>>>> MMIO regions that those devices have, and which of them you
> >> >>>>>> observed IOMMU faults on.
> >> >>>>>
> >> >>>>> It would appear that, in this case, it is a USB controller lacking
> >> >> an
> >> >>>>> appropriate RMRR description in the ACPI tables.
> >> >>>>
> >> >>>> No, RMRRs only reference RAM pages afaik.
> >> >>>
> >> >>> According to Linux IOMMU support document RMRRs reference regions
> >> >> marked
> >> >>> as "reserved" in the e820 memory map:
> >> >>>
> >> >>> https://www.kernel.org/doc/Documentation/Intel-IOMMU.txt 
> >> >>
> >> >> Exactly. And MMIO PCI BARs in particular are never to be
> >> >> reflected in the E820 (not the least because they're relocatable).
> >> >>
> >> >>> I don't think we are setting proper IOMMU entries for this regions
> >> >> at
> >> >>> all with the current PVH Dom0 code. IMHO instead of just adding
> >> >> IOMMU
> >> >>> entries for every MMIO region we should just add IOMMU entries for
> >> >> the
> >> >>> RMRR regions.
> >> >>
> >> >> Yes, RMRR regions should certainly be put there as r/w entries.
> >> >>
> >> >> Jan
> >> > 
> >> > How it will help in cases like this when this regions are not reported as 
> > RMRRs in ACPI?
> >> 
> >> AFAIK even if they are properly reported as RMRRs they won't have the
> >> right IOMMU mappings, are you sure they are not reported as RMRRs?
> >> 
> >> Roger.
> >>
> > 
> > Here are some details on machine config, lspci and etc.
> > 
> > Bare metal:
> > 
> > lspci
> > 
> > 
> > 00:00.0 0600: 8086:0c00 (rev 06)
> > 	Subsystem: 17aa:3097
> > 	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- 
> > FastB2B- DisINTx-
> > 	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ 
> > >SERR- <PERR- INTx-
> > 	Latency: 0
> > 	Capabilities: [e0] Vendor Specific Information: Len=0c <?>
> > 	Kernel driver in use: hsw_uncore
> > 
> > 00:02.0 0300: 8086:0412 (rev 06) (prog-if 00 [VGA controller])
> > 	Subsystem: 17aa:3097
> > 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
> > SERR- FastB2B- DisINTx+
> > 	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- 
> > <PERR- INTx-
> > 	Latency: 0
> > 	Interrupt: pin A routed to IRQ 30
> > 	Region 0: Memory at f7800000 (64-bit, non-prefetchable) [size=4M]
> > 	Region 2: Memory at e0000000 (64-bit, prefetchable) [size=256M]
> > 	Region 4: I/O ports at f000 [size=64]
> > 	Expansion ROM at <unassigned> [disabled]
> > 	Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
> > 		Address: fee00018  Data: 0000
> > 	Capabilities: [d0] Power Management version 2
> > 		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > 		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > 	Capabilities: [a4] PCI Advanced Features
> > 		AFCap: TP+ FLR+
> > 		AFCtrl: FLR-
> > 		AFStatus: TP-
> > 	Kernel driver in use: i915
> > 
> > 00:03.0 0403: 8086:0c0c (rev 06)
> > 	Subsystem: 17aa:3097
> > 	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- 
> > FastB2B- DisINTx+
> > 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- 
> > <PERR- INTx-
> > 	Latency: 0, Cache Line Size: 64 bytes
> > 	Interrupt: pin A routed to IRQ 31
> > 	Region 0: Memory at f7c30000 (64-bit, non-prefetchable) [size=16K]
> > 	Capabilities: [50] Power Management version 2
> > 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > 		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > 	Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit-
> > 		Address: fee003d8  Data: 0000
> > 	Capabilities: [70] Express (v1) Root Complex Integrated Endpoint, MSI 00
> > 		DevCap:	MaxPayload 128 bytes, PhantFunc 0
> > 			ExtTag- RBE-
> > 		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > 			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> > 			MaxPayload 128 bytes, MaxReadReq 128 bytes
> > 		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> > 	Kernel driver in use: snd_hda_intel
> > 
> > 00:14.0 0c03: 8086:8c31 (rev 05) (prog-if 30 [XHCI])
> > 	Subsystem: 17aa:3097
> > 	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- 
> > FastB2B- DisINTx+
> > 	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- 
> > >SERR- <PERR- INTx-
> > 	Latency: 0
> > 	Interrupt: pin A routed to IRQ 28
> > 	Region 0: Memory at f7c20000 (64-bit, non-prefetchable) [size=64K]
> > 	Capabilities: [70] Power Management version 2
> > 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
> > 		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
> > 	Capabilities: [80] MSI: Enable+ Count=1/8 Maskable- 64bit+
> > 		Address: 00000000fee00378  Data: 0000
> > 	Kernel driver in use: xhci_hcd
> > 
> > 00:16.0 0780: 8086:8c3a (rev 04)
> > 	Subsystem: 17aa:3097
> > 	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- 
> > FastB2B- DisINTx+
> > 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- 
> > <PERR- INTx-
> > 	Latency: 0
> > 	Interrupt: pin A routed to IRQ 29
> > 	Region 0: Memory at f7c3b000 (64-bit, non-prefetchable) [size=16]
> > 	Capabilities: [50] Power Management version 3
> > 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > 		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
> > 	Capabilities: [8c] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > 		Address: 00000000fee00398  Data: 0000
> > 	Kernel driver in use: mei_me
> > 
> > 00:19.0 0200: 8086:153a (rev 05)
> > 	Subsystem: 17aa:3097
> > 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
> > SERR- FastB2B- DisINTx+
> > 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- 
> > <PERR- INTx-
> > 	Latency: 0
> > 	Interrupt: pin A routed to IRQ 26
> > 	Region 0: Memory at f7c00000 (32-bit, non-prefetchable) [size=128K]
> > 	Region 1: Memory at f7c39000 (32-bit, non-prefetchable) [size=4K]
> > 	Region 2: I/O ports at f080 [size=32]
> > 	Capabilities: [c8] Power Management version 2
> > 		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > 		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
> > 	Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > 		Address: 00000000fee002f8  Data: 0000
> > 	Capabilities: [e0] PCI Advanced Features
> > 		AFCap: TP+ FLR+
> > 		AFCtrl: FLR-
> > 		AFStatus: TP-
> > 	Kernel driver in use: e1000e
> > 
> > 00:1a.0 0c03: 8086:8c2d (rev 05) (prog-if 20 [EHCI])
> > 	Subsystem: 17aa:3097
> > 	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- 
> > FastB2B- DisINTx-
> > 	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- 
> > >SERR- <PERR- INTx-
> > 	Latency: 0
> > 	Interrupt: pin A routed to IRQ 17
> > 	Region 0: Memory at f7c38000 (32-bit, non-prefetchable) [size=1K]
> > 	Capabilities: [50] Power Management version 2
> > 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > 		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > 	Capabilities: [58] Debug port: BAR=1 offset=00a0
> > 	Capabilities: [98] PCI Advanced Features
> > 		AFCap: TP+ FLR+
> > 		AFCtrl: FLR-
> > 		AFStatus: TP-
> > 	Kernel driver in use: ehci-pci
> > 
> > 00:1c.0 0604: 8086:8c10 (rev d5) (prog-if 00 [Normal decode])
> > 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
> > SERR- FastB2B- DisINTx-
> > 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- 
> > <PERR- INTx-
> > 	Latency: 0, Cache Line Size: 64 bytes
> > 	Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> > 	I/O behind bridge: 0000f000-00000fff
> > 	Memory behind bridge: fff00000-000fffff
> > 	Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff
> > 	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ 
> > <SERR- <PERR-
> > 	BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
> > 		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > 	Capabilities: [40] Express (v2) Root Port (Slot-), MSI 00
> > 		DevCap:	MaxPayload 128 bytes, PhantFunc 0
> > 			ExtTag- RBE+
> > 		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > 			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> > 			MaxPayload 128 bytes, MaxReadReq 128 bytes
> > 		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> > 		LnkCap:	Port #1, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 
> > <4us
> > 			ClockPM- Surprise- LLActRep+ BwNot+
> > 		LnkCtl:	ASPM L0s L1 Enabled; RCB 64 bytes Disabled- CommClk-
> > 			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > 		LnkSta:	Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > 		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> > 		RootCap: CRSVisible-
> > 		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > 		DevCap2: Completion Timeout: Range ABC, TimeoutDis+, LTR+, OBFF Via WAKE# 
> > ARIFwd-
> > 		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled 
> > ARIFwd-
> > 		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
> > 			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- 
> > ComplianceSOS-
> > 			 Compliance De-emphasis: -6dB
> > 		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, 
> > EqualizationPhase1-
> > 			 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> > 	Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
> > 		Address: 00000000  Data: 0000
> > 	Capabilities: [90] Subsystem: 17aa:3097
> > 	Capabilities: [a0] Power Management version 3
> > 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > 		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > 	Kernel driver in use: pcieport
> > 
> > 00:1c.3 0604: 8086:8c16 (rev d5) (prog-if 00 [Normal decode])
> > 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
> > SERR- FastB2B- DisINTx-
> > 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- 
> > <PERR- INTx-
> > 	Latency: 0, Cache Line Size: 64 bytes
> > 	Bus: primary=00, secondary=02, subordinate=03, sec-latency=0
> > 	I/O behind bridge: 0000f000-00000fff
> > 	Memory behind bridge: fff00000-000fffff
> > 	Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff
> > 	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ 
> > <SERR- <PERR-
> > 	BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
> > 		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > 	Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
> > 		DevCap:	MaxPayload 128 bytes, PhantFunc 0
> > 			ExtTag- RBE+
> > 		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > 			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> > 			MaxPayload 128 bytes, MaxReadReq 128 bytes
> > 		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> > 		LnkCap:	Port #4, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 
> > <16us
> > 			ClockPM- Surprise- LLActRep+ BwNot+
> > 		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> > 			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > 		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ 
> > ABWMgmt-
> > 		SltCap:	AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> > 			Slot #3, PowerLimit 10.000W; Interlock- NoCompl+
> > 		SltCtl:	Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> > 			Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
> > 		SltSta:	Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> > 			Changed: MRL- PresDet- LinkState-
> > 		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> > 		RootCap: CRSVisible-
> > 		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > 		DevCap2: Completion Timeout: Range ABC, TimeoutDis+, LTR+, OBFF Not 
> > Supported ARIFwd-
> > 		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled 
> > ARIFwd-
> > 		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
> > 			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- 
> > ComplianceSOS-
> > 			 Compliance De-emphasis: -6dB
> > 		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, 
> > EqualizationPhase1-
> > 			 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> > 	Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
> > 		Address: 00000000  Data: 0000
> > 	Capabilities: [90] Subsystem: 17aa:3097
> > 	Capabilities: [a0] Power Management version 3
> > 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > 		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > 	Kernel driver in use: pcieport
> > 
> > 00:1d.0 0c03: 8086:8c26 (rev 05) (prog-if 20 [EHCI])
> > 	Subsystem: 17aa:3097
> > 	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- 
> > FastB2B- DisINTx-
> > 	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- 
> > >SERR- <PERR- INTx-
> > 	Latency: 0
> > 	Interrupt: pin A routed to IRQ 23
> > 	Region 0: Memory at f7c37000 (32-bit, non-prefetchable) [size=1K]
> > 	Capabilities: [50] Power Management version 2
> > 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > 		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > 	Capabilities: [58] Debug port: BAR=1 offset=00a0
> > 	Capabilities: [98] PCI Advanced Features
> > 		AFCap: TP+ FLR+
> > 		AFCtrl: FLR-
> > 		AFStatus: TP-
> > 	Kernel driver in use: ehci-pci
> > 
> > 00:1f.0 0601: 8086:8c4e (rev 05)
> > 	Subsystem: 17aa:3097
> > 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
> > SERR- FastB2B- DisINTx-
> > 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- 
> > >SERR- <PERR- INTx-
> > 	Latency: 0
> > 	Capabilities: [e0] Vendor Specific Information: Len=0c <?>
> > 	Kernel driver in use: lpc_ich
> > 
> > 00:1f.2 0106: 8086:8c02 (rev 05) (prog-if 01 [AHCI 1.0])
> > 	Subsystem: 17aa:3097
> > 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
> > SERR- FastB2B- DisINTx+
> > 	Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- 
> > >SERR- <PERR- INTx-
> > 	Latency: 0
> > 	Interrupt: pin B routed to IRQ 27
> > 	Region 0: I/O ports at f0d0 [size=8]
> > 	Region 1: I/O ports at f0c0 [size=4]
> > 	Region 2: I/O ports at f0b0 [size=8]
> > 	Region 3: I/O ports at f0a0 [size=4]
> > 	Region 4: I/O ports at f060 [size=32]
> > 	Region 5: Memory at f7c36000 (32-bit, non-prefetchable) [size=2K]
> > 	Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
> > 		Address: fee00358  Data: 0000
> > 	Capabilities: [70] Power Management version 3
> > 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-)
> > 		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
> > 	Capabilities: [a8] SATA HBA v1.0 BAR4 Offset=00000004
> > 	Kernel driver in use: ahci
> > 
> > 00:1f.3 0c05: 8086:8c22 (rev 05)
> > 	Subsystem: 17aa:3097
> > 	Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- 
> > FastB2B- DisINTx-
> > 	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- 
> > >SERR- <PERR- INTx-
> > 	Interrupt: pin C routed to IRQ 18
> > 	Region 0: Memory at f7c35000 (64-bit, non-prefetchable) [size=256]
> > 	Region 4: I/O ports at 0580 [size=32]
> > 
> > 02:00.0 0604: 1283:8893 (rev 41) (prog-if 01 [Subtractive decode])
> > 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
> > SERR- FastB2B- DisINTx-
> > 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- 
> > <PERR- INTx-
> > 	Latency: 0, Cache Line Size: 64 bytes
> > 	Bus: primary=02, secondary=03, subordinate=03, sec-latency=32
> > 	I/O behind bridge: 0000f000-00000fff
> > 	Memory behind bridge: fff00000-000fffff
> > 	Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff
> > 	Secondary status: 66MHz+ FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ 
> > <SERR- <PERR-
> > 	BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
> > 		PriDiscTmr- SecDiscTmr+ DiscTmrStat- DiscTmrSERREn-
> > 	Capabilities: [90] Power Management version 2
> > 		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
> > 		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > 	Capabilities: [a0] Subsystem: 17aa:3097
> > 
> > 
> > 
> > 
> > # dmidecode 2.12
> > SMBIOS 2.8 present.
> > 89 structures occupying 3527 bytes.
> > Table at 0x000EDC10.
> > 
> > Handle 0x0000, DMI type 0, 24 bytes
> > BIOS Information
> > 	Vendor: LENOVO
> > 	Version: FBKTA4AUS
> > 	Release Date: 12/11/2014
> > 	Address: 0xF0000
> > 	Runtime Size: 64 kB
> > 	ROM Size: 6656 kB
> > 	Characteristics:
> > 		PCI is supported
> > 		BIOS is upgradeable
> > 		BIOS shadowing is allowed
> > 		Boot from CD is supported
> > 		Selectable boot is supported
> > 		BIOS ROM is socketed
> > 		EDD is supported
> > 		5.25"/1.2 MB floppy services are supported (int 13h)
> > 		3.5"/720 kB floppy services are supported (int 13h)
> > 		3.5"/2.88 MB floppy services are supported (int 13h)
> > 		Print screen service is supported (int 5h)
> > 		8042 keyboard services are supported (int 9h)
> > 		Serial services are supported (int 14h)
> > 		Printer services are supported (int 17h)
> > 		ACPI is supported
> > 		USB legacy is supported
> > 		BIOS boot specification is supported
> > 		Targeted content distribution is supported
> > 		UEFI is supported
> > 	BIOS Revision: 1.164
> > 	Firmware Revision: 1.13
> > 
> > Handle 0x0001, DMI type 1, 27 bytes
> > System Information
> > 	Manufacturer: LENOVO
> > 	Product Name: 10A6S09R01
> > 	Version: ThinkCentre M93p
> > 	Serial Number:  
> > 	UUID: CD155584-7150-11E4-A0B5-AE7A9F861500
> > 	Wake-up Type: Power Switch
> > 	SKU Number: LENOVO_MT_10A6
> > 	Family: To be filled by O.E.M.
> > 
> > Handle 0x0002, DMI type 2, 15 bytes
> > Base Board Information
> > 	Manufacturer: LENOVO
> > 	Product Name: SHARKBAY
> > 	Version: 0B98401 WIN
> > 	Serial Number:                     
> > 	Asset Tag:                          
> > 	Features:
> > 		Board is a hosting board
> > 		Board is replaceable
> > 	Location In Chassis: To be filled by O.E.M.
> > 	Chassis Handle: 0x0003
> > 	Type: Motherboard
> > 	Contained Object Handles: 0
> > 
> > Handle 0x0003, DMI type 3, 25 bytes
> > Chassis Information
> > 	Manufacturer: To Be Filled By O.E.M.
> > 	Type: Desktop
> > 	Lock: Not Present
> > 	Version: To Be Filled By O.E.M.
> > 	Serial Number: MJ01S0UJ
> > 	Asset Tag:  
> > 	Boot-up State: Safe
> > 	Power Supply State: Safe
> > 	Thermal State: Safe
> > 	Security Status: None
> > 	OEM Information: 0x00000000
> > 	Height: Unspecified
> > 	Number Of Power Cords: 1
> > 	Contained Elements: 1
> > 		<OUT OF SPEC> (0)
> > 	SKU Number: To be filled by O.E.M.
> > 
> > Handle 0x0004, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J1A1
> > 	Internal Connector Type: None
> > 	External Reference Designator: PS2Mouse
> > 	External Connector Type: PS/2
> > 	Port Type: Mouse Port
> > 
> > Handle 0x0005, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J1A1
> > 	Internal Connector Type: None
> > 	External Reference Designator: Keyboard
> > 	External Connector Type: PS/2
> > 	Port Type: Keyboard Port
> > 
> > Handle 0x0006, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J2A1
> > 	Internal Connector Type: None
> > 	External Reference Designator: TV Out
> > 	External Connector Type: Mini Centronics Type-14
> > 	Port Type: Other
> > 
> > Handle 0x0007, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J2A2A
> > 	Internal Connector Type: None
> > 	External Reference Designator: COM A
> > 	External Connector Type: DB-9 male
> > 	Port Type: Serial Port 16550A Compatible
> > 
> > Handle 0x0008, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J2A2B
> > 	Internal Connector Type: None
> > 	External Reference Designator: Video
> > 	External Connector Type: DB-15 female
> > 	Port Type: Video Port
> > 
> > Handle 0x0009, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J3A1
> > 	Internal Connector Type: None
> > 	External Reference Designator: USB1
> > 	External Connector Type: Access Bus (USB)
> > 	Port Type: USB
> > 
> > Handle 0x000A, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J3A1
> > 	Internal Connector Type: None
> > 	External Reference Designator: USB2
> > 	External Connector Type: Access Bus (USB)
> > 	Port Type: USB
> > 
> > Handle 0x000B, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J3A1
> > 	Internal Connector Type: None
> > 	External Reference Designator: USB3
> > 	External Connector Type: Access Bus (USB)
> > 	Port Type: USB
> > 
> > Handle 0x000C, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J9A1 - TPM HDR
> > 	Internal Connector Type: Other
> > 	External Reference Designator: Not Specified
> > 	External Connector Type: None
> > 	Port Type: Other
> > 
> > Handle 0x000D, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J9C1 - PCIE DOCKING CONN
> > 	Internal Connector Type: Other
> > 	External Reference Designator: Not Specified
> > 	External Connector Type: None
> > 	Port Type: Other
> > 
> > Handle 0x000E, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J2B3 - CPU FAN
> > 	Internal Connector Type: Other
> > 	External Reference Designator: Not Specified
> > 	External Connector Type: None
> > 	Port Type: Other
> > 
> > Handle 0x000F, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J6C2 - EXT HDMI
> > 	Internal Connector Type: Other
> > 	External Reference Designator: Not Specified
> > 	External Connector Type: None
> > 	Port Type: Other
> > 
> > Handle 0x0010, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J3C1 - GMCH FAN
> > 	Internal Connector Type: Other
> > 	External Reference Designator: Not Specified
> > 	External Connector Type: None
> > 	Port Type: Other
> > 
> > Handle 0x0011, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J1D1 - ITP
> > 	Internal Connector Type: Other
> > 	External Reference Designator: Not Specified
> > 	External Connector Type: None
> > 	Port Type: Other
> > 
> > Handle 0x0012, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J9E2 - MDC INTPSR
> > 	Internal Connector Type: Other
> > 	External Reference Designator: Not Specified
> > 	External Connector Type: None
> > 	Port Type: Other
> > 
> > Handle 0x0013, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J9E4 - MDC INTPSR
> > 	Internal Connector Type: Other
> > 	External Reference Designator: Not Specified
> > 	External Connector Type: None
> > 	Port Type: Other
> > 
> > Handle 0x0014, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J9E3 - LPC HOT DOCKING
> > 	Internal Connector Type: Other
> > 	External Reference Designator: Not Specified
> > 	External Connector Type: None
> > 	Port Type: Other
> > 
> > Handle 0x0015, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J9E1 - SCAN MATRIX
> > 	Internal Connector Type: Other
> > 	External Reference Designator: Not Specified
> > 	External Connector Type: None
> > 	Port Type: Other
> > 
> > Handle 0x0016, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J9G1 - LPC SIDE BAND
> > 	Internal Connector Type: Other
> > 	External Reference Designator: Not Specified
> > 	External Connector Type: None
> > 	Port Type: Other
> > 
> > Handle 0x0017, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J8F1 - UNIFIED
> > 	Internal Connector Type: Other
> > 	External Reference Designator: Not Specified
> > 	External Connector Type: None
> > 	Port Type: Other
> > 
> > Handle 0x0018, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J6F1 - LVDS
> > 	Internal Connector Type: Other
> > 	External Reference Designator: Not Specified
> > 	External Connector Type: None
> > 	Port Type: Other
> > 
> > Handle 0x0019, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J2F1 - LAI FAN
> > 	Internal Connector Type: Other
> > 	External Reference Designator: Not Specified
> > 	External Connector Type: None
> > 	Port Type: Other
> > 
> > Handle 0x001A, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J2G1 - GFX VID
> > 	Internal Connector Type: Other
> > 	External Reference Designator: Not Specified
> > 	External Connector Type: None
> > 	Port Type: Other
> > 
> > Handle 0x001B, DMI type 8, 9 bytes
> > Port Connector Information
> > 	Internal Reference Designator: J1G6 - AC JACK
> > 	Internal Connector Type: Other
> > 	External Reference Designator: Not Specified
> > 	External Connector Type: None
> > 	Port Type: Other
> > 
> > Handle 0x001C, DMI type 9, 17 bytes
> > System Slot Information
> > 	Designation: J6B2
> > 	Type: x16 PCI Express
> > 	Current Usage: In Use
> > 	Length: Long
> > 	ID: 0
> > 	Characteristics:
> > 		3.3 V is provided
> > 		Opening is shared
> > 		PME signal is supported
> > 	Bus Address: 0000:00:01.0
> > 
> > Handle 0x001D, DMI type 9, 17 bytes
> > System Slot Information
> > 	Designation: J6B1
> > 	Type: x1 PCI Express
> > 	Current Usage: In Use
> > 	Length: Short
> > 	ID: 1
> > 	Characteristics:
> > 		3.3 V is provided
> > 		Opening is shared
> > 		PME signal is supported
> > 	Bus Address: 0000:00:1c.3
> > 
> > Handle 0x001E, DMI type 9, 17 bytes
> > System Slot Information
> > 	Designation: J6D1
> > 	Type: x1 PCI Express
> > 	Current Usage: In Use
> > 	Length: Short
> > 	ID: 2
> > 	Characteristics:
> > 		3.3 V is provided
> > 		Opening is shared
> > 		PME signal is supported
> > 	Bus Address: 0000:00:1c.4
> > 
> > Handle 0x001F, DMI type 9, 17 bytes
> > System Slot Information
> > 	Designation: J7B1
> > 	Type: x1 PCI Express
> > 	Current Usage: In Use
> > 	Length: Short
> > 	ID: 3
> > 	Characteristics:
> > 		3.3 V is provided
> > 		Opening is shared
> > 		PME signal is supported
> > 	Bus Address: 0000:00:1c.5
> > 
> > Handle 0x0020, DMI type 10, 12 bytes
> > On Board Device 1 Information
> > 	Type: Video
> > 	Status: Enabled
> > 	Description:    Onboard Video
> > On Board Device 2 Information
> > 	Type: Ethernet
> > 	Status: Enabled
> > 	Description: Onboard LAN
> > On Board Device 3 Information
> > 	Type: Sound
> > 	Status: Disabled
> > 	Description:   Onboard Audio
> > On Board Device 4 Information
> > 	Type: SATA Controller
> > 	Status: Enabled
> > 	Description:   Sata Controller
> > 
> > Handle 0x0021, DMI type 11, 5 bytes
> > OEM Strings
> > 	String 1: LENOVO ThinkCentre Embedded Controller -[FBCT13A-1.13]-
> > 	String 2: LENOVO ThinkCentre BIOS Boot Block Revision 1.A1
> > 
> > Handle 0x0022, DMI type 12, 5 bytes
> > System Configuration Options
> > 	Option 1: scre++
> > 
> > Handle 0x0023, DMI type 24, 5 bytes
> > Hardware Security
> > 	Power-On Password Status: Disabled
> > 	Keyboard Password Status: Enabled
> > 	Administrator Password Status: Disabled
> > 	Front Panel Reset Status: Not Implemented
> > 
> > Handle 0x0024, DMI type 32, 20 bytes
> > System Boot Information
> > 	Status: No errors detected
> > 
> > Handle 0x0025, DMI type 34, 11 bytes
> > Management Device
> > 	Description: LM78-1
> > 	Type: LM78
> > 	Address: 0x00000000
> > 	Address Type: I/O Port
> > 
> > Handle 0x0026, DMI type 26, 22 bytes
> > Voltage Probe
> > 	Description: LM78A
> > 	Location: <OUT OF SPEC>
> > 	Status: <OUT OF SPEC>
> > 	Maximum Value: Unknown
> > 	Minimum Value: Unknown
> > 	Resolution: Unknown
> > 	Tolerance: Unknown
> > 	Accuracy: Unknown
> > 	OEM-specific Information: 0x00000000
> > 	Nominal Value: Unknown
> > 
> > Handle 0x0027, DMI type 36, 16 bytes
> > Management Device Threshold Data
> > 	Lower Non-critical Threshold: 1
> > 	Upper Non-critical Threshold: 2
> > 	Lower Critical Threshold: 3
> > 	Upper Critical Threshold: 4
> > 	Lower Non-recoverable Threshold: 5
> > 	Upper Non-recoverable Threshold: 6
> > 
> > Handle 0x0028, DMI type 35, 11 bytes
> > Management Device Component
> > 	Description: To Be Filled By O.E.M.
> > 	Management Device Handle: 0x0025
> > 	Component Handle: 0x0025
> > 	Threshold Handle: 0x0026
> > 
> > Handle 0x0029, DMI type 28, 22 bytes
> > Temperature Probe
> > 	Description: LM78A
> > 	Location: <OUT OF SPEC>
> > 	Status: <OUT OF SPEC>
> > 	Maximum Value: Unknown
> > 	Minimum Value: Unknown
> > 	Resolution: Unknown
> > 	Tolerance: Unknown
> > 	Accuracy: Unknown
> > 	OEM-specific Information: 0x00000000
> > 	Nominal Value: Unknown
> > 
> > Handle 0x002A, DMI type 36, 16 bytes
> > Management Device Threshold Data
> > 	Lower Non-critical Threshold: 1
> > 	Upper Non-critical Threshold: 2
> > 	Lower Critical Threshold: 3
> > 	Upper Critical Threshold: 4
> > 	Lower Non-recoverable Threshold: 5
> > 	Upper Non-recoverable Threshold: 6
> > 
> > Handle 0x002B, DMI type 35, 11 bytes
> > Management Device Component
> > 	Description: To Be Filled By O.E.M.
> > 	Management Device Handle: 0x0025
> > 	Component Handle: 0x0028
> > 	Threshold Handle: 0x0029
> > 
> > Handle 0x002C, DMI type 27, 15 bytes
> > Cooling Device
> > 	Temperature Probe Handle: 0x0029
> > 	Type: <OUT OF SPEC>
> > 	Status: <OUT OF SPEC>
> > 	Cooling Unit Group: 1
> > 	OEM-specific Information: 0x00000000
> > 	Nominal Speed: Unknown Or Non-rotating
> > 	Description: Cooling Dev 1
> > 
> > Handle 0x002D, DMI type 36, 16 bytes
> > Management Device Threshold Data
> > 	Lower Non-critical Threshold: 1
> > 	Upper Non-critical Threshold: 2
> > 	Lower Critical Threshold: 3
> > 	Upper Critical Threshold: 4
> > 	Lower Non-recoverable Threshold: 5
> > 	Upper Non-recoverable Threshold: 6
> > 
> > Handle 0x002E, DMI type 35, 11 bytes
> > Management Device Component
> > 	Description: To Be Filled By O.E.M.
> > 	Management Device Handle: 0x0025
> > 	Component Handle: 0x002B
> > 	Threshold Handle: 0x002C
> > 
> > Handle 0x002F, DMI type 27, 15 bytes
> > Cooling Device
> > 	Temperature Probe Handle: 0x0029
> > 	Type: <OUT OF SPEC>
> > 	Status: <OUT OF SPEC>
> > 	Cooling Unit Group: 1
> > 	OEM-specific Information: 0x00000000
> > 	Nominal Speed: Unknown Or Non-rotating
> > 	Description: Not Specified
> > 
> > Handle 0x0030, DMI type 36, 16 bytes
> > Management Device Threshold Data
> > 	Lower Non-critical Threshold: 1
> > 	Upper Non-critical Threshold: 2
> > 	Lower Critical Threshold: 3
> > 	Upper Critical Threshold: 4
> > 	Lower Non-recoverable Threshold: 5
> > 	Upper Non-recoverable Threshold: 6
> > 
> > Handle 0x0031, DMI type 35, 11 bytes
> > Management Device Component
> > 	Description: To Be Filled By O.E.M.
> > 	Management Device Handle: 0x0025
> > 	Component Handle: 0x002E
> > 	Threshold Handle: 0x002F
> > 
> > Handle 0x0032, DMI type 29, 22 bytes
> > Electrical Current Probe
> > 	Description: ABC
> > 	Location: <OUT OF SPEC>
> > 	Status: <OUT OF SPEC>
> > 	Maximum Value: Unknown
> > 	Minimum Value: Unknown
> > 	Resolution: Unknown
> > 	Tolerance: Unknown
> > 	Accuracy: Unknown
> > 	OEM-specific Information: 0x00000000
> > 	Nominal Value: Unknown
> > 
> > Handle 0x0033, DMI type 36, 16 bytes
> > Management Device Threshold Data
> > 
> > Handle 0x0034, DMI type 35, 11 bytes
> > Management Device Component
> > 	Description: To Be Filled By O.E.M.
> > 	Management Device Handle: 0x0025
> > 	Component Handle: 0x0031
> > 	Threshold Handle: 0x002F
> > 
> > Handle 0x0035, DMI type 26, 22 bytes
> > Voltage Probe
> > 	Description: LM78A
> > 	Location: Power Unit
> > 	Status: OK
> > 	Maximum Value: Unknown
> > 	Minimum Value: Unknown
> > 	Resolution: Unknown
> > 	Tolerance: Unknown
> > 	Accuracy: Unknown
> > 	OEM-specific Information: 0x00000000
> > 	Nominal Value: Unknown
> > 
> > Handle 0x0036, DMI type 28, 22 bytes
> > Temperature Probe
> > 	Description: LM78A
> > 	Location: Power Unit
> > 	Status: OK
> > 	Maximum Value: Unknown
> > 	Minimum Value: Unknown
> > 	Resolution: Unknown
> > 	Tolerance: Unknown
> > 	Accuracy: Unknown
> > 	OEM-specific Information: 0x00000000
> > 	Nominal Value: Unknown
> > 
> > Handle 0x0037, DMI type 27, 15 bytes
> > Cooling Device
> > 	Temperature Probe Handle: 0x0036
> > 	Type: Power Supply Fan
> > 	Status: OK
> > 	Cooling Unit Group: 1
> > 	OEM-specific Information: 0x00000000
> > 	Nominal Speed: Unknown Or Non-rotating
> > 	Description: Cooling Dev 1
> > 
> > Handle 0x0038, DMI type 29, 22 bytes
> > Electrical Current Probe
> > 	Description: ABC
> > 	Location: Power Unit
> > 	Status: OK
> > 	Maximum Value: Unknown
> > 	Minimum Value: Unknown
> > 	Resolution: Unknown
> > 	Tolerance: Unknown
> > 	Accuracy: Unknown
> > 	OEM-specific Information: 0x00000000
> > 	Nominal Value: Unknown
> > 
> > Handle 0x0039, DMI type 39, 22 bytes
> > System Power Supply
> > 	Power Unit Group: 1
> > 	Location: To Be Filled By O.E.M.
> > 	Name: To Be Filled By O.E.M.
> > 	Manufacturer: To Be Filled By O.E.M.
> > 	Serial Number: To Be Filled By O.E.M.
> > 	Asset Tag: To Be Filled By O.E.M.
> > 	Model Part Number: To Be Filled By O.E.M.
> > 	Revision: To Be Filled By O.E.M.
> > 	Max Power Capacity: Unknown
> > 	Status: Present, OK
> > 	Type: Switching
> > 	Input Voltage Range Switching: Auto-switch
> > 	Plugged: Yes
> > 	Hot Replaceable: No
> > 	Input Voltage Probe Handle: 0x0035
> > 	Cooling Device Handle: 0x0037
> > 	Input Current Probe Handle: 0x0038
> > 
> > Handle 0x003A, DMI type 41, 11 bytes
> > Onboard Device
> > 	Reference Designation:  Onboard IGD
> > 	Type: Video
> > 	Status: Enabled
> > 	Type Instance: 1
> > 	Bus Address: 0000:00:02.0
> > 
> > Handle 0x003B, DMI type 41, 11 bytes
> > Onboard Device
> > 	Reference Designation:  Onboard LAN
> > 	Type: Ethernet
> > 	Status: Enabled
> > 	Type Instance: 1
> > 	Bus Address: 0000:00:19.0
> > 
> > Handle 0x003C, DMI type 41, 11 bytes
> > Onboard Device
> > 	Reference Designation:  Onboard 1394
> > 	Type: Other
> > 	Status: Enabled
> > 	Type Instance: 1
> > 	Bus Address: 0000:03:1c.2
> > 
> > Handle 0x003D, DMI type 4, 42 bytes
> > Processor Information
> > 	Socket Designation: SOCKET 0
> > 	Type: Central Processor
> > 	Family: Core i7
> > 	Manufacturer: Intel
> > 	ID: C3 06 03 00 FF FB EB BF
> > 	Signature: Type 0, Family 6, Model 60, Stepping 3
> > 	Flags:
> > 		FPU (Floating-point unit on-chip)
> > 		VME (Virtual mode extension)
> > 		DE (Debugging extension)
> > 		PSE (Page size extension)
> > 		TSC (Time stamp counter)
> > 		MSR (Model specific registers)
> > 		PAE (Physical address extension)
> > 		MCE (Machine check exception)
> > 		CX8 (CMPXCHG8 instruction supported)
> > 		APIC (On-chip APIC hardware supported)
> > 		SEP (Fast system call)
> > 		MTRR (Memory type range registers)
> > 		PGE (Page global enable)
> > 		MCA (Machine check architecture)
> > 		CMOV (Conditional move instruction supported)
> > 		PAT (Page attribute table)
> > 		PSE-36 (36-bit page size extension)
> > 		CLFSH (CLFLUSH instruction supported)
> > 		DS (Debug store)
> > 		ACPI (ACPI supported)
> > 		MMX (MMX technology supported)
> > 		FXSR (FXSAVE and FXSTOR instructions supported)
> > 		SSE (Streaming SIMD extensions)
> > 		SSE2 (Streaming SIMD extensions 2)
> > 		SS (Self-snoop)
> > 		HTT (Multi-threading)
> > 		TM (Thermal monitor supported)
> > 		PBE (Pending break enabled)
> > 	Version: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
> > 	Voltage: 1.2 V
> > 	External Clock: 100 MHz
> > 	Max Speed: 3800 MHz
> > 	Current Speed: 3400 MHz
> > 	Status: Populated, Enabled
> > 	Upgrade: Socket BGA1155
> > 	L1 Cache Handle: 0x003F
> > 	L2 Cache Handle: 0x003E
> > 	L3 Cache Handle: 0x0040
> > 	Serial Number: Not Specified
> > 	Asset Tag: Fill By OEM
> > 	Part Number: Fill By OEM
> > 	Core Count: 4
> > 	Core Enabled: 4
> > 	Thread Count: 8
> > 	Characteristics:
> > 		64-bit capable
> > 
> > Handle 0x003E, DMI type 7, 19 bytes
> > Cache Information
> > 	Socket Designation: CPU Internal L2
> > 	Configuration: Enabled, Not Socketed, Level 2
> > 	Operational Mode: Write Back
> > 	Location: Internal
> > 	Installed Size: 1024 kB
> > 	Maximum Size: 1024 kB
> > 	Supported SRAM Types:
> > 		Unknown
> > 	Installed SRAM Type: Unknown
> > 	Speed: Unknown
> > 	Error Correction Type: Single-bit ECC
> > 	System Type: Unified
> > 	Associativity: 8-way Set-associative
> > 
> > Handle 0x003F, DMI type 7, 19 bytes
> > Cache Information
> > 	Socket Designation: CPU Internal L1
> > 	Configuration: Enabled, Not Socketed, Level 1
> > 	Operational Mode: Write Back
> > 	Location: Internal
> > 	Installed Size: 256 kB
> > 	Maximum Size: 256 kB
> > 	Supported SRAM Types:
> > 		Unknown
> > 	Installed SRAM Type: Unknown
> > 	Speed: Unknown
> > 	Error Correction Type: Single-bit ECC
> > 	System Type: Other
> > 	Associativity: 8-way Set-associative
> > 
> > Handle 0x0040, DMI type 7, 19 bytes
> > Cache Information
> > 	Socket Designation: CPU Internal L3
> > 	Configuration: Enabled, Not Socketed, Level 3
> > 	Operational Mode: Write Back
> > 	Location: Internal
> > 	Installed Size: 8192 kB
> > 	Maximum Size: 8192 kB
> > 	Supported SRAM Types:
> > 		Unknown
> > 	Installed SRAM Type: Unknown
> > 	Speed: Unknown
> > 	Error Correction Type: Single-bit ECC
> > 	System Type: Unified
> > 	Associativity: 16-way Set-associative
> > 
> > Handle 0x0041, DMI type 16, 23 bytes
> > Physical Memory Array
> > 	Location: System Board Or Motherboard
> > 	Use: System Memory
> > 	Error Correction Type: None
> > 	Maximum Capacity: 32 GB
> > 	Error Information Handle: Not Provided
> > 	Number Of Devices: 4
> > 
> > Handle 0x0042, DMI type 17, 40 bytes
> > Memory Device
> > 	Array Handle: 0x0041
> > 	Error Information Handle: Not Provided
> > 	Total Width: Unknown
> > 	Data Width: Unknown
> > 	Size: No Module Installed
> > 	Form Factor: DIMM
> > 	Set: None
> > 	Locator: ChannelA-DIMM0
> > 	Bank Locator: BANK 0
> > 	Type: Unknown
> > 	Type Detail: None
> > 	Speed: Unknown
> > 	Manufacturer: [Empty]
> > 	Serial Number: [Empty]
> > 	Asset Tag: 9876543210
> > 	Part Number: [Empty]
> > 	Rank: Unknown
> > 	Configured Clock Speed: Unknown
> > 	Minimum voltage:  Unknown
> > 	Maximum voltage:  Unknown
> > 	Configured voltage:  Unknown
> > 
> > Handle 0x0043, DMI type 15, 73 bytes
> > System Event Log
> > 	Area Length: 4096 bytes
> > 	Header Start Offset: 0x0000
> > 	Header Length: 16 bytes
> > 	Data Start Offset: 0x0010
> > 	Access Method: Memory-mapped physical 32-bit address
> > 	Access Address: 0x000EF250
> > 	Status: Valid, Not Full
> > 	Change Token: 0x00000001
> > 	Header Format: Type 1
> > 	Supported Log Type Descriptors: 25
> > 	Descriptor 1: Single-bit ECC memory error
> > 	Data Format 1: None
> > 	Descriptor 2: Multi-bit ECC memory error
> > 	Data Format 2: None
> > 	Descriptor 3: Parity memory error
> > 	Data Format 3: None
> > 	Descriptor 4: Bus timeout
> > 	Data Format 4: None
> > 	Descriptor 5: I/O channel block
> > 	Data Format 5: None
> > 	Descriptor 6: Software NMI
> > 	Data Format 6: None
> > 	Descriptor 7: POST memory resize
> > 	Data Format 7: None
> > 	Descriptor 8: POST error
> > 	Data Format 8: POST results bitmap
> > 	Descriptor 9: PCI parity error
> > 	Data Format 9: None
> > 	Descriptor 10: PCI system error
> > 	Data Format 10: None
> > 	Descriptor 11: CPU failure
> > 	Data Format 11: None
> > 	Descriptor 12: EISA failsafe timer timeout
> > 	Data Format 12: None
> > 	Descriptor 13: Correctable memory log disabled
> > 	Data Format 13: None
> > 	Descriptor 14: Logging disabled
> > 	Data Format 14: None
> > 	Descriptor 15: System limit exceeded
> > 	Data Format 15: None
> > 	Descriptor 16: Asynchronous hardware timer expired
> > 	Data Format 16: None
> > 	Descriptor 17: System configuration information
> > 	Data Format 17: None
> > 	Descriptor 18: Hard disk information
> > 	Data Format 18: None
> > 	Descriptor 19: System reconfigured
> > 	Data Format 19: None
> > 	Descriptor 20: Uncorrectable CPU-complex error
> > 	Data Format 20: None
> > 	Descriptor 21: Log area reset/cleared
> > 	Data Format 21: None
> > 	Descriptor 22: System boot
> > 	Data Format 22: None
> > 	Descriptor 23: End of log
> > 	Data Format 23: None
> > 	Descriptor 24: OEM-specific
> > 	Data Format 24: OEM-specific
> > 	Descriptor 25: OEM-specific
> > 	Data Format 25: OEM-specific
> > 
> > Handle 0x0044, DMI type 17, 40 bytes
> > Memory Device
> > 	Array Handle: 0x0041
> > 	Error Information Handle: Not Provided
> > 	Total Width: 64 bits
> > 	Data Width: 64 bits
> > 	Size: 8192 MB
> > 	Form Factor: DIMM
> > 	Set: None
> > 	Locator: ChannelA-DIMM1
> > 	Bank Locator: BANK 1
> > 	Type: DDR3
> > 	Type Detail: Synchronous
> > 	Speed: 1600 MHz
> > 	Manufacturer: Samsung
> > 	Serial Number: 17C7415F
> > 	Asset Tag: 9876543210
> > 	Part Number: M378B1G73QH0-CK0  
> > 	Rank: 2
> > 	Configured Clock Speed: 1600 MHz
> > 	Minimum voltage:  1.500 V
> > 	Maximum voltage:  1.500 V
> > 	Configured voltage:  1.500 V
> > 
> > Handle 0x0045, DMI type 20, 35 bytes
> > Memory Device Mapped Address
> > 	Starting Address: 0x00000000000
> > 	Ending Address: 0x001FFFFFFFF
> > 	Range Size: 8 GB
> > 	Physical Device Handle: 0x0044
> > 	Memory Array Mapped Address Handle: 0x0049
> > 	Partition Row Position: Unknown
> > 	Interleave Position: 1
> > 	Interleaved Data Depth: 2
> > 
> > Handle 0x0046, DMI type 17, 40 bytes
> > Memory Device
> > 	Array Handle: 0x0041
> > 	Error Information Handle: Not Provided
> > 	Total Width: Unknown
> > 	Data Width: Unknown
> > 	Size: No Module Installed
> > 	Form Factor: DIMM
> > 	Set: None
> > 	Locator: ChannelB-DIMM0
> > 	Bank Locator: BANK 2
> > 	Type: Unknown
> > 	Type Detail: None
> > 	Speed: Unknown
> > 	Manufacturer: [Empty]
> > 	Serial Number: [Empty]
> > 	Asset Tag: 9876543210
> > 	Part Number: [Empty]
> > 	Rank: Unknown
> > 	Configured Clock Speed: Unknown
> > 	Minimum voltage:  Unknown
> > 	Maximum voltage:  Unknown
> > 	Configured voltage:  Unknown
> > 
> > Handle 0x0047, DMI type 17, 40 bytes
> > Memory Device
> > 	Array Handle: 0x0041
> > 	Error Information Handle: Not Provided
> > 	Total Width: 64 bits
> > 	Data Width: 64 bits
> > 	Size: 8192 MB
> > 	Form Factor: DIMM
> > 	Set: None
> > 	Locator: ChannelB-DIMM1
> > 	Bank Locator: BANK 3
> > 	Type: DDR3
> > 	Type Detail: Synchronous
> > 	Speed: 1600 MHz
> > 	Manufacturer: Samsung
> > 	Serial Number: 17C73CB4
> > 	Asset Tag: 9876543210
> > 	Part Number: M378B1G73QH0-CK0  
> > 	Rank: 2
> > 	Configured Clock Speed: 1600 MHz
> > 	Minimum voltage:  1.500 V
> > 	Maximum voltage:  1.500 V
> > 	Configured voltage:  1.500 V
> > 
> > Handle 0x0048, DMI type 20, 35 bytes
> > Memory Device Mapped Address
> > 	Starting Address: 0x00200000000
> > 	Ending Address: 0x003FFFFFFFF
> > 	Range Size: 8 GB
> > 	Physical Device Handle: 0x0047
> > 	Memory Array Mapped Address Handle: 0x0049
> > 	Partition Row Position: Unknown
> > 	Interleave Position: 2
> > 	Interleaved Data Depth: 2
> > 
> > Handle 0x0049, DMI type 19, 31 bytes
> > Memory Array Mapped Address
> > 	Starting Address: 0x00000000000
> > 	Ending Address: 0x003FFFFFFFF
> > 	Range Size: 16 GB
> > 	Physical Array Handle: 0x0041
> > 	Partition Width: 4
> > 
> > Handle 0x004D, DMI type 131, 22 bytes
> > OEM-specific Type
> > 	Header and Data:
> > 		83 16 4D 00 01 03 00 00 00 00 00 00 00 00 00 00
> > 		00 00 00 00 80 01
> > 	Strings:
> > 		TVT-Enablement
> > 
> > Handle 0x004E, DMI type 136, 6 bytes
> > OEM-specific Type
> > 	Header and Data:
> > 		88 06 4E 00 00 00
> > 
> > Handle 0x004F, DMI type 140, 85 bytes
> > OEM-specific Type
> > 	Header and Data:
> > 		8C 55 4F 00 4C 45 4E 4F 56 4F 0B 00 01 57 AA 83
> > 		75 D9 46 9D 5C 0C 0F 8A D3 41 A8 37 81 01 00 00
> > 		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 		00 00 00 00 00
> > 
> > Handle 0x0050, DMI type 140, 47 bytes
> > OEM-specific Type
> > 	Header and Data:
> > 		8C 2F 50 00 4C 45 4E 4F 56 4F 0B 01 01 08 00 AF
> > 		DF D1 79 CB 90 B9 6D A8 16 19 07 5E 54 2C 86 00
> > 		00 00 00 10 00 10 00 10 01 D0 00 20 01 00 01
> > 
> > Handle 0x0051, DMI type 140, 63 bytes
> > OEM-specific Type
> > 	Header and Data:
> > 		8C 3F 51 00 4C 45 4E 4F 56 4F 0B 02 01 00 00 00
> > 		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 
> > Handle 0x0052, DMI type 140, 17 bytes
> > OEM-specific Type
> > 	Header and Data:
> > 		8C 11 52 00 4C 45 4E 4F 56 4F 0B 03 01 00 00 00
> > 		00
> > 
> > Handle 0x0053, DMI type 140, 19 bytes
> > OEM-specific Type
> > 	Header and Data:
> > 		8C 13 53 00 4C 45 4E 4F 56 4F 0B 04 01 B2 00 4D
> > 		53 20 00
> > 
> > Handle 0x0054, DMI type 134, 16 bytes
> > OEM-specific Type
> > 	Header and Data:
> > 		86 10 54 00 00 4A 10 00 00 4E 00 00 00 02 01 02
> > 	Strings:
> > 		TPM INFO
> > 		System Reserved
> > 
> > Handle 0x0055, DMI type 10, 6 bytes
> > On Board Device Information
> > 	Type: Other
> > 	Status: Disabled
> > 	Description: IBM Embedded Security Hardware Type 3
> > 
> > Handle 0x0056, DMI type 140, 19 bytes
> > OEM-specific Type
> > 	Header and Data:
> > 		8C 13 56 00 4C 45 4E 4F 56 4F 0B 05 01 02 00 00
> > 		00 53 55
> > 
> > Handle 0x0057, DMI type 140, 23 bytes
> > OEM-specific Type
> > 	Header and Data:
> > 		8C 17 57 00 4C 45 4E 4F 56 4F 0B 06 01 00 00 00
> > 		00 00 00 00 00 00 00
> > 
> > Handle 0x0058, DMI type 130, 20 bytes
> > OEM-specific Type
> > 	Header and Data:
> > 		82 14 58 00 24 41 4D 54 00 00 00 00 00 A5 8F 02
> > 		01 00 00 00
> > 
> > Handle 0x0059, DMI type 131, 64 bytes
> > OEM-specific Type
> > 	Header and Data:
> > 		83 40 59 00 35 00 00 00 0A 00 00 00 00 00 04 00
> > 		F8 00 4E 8C 00 00 00 00 09 E0 00 00 01 00 09 00
> > 		60 04 00 00 00 00 00 00 C8 00 3A 15 00 00 00 00
> > 		00 00 00 00 66 00 00 00 76 50 72 6F 00 00 00 00
> > 
> > Handle 0x005A, DMI type 13, 22 bytes
> > BIOS Language Information
> > 	Language Description Format: Long
> > 	Installable Languages: 3
> > 		en|US|iso8859-1
> > 		fr|FR|iso8859-1
> > 		zh|CN|unicode
> > 	Currently Installed Language: en|US|iso8859-1
> > 
> > Handle 0x005D, DMI type 127, 4 bytes
> > End Of Table
> > 
> > 
> > XEN dmesg:
> > 
> > Xen 4.6.0-unstable
> > (XEN) Xen version 4.6.0-unstable (root@) (gcc (Debian 4.9.1-19) 4.9.1) debug=y 
> > Thu Jan 22 05:41:00 EST 2015
> > (XEN) Latest ChangeSet: Fri Jan 16 04:59:02 2015 -0500 git:8ecc953
> > (XEN) Console output is synchronous.
> > (XEN) Bootloader: GRUB 2.02~beta2-15
> > (XEN) Command line: loglvl=all guest_loglvl=all dom0pvh=1 dom0_mem=max:2G 
> > sync_console com1=19200,8n1 console=com1 
> > iommu=debug,verbose,no-sharept,no-qinval,no-snoop apic_verbosity=debug
> > (XEN) Video information:
> > (XEN)  VGA is text mode 80x25, font 8x16
> > (XEN)  VBE/DDC methods: V2; EDID transfer time: 1 seconds
> > (XEN) Disc information:
> > (XEN)  Found 1 MBR signatures
> > (XEN)  Found 1 EDD information structures
> > (XEN) Xen-e820 RAM map:
> > (XEN)  0000000000000000 - 000000000009d800 (usable)
> > (XEN)  000000000009d800 - 00000000000a0000 (reserved)
> > (XEN)  00000000000e0000 - 0000000000100000 (reserved)
> > (XEN)  0000000000100000 - 00000000c27e0000 (usable)
> > (XEN)  00000000c27e0000 - 00000000c27e7000 (ACPI NVS)
> > (XEN)  00000000c27e7000 - 00000000c2c2f000 (usable)
> > (XEN)  00000000c2c2f000 - 00000000c30d6000 (reserved)
> > (XEN)  00000000c30d6000 - 00000000d48ea000 (usable)
> > (XEN)  00000000d48ea000 - 00000000d4976000 (reserved)
> > (XEN)  00000000d4976000 - 00000000d49d8000 (ACPI data)
> > (XEN)  00000000d49d8000 - 00000000d56f0000 (ACPI NVS)
> > (XEN)  00000000d56f0000 - 00000000d5fff000 (reserved)
> 
> So this is where one of the RMRRs sits in (and also where
> the faults occur according to the two numbers you sent
> earlier, which - as others have already said - is an indication
> of the reported RMRRs being incomplete), ...
> 
> > (XEN)  00000000d5fff000 - 00000000d6000000 (usable)
> > (XEN)  00000000d7000000 - 00000000df200000 (reserved)
> 
> ... and this is the exact range of the other one. But the usable
> entry between them is a sign of the firmware not doing the
> best job in assigning resources.
> 
> I don't, btw, think that blindly mapping all the reserved regions
> into PVH Dom0's P2M would be (or is, if that's what's happening
> today) correct - these regions are named reserved for a
> reason. In the case here it's actually RAM, not MMIO, and
> Dom0 (as well as Xen) has no business accessing these (for others
> this may be different, e.g. the LAPIC and IO-APIC ones below,
> but Xen learns/knows of them by means different from looking
> at the memory map).

I understand this this. At the same time I think pv dom0 does exactly
this blind mapping. I also tried to map these regions as read-only and
that worked. Can be this an option for these ram regions?

I also asked this question on usb-linux mailing list and received
similar to yours reply:
https://www.mail-archive.com/linux-usb@vger.kernel.org/msg55128.html

> 
> > (XEN)  00000000f8000000 - 00000000fc000000 (reserved)
> > (XEN)  00000000fec00000 - 00000000fec01000 (reserved)
> > (XEN)  00000000fed00000 - 00000000fed04000 (reserved)
> > (XEN)  00000000fed1c000 - 00000000fed20000 (reserved)
> > (XEN)  00000000fee00000 - 00000000fee01000 (reserved)
> > (XEN)  00000000ff000000 - 0000000100000000 (reserved)
> > (XEN)  0000000100000000 - 000000041ee00000 (usable)
> 
> > (XEN) [VT-D]dmar.c:788: Host address width 39
> > (XEN) [VT-D]dmar.c:802: found ACPI_DMAR_DRHD:
> > (XEN) [VT-D]dmar.c:472:   dmaru->address = fed90000
> > (XEN) [VT-D]iommu.c:1136: drhd->address = fed90000 iommu->reg = ffff82c000201000
> > (XEN) [VT-D]iommu.c:1138: cap = c0000020660462 ecap = f0101a
> > (XEN) [VT-D]dmar.c:383:  endpoint: 0000:00:02.0
> > (XEN) [VT-D]dmar.c:802: found ACPI_DMAR_DRHD:
> > (XEN) [VT-D]dmar.c:472:   dmaru->address = fed91000
> > (XEN) [VT-D]iommu.c:1136: drhd->address = fed91000 iommu->reg = ffff82c000203000
> > (XEN) [VT-D]iommu.c:1138: cap = d2008020660462 ecap = f010da
> > (XEN) [VT-D]dmar.c:397:  IOAPIC: 0000:f0:1f.0
> > (XEN) [VT-D]dmar.c:361:  MSI HPET: 0000:f0:0f.0
> > (XEN) [VT-D]dmar.c:486:   flags: INCLUDE_ALL
> > (XEN) [VT-D]dmar.c:807: found ACPI_DMAR_RMRR:
> > (XEN) [VT-D]dmar.c:383:  endpoint: 0000:00:1d.0
> > (XEN) [VT-D]dmar.c:383:  endpoint: 0000:00:1a.0
> > (XEN) [VT-D]dmar.c:383:  endpoint: 0000:00:14.0
> > (XEN) [VT-D]dmar.c:676:   RMRR region: base_addr d5e6b000 end_address d5e91fff
> > (XEN) [VT-D]dmar.c:807: found ACPI_DMAR_RMRR:
> > (XEN) [VT-D]dmar.c:383:  endpoint: 0000:00:02.0
> > (XEN) [VT-D]dmar.c:676:   RMRR region: base_addr d7000000 end_address df1fffff
> 
> So there are at least some RMRRs here.
Yep, these seem to be fine and same on bare metal.
> 
> > (XEN) Bogus DMIBAR 0xfed18001 on 0000:00:00.0
> 
> Pretty clearly a firmware flaw.
> 
> > (XEN) traps.c:3216: GPF (0000): ffff82d0801e0716 -> ffff82d080235ef9
> > (XEN) traps.c:3216: GPF (0000): ffff82d0801e0716 -> ffff82d080235ef9
> > (XEN) traps.c:3216: GPF (0000): ffff82d0801e0716 -> ffff82d080235ef9
> > (XEN) traps.c:3216: GPF (0000): ffff82d0801e0716 -> ffff82d080235ef9
> > 
> > I am not sure about last lines here, I have not seen it before and leaving 
> > it as it is. 
> 
> These should at least be investigated.

yes, I am looking at these, something new.`
> 
> But - this being the end of the log: Where are the IOMMU faults
> you say you see? Without those, it's unclear which of the devices
> cause(s) them, and hence the lspci output isn't useful.

I did miss it. Here it is:


(XEN) [VT-D]iommu.c:744: iommu_enable_translation: iommu->reg = ffff82c000201000
(XEN) Enabled translation IOMMU 
(XEN) [VT-D]iommu.c:744: iommu_enable_translation: iommu->reg = ffff82c000203000
(XEN) Enabled translation IOMMU 
(XEN) Scrubbing Free RAM on 1 nodes using 4 CPUs
(XEN) [VT-D]iommu.c:875: iommu_fault_status: Fault Overflow
(XEN) [VT-D]iommu.c:877: iommu_fault_status: Primary Pending Fault
(XEN) [VT-D]iommu.c:855: DMAR:[DMA Read] Request device [0000:00:1a.0] fault addr d5d46000, iommu reg = ffff82c000203000
(XEN) DMAR:[fault reason 06h] PTE Read access is not set
(XEN) print_vtd_entries: iommu ffff83041ac0c9b0 dev 0000:00:1a.0 gmfn d5d46
(XEN)     root_entry = ffff83041ac07000
(XEN)     root_entry[0] = 291cc8001
(XEN)     context = ffff830291cc8000
(XEN)     context[d0] = 2_2920d2001
(XEN)     l4 = ffff8302920d2000
(XEN)     l4_index = 0
(XEN)     l4[0] = 2920d1003
(XEN)     l3 = ffff8302920d1000
(XEN)     l3_index = 3
(XEN)     l3[3] = 291cc7003
(XEN)     l2 = ffff830291cc7000
(XEN)     l2_index = ae
(XEN)     l2[ae] = 0
(XEN)     l2[ae] not present
 
...

[  641.390790] pci 0000:00:14.0: CONFIG_USB_XHCI_HCD is turned off, defaulting to EHCI.^M^M
[  641.437566] pci 0000:00:14.0: USB 3.0 devices will work at USB 2.0 speeds.^M^M

mmu.c:875: iommu_fault_status: Fault Overflow
(XEN) [VT-D]iommu.c:877: iommu_fault_status: Primary Pending Fault
(XEN) [VT-D]iommu.c:855: DMAR:[DMA Read] Request device [0000:00:1d.0] fault addr d5d45000, iommu reg = ffff82c000203000
(XEN) DMAR:[fault reason 06h] PTE Read access is not set
(XEN) print_vtd_entries: iommu ffff83041ac0c9b0 dev 0000:00:1d.0 gmfn d5d45
(XEN)     root_entry = ffff83041ac07000
(XEN)     root_entry[0] = 291cc9001
(XEN)     context = ffff830291cc9000
(XEN)     context[e8] = 2_2920d3001
(XEN)     l4 = ffff8302920d3000
(XEN)     l4_index = 0
(XEN)     l4[0] = 2920d2003
(XEN)     l3 = ffff8302920d2000
(XEN)     l3_index = 3
(XEN)     l3[3] = 291cc8003
(XEN)     l2 = ffff830291cc8000
(XEN)     l2_index = ae
(XEN)     l2[ae] = 0
(XEN)     l2[ae] not present


> 
> Jan

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-22 15:43 Elena Ufimtseva
@ 2015-01-23 11:19 ` Jan Beulich
  0 siblings, 0 replies; 27+ messages in thread
From: Jan Beulich @ 2015-01-23 11:19 UTC (permalink / raw)
  To: Elena Ufimtseva
  Cc: kevin.tian, andrew.cooper3, tim, xen-devel, yang.z.zhang,
	boris.ostrovsky, roger.pau

>>> On 22.01.15 at 16:43, <elena.ufimtseva@oracle.com> wrote:
> ----- JBeulich@suse.com wrote:
>> >>> On 22.01.15 at 16:18, <elena.ufimtseva@oracle.com> wrote:
>> > Also, pv dom0 has no such problem.
>> 
>> Even with "iommu=dom0-strict"?
> 
> Even with iommu=dom0-strict pv dom0 boots just fine.

Sorry, this wasn't the right (or better, the only) one. Could you
try again with "iommu_inclusive_mapping=0" (which really ought
to be the default - Kevin, Yang, hint hint)?

Jan

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-22 17:34   ` Elena Ufimtseva
@ 2015-01-23 10:50     ` Jan Beulich
  2015-01-26 16:57       ` Elena Ufimtseva
  0 siblings, 1 reply; 27+ messages in thread
From: Jan Beulich @ 2015-01-23 10:50 UTC (permalink / raw)
  To: Elena Ufimtseva
  Cc: kevin.tian, andrew.cooper3, tim, yang.z.zhang, xen-devel,
	boris.ostrovsky

>>> On 22.01.15 at 18:34, <elena.ufimtseva@oracle.com> wrote:
> On Thu, Jan 22, 2015 at 04:42:52PM +0100, Roger Pau Monné wrote:
>> El 22/01/15 a les 16.18, Elena Ufimtseva ha escrit:
>> > 
>> > ----- JBeulich@suse.com wrote:
>> > 
>> >>>>> On 22.01.15 at 12:37, <roger.pau@citrix.com> wrote:
>> >>> El 22/01/15 a les 12.09, Jan Beulich ha escrit:
>> >>>>>>> On 22.01.15 at 11:59, <andrew.cooper3@citrix.com> wrote:
>> >>>>> On 22/01/15 09:53, Jan Beulich wrote:
>> >>>>>>>>> On 21.01.15 at 21:55, <elena.ufimtseva@oracle.com> wrote:
>> >>>>>>> p2m_mmio_direct should result in setting IOMMUF_readable and
>> >> IOMMUF_writable
>> >>>>>>> flags.
>> >>>>>>> When pvh domain maps mmio regions, the EPT entries are not
>> >> getting mapped.
>> >>>>>>> This leads to IOMMU Page faults for some devices, as for example
>> >> USB Host
>> >>>>>>> controllers with embedded Debug devices. See
>> >> pvh-set-need_iommu-early RFC
>> >>>>>>> patch discussion fgor detail.
>> >>>>>> Even more so that the two patches aren't even a series, that
>> >> part
>> >>>>>> of the description belongs here, not in the other patch.
>> >>>>>>
>> >>>>>>> I will appreciate your comments and ideas in regards to this
>> >> change.
>> >>>>>>>
>> >>>>>>> Looking at Roger patches (xen/pvh: check permissions when adding
>> >> MMIO 
>> >>>>>>> regions)
>> >>>>>>> the mmio memory type is proposed to be changed from
>> >> p2m_mmio_direct to 
>> >>>>>>> p2m_access_rw.
>> >>>>>>> This type still does not have proper IOMMU flags mapping.
>> >>>>>> A fundamental question is what business devices have to DMA
>> >> their
>> >>>>>> own (or other devices') MMIO space. I could remotely see a need
>> >>>>>> for this for e.g. frame buffers, but I have difficulty
>> >> understanding
>> >>>>>> this for USB devices. Please at the very least provide details on
>> >> the
>> >>>>>> MMIO regions that those devices have, and which of them you
>> >>>>>> observed IOMMU faults on.
>> >>>>>
>> >>>>> It would appear that, in this case, it is a USB controller lacking
>> >> an
>> >>>>> appropriate RMRR description in the ACPI tables.
>> >>>>
>> >>>> No, RMRRs only reference RAM pages afaik.
>> >>>
>> >>> According to Linux IOMMU support document RMRRs reference regions
>> >> marked
>> >>> as "reserved" in the e820 memory map:
>> >>>
>> >>> https://www.kernel.org/doc/Documentation/Intel-IOMMU.txt 
>> >>
>> >> Exactly. And MMIO PCI BARs in particular are never to be
>> >> reflected in the E820 (not the least because they're relocatable).
>> >>
>> >>> I don't think we are setting proper IOMMU entries for this regions
>> >> at
>> >>> all with the current PVH Dom0 code. IMHO instead of just adding
>> >> IOMMU
>> >>> entries for every MMIO region we should just add IOMMU entries for
>> >> the
>> >>> RMRR regions.
>> >>
>> >> Yes, RMRR regions should certainly be put there as r/w entries.
>> >>
>> >> Jan
>> > 
>> > How it will help in cases like this when this regions are not reported as 
> RMRRs in ACPI?
>> 
>> AFAIK even if they are properly reported as RMRRs they won't have the
>> right IOMMU mappings, are you sure they are not reported as RMRRs?
>> 
>> Roger.
>>
> 
> Here are some details on machine config, lspci and etc.
> 
> Bare metal:
> 
> lspci
> 
> 
> 00:00.0 0600: 8086:0c00 (rev 06)
> 	Subsystem: 17aa:3097
> 	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- 
> FastB2B- DisINTx-
> 	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ 
> >SERR- <PERR- INTx-
> 	Latency: 0
> 	Capabilities: [e0] Vendor Specific Information: Len=0c <?>
> 	Kernel driver in use: hsw_uncore
> 
> 00:02.0 0300: 8086:0412 (rev 06) (prog-if 00 [VGA controller])
> 	Subsystem: 17aa:3097
> 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
> SERR- FastB2B- DisINTx+
> 	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- 
> <PERR- INTx-
> 	Latency: 0
> 	Interrupt: pin A routed to IRQ 30
> 	Region 0: Memory at f7800000 (64-bit, non-prefetchable) [size=4M]
> 	Region 2: Memory at e0000000 (64-bit, prefetchable) [size=256M]
> 	Region 4: I/O ports at f000 [size=64]
> 	Expansion ROM at <unassigned> [disabled]
> 	Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
> 		Address: fee00018  Data: 0000
> 	Capabilities: [d0] Power Management version 2
> 		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> 		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> 	Capabilities: [a4] PCI Advanced Features
> 		AFCap: TP+ FLR+
> 		AFCtrl: FLR-
> 		AFStatus: TP-
> 	Kernel driver in use: i915
> 
> 00:03.0 0403: 8086:0c0c (rev 06)
> 	Subsystem: 17aa:3097
> 	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- 
> FastB2B- DisINTx+
> 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- 
> <PERR- INTx-
> 	Latency: 0, Cache Line Size: 64 bytes
> 	Interrupt: pin A routed to IRQ 31
> 	Region 0: Memory at f7c30000 (64-bit, non-prefetchable) [size=16K]
> 	Capabilities: [50] Power Management version 2
> 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> 		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> 	Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit-
> 		Address: fee003d8  Data: 0000
> 	Capabilities: [70] Express (v1) Root Complex Integrated Endpoint, MSI 00
> 		DevCap:	MaxPayload 128 bytes, PhantFunc 0
> 			ExtTag- RBE-
> 		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> 			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> 			MaxPayload 128 bytes, MaxReadReq 128 bytes
> 		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> 	Kernel driver in use: snd_hda_intel
> 
> 00:14.0 0c03: 8086:8c31 (rev 05) (prog-if 30 [XHCI])
> 	Subsystem: 17aa:3097
> 	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- 
> FastB2B- DisINTx+
> 	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- 
> >SERR- <PERR- INTx-
> 	Latency: 0
> 	Interrupt: pin A routed to IRQ 28
> 	Region 0: Memory at f7c20000 (64-bit, non-prefetchable) [size=64K]
> 	Capabilities: [70] Power Management version 2
> 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
> 		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
> 	Capabilities: [80] MSI: Enable+ Count=1/8 Maskable- 64bit+
> 		Address: 00000000fee00378  Data: 0000
> 	Kernel driver in use: xhci_hcd
> 
> 00:16.0 0780: 8086:8c3a (rev 04)
> 	Subsystem: 17aa:3097
> 	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- 
> FastB2B- DisINTx+
> 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- 
> <PERR- INTx-
> 	Latency: 0
> 	Interrupt: pin A routed to IRQ 29
> 	Region 0: Memory at f7c3b000 (64-bit, non-prefetchable) [size=16]
> 	Capabilities: [50] Power Management version 3
> 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> 		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
> 	Capabilities: [8c] MSI: Enable+ Count=1/1 Maskable- 64bit+
> 		Address: 00000000fee00398  Data: 0000
> 	Kernel driver in use: mei_me
> 
> 00:19.0 0200: 8086:153a (rev 05)
> 	Subsystem: 17aa:3097
> 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
> SERR- FastB2B- DisINTx+
> 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- 
> <PERR- INTx-
> 	Latency: 0
> 	Interrupt: pin A routed to IRQ 26
> 	Region 0: Memory at f7c00000 (32-bit, non-prefetchable) [size=128K]
> 	Region 1: Memory at f7c39000 (32-bit, non-prefetchable) [size=4K]
> 	Region 2: I/O ports at f080 [size=32]
> 	Capabilities: [c8] Power Management version 2
> 		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> 		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
> 	Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> 		Address: 00000000fee002f8  Data: 0000
> 	Capabilities: [e0] PCI Advanced Features
> 		AFCap: TP+ FLR+
> 		AFCtrl: FLR-
> 		AFStatus: TP-
> 	Kernel driver in use: e1000e
> 
> 00:1a.0 0c03: 8086:8c2d (rev 05) (prog-if 20 [EHCI])
> 	Subsystem: 17aa:3097
> 	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- 
> FastB2B- DisINTx-
> 	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- 
> >SERR- <PERR- INTx-
> 	Latency: 0
> 	Interrupt: pin A routed to IRQ 17
> 	Region 0: Memory at f7c38000 (32-bit, non-prefetchable) [size=1K]
> 	Capabilities: [50] Power Management version 2
> 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> 		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> 	Capabilities: [58] Debug port: BAR=1 offset=00a0
> 	Capabilities: [98] PCI Advanced Features
> 		AFCap: TP+ FLR+
> 		AFCtrl: FLR-
> 		AFStatus: TP-
> 	Kernel driver in use: ehci-pci
> 
> 00:1c.0 0604: 8086:8c10 (rev d5) (prog-if 00 [Normal decode])
> 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
> SERR- FastB2B- DisINTx-
> 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- 
> <PERR- INTx-
> 	Latency: 0, Cache Line Size: 64 bytes
> 	Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> 	I/O behind bridge: 0000f000-00000fff
> 	Memory behind bridge: fff00000-000fffff
> 	Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff
> 	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ 
> <SERR- <PERR-
> 	BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
> 		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> 	Capabilities: [40] Express (v2) Root Port (Slot-), MSI 00
> 		DevCap:	MaxPayload 128 bytes, PhantFunc 0
> 			ExtTag- RBE+
> 		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> 			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> 			MaxPayload 128 bytes, MaxReadReq 128 bytes
> 		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> 		LnkCap:	Port #1, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 
> <4us
> 			ClockPM- Surprise- LLActRep+ BwNot+
> 		LnkCtl:	ASPM L0s L1 Enabled; RCB 64 bytes Disabled- CommClk-
> 			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> 		LnkSta:	Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> 		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> 		RootCap: CRSVisible-
> 		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> 		DevCap2: Completion Timeout: Range ABC, TimeoutDis+, LTR+, OBFF Via WAKE# 
> ARIFwd-
> 		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled 
> ARIFwd-
> 		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
> 			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- 
> ComplianceSOS-
> 			 Compliance De-emphasis: -6dB
> 		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, 
> EqualizationPhase1-
> 			 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> 	Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
> 		Address: 00000000  Data: 0000
> 	Capabilities: [90] Subsystem: 17aa:3097
> 	Capabilities: [a0] Power Management version 3
> 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> 		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> 	Kernel driver in use: pcieport
> 
> 00:1c.3 0604: 8086:8c16 (rev d5) (prog-if 00 [Normal decode])
> 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
> SERR- FastB2B- DisINTx-
> 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- 
> <PERR- INTx-
> 	Latency: 0, Cache Line Size: 64 bytes
> 	Bus: primary=00, secondary=02, subordinate=03, sec-latency=0
> 	I/O behind bridge: 0000f000-00000fff
> 	Memory behind bridge: fff00000-000fffff
> 	Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff
> 	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ 
> <SERR- <PERR-
> 	BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
> 		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> 	Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
> 		DevCap:	MaxPayload 128 bytes, PhantFunc 0
> 			ExtTag- RBE+
> 		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> 			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> 			MaxPayload 128 bytes, MaxReadReq 128 bytes
> 		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> 		LnkCap:	Port #4, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 
> <16us
> 			ClockPM- Surprise- LLActRep+ BwNot+
> 		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> 			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> 		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ 
> ABWMgmt-
> 		SltCap:	AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> 			Slot #3, PowerLimit 10.000W; Interlock- NoCompl+
> 		SltCtl:	Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> 			Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
> 		SltSta:	Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> 			Changed: MRL- PresDet- LinkState-
> 		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> 		RootCap: CRSVisible-
> 		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> 		DevCap2: Completion Timeout: Range ABC, TimeoutDis+, LTR+, OBFF Not 
> Supported ARIFwd-
> 		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled 
> ARIFwd-
> 		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
> 			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- 
> ComplianceSOS-
> 			 Compliance De-emphasis: -6dB
> 		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, 
> EqualizationPhase1-
> 			 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> 	Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
> 		Address: 00000000  Data: 0000
> 	Capabilities: [90] Subsystem: 17aa:3097
> 	Capabilities: [a0] Power Management version 3
> 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> 		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> 	Kernel driver in use: pcieport
> 
> 00:1d.0 0c03: 8086:8c26 (rev 05) (prog-if 20 [EHCI])
> 	Subsystem: 17aa:3097
> 	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- 
> FastB2B- DisINTx-
> 	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- 
> >SERR- <PERR- INTx-
> 	Latency: 0
> 	Interrupt: pin A routed to IRQ 23
> 	Region 0: Memory at f7c37000 (32-bit, non-prefetchable) [size=1K]
> 	Capabilities: [50] Power Management version 2
> 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> 		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> 	Capabilities: [58] Debug port: BAR=1 offset=00a0
> 	Capabilities: [98] PCI Advanced Features
> 		AFCap: TP+ FLR+
> 		AFCtrl: FLR-
> 		AFStatus: TP-
> 	Kernel driver in use: ehci-pci
> 
> 00:1f.0 0601: 8086:8c4e (rev 05)
> 	Subsystem: 17aa:3097
> 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
> SERR- FastB2B- DisINTx-
> 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- 
> >SERR- <PERR- INTx-
> 	Latency: 0
> 	Capabilities: [e0] Vendor Specific Information: Len=0c <?>
> 	Kernel driver in use: lpc_ich
> 
> 00:1f.2 0106: 8086:8c02 (rev 05) (prog-if 01 [AHCI 1.0])
> 	Subsystem: 17aa:3097
> 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
> SERR- FastB2B- DisINTx+
> 	Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- 
> >SERR- <PERR- INTx-
> 	Latency: 0
> 	Interrupt: pin B routed to IRQ 27
> 	Region 0: I/O ports at f0d0 [size=8]
> 	Region 1: I/O ports at f0c0 [size=4]
> 	Region 2: I/O ports at f0b0 [size=8]
> 	Region 3: I/O ports at f0a0 [size=4]
> 	Region 4: I/O ports at f060 [size=32]
> 	Region 5: Memory at f7c36000 (32-bit, non-prefetchable) [size=2K]
> 	Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
> 		Address: fee00358  Data: 0000
> 	Capabilities: [70] Power Management version 3
> 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-)
> 		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
> 	Capabilities: [a8] SATA HBA v1.0 BAR4 Offset=00000004
> 	Kernel driver in use: ahci
> 
> 00:1f.3 0c05: 8086:8c22 (rev 05)
> 	Subsystem: 17aa:3097
> 	Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- 
> FastB2B- DisINTx-
> 	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- 
> >SERR- <PERR- INTx-
> 	Interrupt: pin C routed to IRQ 18
> 	Region 0: Memory at f7c35000 (64-bit, non-prefetchable) [size=256]
> 	Region 4: I/O ports at 0580 [size=32]
> 
> 02:00.0 0604: 1283:8893 (rev 41) (prog-if 01 [Subtractive decode])
> 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
> SERR- FastB2B- DisINTx-
> 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- 
> <PERR- INTx-
> 	Latency: 0, Cache Line Size: 64 bytes
> 	Bus: primary=02, secondary=03, subordinate=03, sec-latency=32
> 	I/O behind bridge: 0000f000-00000fff
> 	Memory behind bridge: fff00000-000fffff
> 	Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff
> 	Secondary status: 66MHz+ FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ 
> <SERR- <PERR-
> 	BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
> 		PriDiscTmr- SecDiscTmr+ DiscTmrStat- DiscTmrSERREn-
> 	Capabilities: [90] Power Management version 2
> 		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
> 		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> 	Capabilities: [a0] Subsystem: 17aa:3097
> 
> 
> 
> 
> # dmidecode 2.12
> SMBIOS 2.8 present.
> 89 structures occupying 3527 bytes.
> Table at 0x000EDC10.
> 
> Handle 0x0000, DMI type 0, 24 bytes
> BIOS Information
> 	Vendor: LENOVO
> 	Version: FBKTA4AUS
> 	Release Date: 12/11/2014
> 	Address: 0xF0000
> 	Runtime Size: 64 kB
> 	ROM Size: 6656 kB
> 	Characteristics:
> 		PCI is supported
> 		BIOS is upgradeable
> 		BIOS shadowing is allowed
> 		Boot from CD is supported
> 		Selectable boot is supported
> 		BIOS ROM is socketed
> 		EDD is supported
> 		5.25"/1.2 MB floppy services are supported (int 13h)
> 		3.5"/720 kB floppy services are supported (int 13h)
> 		3.5"/2.88 MB floppy services are supported (int 13h)
> 		Print screen service is supported (int 5h)
> 		8042 keyboard services are supported (int 9h)
> 		Serial services are supported (int 14h)
> 		Printer services are supported (int 17h)
> 		ACPI is supported
> 		USB legacy is supported
> 		BIOS boot specification is supported
> 		Targeted content distribution is supported
> 		UEFI is supported
> 	BIOS Revision: 1.164
> 	Firmware Revision: 1.13
> 
> Handle 0x0001, DMI type 1, 27 bytes
> System Information
> 	Manufacturer: LENOVO
> 	Product Name: 10A6S09R01
> 	Version: ThinkCentre M93p
> 	Serial Number:  
> 	UUID: CD155584-7150-11E4-A0B5-AE7A9F861500
> 	Wake-up Type: Power Switch
> 	SKU Number: LENOVO_MT_10A6
> 	Family: To be filled by O.E.M.
> 
> Handle 0x0002, DMI type 2, 15 bytes
> Base Board Information
> 	Manufacturer: LENOVO
> 	Product Name: SHARKBAY
> 	Version: 0B98401 WIN
> 	Serial Number:                     
> 	Asset Tag:                          
> 	Features:
> 		Board is a hosting board
> 		Board is replaceable
> 	Location In Chassis: To be filled by O.E.M.
> 	Chassis Handle: 0x0003
> 	Type: Motherboard
> 	Contained Object Handles: 0
> 
> Handle 0x0003, DMI type 3, 25 bytes
> Chassis Information
> 	Manufacturer: To Be Filled By O.E.M.
> 	Type: Desktop
> 	Lock: Not Present
> 	Version: To Be Filled By O.E.M.
> 	Serial Number: MJ01S0UJ
> 	Asset Tag:  
> 	Boot-up State: Safe
> 	Power Supply State: Safe
> 	Thermal State: Safe
> 	Security Status: None
> 	OEM Information: 0x00000000
> 	Height: Unspecified
> 	Number Of Power Cords: 1
> 	Contained Elements: 1
> 		<OUT OF SPEC> (0)
> 	SKU Number: To be filled by O.E.M.
> 
> Handle 0x0004, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J1A1
> 	Internal Connector Type: None
> 	External Reference Designator: PS2Mouse
> 	External Connector Type: PS/2
> 	Port Type: Mouse Port
> 
> Handle 0x0005, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J1A1
> 	Internal Connector Type: None
> 	External Reference Designator: Keyboard
> 	External Connector Type: PS/2
> 	Port Type: Keyboard Port
> 
> Handle 0x0006, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J2A1
> 	Internal Connector Type: None
> 	External Reference Designator: TV Out
> 	External Connector Type: Mini Centronics Type-14
> 	Port Type: Other
> 
> Handle 0x0007, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J2A2A
> 	Internal Connector Type: None
> 	External Reference Designator: COM A
> 	External Connector Type: DB-9 male
> 	Port Type: Serial Port 16550A Compatible
> 
> Handle 0x0008, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J2A2B
> 	Internal Connector Type: None
> 	External Reference Designator: Video
> 	External Connector Type: DB-15 female
> 	Port Type: Video Port
> 
> Handle 0x0009, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J3A1
> 	Internal Connector Type: None
> 	External Reference Designator: USB1
> 	External Connector Type: Access Bus (USB)
> 	Port Type: USB
> 
> Handle 0x000A, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J3A1
> 	Internal Connector Type: None
> 	External Reference Designator: USB2
> 	External Connector Type: Access Bus (USB)
> 	Port Type: USB
> 
> Handle 0x000B, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J3A1
> 	Internal Connector Type: None
> 	External Reference Designator: USB3
> 	External Connector Type: Access Bus (USB)
> 	Port Type: USB
> 
> Handle 0x000C, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J9A1 - TPM HDR
> 	Internal Connector Type: Other
> 	External Reference Designator: Not Specified
> 	External Connector Type: None
> 	Port Type: Other
> 
> Handle 0x000D, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J9C1 - PCIE DOCKING CONN
> 	Internal Connector Type: Other
> 	External Reference Designator: Not Specified
> 	External Connector Type: None
> 	Port Type: Other
> 
> Handle 0x000E, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J2B3 - CPU FAN
> 	Internal Connector Type: Other
> 	External Reference Designator: Not Specified
> 	External Connector Type: None
> 	Port Type: Other
> 
> Handle 0x000F, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J6C2 - EXT HDMI
> 	Internal Connector Type: Other
> 	External Reference Designator: Not Specified
> 	External Connector Type: None
> 	Port Type: Other
> 
> Handle 0x0010, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J3C1 - GMCH FAN
> 	Internal Connector Type: Other
> 	External Reference Designator: Not Specified
> 	External Connector Type: None
> 	Port Type: Other
> 
> Handle 0x0011, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J1D1 - ITP
> 	Internal Connector Type: Other
> 	External Reference Designator: Not Specified
> 	External Connector Type: None
> 	Port Type: Other
> 
> Handle 0x0012, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J9E2 - MDC INTPSR
> 	Internal Connector Type: Other
> 	External Reference Designator: Not Specified
> 	External Connector Type: None
> 	Port Type: Other
> 
> Handle 0x0013, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J9E4 - MDC INTPSR
> 	Internal Connector Type: Other
> 	External Reference Designator: Not Specified
> 	External Connector Type: None
> 	Port Type: Other
> 
> Handle 0x0014, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J9E3 - LPC HOT DOCKING
> 	Internal Connector Type: Other
> 	External Reference Designator: Not Specified
> 	External Connector Type: None
> 	Port Type: Other
> 
> Handle 0x0015, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J9E1 - SCAN MATRIX
> 	Internal Connector Type: Other
> 	External Reference Designator: Not Specified
> 	External Connector Type: None
> 	Port Type: Other
> 
> Handle 0x0016, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J9G1 - LPC SIDE BAND
> 	Internal Connector Type: Other
> 	External Reference Designator: Not Specified
> 	External Connector Type: None
> 	Port Type: Other
> 
> Handle 0x0017, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J8F1 - UNIFIED
> 	Internal Connector Type: Other
> 	External Reference Designator: Not Specified
> 	External Connector Type: None
> 	Port Type: Other
> 
> Handle 0x0018, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J6F1 - LVDS
> 	Internal Connector Type: Other
> 	External Reference Designator: Not Specified
> 	External Connector Type: None
> 	Port Type: Other
> 
> Handle 0x0019, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J2F1 - LAI FAN
> 	Internal Connector Type: Other
> 	External Reference Designator: Not Specified
> 	External Connector Type: None
> 	Port Type: Other
> 
> Handle 0x001A, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J2G1 - GFX VID
> 	Internal Connector Type: Other
> 	External Reference Designator: Not Specified
> 	External Connector Type: None
> 	Port Type: Other
> 
> Handle 0x001B, DMI type 8, 9 bytes
> Port Connector Information
> 	Internal Reference Designator: J1G6 - AC JACK
> 	Internal Connector Type: Other
> 	External Reference Designator: Not Specified
> 	External Connector Type: None
> 	Port Type: Other
> 
> Handle 0x001C, DMI type 9, 17 bytes
> System Slot Information
> 	Designation: J6B2
> 	Type: x16 PCI Express
> 	Current Usage: In Use
> 	Length: Long
> 	ID: 0
> 	Characteristics:
> 		3.3 V is provided
> 		Opening is shared
> 		PME signal is supported
> 	Bus Address: 0000:00:01.0
> 
> Handle 0x001D, DMI type 9, 17 bytes
> System Slot Information
> 	Designation: J6B1
> 	Type: x1 PCI Express
> 	Current Usage: In Use
> 	Length: Short
> 	ID: 1
> 	Characteristics:
> 		3.3 V is provided
> 		Opening is shared
> 		PME signal is supported
> 	Bus Address: 0000:00:1c.3
> 
> Handle 0x001E, DMI type 9, 17 bytes
> System Slot Information
> 	Designation: J6D1
> 	Type: x1 PCI Express
> 	Current Usage: In Use
> 	Length: Short
> 	ID: 2
> 	Characteristics:
> 		3.3 V is provided
> 		Opening is shared
> 		PME signal is supported
> 	Bus Address: 0000:00:1c.4
> 
> Handle 0x001F, DMI type 9, 17 bytes
> System Slot Information
> 	Designation: J7B1
> 	Type: x1 PCI Express
> 	Current Usage: In Use
> 	Length: Short
> 	ID: 3
> 	Characteristics:
> 		3.3 V is provided
> 		Opening is shared
> 		PME signal is supported
> 	Bus Address: 0000:00:1c.5
> 
> Handle 0x0020, DMI type 10, 12 bytes
> On Board Device 1 Information
> 	Type: Video
> 	Status: Enabled
> 	Description:    Onboard Video
> On Board Device 2 Information
> 	Type: Ethernet
> 	Status: Enabled
> 	Description: Onboard LAN
> On Board Device 3 Information
> 	Type: Sound
> 	Status: Disabled
> 	Description:   Onboard Audio
> On Board Device 4 Information
> 	Type: SATA Controller
> 	Status: Enabled
> 	Description:   Sata Controller
> 
> Handle 0x0021, DMI type 11, 5 bytes
> OEM Strings
> 	String 1: LENOVO ThinkCentre Embedded Controller -[FBCT13A-1.13]-
> 	String 2: LENOVO ThinkCentre BIOS Boot Block Revision 1.A1
> 
> Handle 0x0022, DMI type 12, 5 bytes
> System Configuration Options
> 	Option 1: scre++
> 
> Handle 0x0023, DMI type 24, 5 bytes
> Hardware Security
> 	Power-On Password Status: Disabled
> 	Keyboard Password Status: Enabled
> 	Administrator Password Status: Disabled
> 	Front Panel Reset Status: Not Implemented
> 
> Handle 0x0024, DMI type 32, 20 bytes
> System Boot Information
> 	Status: No errors detected
> 
> Handle 0x0025, DMI type 34, 11 bytes
> Management Device
> 	Description: LM78-1
> 	Type: LM78
> 	Address: 0x00000000
> 	Address Type: I/O Port
> 
> Handle 0x0026, DMI type 26, 22 bytes
> Voltage Probe
> 	Description: LM78A
> 	Location: <OUT OF SPEC>
> 	Status: <OUT OF SPEC>
> 	Maximum Value: Unknown
> 	Minimum Value: Unknown
> 	Resolution: Unknown
> 	Tolerance: Unknown
> 	Accuracy: Unknown
> 	OEM-specific Information: 0x00000000
> 	Nominal Value: Unknown
> 
> Handle 0x0027, DMI type 36, 16 bytes
> Management Device Threshold Data
> 	Lower Non-critical Threshold: 1
> 	Upper Non-critical Threshold: 2
> 	Lower Critical Threshold: 3
> 	Upper Critical Threshold: 4
> 	Lower Non-recoverable Threshold: 5
> 	Upper Non-recoverable Threshold: 6
> 
> Handle 0x0028, DMI type 35, 11 bytes
> Management Device Component
> 	Description: To Be Filled By O.E.M.
> 	Management Device Handle: 0x0025
> 	Component Handle: 0x0025
> 	Threshold Handle: 0x0026
> 
> Handle 0x0029, DMI type 28, 22 bytes
> Temperature Probe
> 	Description: LM78A
> 	Location: <OUT OF SPEC>
> 	Status: <OUT OF SPEC>
> 	Maximum Value: Unknown
> 	Minimum Value: Unknown
> 	Resolution: Unknown
> 	Tolerance: Unknown
> 	Accuracy: Unknown
> 	OEM-specific Information: 0x00000000
> 	Nominal Value: Unknown
> 
> Handle 0x002A, DMI type 36, 16 bytes
> Management Device Threshold Data
> 	Lower Non-critical Threshold: 1
> 	Upper Non-critical Threshold: 2
> 	Lower Critical Threshold: 3
> 	Upper Critical Threshold: 4
> 	Lower Non-recoverable Threshold: 5
> 	Upper Non-recoverable Threshold: 6
> 
> Handle 0x002B, DMI type 35, 11 bytes
> Management Device Component
> 	Description: To Be Filled By O.E.M.
> 	Management Device Handle: 0x0025
> 	Component Handle: 0x0028
> 	Threshold Handle: 0x0029
> 
> Handle 0x002C, DMI type 27, 15 bytes
> Cooling Device
> 	Temperature Probe Handle: 0x0029
> 	Type: <OUT OF SPEC>
> 	Status: <OUT OF SPEC>
> 	Cooling Unit Group: 1
> 	OEM-specific Information: 0x00000000
> 	Nominal Speed: Unknown Or Non-rotating
> 	Description: Cooling Dev 1
> 
> Handle 0x002D, DMI type 36, 16 bytes
> Management Device Threshold Data
> 	Lower Non-critical Threshold: 1
> 	Upper Non-critical Threshold: 2
> 	Lower Critical Threshold: 3
> 	Upper Critical Threshold: 4
> 	Lower Non-recoverable Threshold: 5
> 	Upper Non-recoverable Threshold: 6
> 
> Handle 0x002E, DMI type 35, 11 bytes
> Management Device Component
> 	Description: To Be Filled By O.E.M.
> 	Management Device Handle: 0x0025
> 	Component Handle: 0x002B
> 	Threshold Handle: 0x002C
> 
> Handle 0x002F, DMI type 27, 15 bytes
> Cooling Device
> 	Temperature Probe Handle: 0x0029
> 	Type: <OUT OF SPEC>
> 	Status: <OUT OF SPEC>
> 	Cooling Unit Group: 1
> 	OEM-specific Information: 0x00000000
> 	Nominal Speed: Unknown Or Non-rotating
> 	Description: Not Specified
> 
> Handle 0x0030, DMI type 36, 16 bytes
> Management Device Threshold Data
> 	Lower Non-critical Threshold: 1
> 	Upper Non-critical Threshold: 2
> 	Lower Critical Threshold: 3
> 	Upper Critical Threshold: 4
> 	Lower Non-recoverable Threshold: 5
> 	Upper Non-recoverable Threshold: 6
> 
> Handle 0x0031, DMI type 35, 11 bytes
> Management Device Component
> 	Description: To Be Filled By O.E.M.
> 	Management Device Handle: 0x0025
> 	Component Handle: 0x002E
> 	Threshold Handle: 0x002F
> 
> Handle 0x0032, DMI type 29, 22 bytes
> Electrical Current Probe
> 	Description: ABC
> 	Location: <OUT OF SPEC>
> 	Status: <OUT OF SPEC>
> 	Maximum Value: Unknown
> 	Minimum Value: Unknown
> 	Resolution: Unknown
> 	Tolerance: Unknown
> 	Accuracy: Unknown
> 	OEM-specific Information: 0x00000000
> 	Nominal Value: Unknown
> 
> Handle 0x0033, DMI type 36, 16 bytes
> Management Device Threshold Data
> 
> Handle 0x0034, DMI type 35, 11 bytes
> Management Device Component
> 	Description: To Be Filled By O.E.M.
> 	Management Device Handle: 0x0025
> 	Component Handle: 0x0031
> 	Threshold Handle: 0x002F
> 
> Handle 0x0035, DMI type 26, 22 bytes
> Voltage Probe
> 	Description: LM78A
> 	Location: Power Unit
> 	Status: OK
> 	Maximum Value: Unknown
> 	Minimum Value: Unknown
> 	Resolution: Unknown
> 	Tolerance: Unknown
> 	Accuracy: Unknown
> 	OEM-specific Information: 0x00000000
> 	Nominal Value: Unknown
> 
> Handle 0x0036, DMI type 28, 22 bytes
> Temperature Probe
> 	Description: LM78A
> 	Location: Power Unit
> 	Status: OK
> 	Maximum Value: Unknown
> 	Minimum Value: Unknown
> 	Resolution: Unknown
> 	Tolerance: Unknown
> 	Accuracy: Unknown
> 	OEM-specific Information: 0x00000000
> 	Nominal Value: Unknown
> 
> Handle 0x0037, DMI type 27, 15 bytes
> Cooling Device
> 	Temperature Probe Handle: 0x0036
> 	Type: Power Supply Fan
> 	Status: OK
> 	Cooling Unit Group: 1
> 	OEM-specific Information: 0x00000000
> 	Nominal Speed: Unknown Or Non-rotating
> 	Description: Cooling Dev 1
> 
> Handle 0x0038, DMI type 29, 22 bytes
> Electrical Current Probe
> 	Description: ABC
> 	Location: Power Unit
> 	Status: OK
> 	Maximum Value: Unknown
> 	Minimum Value: Unknown
> 	Resolution: Unknown
> 	Tolerance: Unknown
> 	Accuracy: Unknown
> 	OEM-specific Information: 0x00000000
> 	Nominal Value: Unknown
> 
> Handle 0x0039, DMI type 39, 22 bytes
> System Power Supply
> 	Power Unit Group: 1
> 	Location: To Be Filled By O.E.M.
> 	Name: To Be Filled By O.E.M.
> 	Manufacturer: To Be Filled By O.E.M.
> 	Serial Number: To Be Filled By O.E.M.
> 	Asset Tag: To Be Filled By O.E.M.
> 	Model Part Number: To Be Filled By O.E.M.
> 	Revision: To Be Filled By O.E.M.
> 	Max Power Capacity: Unknown
> 	Status: Present, OK
> 	Type: Switching
> 	Input Voltage Range Switching: Auto-switch
> 	Plugged: Yes
> 	Hot Replaceable: No
> 	Input Voltage Probe Handle: 0x0035
> 	Cooling Device Handle: 0x0037
> 	Input Current Probe Handle: 0x0038
> 
> Handle 0x003A, DMI type 41, 11 bytes
> Onboard Device
> 	Reference Designation:  Onboard IGD
> 	Type: Video
> 	Status: Enabled
> 	Type Instance: 1
> 	Bus Address: 0000:00:02.0
> 
> Handle 0x003B, DMI type 41, 11 bytes
> Onboard Device
> 	Reference Designation:  Onboard LAN
> 	Type: Ethernet
> 	Status: Enabled
> 	Type Instance: 1
> 	Bus Address: 0000:00:19.0
> 
> Handle 0x003C, DMI type 41, 11 bytes
> Onboard Device
> 	Reference Designation:  Onboard 1394
> 	Type: Other
> 	Status: Enabled
> 	Type Instance: 1
> 	Bus Address: 0000:03:1c.2
> 
> Handle 0x003D, DMI type 4, 42 bytes
> Processor Information
> 	Socket Designation: SOCKET 0
> 	Type: Central Processor
> 	Family: Core i7
> 	Manufacturer: Intel
> 	ID: C3 06 03 00 FF FB EB BF
> 	Signature: Type 0, Family 6, Model 60, Stepping 3
> 	Flags:
> 		FPU (Floating-point unit on-chip)
> 		VME (Virtual mode extension)
> 		DE (Debugging extension)
> 		PSE (Page size extension)
> 		TSC (Time stamp counter)
> 		MSR (Model specific registers)
> 		PAE (Physical address extension)
> 		MCE (Machine check exception)
> 		CX8 (CMPXCHG8 instruction supported)
> 		APIC (On-chip APIC hardware supported)
> 		SEP (Fast system call)
> 		MTRR (Memory type range registers)
> 		PGE (Page global enable)
> 		MCA (Machine check architecture)
> 		CMOV (Conditional move instruction supported)
> 		PAT (Page attribute table)
> 		PSE-36 (36-bit page size extension)
> 		CLFSH (CLFLUSH instruction supported)
> 		DS (Debug store)
> 		ACPI (ACPI supported)
> 		MMX (MMX technology supported)
> 		FXSR (FXSAVE and FXSTOR instructions supported)
> 		SSE (Streaming SIMD extensions)
> 		SSE2 (Streaming SIMD extensions 2)
> 		SS (Self-snoop)
> 		HTT (Multi-threading)
> 		TM (Thermal monitor supported)
> 		PBE (Pending break enabled)
> 	Version: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
> 	Voltage: 1.2 V
> 	External Clock: 100 MHz
> 	Max Speed: 3800 MHz
> 	Current Speed: 3400 MHz
> 	Status: Populated, Enabled
> 	Upgrade: Socket BGA1155
> 	L1 Cache Handle: 0x003F
> 	L2 Cache Handle: 0x003E
> 	L3 Cache Handle: 0x0040
> 	Serial Number: Not Specified
> 	Asset Tag: Fill By OEM
> 	Part Number: Fill By OEM
> 	Core Count: 4
> 	Core Enabled: 4
> 	Thread Count: 8
> 	Characteristics:
> 		64-bit capable
> 
> Handle 0x003E, DMI type 7, 19 bytes
> Cache Information
> 	Socket Designation: CPU Internal L2
> 	Configuration: Enabled, Not Socketed, Level 2
> 	Operational Mode: Write Back
> 	Location: Internal
> 	Installed Size: 1024 kB
> 	Maximum Size: 1024 kB
> 	Supported SRAM Types:
> 		Unknown
> 	Installed SRAM Type: Unknown
> 	Speed: Unknown
> 	Error Correction Type: Single-bit ECC
> 	System Type: Unified
> 	Associativity: 8-way Set-associative
> 
> Handle 0x003F, DMI type 7, 19 bytes
> Cache Information
> 	Socket Designation: CPU Internal L1
> 	Configuration: Enabled, Not Socketed, Level 1
> 	Operational Mode: Write Back
> 	Location: Internal
> 	Installed Size: 256 kB
> 	Maximum Size: 256 kB
> 	Supported SRAM Types:
> 		Unknown
> 	Installed SRAM Type: Unknown
> 	Speed: Unknown
> 	Error Correction Type: Single-bit ECC
> 	System Type: Other
> 	Associativity: 8-way Set-associative
> 
> Handle 0x0040, DMI type 7, 19 bytes
> Cache Information
> 	Socket Designation: CPU Internal L3
> 	Configuration: Enabled, Not Socketed, Level 3
> 	Operational Mode: Write Back
> 	Location: Internal
> 	Installed Size: 8192 kB
> 	Maximum Size: 8192 kB
> 	Supported SRAM Types:
> 		Unknown
> 	Installed SRAM Type: Unknown
> 	Speed: Unknown
> 	Error Correction Type: Single-bit ECC
> 	System Type: Unified
> 	Associativity: 16-way Set-associative
> 
> Handle 0x0041, DMI type 16, 23 bytes
> Physical Memory Array
> 	Location: System Board Or Motherboard
> 	Use: System Memory
> 	Error Correction Type: None
> 	Maximum Capacity: 32 GB
> 	Error Information Handle: Not Provided
> 	Number Of Devices: 4
> 
> Handle 0x0042, DMI type 17, 40 bytes
> Memory Device
> 	Array Handle: 0x0041
> 	Error Information Handle: Not Provided
> 	Total Width: Unknown
> 	Data Width: Unknown
> 	Size: No Module Installed
> 	Form Factor: DIMM
> 	Set: None
> 	Locator: ChannelA-DIMM0
> 	Bank Locator: BANK 0
> 	Type: Unknown
> 	Type Detail: None
> 	Speed: Unknown
> 	Manufacturer: [Empty]
> 	Serial Number: [Empty]
> 	Asset Tag: 9876543210
> 	Part Number: [Empty]
> 	Rank: Unknown
> 	Configured Clock Speed: Unknown
> 	Minimum voltage:  Unknown
> 	Maximum voltage:  Unknown
> 	Configured voltage:  Unknown
> 
> Handle 0x0043, DMI type 15, 73 bytes
> System Event Log
> 	Area Length: 4096 bytes
> 	Header Start Offset: 0x0000
> 	Header Length: 16 bytes
> 	Data Start Offset: 0x0010
> 	Access Method: Memory-mapped physical 32-bit address
> 	Access Address: 0x000EF250
> 	Status: Valid, Not Full
> 	Change Token: 0x00000001
> 	Header Format: Type 1
> 	Supported Log Type Descriptors: 25
> 	Descriptor 1: Single-bit ECC memory error
> 	Data Format 1: None
> 	Descriptor 2: Multi-bit ECC memory error
> 	Data Format 2: None
> 	Descriptor 3: Parity memory error
> 	Data Format 3: None
> 	Descriptor 4: Bus timeout
> 	Data Format 4: None
> 	Descriptor 5: I/O channel block
> 	Data Format 5: None
> 	Descriptor 6: Software NMI
> 	Data Format 6: None
> 	Descriptor 7: POST memory resize
> 	Data Format 7: None
> 	Descriptor 8: POST error
> 	Data Format 8: POST results bitmap
> 	Descriptor 9: PCI parity error
> 	Data Format 9: None
> 	Descriptor 10: PCI system error
> 	Data Format 10: None
> 	Descriptor 11: CPU failure
> 	Data Format 11: None
> 	Descriptor 12: EISA failsafe timer timeout
> 	Data Format 12: None
> 	Descriptor 13: Correctable memory log disabled
> 	Data Format 13: None
> 	Descriptor 14: Logging disabled
> 	Data Format 14: None
> 	Descriptor 15: System limit exceeded
> 	Data Format 15: None
> 	Descriptor 16: Asynchronous hardware timer expired
> 	Data Format 16: None
> 	Descriptor 17: System configuration information
> 	Data Format 17: None
> 	Descriptor 18: Hard disk information
> 	Data Format 18: None
> 	Descriptor 19: System reconfigured
> 	Data Format 19: None
> 	Descriptor 20: Uncorrectable CPU-complex error
> 	Data Format 20: None
> 	Descriptor 21: Log area reset/cleared
> 	Data Format 21: None
> 	Descriptor 22: System boot
> 	Data Format 22: None
> 	Descriptor 23: End of log
> 	Data Format 23: None
> 	Descriptor 24: OEM-specific
> 	Data Format 24: OEM-specific
> 	Descriptor 25: OEM-specific
> 	Data Format 25: OEM-specific
> 
> Handle 0x0044, DMI type 17, 40 bytes
> Memory Device
> 	Array Handle: 0x0041
> 	Error Information Handle: Not Provided
> 	Total Width: 64 bits
> 	Data Width: 64 bits
> 	Size: 8192 MB
> 	Form Factor: DIMM
> 	Set: None
> 	Locator: ChannelA-DIMM1
> 	Bank Locator: BANK 1
> 	Type: DDR3
> 	Type Detail: Synchronous
> 	Speed: 1600 MHz
> 	Manufacturer: Samsung
> 	Serial Number: 17C7415F
> 	Asset Tag: 9876543210
> 	Part Number: M378B1G73QH0-CK0  
> 	Rank: 2
> 	Configured Clock Speed: 1600 MHz
> 	Minimum voltage:  1.500 V
> 	Maximum voltage:  1.500 V
> 	Configured voltage:  1.500 V
> 
> Handle 0x0045, DMI type 20, 35 bytes
> Memory Device Mapped Address
> 	Starting Address: 0x00000000000
> 	Ending Address: 0x001FFFFFFFF
> 	Range Size: 8 GB
> 	Physical Device Handle: 0x0044
> 	Memory Array Mapped Address Handle: 0x0049
> 	Partition Row Position: Unknown
> 	Interleave Position: 1
> 	Interleaved Data Depth: 2
> 
> Handle 0x0046, DMI type 17, 40 bytes
> Memory Device
> 	Array Handle: 0x0041
> 	Error Information Handle: Not Provided
> 	Total Width: Unknown
> 	Data Width: Unknown
> 	Size: No Module Installed
> 	Form Factor: DIMM
> 	Set: None
> 	Locator: ChannelB-DIMM0
> 	Bank Locator: BANK 2
> 	Type: Unknown
> 	Type Detail: None
> 	Speed: Unknown
> 	Manufacturer: [Empty]
> 	Serial Number: [Empty]
> 	Asset Tag: 9876543210
> 	Part Number: [Empty]
> 	Rank: Unknown
> 	Configured Clock Speed: Unknown
> 	Minimum voltage:  Unknown
> 	Maximum voltage:  Unknown
> 	Configured voltage:  Unknown
> 
> Handle 0x0047, DMI type 17, 40 bytes
> Memory Device
> 	Array Handle: 0x0041
> 	Error Information Handle: Not Provided
> 	Total Width: 64 bits
> 	Data Width: 64 bits
> 	Size: 8192 MB
> 	Form Factor: DIMM
> 	Set: None
> 	Locator: ChannelB-DIMM1
> 	Bank Locator: BANK 3
> 	Type: DDR3
> 	Type Detail: Synchronous
> 	Speed: 1600 MHz
> 	Manufacturer: Samsung
> 	Serial Number: 17C73CB4
> 	Asset Tag: 9876543210
> 	Part Number: M378B1G73QH0-CK0  
> 	Rank: 2
> 	Configured Clock Speed: 1600 MHz
> 	Minimum voltage:  1.500 V
> 	Maximum voltage:  1.500 V
> 	Configured voltage:  1.500 V
> 
> Handle 0x0048, DMI type 20, 35 bytes
> Memory Device Mapped Address
> 	Starting Address: 0x00200000000
> 	Ending Address: 0x003FFFFFFFF
> 	Range Size: 8 GB
> 	Physical Device Handle: 0x0047
> 	Memory Array Mapped Address Handle: 0x0049
> 	Partition Row Position: Unknown
> 	Interleave Position: 2
> 	Interleaved Data Depth: 2
> 
> Handle 0x0049, DMI type 19, 31 bytes
> Memory Array Mapped Address
> 	Starting Address: 0x00000000000
> 	Ending Address: 0x003FFFFFFFF
> 	Range Size: 16 GB
> 	Physical Array Handle: 0x0041
> 	Partition Width: 4
> 
> Handle 0x004D, DMI type 131, 22 bytes
> OEM-specific Type
> 	Header and Data:
> 		83 16 4D 00 01 03 00 00 00 00 00 00 00 00 00 00
> 		00 00 00 00 80 01
> 	Strings:
> 		TVT-Enablement
> 
> Handle 0x004E, DMI type 136, 6 bytes
> OEM-specific Type
> 	Header and Data:
> 		88 06 4E 00 00 00
> 
> Handle 0x004F, DMI type 140, 85 bytes
> OEM-specific Type
> 	Header and Data:
> 		8C 55 4F 00 4C 45 4E 4F 56 4F 0B 00 01 57 AA 83
> 		75 D9 46 9D 5C 0C 0F 8A D3 41 A8 37 81 01 00 00
> 		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 		00 00 00 00 00
> 
> Handle 0x0050, DMI type 140, 47 bytes
> OEM-specific Type
> 	Header and Data:
> 		8C 2F 50 00 4C 45 4E 4F 56 4F 0B 01 01 08 00 AF
> 		DF D1 79 CB 90 B9 6D A8 16 19 07 5E 54 2C 86 00
> 		00 00 00 10 00 10 00 10 01 D0 00 20 01 00 01
> 
> Handle 0x0051, DMI type 140, 63 bytes
> OEM-specific Type
> 	Header and Data:
> 		8C 3F 51 00 4C 45 4E 4F 56 4F 0B 02 01 00 00 00
> 		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 
> Handle 0x0052, DMI type 140, 17 bytes
> OEM-specific Type
> 	Header and Data:
> 		8C 11 52 00 4C 45 4E 4F 56 4F 0B 03 01 00 00 00
> 		00
> 
> Handle 0x0053, DMI type 140, 19 bytes
> OEM-specific Type
> 	Header and Data:
> 		8C 13 53 00 4C 45 4E 4F 56 4F 0B 04 01 B2 00 4D
> 		53 20 00
> 
> Handle 0x0054, DMI type 134, 16 bytes
> OEM-specific Type
> 	Header and Data:
> 		86 10 54 00 00 4A 10 00 00 4E 00 00 00 02 01 02
> 	Strings:
> 		TPM INFO
> 		System Reserved
> 
> Handle 0x0055, DMI type 10, 6 bytes
> On Board Device Information
> 	Type: Other
> 	Status: Disabled
> 	Description: IBM Embedded Security Hardware Type 3
> 
> Handle 0x0056, DMI type 140, 19 bytes
> OEM-specific Type
> 	Header and Data:
> 		8C 13 56 00 4C 45 4E 4F 56 4F 0B 05 01 02 00 00
> 		00 53 55
> 
> Handle 0x0057, DMI type 140, 23 bytes
> OEM-specific Type
> 	Header and Data:
> 		8C 17 57 00 4C 45 4E 4F 56 4F 0B 06 01 00 00 00
> 		00 00 00 00 00 00 00
> 
> Handle 0x0058, DMI type 130, 20 bytes
> OEM-specific Type
> 	Header and Data:
> 		82 14 58 00 24 41 4D 54 00 00 00 00 00 A5 8F 02
> 		01 00 00 00
> 
> Handle 0x0059, DMI type 131, 64 bytes
> OEM-specific Type
> 	Header and Data:
> 		83 40 59 00 35 00 00 00 0A 00 00 00 00 00 04 00
> 		F8 00 4E 8C 00 00 00 00 09 E0 00 00 01 00 09 00
> 		60 04 00 00 00 00 00 00 C8 00 3A 15 00 00 00 00
> 		00 00 00 00 66 00 00 00 76 50 72 6F 00 00 00 00
> 
> Handle 0x005A, DMI type 13, 22 bytes
> BIOS Language Information
> 	Language Description Format: Long
> 	Installable Languages: 3
> 		en|US|iso8859-1
> 		fr|FR|iso8859-1
> 		zh|CN|unicode
> 	Currently Installed Language: en|US|iso8859-1
> 
> Handle 0x005D, DMI type 127, 4 bytes
> End Of Table
> 
> 
> XEN dmesg:
> 
> Xen 4.6.0-unstable
> (XEN) Xen version 4.6.0-unstable (root@) (gcc (Debian 4.9.1-19) 4.9.1) debug=y 
> Thu Jan 22 05:41:00 EST 2015
> (XEN) Latest ChangeSet: Fri Jan 16 04:59:02 2015 -0500 git:8ecc953
> (XEN) Console output is synchronous.
> (XEN) Bootloader: GRUB 2.02~beta2-15
> (XEN) Command line: loglvl=all guest_loglvl=all dom0pvh=1 dom0_mem=max:2G 
> sync_console com1=19200,8n1 console=com1 
> iommu=debug,verbose,no-sharept,no-qinval,no-snoop apic_verbosity=debug
> (XEN) Video information:
> (XEN)  VGA is text mode 80x25, font 8x16
> (XEN)  VBE/DDC methods: V2; EDID transfer time: 1 seconds
> (XEN) Disc information:
> (XEN)  Found 1 MBR signatures
> (XEN)  Found 1 EDD information structures
> (XEN) Xen-e820 RAM map:
> (XEN)  0000000000000000 - 000000000009d800 (usable)
> (XEN)  000000000009d800 - 00000000000a0000 (reserved)
> (XEN)  00000000000e0000 - 0000000000100000 (reserved)
> (XEN)  0000000000100000 - 00000000c27e0000 (usable)
> (XEN)  00000000c27e0000 - 00000000c27e7000 (ACPI NVS)
> (XEN)  00000000c27e7000 - 00000000c2c2f000 (usable)
> (XEN)  00000000c2c2f000 - 00000000c30d6000 (reserved)
> (XEN)  00000000c30d6000 - 00000000d48ea000 (usable)
> (XEN)  00000000d48ea000 - 00000000d4976000 (reserved)
> (XEN)  00000000d4976000 - 00000000d49d8000 (ACPI data)
> (XEN)  00000000d49d8000 - 00000000d56f0000 (ACPI NVS)
> (XEN)  00000000d56f0000 - 00000000d5fff000 (reserved)

So this is where one of the RMRRs sits in (and also where
the faults occur according to the two numbers you sent
earlier, which - as others have already said - is an indication
of the reported RMRRs being incomplete), ...

> (XEN)  00000000d5fff000 - 00000000d6000000 (usable)
> (XEN)  00000000d7000000 - 00000000df200000 (reserved)

... and this is the exact range of the other one. But the usable
entry between them is a sign of the firmware not doing the
best job in assigning resources.

I don't, btw, think that blindly mapping all the reserved regions
into PVH Dom0's P2M would be (or is, if that's what's happening
today) correct - these regions are named reserved for a
reason. In the case here it's actually RAM, not MMIO, and
Dom0 (as well as Xen) has no business accessing these (for others
this may be different, e.g. the LAPIC and IO-APIC ones below,
but Xen learns/knows of them by means different from looking
at the memory map).

> (XEN)  00000000f8000000 - 00000000fc000000 (reserved)
> (XEN)  00000000fec00000 - 00000000fec01000 (reserved)
> (XEN)  00000000fed00000 - 00000000fed04000 (reserved)
> (XEN)  00000000fed1c000 - 00000000fed20000 (reserved)
> (XEN)  00000000fee00000 - 00000000fee01000 (reserved)
> (XEN)  00000000ff000000 - 0000000100000000 (reserved)
> (XEN)  0000000100000000 - 000000041ee00000 (usable)

> (XEN) [VT-D]dmar.c:788: Host address width 39
> (XEN) [VT-D]dmar.c:802: found ACPI_DMAR_DRHD:
> (XEN) [VT-D]dmar.c:472:   dmaru->address = fed90000
> (XEN) [VT-D]iommu.c:1136: drhd->address = fed90000 iommu->reg = ffff82c000201000
> (XEN) [VT-D]iommu.c:1138: cap = c0000020660462 ecap = f0101a
> (XEN) [VT-D]dmar.c:383:  endpoint: 0000:00:02.0
> (XEN) [VT-D]dmar.c:802: found ACPI_DMAR_DRHD:
> (XEN) [VT-D]dmar.c:472:   dmaru->address = fed91000
> (XEN) [VT-D]iommu.c:1136: drhd->address = fed91000 iommu->reg = ffff82c000203000
> (XEN) [VT-D]iommu.c:1138: cap = d2008020660462 ecap = f010da
> (XEN) [VT-D]dmar.c:397:  IOAPIC: 0000:f0:1f.0
> (XEN) [VT-D]dmar.c:361:  MSI HPET: 0000:f0:0f.0
> (XEN) [VT-D]dmar.c:486:   flags: INCLUDE_ALL
> (XEN) [VT-D]dmar.c:807: found ACPI_DMAR_RMRR:
> (XEN) [VT-D]dmar.c:383:  endpoint: 0000:00:1d.0
> (XEN) [VT-D]dmar.c:383:  endpoint: 0000:00:1a.0
> (XEN) [VT-D]dmar.c:383:  endpoint: 0000:00:14.0
> (XEN) [VT-D]dmar.c:676:   RMRR region: base_addr d5e6b000 end_address d5e91fff
> (XEN) [VT-D]dmar.c:807: found ACPI_DMAR_RMRR:
> (XEN) [VT-D]dmar.c:383:  endpoint: 0000:00:02.0
> (XEN) [VT-D]dmar.c:676:   RMRR region: base_addr d7000000 end_address df1fffff

So there are at least some RMRRs here.

> (XEN) Bogus DMIBAR 0xfed18001 on 0000:00:00.0

Pretty clearly a firmware flaw.

> (XEN) traps.c:3216: GPF (0000): ffff82d0801e0716 -> ffff82d080235ef9
> (XEN) traps.c:3216: GPF (0000): ffff82d0801e0716 -> ffff82d080235ef9
> (XEN) traps.c:3216: GPF (0000): ffff82d0801e0716 -> ffff82d080235ef9
> (XEN) traps.c:3216: GPF (0000): ffff82d0801e0716 -> ffff82d080235ef9
> 
> I am not sure about last lines here, I have not seen it before and leaving 
> it as it is. 

These should at least be investigated.

But - this being the end of the log: Where are the IOMMU faults
you say you see? Without those, it's unclear which of the devices
cause(s) them, and hence the lspci output isn't useful.

Jan

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-22 15:42 ` Roger Pau Monné
  2015-01-22 16:23   ` Elena Ufimtseva
@ 2015-01-22 17:34   ` Elena Ufimtseva
  2015-01-23 10:50     ` Jan Beulich
  1 sibling, 1 reply; 27+ messages in thread
From: Elena Ufimtseva @ 2015-01-22 17:34 UTC (permalink / raw)
  To: xen-devel
  Cc: kevin.tian, andrew.cooper3, tim, xen-devel, JBeulich,
	yang.z.zhang, boris.ostrovsky

On Thu, Jan 22, 2015 at 04:42:52PM +0100, Roger Pau Monné wrote:
> El 22/01/15 a les 16.18, Elena Ufimtseva ha escrit:
> > 
> > ----- JBeulich@suse.com wrote:
> > 
> >>>>> On 22.01.15 at 12:37, <roger.pau@citrix.com> wrote:
> >>> El 22/01/15 a les 12.09, Jan Beulich ha escrit:
> >>>>>>> On 22.01.15 at 11:59, <andrew.cooper3@citrix.com> wrote:
> >>>>> On 22/01/15 09:53, Jan Beulich wrote:
> >>>>>>>>> On 21.01.15 at 21:55, <elena.ufimtseva@oracle.com> wrote:
> >>>>>>> p2m_mmio_direct should result in setting IOMMUF_readable and
> >> IOMMUF_writable
> >>>>>>> flags.
> >>>>>>> When pvh domain maps mmio regions, the EPT entries are not
> >> getting mapped.
> >>>>>>> This leads to IOMMU Page faults for some devices, as for example
> >> USB Host
> >>>>>>> controllers with embedded Debug devices. See
> >> pvh-set-need_iommu-early RFC
> >>>>>>> patch discussion fgor detail.
> >>>>>> Even more so that the two patches aren't even a series, that
> >> part
> >>>>>> of the description belongs here, not in the other patch.
> >>>>>>
> >>>>>>> I will appreciate your comments and ideas in regards to this
> >> change.
> >>>>>>>
> >>>>>>> Looking at Roger patches (xen/pvh: check permissions when adding
> >> MMIO 
> >>>>>>> regions)
> >>>>>>> the mmio memory type is proposed to be changed from
> >> p2m_mmio_direct to 
> >>>>>>> p2m_access_rw.
> >>>>>>> This type still does not have proper IOMMU flags mapping.
> >>>>>> A fundamental question is what business devices have to DMA
> >> their
> >>>>>> own (or other devices') MMIO space. I could remotely see a need
> >>>>>> for this for e.g. frame buffers, but I have difficulty
> >> understanding
> >>>>>> this for USB devices. Please at the very least provide details on
> >> the
> >>>>>> MMIO regions that those devices have, and which of them you
> >>>>>> observed IOMMU faults on.
> >>>>>
> >>>>> It would appear that, in this case, it is a USB controller lacking
> >> an
> >>>>> appropriate RMRR description in the ACPI tables.
> >>>>
> >>>> No, RMRRs only reference RAM pages afaik.
> >>>
> >>> According to Linux IOMMU support document RMRRs reference regions
> >> marked
> >>> as "reserved" in the e820 memory map:
> >>>
> >>> https://www.kernel.org/doc/Documentation/Intel-IOMMU.txt 
> >>
> >> Exactly. And MMIO PCI BARs in particular are never to be
> >> reflected in the E820 (not the least because they're relocatable).
> >>
> >>> I don't think we are setting proper IOMMU entries for this regions
> >> at
> >>> all with the current PVH Dom0 code. IMHO instead of just adding
> >> IOMMU
> >>> entries for every MMIO region we should just add IOMMU entries for
> >> the
> >>> RMRR regions.
> >>
> >> Yes, RMRR regions should certainly be put there as r/w entries.
> >>
> >> Jan
> > 
> > How it will help in cases like this when this regions are not reported as RMRRs in ACPI?
> 
> AFAIK even if they are properly reported as RMRRs they won't have the
> right IOMMU mappings, are you sure they are not reported as RMRRs?
> 
> Roger.
>

Here are some details on machine config, lspci and etc.

Bare metal:

lspci


00:00.0 0600: 8086:0c00 (rev 06)
	Subsystem: 17aa:3097
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
	Latency: 0
	Capabilities: [e0] Vendor Specific Information: Len=0c <?>
	Kernel driver in use: hsw_uncore

00:02.0 0300: 8086:0412 (rev 06) (prog-if 00 [VGA controller])
	Subsystem: 17aa:3097
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 30
	Region 0: Memory at f7800000 (64-bit, non-prefetchable) [size=4M]
	Region 2: Memory at e0000000 (64-bit, prefetchable) [size=256M]
	Region 4: I/O ports at f000 [size=64]
	Expansion ROM at <unassigned> [disabled]
	Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
		Address: fee00018  Data: 0000
	Capabilities: [d0] Power Management version 2
		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [a4] PCI Advanced Features
		AFCap: TP+ FLR+
		AFCtrl: FLR-
		AFStatus: TP-
	Kernel driver in use: i915

00:03.0 0403: 8086:0c0c (rev 06)
	Subsystem: 17aa:3097
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 31
	Region 0: Memory at f7c30000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: [50] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit-
		Address: fee003d8  Data: 0000
	Capabilities: [70] Express (v1) Root Complex Integrated Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0
			ExtTag- RBE-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
	Kernel driver in use: snd_hda_intel

00:14.0 0c03: 8086:8c31 (rev 05) (prog-if 30 [XHCI])
	Subsystem: 17aa:3097
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 28
	Region 0: Memory at f7c20000 (64-bit, non-prefetchable) [size=64K]
	Capabilities: [70] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [80] MSI: Enable+ Count=1/8 Maskable- 64bit+
		Address: 00000000fee00378  Data: 0000
	Kernel driver in use: xhci_hcd

00:16.0 0780: 8086:8c3a (rev 04)
	Subsystem: 17aa:3097
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 29
	Region 0: Memory at f7c3b000 (64-bit, non-prefetchable) [size=16]
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [8c] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee00398  Data: 0000
	Kernel driver in use: mei_me

00:19.0 0200: 8086:153a (rev 05)
	Subsystem: 17aa:3097
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 26
	Region 0: Memory at f7c00000 (32-bit, non-prefetchable) [size=128K]
	Region 1: Memory at f7c39000 (32-bit, non-prefetchable) [size=4K]
	Region 2: I/O ports at f080 [size=32]
	Capabilities: [c8] Power Management version 2
		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
	Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee002f8  Data: 0000
	Capabilities: [e0] PCI Advanced Features
		AFCap: TP+ FLR+
		AFCtrl: FLR-
		AFStatus: TP-
	Kernel driver in use: e1000e

00:1a.0 0c03: 8086:8c2d (rev 05) (prog-if 20 [EHCI])
	Subsystem: 17aa:3097
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 17
	Region 0: Memory at f7c38000 (32-bit, non-prefetchable) [size=1K]
	Capabilities: [50] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Debug port: BAR=1 offset=00a0
	Capabilities: [98] PCI Advanced Features
		AFCap: TP+ FLR+
		AFCtrl: FLR-
		AFStatus: TP-
	Kernel driver in use: ehci-pci

00:1c.0 0604: 8086:8c10 (rev d5) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
	I/O behind bridge: 0000f000-00000fff
	Memory behind bridge: fff00000-000fffff
	Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [40] Express (v2) Root Port (Slot-), MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0
			ExtTag- RBE+
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
		LnkCap:	Port #1, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 <4us
			ClockPM- Surprise- LLActRep+ BwNot+
		LnkCtl:	ASPM L0s L1 Enabled; RCB 64 bytes Disabled- CommClk-
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
		RootCap: CRSVisible-
		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
		DevCap2: Completion Timeout: Range ABC, TimeoutDis+, LTR+, OBFF Via WAKE# ARIFwd-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled ARIFwd-
		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
			 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
	Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
		Address: 00000000  Data: 0000
	Capabilities: [90] Subsystem: 17aa:3097
	Capabilities: [a0] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Kernel driver in use: pcieport

00:1c.3 0604: 8086:8c16 (rev d5) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Bus: primary=00, secondary=02, subordinate=03, sec-latency=0
	I/O behind bridge: 0000f000-00000fff
	Memory behind bridge: fff00000-000fffff
	Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0
			ExtTag- RBE+
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
		LnkCap:	Port #4, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 <16us
			ClockPM- Surprise- LLActRep+ BwNot+
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- CommClk-
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
		SltCap:	AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
			Slot #3, PowerLimit 10.000W; Interlock- NoCompl+
		SltCtl:	Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
			Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
		SltSta:	Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
			Changed: MRL- PresDet- LinkState-
		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
		RootCap: CRSVisible-
		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
		DevCap2: Completion Timeout: Range ABC, TimeoutDis+, LTR+, OBFF Not Supported ARIFwd-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled ARIFwd-
		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
			 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
	Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
		Address: 00000000  Data: 0000
	Capabilities: [90] Subsystem: 17aa:3097
	Capabilities: [a0] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Kernel driver in use: pcieport

00:1d.0 0c03: 8086:8c26 (rev 05) (prog-if 20 [EHCI])
	Subsystem: 17aa:3097
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 23
	Region 0: Memory at f7c37000 (32-bit, non-prefetchable) [size=1K]
	Capabilities: [50] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Debug port: BAR=1 offset=00a0
	Capabilities: [98] PCI Advanced Features
		AFCap: TP+ FLR+
		AFCtrl: FLR-
		AFStatus: TP-
	Kernel driver in use: ehci-pci

00:1f.0 0601: 8086:8c4e (rev 05)
	Subsystem: 17aa:3097
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Capabilities: [e0] Vendor Specific Information: Len=0c <?>
	Kernel driver in use: lpc_ich

00:1f.2 0106: 8086:8c02 (rev 05) (prog-if 01 [AHCI 1.0])
	Subsystem: 17aa:3097
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin B routed to IRQ 27
	Region 0: I/O ports at f0d0 [size=8]
	Region 1: I/O ports at f0c0 [size=4]
	Region 2: I/O ports at f0b0 [size=8]
	Region 3: I/O ports at f0a0 [size=4]
	Region 4: I/O ports at f060 [size=32]
	Region 5: Memory at f7c36000 (32-bit, non-prefetchable) [size=2K]
	Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
		Address: fee00358  Data: 0000
	Capabilities: [70] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [a8] SATA HBA v1.0 BAR4 Offset=00000004
	Kernel driver in use: ahci

00:1f.3 0c05: 8086:8c22 (rev 05)
	Subsystem: 17aa:3097
	Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin C routed to IRQ 18
	Region 0: Memory at f7c35000 (64-bit, non-prefetchable) [size=256]
	Region 4: I/O ports at 0580 [size=32]

02:00.0 0604: 1283:8893 (rev 41) (prog-if 01 [Subtractive decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Bus: primary=02, secondary=03, subordinate=03, sec-latency=32
	I/O behind bridge: 0000f000-00000fff
	Memory behind bridge: fff00000-000fffff
	Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff
	Secondary status: 66MHz+ FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr+ DiscTmrStat- DiscTmrSERREn-
	Capabilities: [90] Power Management version 2
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [a0] Subsystem: 17aa:3097




# dmidecode 2.12
SMBIOS 2.8 present.
89 structures occupying 3527 bytes.
Table at 0x000EDC10.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
	Vendor: LENOVO
	Version: FBKTA4AUS
	Release Date: 12/11/2014
	Address: 0xF0000
	Runtime Size: 64 kB
	ROM Size: 6656 kB
	Characteristics:
		PCI is supported
		BIOS is upgradeable
		BIOS shadowing is allowed
		Boot from CD is supported
		Selectable boot is supported
		BIOS ROM is socketed
		EDD is supported
		5.25"/1.2 MB floppy services are supported (int 13h)
		3.5"/720 kB floppy services are supported (int 13h)
		3.5"/2.88 MB floppy services are supported (int 13h)
		Print screen service is supported (int 5h)
		8042 keyboard services are supported (int 9h)
		Serial services are supported (int 14h)
		Printer services are supported (int 17h)
		ACPI is supported
		USB legacy is supported
		BIOS boot specification is supported
		Targeted content distribution is supported
		UEFI is supported
	BIOS Revision: 1.164
	Firmware Revision: 1.13

Handle 0x0001, DMI type 1, 27 bytes
System Information
	Manufacturer: LENOVO
	Product Name: 10A6S09R01
	Version: ThinkCentre M93p
	Serial Number:  
	UUID: CD155584-7150-11E4-A0B5-AE7A9F861500
	Wake-up Type: Power Switch
	SKU Number: LENOVO_MT_10A6
	Family: To be filled by O.E.M.

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
	Manufacturer: LENOVO
	Product Name: SHARKBAY
	Version: 0B98401 WIN
	Serial Number:                     
	Asset Tag:                          
	Features:
		Board is a hosting board
		Board is replaceable
	Location In Chassis: To be filled by O.E.M.
	Chassis Handle: 0x0003
	Type: Motherboard
	Contained Object Handles: 0

Handle 0x0003, DMI type 3, 25 bytes
Chassis Information
	Manufacturer: To Be Filled By O.E.M.
	Type: Desktop
	Lock: Not Present
	Version: To Be Filled By O.E.M.
	Serial Number: MJ01S0UJ
	Asset Tag:  
	Boot-up State: Safe
	Power Supply State: Safe
	Thermal State: Safe
	Security Status: None
	OEM Information: 0x00000000
	Height: Unspecified
	Number Of Power Cords: 1
	Contained Elements: 1
		<OUT OF SPEC> (0)
	SKU Number: To be filled by O.E.M.

Handle 0x0004, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J1A1
	Internal Connector Type: None
	External Reference Designator: PS2Mouse
	External Connector Type: PS/2
	Port Type: Mouse Port

Handle 0x0005, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J1A1
	Internal Connector Type: None
	External Reference Designator: Keyboard
	External Connector Type: PS/2
	Port Type: Keyboard Port

Handle 0x0006, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J2A1
	Internal Connector Type: None
	External Reference Designator: TV Out
	External Connector Type: Mini Centronics Type-14
	Port Type: Other

Handle 0x0007, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J2A2A
	Internal Connector Type: None
	External Reference Designator: COM A
	External Connector Type: DB-9 male
	Port Type: Serial Port 16550A Compatible

Handle 0x0008, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J2A2B
	Internal Connector Type: None
	External Reference Designator: Video
	External Connector Type: DB-15 female
	Port Type: Video Port

Handle 0x0009, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J3A1
	Internal Connector Type: None
	External Reference Designator: USB1
	External Connector Type: Access Bus (USB)
	Port Type: USB

Handle 0x000A, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J3A1
	Internal Connector Type: None
	External Reference Designator: USB2
	External Connector Type: Access Bus (USB)
	Port Type: USB

Handle 0x000B, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J3A1
	Internal Connector Type: None
	External Reference Designator: USB3
	External Connector Type: Access Bus (USB)
	Port Type: USB

Handle 0x000C, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J9A1 - TPM HDR
	Internal Connector Type: Other
	External Reference Designator: Not Specified
	External Connector Type: None
	Port Type: Other

Handle 0x000D, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J9C1 - PCIE DOCKING CONN
	Internal Connector Type: Other
	External Reference Designator: Not Specified
	External Connector Type: None
	Port Type: Other

Handle 0x000E, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J2B3 - CPU FAN
	Internal Connector Type: Other
	External Reference Designator: Not Specified
	External Connector Type: None
	Port Type: Other

Handle 0x000F, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J6C2 - EXT HDMI
	Internal Connector Type: Other
	External Reference Designator: Not Specified
	External Connector Type: None
	Port Type: Other

Handle 0x0010, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J3C1 - GMCH FAN
	Internal Connector Type: Other
	External Reference Designator: Not Specified
	External Connector Type: None
	Port Type: Other

Handle 0x0011, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J1D1 - ITP
	Internal Connector Type: Other
	External Reference Designator: Not Specified
	External Connector Type: None
	Port Type: Other

Handle 0x0012, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J9E2 - MDC INTPSR
	Internal Connector Type: Other
	External Reference Designator: Not Specified
	External Connector Type: None
	Port Type: Other

Handle 0x0013, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J9E4 - MDC INTPSR
	Internal Connector Type: Other
	External Reference Designator: Not Specified
	External Connector Type: None
	Port Type: Other

Handle 0x0014, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J9E3 - LPC HOT DOCKING
	Internal Connector Type: Other
	External Reference Designator: Not Specified
	External Connector Type: None
	Port Type: Other

Handle 0x0015, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J9E1 - SCAN MATRIX
	Internal Connector Type: Other
	External Reference Designator: Not Specified
	External Connector Type: None
	Port Type: Other

Handle 0x0016, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J9G1 - LPC SIDE BAND
	Internal Connector Type: Other
	External Reference Designator: Not Specified
	External Connector Type: None
	Port Type: Other

Handle 0x0017, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J8F1 - UNIFIED
	Internal Connector Type: Other
	External Reference Designator: Not Specified
	External Connector Type: None
	Port Type: Other

Handle 0x0018, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J6F1 - LVDS
	Internal Connector Type: Other
	External Reference Designator: Not Specified
	External Connector Type: None
	Port Type: Other

Handle 0x0019, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J2F1 - LAI FAN
	Internal Connector Type: Other
	External Reference Designator: Not Specified
	External Connector Type: None
	Port Type: Other

Handle 0x001A, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J2G1 - GFX VID
	Internal Connector Type: Other
	External Reference Designator: Not Specified
	External Connector Type: None
	Port Type: Other

Handle 0x001B, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J1G6 - AC JACK
	Internal Connector Type: Other
	External Reference Designator: Not Specified
	External Connector Type: None
	Port Type: Other

Handle 0x001C, DMI type 9, 17 bytes
System Slot Information
	Designation: J6B2
	Type: x16 PCI Express
	Current Usage: In Use
	Length: Long
	ID: 0
	Characteristics:
		3.3 V is provided
		Opening is shared
		PME signal is supported
	Bus Address: 0000:00:01.0

Handle 0x001D, DMI type 9, 17 bytes
System Slot Information
	Designation: J6B1
	Type: x1 PCI Express
	Current Usage: In Use
	Length: Short
	ID: 1
	Characteristics:
		3.3 V is provided
		Opening is shared
		PME signal is supported
	Bus Address: 0000:00:1c.3

Handle 0x001E, DMI type 9, 17 bytes
System Slot Information
	Designation: J6D1
	Type: x1 PCI Express
	Current Usage: In Use
	Length: Short
	ID: 2
	Characteristics:
		3.3 V is provided
		Opening is shared
		PME signal is supported
	Bus Address: 0000:00:1c.4

Handle 0x001F, DMI type 9, 17 bytes
System Slot Information
	Designation: J7B1
	Type: x1 PCI Express
	Current Usage: In Use
	Length: Short
	ID: 3
	Characteristics:
		3.3 V is provided
		Opening is shared
		PME signal is supported
	Bus Address: 0000:00:1c.5

Handle 0x0020, DMI type 10, 12 bytes
On Board Device 1 Information
	Type: Video
	Status: Enabled
	Description:    Onboard Video
On Board Device 2 Information
	Type: Ethernet
	Status: Enabled
	Description: Onboard LAN
On Board Device 3 Information
	Type: Sound
	Status: Disabled
	Description:   Onboard Audio
On Board Device 4 Information
	Type: SATA Controller
	Status: Enabled
	Description:   Sata Controller

Handle 0x0021, DMI type 11, 5 bytes
OEM Strings
	String 1: LENOVO ThinkCentre Embedded Controller -[FBCT13A-1.13]-
	String 2: LENOVO ThinkCentre BIOS Boot Block Revision 1.A1

Handle 0x0022, DMI type 12, 5 bytes
System Configuration Options
	Option 1: scre++

Handle 0x0023, DMI type 24, 5 bytes
Hardware Security
	Power-On Password Status: Disabled
	Keyboard Password Status: Enabled
	Administrator Password Status: Disabled
	Front Panel Reset Status: Not Implemented

Handle 0x0024, DMI type 32, 20 bytes
System Boot Information
	Status: No errors detected

Handle 0x0025, DMI type 34, 11 bytes
Management Device
	Description: LM78-1
	Type: LM78
	Address: 0x00000000
	Address Type: I/O Port

Handle 0x0026, DMI type 26, 22 bytes
Voltage Probe
	Description: LM78A
	Location: <OUT OF SPEC>
	Status: <OUT OF SPEC>
	Maximum Value: Unknown
	Minimum Value: Unknown
	Resolution: Unknown
	Tolerance: Unknown
	Accuracy: Unknown
	OEM-specific Information: 0x00000000
	Nominal Value: Unknown

Handle 0x0027, DMI type 36, 16 bytes
Management Device Threshold Data
	Lower Non-critical Threshold: 1
	Upper Non-critical Threshold: 2
	Lower Critical Threshold: 3
	Upper Critical Threshold: 4
	Lower Non-recoverable Threshold: 5
	Upper Non-recoverable Threshold: 6

Handle 0x0028, DMI type 35, 11 bytes
Management Device Component
	Description: To Be Filled By O.E.M.
	Management Device Handle: 0x0025
	Component Handle: 0x0025
	Threshold Handle: 0x0026

Handle 0x0029, DMI type 28, 22 bytes
Temperature Probe
	Description: LM78A
	Location: <OUT OF SPEC>
	Status: <OUT OF SPEC>
	Maximum Value: Unknown
	Minimum Value: Unknown
	Resolution: Unknown
	Tolerance: Unknown
	Accuracy: Unknown
	OEM-specific Information: 0x00000000
	Nominal Value: Unknown

Handle 0x002A, DMI type 36, 16 bytes
Management Device Threshold Data
	Lower Non-critical Threshold: 1
	Upper Non-critical Threshold: 2
	Lower Critical Threshold: 3
	Upper Critical Threshold: 4
	Lower Non-recoverable Threshold: 5
	Upper Non-recoverable Threshold: 6

Handle 0x002B, DMI type 35, 11 bytes
Management Device Component
	Description: To Be Filled By O.E.M.
	Management Device Handle: 0x0025
	Component Handle: 0x0028
	Threshold Handle: 0x0029

Handle 0x002C, DMI type 27, 15 bytes
Cooling Device
	Temperature Probe Handle: 0x0029
	Type: <OUT OF SPEC>
	Status: <OUT OF SPEC>
	Cooling Unit Group: 1
	OEM-specific Information: 0x00000000
	Nominal Speed: Unknown Or Non-rotating
	Description: Cooling Dev 1

Handle 0x002D, DMI type 36, 16 bytes
Management Device Threshold Data
	Lower Non-critical Threshold: 1
	Upper Non-critical Threshold: 2
	Lower Critical Threshold: 3
	Upper Critical Threshold: 4
	Lower Non-recoverable Threshold: 5
	Upper Non-recoverable Threshold: 6

Handle 0x002E, DMI type 35, 11 bytes
Management Device Component
	Description: To Be Filled By O.E.M.
	Management Device Handle: 0x0025
	Component Handle: 0x002B
	Threshold Handle: 0x002C

Handle 0x002F, DMI type 27, 15 bytes
Cooling Device
	Temperature Probe Handle: 0x0029
	Type: <OUT OF SPEC>
	Status: <OUT OF SPEC>
	Cooling Unit Group: 1
	OEM-specific Information: 0x00000000
	Nominal Speed: Unknown Or Non-rotating
	Description: Not Specified

Handle 0x0030, DMI type 36, 16 bytes
Management Device Threshold Data
	Lower Non-critical Threshold: 1
	Upper Non-critical Threshold: 2
	Lower Critical Threshold: 3
	Upper Critical Threshold: 4
	Lower Non-recoverable Threshold: 5
	Upper Non-recoverable Threshold: 6

Handle 0x0031, DMI type 35, 11 bytes
Management Device Component
	Description: To Be Filled By O.E.M.
	Management Device Handle: 0x0025
	Component Handle: 0x002E
	Threshold Handle: 0x002F

Handle 0x0032, DMI type 29, 22 bytes
Electrical Current Probe
	Description: ABC
	Location: <OUT OF SPEC>
	Status: <OUT OF SPEC>
	Maximum Value: Unknown
	Minimum Value: Unknown
	Resolution: Unknown
	Tolerance: Unknown
	Accuracy: Unknown
	OEM-specific Information: 0x00000000
	Nominal Value: Unknown

Handle 0x0033, DMI type 36, 16 bytes
Management Device Threshold Data

Handle 0x0034, DMI type 35, 11 bytes
Management Device Component
	Description: To Be Filled By O.E.M.
	Management Device Handle: 0x0025
	Component Handle: 0x0031
	Threshold Handle: 0x002F

Handle 0x0035, DMI type 26, 22 bytes
Voltage Probe
	Description: LM78A
	Location: Power Unit
	Status: OK
	Maximum Value: Unknown
	Minimum Value: Unknown
	Resolution: Unknown
	Tolerance: Unknown
	Accuracy: Unknown
	OEM-specific Information: 0x00000000
	Nominal Value: Unknown

Handle 0x0036, DMI type 28, 22 bytes
Temperature Probe
	Description: LM78A
	Location: Power Unit
	Status: OK
	Maximum Value: Unknown
	Minimum Value: Unknown
	Resolution: Unknown
	Tolerance: Unknown
	Accuracy: Unknown
	OEM-specific Information: 0x00000000
	Nominal Value: Unknown

Handle 0x0037, DMI type 27, 15 bytes
Cooling Device
	Temperature Probe Handle: 0x0036
	Type: Power Supply Fan
	Status: OK
	Cooling Unit Group: 1
	OEM-specific Information: 0x00000000
	Nominal Speed: Unknown Or Non-rotating
	Description: Cooling Dev 1

Handle 0x0038, DMI type 29, 22 bytes
Electrical Current Probe
	Description: ABC
	Location: Power Unit
	Status: OK
	Maximum Value: Unknown
	Minimum Value: Unknown
	Resolution: Unknown
	Tolerance: Unknown
	Accuracy: Unknown
	OEM-specific Information: 0x00000000
	Nominal Value: Unknown

Handle 0x0039, DMI type 39, 22 bytes
System Power Supply
	Power Unit Group: 1
	Location: To Be Filled By O.E.M.
	Name: To Be Filled By O.E.M.
	Manufacturer: To Be Filled By O.E.M.
	Serial Number: To Be Filled By O.E.M.
	Asset Tag: To Be Filled By O.E.M.
	Model Part Number: To Be Filled By O.E.M.
	Revision: To Be Filled By O.E.M.
	Max Power Capacity: Unknown
	Status: Present, OK
	Type: Switching
	Input Voltage Range Switching: Auto-switch
	Plugged: Yes
	Hot Replaceable: No
	Input Voltage Probe Handle: 0x0035
	Cooling Device Handle: 0x0037
	Input Current Probe Handle: 0x0038

Handle 0x003A, DMI type 41, 11 bytes
Onboard Device
	Reference Designation:  Onboard IGD
	Type: Video
	Status: Enabled
	Type Instance: 1
	Bus Address: 0000:00:02.0

Handle 0x003B, DMI type 41, 11 bytes
Onboard Device
	Reference Designation:  Onboard LAN
	Type: Ethernet
	Status: Enabled
	Type Instance: 1
	Bus Address: 0000:00:19.0

Handle 0x003C, DMI type 41, 11 bytes
Onboard Device
	Reference Designation:  Onboard 1394
	Type: Other
	Status: Enabled
	Type Instance: 1
	Bus Address: 0000:03:1c.2

Handle 0x003D, DMI type 4, 42 bytes
Processor Information
	Socket Designation: SOCKET 0
	Type: Central Processor
	Family: Core i7
	Manufacturer: Intel
	ID: C3 06 03 00 FF FB EB BF
	Signature: Type 0, Family 6, Model 60, Stepping 3
	Flags:
		FPU (Floating-point unit on-chip)
		VME (Virtual mode extension)
		DE (Debugging extension)
		PSE (Page size extension)
		TSC (Time stamp counter)
		MSR (Model specific registers)
		PAE (Physical address extension)
		MCE (Machine check exception)
		CX8 (CMPXCHG8 instruction supported)
		APIC (On-chip APIC hardware supported)
		SEP (Fast system call)
		MTRR (Memory type range registers)
		PGE (Page global enable)
		MCA (Machine check architecture)
		CMOV (Conditional move instruction supported)
		PAT (Page attribute table)
		PSE-36 (36-bit page size extension)
		CLFSH (CLFLUSH instruction supported)
		DS (Debug store)
		ACPI (ACPI supported)
		MMX (MMX technology supported)
		FXSR (FXSAVE and FXSTOR instructions supported)
		SSE (Streaming SIMD extensions)
		SSE2 (Streaming SIMD extensions 2)
		SS (Self-snoop)
		HTT (Multi-threading)
		TM (Thermal monitor supported)
		PBE (Pending break enabled)
	Version: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
	Voltage: 1.2 V
	External Clock: 100 MHz
	Max Speed: 3800 MHz
	Current Speed: 3400 MHz
	Status: Populated, Enabled
	Upgrade: Socket BGA1155
	L1 Cache Handle: 0x003F
	L2 Cache Handle: 0x003E
	L3 Cache Handle: 0x0040
	Serial Number: Not Specified
	Asset Tag: Fill By OEM
	Part Number: Fill By OEM
	Core Count: 4
	Core Enabled: 4
	Thread Count: 8
	Characteristics:
		64-bit capable

Handle 0x003E, DMI type 7, 19 bytes
Cache Information
	Socket Designation: CPU Internal L2
	Configuration: Enabled, Not Socketed, Level 2
	Operational Mode: Write Back
	Location: Internal
	Installed Size: 1024 kB
	Maximum Size: 1024 kB
	Supported SRAM Types:
		Unknown
	Installed SRAM Type: Unknown
	Speed: Unknown
	Error Correction Type: Single-bit ECC
	System Type: Unified
	Associativity: 8-way Set-associative

Handle 0x003F, DMI type 7, 19 bytes
Cache Information
	Socket Designation: CPU Internal L1
	Configuration: Enabled, Not Socketed, Level 1
	Operational Mode: Write Back
	Location: Internal
	Installed Size: 256 kB
	Maximum Size: 256 kB
	Supported SRAM Types:
		Unknown
	Installed SRAM Type: Unknown
	Speed: Unknown
	Error Correction Type: Single-bit ECC
	System Type: Other
	Associativity: 8-way Set-associative

Handle 0x0040, DMI type 7, 19 bytes
Cache Information
	Socket Designation: CPU Internal L3
	Configuration: Enabled, Not Socketed, Level 3
	Operational Mode: Write Back
	Location: Internal
	Installed Size: 8192 kB
	Maximum Size: 8192 kB
	Supported SRAM Types:
		Unknown
	Installed SRAM Type: Unknown
	Speed: Unknown
	Error Correction Type: Single-bit ECC
	System Type: Unified
	Associativity: 16-way Set-associative

Handle 0x0041, DMI type 16, 23 bytes
Physical Memory Array
	Location: System Board Or Motherboard
	Use: System Memory
	Error Correction Type: None
	Maximum Capacity: 32 GB
	Error Information Handle: Not Provided
	Number Of Devices: 4

Handle 0x0042, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x0041
	Error Information Handle: Not Provided
	Total Width: Unknown
	Data Width: Unknown
	Size: No Module Installed
	Form Factor: DIMM
	Set: None
	Locator: ChannelA-DIMM0
	Bank Locator: BANK 0
	Type: Unknown
	Type Detail: None
	Speed: Unknown
	Manufacturer: [Empty]
	Serial Number: [Empty]
	Asset Tag: 9876543210
	Part Number: [Empty]
	Rank: Unknown
	Configured Clock Speed: Unknown
	Minimum voltage:  Unknown
	Maximum voltage:  Unknown
	Configured voltage:  Unknown

Handle 0x0043, DMI type 15, 73 bytes
System Event Log
	Area Length: 4096 bytes
	Header Start Offset: 0x0000
	Header Length: 16 bytes
	Data Start Offset: 0x0010
	Access Method: Memory-mapped physical 32-bit address
	Access Address: 0x000EF250
	Status: Valid, Not Full
	Change Token: 0x00000001
	Header Format: Type 1
	Supported Log Type Descriptors: 25
	Descriptor 1: Single-bit ECC memory error
	Data Format 1: None
	Descriptor 2: Multi-bit ECC memory error
	Data Format 2: None
	Descriptor 3: Parity memory error
	Data Format 3: None
	Descriptor 4: Bus timeout
	Data Format 4: None
	Descriptor 5: I/O channel block
	Data Format 5: None
	Descriptor 6: Software NMI
	Data Format 6: None
	Descriptor 7: POST memory resize
	Data Format 7: None
	Descriptor 8: POST error
	Data Format 8: POST results bitmap
	Descriptor 9: PCI parity error
	Data Format 9: None
	Descriptor 10: PCI system error
	Data Format 10: None
	Descriptor 11: CPU failure
	Data Format 11: None
	Descriptor 12: EISA failsafe timer timeout
	Data Format 12: None
	Descriptor 13: Correctable memory log disabled
	Data Format 13: None
	Descriptor 14: Logging disabled
	Data Format 14: None
	Descriptor 15: System limit exceeded
	Data Format 15: None
	Descriptor 16: Asynchronous hardware timer expired
	Data Format 16: None
	Descriptor 17: System configuration information
	Data Format 17: None
	Descriptor 18: Hard disk information
	Data Format 18: None
	Descriptor 19: System reconfigured
	Data Format 19: None
	Descriptor 20: Uncorrectable CPU-complex error
	Data Format 20: None
	Descriptor 21: Log area reset/cleared
	Data Format 21: None
	Descriptor 22: System boot
	Data Format 22: None
	Descriptor 23: End of log
	Data Format 23: None
	Descriptor 24: OEM-specific
	Data Format 24: OEM-specific
	Descriptor 25: OEM-specific
	Data Format 25: OEM-specific

Handle 0x0044, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x0041
	Error Information Handle: Not Provided
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 8192 MB
	Form Factor: DIMM
	Set: None
	Locator: ChannelA-DIMM1
	Bank Locator: BANK 1
	Type: DDR3
	Type Detail: Synchronous
	Speed: 1600 MHz
	Manufacturer: Samsung
	Serial Number: 17C7415F
	Asset Tag: 9876543210
	Part Number: M378B1G73QH0-CK0  
	Rank: 2
	Configured Clock Speed: 1600 MHz
	Minimum voltage:  1.500 V
	Maximum voltage:  1.500 V
	Configured voltage:  1.500 V

Handle 0x0045, DMI type 20, 35 bytes
Memory Device Mapped Address
	Starting Address: 0x00000000000
	Ending Address: 0x001FFFFFFFF
	Range Size: 8 GB
	Physical Device Handle: 0x0044
	Memory Array Mapped Address Handle: 0x0049
	Partition Row Position: Unknown
	Interleave Position: 1
	Interleaved Data Depth: 2

Handle 0x0046, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x0041
	Error Information Handle: Not Provided
	Total Width: Unknown
	Data Width: Unknown
	Size: No Module Installed
	Form Factor: DIMM
	Set: None
	Locator: ChannelB-DIMM0
	Bank Locator: BANK 2
	Type: Unknown
	Type Detail: None
	Speed: Unknown
	Manufacturer: [Empty]
	Serial Number: [Empty]
	Asset Tag: 9876543210
	Part Number: [Empty]
	Rank: Unknown
	Configured Clock Speed: Unknown
	Minimum voltage:  Unknown
	Maximum voltage:  Unknown
	Configured voltage:  Unknown

Handle 0x0047, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x0041
	Error Information Handle: Not Provided
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 8192 MB
	Form Factor: DIMM
	Set: None
	Locator: ChannelB-DIMM1
	Bank Locator: BANK 3
	Type: DDR3
	Type Detail: Synchronous
	Speed: 1600 MHz
	Manufacturer: Samsung
	Serial Number: 17C73CB4
	Asset Tag: 9876543210
	Part Number: M378B1G73QH0-CK0  
	Rank: 2
	Configured Clock Speed: 1600 MHz
	Minimum voltage:  1.500 V
	Maximum voltage:  1.500 V
	Configured voltage:  1.500 V

Handle 0x0048, DMI type 20, 35 bytes
Memory Device Mapped Address
	Starting Address: 0x00200000000
	Ending Address: 0x003FFFFFFFF
	Range Size: 8 GB
	Physical Device Handle: 0x0047
	Memory Array Mapped Address Handle: 0x0049
	Partition Row Position: Unknown
	Interleave Position: 2
	Interleaved Data Depth: 2

Handle 0x0049, DMI type 19, 31 bytes
Memory Array Mapped Address
	Starting Address: 0x00000000000
	Ending Address: 0x003FFFFFFFF
	Range Size: 16 GB
	Physical Array Handle: 0x0041
	Partition Width: 4

Handle 0x004D, DMI type 131, 22 bytes
OEM-specific Type
	Header and Data:
		83 16 4D 00 01 03 00 00 00 00 00 00 00 00 00 00
		00 00 00 00 80 01
	Strings:
		TVT-Enablement

Handle 0x004E, DMI type 136, 6 bytes
OEM-specific Type
	Header and Data:
		88 06 4E 00 00 00

Handle 0x004F, DMI type 140, 85 bytes
OEM-specific Type
	Header and Data:
		8C 55 4F 00 4C 45 4E 4F 56 4F 0B 00 01 57 AA 83
		75 D9 46 9D 5C 0C 0F 8A D3 41 A8 37 81 01 00 00
		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
		00 00 00 00 00

Handle 0x0050, DMI type 140, 47 bytes
OEM-specific Type
	Header and Data:
		8C 2F 50 00 4C 45 4E 4F 56 4F 0B 01 01 08 00 AF
		DF D1 79 CB 90 B9 6D A8 16 19 07 5E 54 2C 86 00
		00 00 00 10 00 10 00 10 01 D0 00 20 01 00 01

Handle 0x0051, DMI type 140, 63 bytes
OEM-specific Type
	Header and Data:
		8C 3F 51 00 4C 45 4E 4F 56 4F 0B 02 01 00 00 00
		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Handle 0x0052, DMI type 140, 17 bytes
OEM-specific Type
	Header and Data:
		8C 11 52 00 4C 45 4E 4F 56 4F 0B 03 01 00 00 00
		00

Handle 0x0053, DMI type 140, 19 bytes
OEM-specific Type
	Header and Data:
		8C 13 53 00 4C 45 4E 4F 56 4F 0B 04 01 B2 00 4D
		53 20 00

Handle 0x0054, DMI type 134, 16 bytes
OEM-specific Type
	Header and Data:
		86 10 54 00 00 4A 10 00 00 4E 00 00 00 02 01 02
	Strings:
		TPM INFO
		System Reserved

Handle 0x0055, DMI type 10, 6 bytes
On Board Device Information
	Type: Other
	Status: Disabled
	Description: IBM Embedded Security Hardware Type 3

Handle 0x0056, DMI type 140, 19 bytes
OEM-specific Type
	Header and Data:
		8C 13 56 00 4C 45 4E 4F 56 4F 0B 05 01 02 00 00
		00 53 55

Handle 0x0057, DMI type 140, 23 bytes
OEM-specific Type
	Header and Data:
		8C 17 57 00 4C 45 4E 4F 56 4F 0B 06 01 00 00 00
		00 00 00 00 00 00 00

Handle 0x0058, DMI type 130, 20 bytes
OEM-specific Type
	Header and Data:
		82 14 58 00 24 41 4D 54 00 00 00 00 00 A5 8F 02
		01 00 00 00

Handle 0x0059, DMI type 131, 64 bytes
OEM-specific Type
	Header and Data:
		83 40 59 00 35 00 00 00 0A 00 00 00 00 00 04 00
		F8 00 4E 8C 00 00 00 00 09 E0 00 00 01 00 09 00
		60 04 00 00 00 00 00 00 C8 00 3A 15 00 00 00 00
		00 00 00 00 66 00 00 00 76 50 72 6F 00 00 00 00

Handle 0x005A, DMI type 13, 22 bytes
BIOS Language Information
	Language Description Format: Long
	Installable Languages: 3
		en|US|iso8859-1
		fr|FR|iso8859-1
		zh|CN|unicode
	Currently Installed Language: en|US|iso8859-1

Handle 0x005D, DMI type 127, 4 bytes
End Of Table


XEN dmesg:

Xen 4.6.0-unstable
(XEN) Xen version 4.6.0-unstable (root@) (gcc (Debian 4.9.1-19) 4.9.1) debug=y Thu Jan 22 05:41:00 EST 2015
(XEN) Latest ChangeSet: Fri Jan 16 04:59:02 2015 -0500 git:8ecc953
(XEN) Console output is synchronous.
(XEN) Bootloader: GRUB 2.02~beta2-15
(XEN) Command line: loglvl=all guest_loglvl=all dom0pvh=1 dom0_mem=max:2G sync_console com1=19200,8n1 console=com1 iommu=debug,verbose,no-sharept,no-qinval,no-snoop apic_verbosity=debug
(XEN) Video information:
(XEN)  VGA is text mode 80x25, font 8x16
(XEN)  VBE/DDC methods: V2; EDID transfer time: 1 seconds
(XEN) Disc information:
(XEN)  Found 1 MBR signatures
(XEN)  Found 1 EDD information structures
(XEN) Xen-e820 RAM map:
(XEN)  0000000000000000 - 000000000009d800 (usable)
(XEN)  000000000009d800 - 00000000000a0000 (reserved)
(XEN)  00000000000e0000 - 0000000000100000 (reserved)
(XEN)  0000000000100000 - 00000000c27e0000 (usable)
(XEN)  00000000c27e0000 - 00000000c27e7000 (ACPI NVS)
(XEN)  00000000c27e7000 - 00000000c2c2f000 (usable)
(XEN)  00000000c2c2f000 - 00000000c30d6000 (reserved)
(XEN)  00000000c30d6000 - 00000000d48ea000 (usable)
(XEN)  00000000d48ea000 - 00000000d4976000 (reserved)
(XEN)  00000000d4976000 - 00000000d49d8000 (ACPI data)
(XEN)  00000000d49d8000 - 00000000d56f0000 (ACPI NVS)
(XEN)  00000000d56f0000 - 00000000d5fff000 (reserved)
(XEN)  00000000d5fff000 - 00000000d6000000 (usable)
(XEN)  00000000d7000000 - 00000000df200000 (reserved)
(XEN)  00000000f8000000 - 00000000fc000000 (reserved)
(XEN)  00000000fec00000 - 00000000fec01000 (reserved)
(XEN)  00000000fed00000 - 00000000fed04000 (reserved)
(XEN)  00000000fed1c000 - 00000000fed20000 (reserved)
(XEN)  00000000fee00000 - 00000000fee01000 (reserved)
(XEN)  00000000ff000000 - 0000000100000000 (reserved)
(XEN)  0000000100000000 - 000000041ee00000 (usable)
(XEN) ACPI: RSDP 000F0450, 0024 (r2 LENOVO)
(XEN) ACPI: XSDT D4989090, 00A4 (r1 LENOVO TC-FB        1A40 AMI     10013)
(XEN) ACPI: FACP D49A0978, 010C (r5 LENOVO TC-FB        1A40 AMI     10013)
(XEN) ACPI: DSDT D49891C8, 177B0 (r2 LENOVO TC-FB        1A40 INTL 20120711)
(XEN) ACPI: FACS D56EEF80, 0040
(XEN) ACPI: APIC D49A0A88, 0092 (r3 LENOVO TC-FB        1A40 AMI     10013)
(XEN) ACPI: FPDT D49A0B20, 0044 (r1 LENOVO TC-FB        1A40 AMI     10013)
(XEN) ACPI: FIDT D49A0B68, 009C (r1 LENOVO TC-FB        1A40 AMI     10013)
(XEN) ACPI: TCPA D49A0C08, 0032 (r2 LENOVO TC-FB        1A40 MSFT  1000013)
(XEN) ACPI: SLIC D49A0C40, 0176 (r1 LENOVO TC-FB        1A40 AMI     10013)
(XEN) ACPI: MSDM D49A0DB8, 0055 (r3 LENOVO TC-FB        1A40 AMI     10013)
(XEN) ACPI: SSDT D49A0E10, 0AD8 (r1 LENOVO TC-FB        1A40 INTL 20120711)
(XEN) ACPI: MCFG D49A18E8, 003C (r1 LENOVO TC-FB        1A40 MSFT       97)
(XEN) ACPI: HPET D49A1928, 0038 (r1 LENOVO TC-FB        1A40 AMI.        5)
(XEN) ACPI: SSDT D49A1960, 036D (r1 LENOVO TC-FB        1A40 INTL 20120711)
(XEN) ACPI: SSDT D49A1CD0, 3528 (r1 LENOVO TC-FB        1A40 INTL 20091112)
(XEN) ACPI: ASF! D49A51F8, 00A5 (r32 LENOVO TC-FB        1A40 TFSM    F4240)
(XEN) ACPI: BGRT D49A52A0, 0038 (r0 LENOVO TC-FB        1A40 AMI     10013)
(XEN) ACPI: LUFT D49A52D8, 329E2 (r1 LENOVO TC-FB        1A40 AMI     10013)
(XEN) ACPI: DMAR D49D7CC0, 00B8 (r1 LENOVO TC-FB        1A40 INTL        1)
(XEN) System RAM: 16177MB (16566120kB)
(XEN) No NUMA configuration found
(XEN) Faking a node at 0000000000000000-000000041ee00000
(XEN) Domain heap initialised
(XEN) found SMP MP-table at 000fcd30
(XEN) DMI 2.7 present.
(XEN) APIC boot state is 'xapic'
(XEN) Using APIC driver default
(XEN) ACPI: PM-Timer IO Port: 0x1808
(XEN) ACPI: v5 SLEEP INFO: control[0:0], status[0:0]
(XEN) ACPI: SLEEP INFO: pm1x_cnt[1:1804,1:0], pm1x_evt[1:1800,1:0]
(XEN) ACPI: 32/64X FACS address mismatch in FADT - d56eef80/0000000000000000, using 32
(XEN) ACPI:             wakeup_vec[d56eef8c], vec_size[20]
(XEN) ACPI: Local APIC address 0xfee00000
(XEN) ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
(XEN) Processor #0 7:12 APIC version 21
(XEN) ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
(XEN) Processor #2 7:12 APIC version 21
(XEN) ACPI: LAPIC (acpi_id[0x03] lapic_id[0x04] enabled)
(XEN) Processor #4 7:12 APIC version 21
(XEN) ACPI: LAPIC (acpi_id[0x04] lapic_id[0x06] enabled)
(XEN) Processor #6 7:12 APIC version 21
(XEN) ACPI: LAPIC (acpi_id[0x05] lapic_id[0x01] enabled)
(XEN) Processor #1 7:12 APIC version 21
(XEN) ACPI: LAPIC (acpi_id[0x06] lapic_id[0x03] enabled)
(XEN) Processor #3 7:12 APIC version 21
(XEN) ACPI: LAPIC (acpi_id[0x07] lapic_id[0x05] enabled)
(XEN) Processor #5 7:12 APIC version 21
(XEN) ACPI: LAPIC (acpi_id[0x08] lapic_id[0x07] enabled)
(XEN) Processor #7 7:12 APIC version 21
(XEN) ACPI: LAPIC_NMI (acpi_id[0xff] high edge lint[0x1])
(XEN) ACPI: IOAPIC (id[0x08] address[0xfec00000] gsi_base[0])
(XEN) IOAPIC[0]: apic_id 8, version 32, address 0xfec00000, GSI 0-23
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
(XEN) ACPI: IRQ0 used by override.
(XEN) ACPI: IRQ2 used by override.
(XEN) ACPI: IRQ9 used by override.
(XEN) Enabling APIC mode:  Flat.  Using 1 I/O APICs
(XEN) ACPI: HPET id: 0x8086a701 base: 0xfed00000
(XEN) [VT-D]dmar.c:788: Host address width 39
(XEN) [VT-D]dmar.c:802: found ACPI_DMAR_DRHD:
(XEN) [VT-D]dmar.c:472:   dmaru->address = fed90000
(XEN) [VT-D]iommu.c:1136: drhd->address = fed90000 iommu->reg = ffff82c000201000
(XEN) [VT-D]iommu.c:1138: cap = c0000020660462 ecap = f0101a
(XEN) [VT-D]dmar.c:383:  endpoint: 0000:00:02.0
(XEN) [VT-D]dmar.c:802: found ACPI_DMAR_DRHD:
(XEN) [VT-D]dmar.c:472:   dmaru->address = fed91000
(XEN) [VT-D]iommu.c:1136: drhd->address = fed91000 iommu->reg = ffff82c000203000
(XEN) [VT-D]iommu.c:1138: cap = d2008020660462 ecap = f010da
(XEN) [VT-D]dmar.c:397:  IOAPIC: 0000:f0:1f.0
(XEN) [VT-D]dmar.c:361:  MSI HPET: 0000:f0:0f.0
(XEN) [VT-D]dmar.c:486:   flags: INCLUDE_ALL
(XEN) [VT-D]dmar.c:807: found ACPI_DMAR_RMRR:
(XEN) [VT-D]dmar.c:383:  endpoint: 0000:00:1d.0
(XEN) [VT-D]dmar.c:383:  endpoint: 0000:00:1a.0
(XEN) [VT-D]dmar.c:383:  endpoint: 0000:00:14.0
(XEN) [VT-D]dmar.c:676:   RMRR region: base_addr d5e6b000 end_address d5e91fff
(XEN) [VT-D]dmar.c:807: found ACPI_DMAR_RMRR:
(XEN) [VT-D]dmar.c:383:  endpoint: 0000:00:02.0
(XEN) [VT-D]dmar.c:676:   RMRR region: base_addr d7000000 end_address df1fffff
(XEN) ERST table was not found
(XEN) ACPI: BGRT: invalidating v1 image at 0xc8825018
(XEN) Using ACPI (MADT) for SMP configuration information
(XEN) SMP: Allowing 8 CPUs (0 hotplug CPUs)
(XEN) mapped APIC to ffff82cfffdfb000 (fee00000)
(XEN) mapped IOAPIC to ffff82cfffdfa000 (fec00000)
(XEN) IRQ limits: 24 GSI, 1528 MSI/MSI-X
(XEN) Not enabling x2APIC: depends on iommu_supports_eim.
(XEN) Using scheduler: SMP Credit Scheduler (credit)
(XEN) Detected 3392.216 MHz processor.
(XEN) Initing memory sharing.
(XEN) xstate_init: using cntxt_size: 0x340 and states: 0x7
(XEN) mce_intel.c:735: MCA Capability: BCAST 1 SER 0 CMCI 1 firstbank 0 extended MCE MSR 0
(XEN) Intel machine check reporting enabled
(XEN) alt table ffff82d0802da190 -> ffff82d0802db1b0
(XEN) spurious 8259A interrupt: IRQ7.
(XEN) PCI: MCFG configuration 0: base f8000000 segment 0000 buses 00 - 3f
(XEN) PCI: MCFG area at f8000000 reserved in E820
(XEN) PCI: Using MCFG for segment 0000 bus 00-3f
(XEN) Intel VT-d iommu 0 supported page sizes: 4kB.
(XEN) Intel VT-d iommu 1 supported page sizes: 4kB.
(XEN) [VT-D]iommu.c:2172: Interrupt Remapping disabled since Queued Invalidation isn't supported or enabled.
(XEN) Intel VT-d Snoop Control not enabled.
(XEN) Intel VT-d Dom0 DMA Passthrough not enabled.
(XEN) Intel VT-d Queued Invalidation not enabled.
(XEN) Intel VT-d Interrupt Remapping not enabled.
(XEN) Intel VT-d Shared EPT tables not enabled.
(XEN) I/O virtualisation enabled
(XEN)  - Dom0 mode: Relaxed
(XEN) Interrupt remapping disabled
(XEN) Getting VERSION: 1060015
(XEN) Getting VERSION: 1060015
(XEN) Enabled directed EOI with ioapic_ack_old on!
(XEN) Getting ID: 0
(XEN) Getting LVT0: 700
(XEN) Getting LVT1: 400
(XEN) Suppress EOI broadcast on CPU#0
(XEN) enabled ExtINT on CPU#0
(XEN) ENABLING IO-APIC IRQs
(XEN)  -> Using old ACK method
(XEN) init IO_APIC IRQs
(XEN)  IO-APIC (apicid-pin) 8-0, 8-16, 8-17, 8-18, 8-19, 8-20, 8-21, 8-22, 8-23 not connected.
(XEN) ..TIMER: vector=0xF0 apic1=0 pin1=2 apic2=0 pin2=0
(XEN) number of MP IRQ sources: 15.
(XEN) number of IO-APIC #8 registers: 24.
(XEN) testing the IO APIC.......................
(XEN) IO APIC #8......
(XEN) .... register #00: 08000000
(XEN) .......    : physical APIC id: 08
(XEN) .......    : Delivery Type: 0
(XEN) .......    : LTS          : 0
(XEN) .... register #01: 00170020
(XEN) .......     : max redirection entries: 0017
(XEN) .......     : PRQ implemented: 0
(XEN) .......     : IO APIC version: 0020
(XEN) .... IRQ redirection table:
(XEN)  NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:   
(XEN)  00 000 00  1    0    0   0   0    0    0    00
(XEN)  01 001 01  0    0    0   0   0    1    1    38
(XEN)  02 001 01  0    0    0   0   0    1    1    F0
(XEN)  03 001 01  0    0    0   0   0    1    1    40
(XEN)  04 001 01  0    0    0   0   0    1    1    F1
(XEN)  05 001 01  0    0    0   0   0    1    1    48
(XEN)  06 001 01  0    0    0   0   0    1    1    50
(XEN)  07 001 01  0    0    0   0   0    1    1    58
(XEN)  08 001 01  0    0    0   0   0    1    1    60
(XEN)  09 001 01  1    1    0   0   0    1    1    68
(XEN)  0a 001 01  0    0    0   0   0    1    1    70
(XEN)  0b 001 01  0    0    0   0   0    1    1    78
(XEN)  0c 001 01  0    0    0   0   0    1    1    88
(XEN)  0d 001 01  0    0    0   0   0    1    1    90
(XEN)  0e 001 01  0    0    0   0   0    1    1    98
(XEN)  0f 001 01  0    0    0   0   0    1    1    A0
(XEN)  10 000 00  1    0    0   0   0    0    0    00
(XEN)  11 000 00  1    0    0   0   0    0    0    00
(XEN)  12 000 00  1    0    0   0   0    0    0    00
(XEN)  13 000 00  1    0    0   0   0    0    0    00
(XEN)  14 000 00  1    0    0   0   0    0    0    00
(XEN)  15 000 00  1    0    0   0   0    0    0    00
(XEN)  16 000 00  1    0    0   0   0    0    0    00
(XEN)  17 000 00  1    0    0   0   0    0    0    00
(XEN) Using vector-based indexing
(XEN) IRQ to pin mappings:
(XEN) IRQ240 -> 0:2
(XEN) IRQ56 -> 0:1
(XEN) IRQ64 -> 0:3
(XEN) IRQ241 -> 0:4
(XEN) IRQ72 -> 0:5
(XEN) IRQ80 -> 0:6
(XEN) IRQ88 -> 0:7
(XEN) IRQ96 -> 0:8
(XEN) IRQ104 -> 0:9
(XEN) IRQ112 -> 0:10
(XEN) IRQ120 -> 0:11
(XEN) IRQ136 -> 0:12
(XEN) IRQ144 -> 0:13
(XEN) IRQ152 -> 0:14
(XEN) IRQ160 -> 0:15
(XEN) .................................... done.
(XEN) Using local APIC timer interrupts.
(XEN) calibrating APIC timer ...
(XEN) ..... CPU clock speed is 3392.2052 MHz.
(XEN) ..... host bus clock speed is 99.7707 MHz.
(XEN) ..... bus_scale = 0x662c
(XEN) TSC deadline timer enabled
(XEN) Platform timer is 14.318MHz HPET
(XEN) Allocated console ring of 64 KiB.
(XEN) mwait-idle: MWAIT substates: 0x42120
(XEN) mwait-idle: v0.4 model 0x3c
(XEN) mwait-idle: lapic_timer_reliable_states 0xffffffff
(XEN) VMX: Supported advanced features:
(XEN)  - APIC MMIO access virtualisation
(XEN)  - APIC TPR shadow
(XEN)  - Extended Page Tables (EPT)
(XEN)  - Virtual-Processor Identifiers (VPID)
(XEN)  - Virtual NMI
(XEN)  - MSR direct-access bitmap
(XEN)  - Unrestricted Guest
(XEN)  - VMCS shadowing
(XEN) HVM: ASIDs enabled.
(XEN) HVM: VMX enabled
(XEN) HVM: Hardware Assisted Paging (HAP) detected
(XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB
(XEN) Suppress EOI broadcast on CPU#1
(XEN) masked ExtINT on CPU#1
(XEN) Suppress EOI broadcast on CPU#2
(XEN) masked ExtINT on CPU#2
(XEN) Suppress EOI broadcast on CPU#3
(XEN) masked ExtINT on CPU#3
(XEN) Suppress EOI broadcast on CPU#4
(XEN) masked ExtINT on CPU#4
(XEN) Suppress EOI broadcast on CPU#5
(XEN) masked ExtINT on CPU#5
(XEN) Suppress EOI broadcast on CPU#6
(XEN) masked ExtINT on CPU#6
(XEN) Suppress EOI broadcast on CPU#7
(XEN) masked ExtINT on CPU#7
(XEN) Brought up 8 CPUs
(XEN) ACPI sleep modes: S3
(XEN) mcheck_poll: Machine check polling timer started.
(XEN) Dom0 has maximum 792 PIRQs
(XEN) *** LOADING DOMAIN 0 ***
(XEN) elf_parse_binary: phdr: paddr=0x1000000 memsz=0x7dd000
(XEN) elf_parse_binary: phdr: paddr=0x1800000 memsz=0x107000
(XEN) elf_parse_binary: phdr: paddr=0x1907000 memsz=0x15500
(XEN) elf_parse_binary: phdr: paddr=0x191d000 memsz=0x21e000
(XEN) elf_parse_binary: memory: 0x1000000 -> 0x1b3b000
(XEN) elf_xen_parse_note: GUEST_OS = "linux"
(XEN) elf_xen_parse_note: GUEST_VERSION = "2.6"
(XEN) elf_xen_parse_note: XEN_VERSION = "xen-3.0"
(XEN) elf_xen_parse_note: VIRT_BASE = 0xffffffff80000000
(XEN) elf_xen_parse_note: ENTRY = 0xffffffff8191d1f0
(XEN) elf_xen_parse_note: HYPERCALL_PAGE = 0xffffffff81001000
(XEN) elf_xen_parse_note: FEATURES = "!writable_page_tables|pae_pgdir_above_4gb|writable_descriptor_tables|auto_translated_physmap|supervisor_mode_kernel"
(XEN) elf_xen_parse_note: SUPPORTED_FEATURES = 0x90d
(XEN) elf_xen_parse_note: PAE_MODE = "yes"
(XEN) elf_xen_parse_note: LOADER = "generic"
(XEN) elf_xen_parse_note: unknown xen elf note (0xd)
(XEN) elf_xen_parse_note: SUSPEND_CANCEL = 0x1
(XEN) elf_xen_parse_note: MOD_START_PFN = 0x1
(XEN) elf_xen_parse_note: HV_START_LOW = 0xffff800000000000
(XEN) elf_xen_parse_note: PADDR_OFFSET = 0x0
(XEN) elf_xen_addr_calc_check: addresses:
(XEN)     virt_base        = 0xffffffff80000000
(XEN)     elf_paddr_offset = 0x0
(XEN)     virt_offset      = 0xffffffff80000000
(XEN)     virt_kstart      = 0xffffffff81000000
(XEN)     virt_kend        = 0xffffffff81b3b000
(XEN)     virt_entry       = 0xffffffff8191d1f0
(XEN)     p2m_base         = 0xffffffffffffffff
(XEN)  Xen  kernel: 64-bit, lsb, compat32
(XEN)  Dom0 kernel: 64-bit, PAE, lsb, paddr 0x1000000 -> 0x1b3b000
(XEN) PHYSICAL MEMORY ARRANGEMENT:
(XEN)  Dom0 alloc.:   000000040c000000->000000040e000000 (504536 pages to be allocated)
(XEN)  Init. ramdisk: 000000041c0d8000->000000041edff800
(XEN) VIRTUAL MEMORY ARRANGEMENT:
(XEN)  Loaded kernel: ffffffff81000000->ffffffff81b3b000
(XEN)  Init. ramdisk: 0000000000000000->0000000000000000
(XEN)  Phys-Mach map: ffffffff81b3b000->ffffffff81f3b000
(XEN)  Start info:    ffffffff81f3b000->ffffffff81f3c4b4
(XEN)  Page tables:   ffffffff81f3d000->ffffffff81f50000
(XEN)  Boot stack:    ffffffff81f50000->ffffffff81f51000
(XEN)  TOTAL:         ffffffff80000000->ffffffff82000000
(XEN)  ENTRY ADDRESS: ffffffff8191d1f0
(XEN) Dom0 has maximum 8 VCPUs
(XEN) elf_load_binary: phdr 0 at 0xffffffff81000000 -> 0xffffffff817dd000
(XEN) elf_load_binary: phdr 1 at 0xffffffff81800000 -> 0xffffffff81907000
(XEN) elf_load_binary: phdr 2 at 0xffffffff81907000 -> 0xffffffff8191c500
(XEN) elf_load_binary: phdr 3 at 0xffffffff8191d000 -> 0xffffffff81a44000
(XEN) [VT-D]iommu.c:1420: d0:Hostbridge: skip 0000:00:00.0 map
(XEN) Bogus DMIBAR 0xfed18001 on 0000:00:00.0
(XEN) [VT-D]iommu.c:1446: d0:PCI: map 0000:00:02.0
(XEN) [VT-D]iommu.c:1434: d0:PCIe: map 0000:00:03.0
(XEN) [VT-D]iommu.c:1446: d0:PCI: map 0000:00:14.0
(XEN) [VT-D]iommu.c:1446: d0:PCI: map 0000:00:16.0
(XEN) [VT-D]iommu.c:1446: d0:PCI: map 0000:00:19.0
(XEN) [VT-D]iommu.c:1446: d0:PCI: map 0000:00:1a.0
(XEN) [VT-D]iommu.c:1446: d0:PCI: map 0000:00:1d.0
(XEN) [VT-D]iommu.c:1446: d0:PCI: map 0000:00:1f.0
(XEN) [VT-D]iommu.c:1446: d0:PCI: map 0000:00:1f.2
(XEN) [VT-D]iommu.c:1446: d0:PCI: map 0000:00:1f.3
(XEN) [VT-D]iommu.c:729: iommu_enable_translation: iommu->reg = ffff82c000201000
(XEN) [VT-D]iommu.c:729: iommu_enable_translation: iommu->reg = ffff82c000203000
(XEN) Scrubbing Free RAM on 1 nodes using 4 CPUs
(XEN) .................................done.
(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) Std. Loglevel: All
(XEN) Guest Loglevel: All
(XEN) **********************************************
(XEN) ******* WARNING: CONSOLE OUTPUT IS SYNCHRONOUS
(XEN) ******* This option is intended to aid debugging of Xen by ensuring
(XEN) ******* that all output is synchronously delivered on the serial line.
(XEN) ******* However it can introduce SIGNIFICANT latencies and affect
(XEN) ******* timekeeping. It is NOT recommended for production use!
(XEN) **********************************************
(XEN) 3... 2... 1... 
(XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch input to Xen)
(XEN) Freed 288kB init memory.
(XEN) IOAPIC[0]: Set PCI routing entry (8-9 -> 0x68 -> IRQ 9 Mode:1 Active:0)
(XEN) irq.c:380: Dom0 callback via changed to Direct Vector 0xf3
(XEN) Bogus DMIBAR 0xfed18001 on 0000:00:00.0
(XEN) PCI add device 0000:00:00.0
(XEN) PCI add device 0000:00:02.0
(XEN) PCI add device 0000:00:03.0
(XEN) PCI add device 0000:00:14.0
(XEN) PCI add device 0000:00:16.0
(XEN) PCI add device 0000:00:19.0
(XEN) PCI add device 0000:00:1a.0
(XEN) PCI add device 0000:00:1c.0
(XEN) PCI add device 0000:00:1c.3
(XEN) PCI add device 0000:00:1d.0
(XEN) PCI add device 0000:00:1f.0
(XEN) PCI add device 0000:00:1f.2
(XEN) PCI add device 0000:00:1f.3
(XEN) PCI add device 0000:02:00.0
(XEN) IOAPIC[0]: Set PCI routing entry (8-13 -> 0x90 -> IRQ 13 Mode:0 Active:0)
(XEN) IOAPIC[0]: Set PCI routing entry (8-8 -> 0x60 -> IRQ 8 Mode:0 Active:0)
(XEN) IOAPIC[0]: Set PCI routing entry (8-16 -> 0xa8 -> IRQ 16 Mode:1 Active:1)
(XEN) IOAPIC[0]: Set PCI routing entry (8-17 -> 0xb0 -> IRQ 17 Mode:1 Active:1)
(XEN) IOAPIC[0]: Set PCI routing entry (8-23 -> 0xb8 -> IRQ 23 Mode:1 Active:1)
(XEN) IOAPIC[0]: Set PCI routing entry (8-19 -> 0xc0 -> IRQ 19 Mode:1 Active:1)
(XEN) IOAPIC[0]: Set PCI routing entry (8-20 -> 0xc8 -> IRQ 20 Mode:1 Active:1)
(XEN) IOAPIC[0]: Set PCI routing entry (8-18 -> 0x21 -> IRQ 18 Mode:1 Active:1)
(XEN) traps.c:3216: GPF (0000): ffff82d0801e0716 -> ffff82d080235ef9
(XEN) traps.c:3216: GPF (0000): ffff82d0801e0716 -> ffff82d080235ef9
(XEN) traps.c:3216: GPF (0000): ffff82d0801e0716 -> ffff82d080235ef9
(XEN) traps.c:3216: GPF (0000): ffff82d0801e0716 -> ffff82d080235ef9

I am not sure about last lines here, I have not seen it before and leaving it as
it is. 


dom0 dmesg:


[    0.000000] Xen: [mem 0x00000000fed00000-0x00000000fed03fff] reserved
[    0.000000] Xen: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
[    0.000000] Xen: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[    0.000000] Xen: [mem 0x00000000ff000000-0x00000000ffffffff] reserved
[    0.000000] bootconsole [xenboot0] enabled
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] SMBIOS 2.8 present.
[    0.000000] DMI: LENOVO 10A6S09R01/SHARKBAY, BIOS FBKTA4AUS 12/11/2014
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] AGP: No AGP bridge found
[    0.000000] e820: last_pfn = 0x80062 max_arch_pfn = 0x400000000
[    0.000000] Base memory trampoline at [ffff880000097000] 97000 size 24576
[    0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
[    0.000000]  [mem 0x00000000-0x000fffff] page 4k
[    0.000000] init_memory_mapping: [mem 0x7fe00000-0x7fffffff]
[    0.000000]  [mem 0x7fe00000-0x7fffffff] page 2M
[    0.000000] BRK [0x01b15000, 0x01b15fff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x60000000-0x7fdfffff]
[    0.000000]  [mem 0x60000000-0x7fdfffff] page 2M
[    0.000000] init_memory_mapping: [mem 0x00100000-0x5fffffff]
[    0.000000]  [mem 0x00100000-0x001fffff] page 4k
[    0.000000]  [mem 0x00200000-0x5fffffff] page 2M
[    0.000000] init_memory_mapping: [mem 0x80000000-0x80061fff]
[    0.000000]  [mem 0x80000000-0x80061fff] page 4k
[    0.000000] BRK [0x01b16000, 0x01b16fff] PGTABLE
[    0.000000] BRK [0x01b17000, 0x01b17fff] PGTABLE
[    0.000000] RAMDISK: [mem 0x02000000-0x04d27fff]
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI: RSDP 0x00000000000F0450 000024 (v02 LENOVO)
[    0.000000] ACPI: XSDT 0x00000000D4989090 0000A4 (v01 LENOVO TC-FB    00001A40 AMI  00010013)
[    0.000000] ACPI: FACP 0x00000000D49A0978 00010C (v05 LENOVO TC-FB    00001A40 AMI  00010013)
[    0.000000] ACPI: DSDT 0x00000000D49891C8 0177B0 (v02 LENOVO TC-FB    00001A40 INTL 20120711)
[    0.000000] ACPI: FACS 0x00000000D56EEF80 000040
[    0.000000] ACPI: APIC 0x00000000D49A0A88 000092 (v03 LENOVO TC-FB    00001A40 AMI  00010013)
[    0.000000] ACPI: FPDT 0x00000000D49A0B20 000044 (v01 LENOVO TC-FB    00001A40 AMI  00010013)
[    0.000000] ACPI: FIDT 0x00000000D49A0B68 00009C (v01 LENOVO TC-FB    00001A40 AMI  00010013)
[    0.000000] ACPI: TCPA 0x00000000D49A0C08 000032 (v02 LENOVO TC-FB    00001A40 MSFT 01000013)
[    0.000000] ACPI: SLIC 0x00000000D49A0C40 000176 (v01 LENOVO TC-FB    00001A40 AMI  00010013)
[    0.000000] ACPI: MSDM 0x00000000D49A0DB8 000055 (v03 LENOVO TC-FB    00001A40 AMI  00010013)
[    0.000000] ACPI: SSDT 0x00000000D49A0E10 000AD8 (v01 LENOVO TC-FB    00001A40 INTL 20120711)
[    0.000000] ACPI: MCFG 0x00000000D49A18E8 00003C (v01 LENOVO TC-FB    00001A40 MSFT 00000097)
[    0.000000] ACPI: HPET 0x00000000D49A1928 000038 (v01 LENOVO TC-FB    00001A40 AMI. 00000005)
[    0.000000] ACPI: SSDT 0x00000000D49A1960 00036D (v01 LENOVO TC-FB    00001A40 INTL 20120711)
[    0.000000] ACPI: SSDT 0x00000000D49A1CD0 003528 (v01 LENOVO TC-FB    00001A40 INTL 20091112)
[    0.000000] ACPI: ASF! 0x00000000D49A51F8 0000A5 (v32 LENOVO TC-FB    00001A40 TFSM 000F4240)
[    0.000000] ACPI: BGRT 0x00000000D49A52A0 000038 (v00 LENOVO TC-FB    00001A40 AMI  00010013)
[    0.000000] ACPI: LUFT 0x00000000D49A52D8 0329E2 (v01 LENOVO TC-FB    00001A40 AMI  00010013)
[    0.000000] ACPI: XMAR 0x00000000D49D7CC0 0000B8 (v01 LENOVO TC-FB    00001A40 INTL 00000001)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] NUMA turned off
[    0.000000] Faking a node at [mem 0x0000000000000000-0x0000000080061fff]
[    0.000000] NODE_DATA(0) allocated [mem 0x8005e000-0x80061fff]
[    0.000000] Section 15 and 16 (node 0) have a circular dependency on usemap and pgdat allocations
[    0.000000]  [ffffea0000000000-ffffea00021fffff] PMD -> [ffff88007d600000-ffff88007f7fffff] on node 0
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x00001000-0x00ffffff]
[    0.000000]   DMA32    [mem 0x01000000-0x80061fff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00001000-0x0009cfff]
[    0.000000]   node   0: [mem 0x00100000-0x80061fff]
[    0.000000] Initmem setup node 0 [mem 0x00001000-0x80061fff]
[    0.000000] On node 0 totalpages: 524286
[    0.000000]   DMA zone: 64 pages used for memmap
[    0.000000]   DMA zone: 21 pages reserved
[    0.000000]   DMA zone: 3996 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 8130 pages used for memmap
[    0.000000]   DMA32 zone: 520290 pages, LIFO batch:31
[    0.000000] Reserving Intel graphics stolen memory at 0xd7200000-0xdf1fffff
[    0.000000] ACPI: PM-Timer IO Port: 0x1808
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x04] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x06] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x05] lapic_id[0x01] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x06] lapic_id[0x03] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x07] lapic_id[0x05] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x08] lapic_id[0x07] enabled)
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0xff] high edge lint[0x1])
[    0.000000] ACPI: IOAPIC (id[0x08] address[0xfec00000] gsi_base[0])
[    0.000000] IOAPIC[0]: apic_id 8, version 32, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a701 base: 0xfed00000
[    0.000000] smpboot: Allowing 8 CPUs, 0 hotplug CPUs
[    0.000000] PM: Registered nosave memory: [mem 0x00000000-0x00000fff]
[    0.000000] PM: Registered nosave memory: [mem 0x0009d000-0x0009dfff]
[    0.000000] PM: Registered nosave memory: [mem 0x0009e000-0x0009ffff]
[    0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000dffff]
[    0.000000] PM: Registered nosave memory: [mem 0x000e0000-0x000fffff]
[    0.000000] e820: [mem 0x80062000-0xc27dffff] available for PCI devices
[    0.000000] Booting paravirtualized kernel with PVH extensions on Xen
[    0.000000] Xen version: 4.6.0-unstable
[    0.000000] setup_percpu: NR_CPUS:512 nr_cpumask_bits:512 nr_cpu_ids:8 nr_node_ids:1
[    0.000000] PERCPU: Embedded 31 pages/cpu @ffff88007fe00000 s87296 r8192 d31488 u262144
[    0.000000] pcpu-alloc: s87296 r8192 d31488 u262144 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1 2 3 4 5 6 7 
[    0.000000] xen: PV spinlocks enabled
[    0.000000] Built 1 zonelists in Node order, mobility grouping on.  Total pages: 516071
[    0.000000] Policy zone: DMA32
[    0.000000] Kernel command line: root=/dev/sda2 ro earlyprintk=xen debug sync_console console=hvc0 nomodeset level=10
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] xsave: enabled xstate_bv 0x7, cntxt size 0x340 using standard form
[    0.000000] software IO TLB [mem 0x79600000-0x7d600000] (64MB) mapped at [ffff880079600000-ffff88007d5fffff]
[    0.000000] Memory: 1933236K/2097144K available (5647K kernel code, 1044K rwdata, 1908K rodata, 1240K init, 832K bss, 163908K reserved, 0K cma-reserved)
[    0.000000] Hierarchical RCU implementation.
[    0.000000] 	RCU dyntick-idle grace-period acceleration is enabled.
[    0.000000] 	RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=8.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=8
[    0.000000] NR_IRQS:33024 nr_irqs:488 16
[    0.000000] xen:events: Using FIFO-based ABI
[    0.000000] xen: sci override: global_irq=9 trigger=0 polarity=0
[    0.000000] xen: registering gsi 9 triggering 0 polarity 0
[    0.000000] xen: --> pirq=9 -> irq=9 (gsi=9)
[    0.000000] xen: acpi sci 9
[    0.000000] xen: --> pirq=1 -> irq=1 (gsi=1)
[    0.000000] xen: --> pirq=2 -> irq=2 (gsi=2)
[    0.000000] xen: --> pirq=3 -> irq=3 (gsi=3)
[    0.000000] xen: --> pirq=4 -> irq=4 (gsi=4)
[    0.000000] xen: --> pirq=5 -> irq=5 (gsi=5)
[    0.000000] xen: --> pirq=6 -> irq=6 (gsi=6)
[    0.000000] xen: --> pirq=7 -> irq=7 (gsi=7)
[    0.000000] xen: --> pirq=8 -> irq=8 (gsi=8)
[    0.000000] xen: --> pirq=10 -> irq=10 (gsi=10)
[    0.000000] xen: --> pirq=11 -> irq=11 (gsi=11)
[    0.000000] xen: --> pirq=12 -> irq=12 (gsi=12)
[    0.000000] xen: --> pirq=13 -> irq=13 (gsi=13)
[    0.000000] xen: --> pirq=14 -> irq=14 (gsi=14)
[    0.000000] xen: --> pirq=15 -> irq=15 (gsi=15)
[    0.000000] xen:events: Xen HVM callback vector for event delivery is enabled
[    0.000000] Console: colour VGA+ 80x25
[    0.000000] console [hvc0] enabled
[    0.000000] bootconsole [xenboot0] disabled
[    0.000000] Xen: using vcpuop timer interface
[    0.000000] installing Xen timer for CPU 0
[    0.000000] tsc: Detected 3392.216 MHz processor
[   19.728568] Calibrating delay loop (skipped), value calculated using timer frequency.. 6784.43 BogoMIPS (lpj=13568864)
[   19.792990] pid_max: default: 32768 minimum: 301
[   19.821072] ACPI: Core revision 20141107
[   19.858535] ACPI: All ACPI Tables successfully acquired
[   19.890419] Security Framework initialized
[   19.914885] AppArmor: AppArmor disabled by boot time parameter
[   19.950233] Yama: becoming mindful.
[   19.971627] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
[   20.014981] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
[   20.057478] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
[   20.097933] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes)
[   20.141223] Initializing cgroup subsys memory
[   20.167614] Initializing cgroup subsys devices
[   20.194649] Initializing cgroup subsys freezer
[   20.221688] Initializing cgroup subsys net_cls
[   20.248727] Initializing cgroup subsys blkio
[   20.274730] Initializing cgroup subsys perf_event
[   20.303329] Initializing cgroup subsys net_prio
[   20.330933] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)
[   20.409924] CPU: Physical Processor ID: 0
[   20.434366] CPU: Processor Core ID: 0
[   20.457412] mce: CPU supports 2 MCE banks
[   20.481384] Last level iTLB entries: 4KB 1024, 2MB 1024, 4MB 1024
Last level dTLB entries: 4KB 1024, 2MB 1024, 4MB 1024, 1GB 4
[   20.558998] Freeing SMP alternatives memory: 24K (ffffffff81a3d000 - ffffffff81a43000)
[   20.608633] ftrace: allocating 22290 entries in 88 pages
[   20.653198] cpu 0 spinlock event irq 25
[   20.679570] Performance Events: unsupported p6 CPU model 60 no PMU driver, software events only.
[   20.732436] NMI watchdog: disabled (cpu0): hardware events not enabled
[   20.771686] installing Xen timer for CPU 1
[   20.796601] cpu 1 spinlock event irq 32
[   20.820933] installing Xen timer for CPU 2
[   20.845428] cpu 2 spinlock event irq 39
[   20.869725] installing Xen timer for CPU 3
[   20.894198] cpu 3 spinlock event irq 46
[   20.918485] installing Xen timer for CPU 4
[   20.942978] cpu 4 spinlock event irq 53
[   20.967286] installing Xen timer for CPU 5
[   20.991749] cpu 5 spinlock event irq 60
[   21.016122] installing Xen timer for CPU 6
[   21.040599] cpu 6 spinlock event irq 67
[   21.064923] installing Xen timer for CPU 7
[   21.089375] cpu 7 spinlock event irq 74
[   21.113637] x86: Booted up 1 node, 8 CPUs
[   21.137928] devtmpfs: initialized
[   21.159937] PM: Registering ACPI NVS region [mem 0xc27e0000-0xc27e6fff] (28672 bytes)
[   21.206780] PM: Registering ACPI NVS region [mem 0xd49d8000-0xd56effff] (13729792 bytes)
[   21.256108] pinctrl core: initialized pinctrl subsystem
[   21.287649] NET: Registered protocol family 16
[   21.314423] xen:grant_table: Grant tables using version 1 layout
[   21.350827] Grant table initialized
[   21.372400] ACPI FADT declares the system doesn't support PCIe ASPM, so disable it
[   21.417897] ACPI: bus type PCI registered
[   21.442336] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[   21.481602] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xf8000000-0xfbffffff] (base 0xf8000000)
[   21.537492] PCI: MMCONFIG at [mem 0xf8000000-0xfbffffff] reserved in E820
[   21.578623] PCI: Using configuration type 1 for base access
[   21.626280] ACPI: Added _OSI(Module Device)
[   21.651274] ACPI: Added _OSI(Processor Device)
[   21.678305] ACPI: Added _OSI(3.0 _SCP Extensions)
[   21.706904] ACPI: Added _OSI(Processor Aggregator Device)
[   21.741196] ACPI: SCI (ACPI GSI 9) not registered
[   21.771384] ACPI: Executed 1 blocks of module-level executable AML code
[   21.820616] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[   21.857376] \_SB_:_OSC invalid UUID
[   21.878189] _OSC request data:1 1f 
[   21.899846] ACPI: Dynamic OEM Table Load:
[   21.923943] ACPI: SSDT 0xFFFF880078581C00 0003D3 (v01 PmRef  Cpu0Cst  00003001 INTL 20120711)
[   21.976037] ACPI: Dynamic OEM Table Load:
[   21.999963] ACPI: SSDT 0xFFFF880078521E00 000119 (v01 PmRef  ApCst    00003000 INTL 20120711)
[   22.053440] ACPI: Interpreter enabled
[   22.075288] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20141107/hwxface-580)
[   22.130929] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20141107/hwxface-580)
[   22.186573] ACPI: (supports S0 S3 S4 S5)
[   22.210478] ACPI: Using IOAPIC for interrupt routing
[   22.240668] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[   22.303456] ACPI: Power Resource [FN00] (off)
[   22.329517] ACPI: Power Resource [FN01] (off)
[   22.356034] ACPI: Power Resource [FN02] (off)
[   22.382550] ACPI: Power Resource [FN03] (off)
[   22.409070] ACPI: Power Resource [FN04] (off)
[   22.436526] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-3e])
[   22.473494] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI]
[   22.523180] acpi PNP0A08:00: _OSC: platform does not support [PCIeHotplug PME]
[   22.566938] acpi PNP0A08:00: _OSC: OS now controls [AER PCIeCapability]
[   22.607680] PCI host bridge to bus 0000:00
[   22.632142] pci_bus 0000:00: root bus resource [bus 00-3e]
[   22.666151] pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7]
[   22.703588] pci_bus 0000:00: root bus resource [io  0x0d00-0xffff]
[   22.741026] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
[   22.782783] pci_bus 0000:00: root bus resource [mem 0x000d4000-0x000d7fff]
[   22.824384] pci_bus 0000:00: root bus resource [mem 0x000d8000-0x000dbfff]
[   22.865978] pci_bus 0000:00: root bus resource [mem 0x000dc000-0x000dffff]
[   22.907581] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000e3fff]
[   22.949181] pci_bus 0000:00: root bus resource [mem 0x000e4000-0x000e7fff]
[   22.990787] pci_bus 0000:00: root bus resource [mem 0xdf200000-0xfeafffff]
[   23.032412] pci 0000:00:00.0: [8086:0c00] type 00 class 0x060000
[   23.111472] pci 0000:00:02.0: [8086:0412] type 00 class 0x030000
[   23.147867] pci 0000:00:02.0: reg 0x10: [mem 0xf7800000-0xf7bfffff 64bit]
[   23.189035] pci 0000:00:02.0: reg 0x18: [mem 0xe0000000-0xefffffff 64bit pref]
[   23.232710] pci 0000:00:02.0: reg 0x20: [io  0xf000-0xf03f]
[   23.284724] pci 0000:00:03.0: [8086:0c0c] type 00 class 0x040300
[   23.321121] pci 0000:00:03.0: reg 0x10: [mem 0xf7c30000-0xf7c33fff 64bit]
[   23.380445] pci 0000:00:14.0: [8086:8c31] type 00 class 0x0c0330
[   23.416820] pci 0000:00:14.0: reg 0x10: [mem 0xf7c20000-0xf7c2ffff 64bit]
[   23.458019] pci 0000:00:14.0: PME# supported from D3hot D3cold
[   23.493259] pci 0000:00:14.0: System wakeup disabled by ACPI
[   23.545763] pci 0000:00:16.0: [8086:8c3a] type 00 class 0x078000
[   23.582180] pci 0000:00:16.0: reg 0x10: [mem 0xf7c3b000-0xf7c3b00f 64bit]
[   23.623397] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[   23.678382] pci 0000:00:19.0: [8086:153a] type 00 class 0x020000
[   23.714768] pci 0000:00:19.0: reg 0x10: [mem 0xf7c00000-0xf7c1ffff]
[   23.752706] pci 0000:00:19.0: reg 0x14: [mem 0xf7c39000-0xf7c39fff]
[   23.790665] pci 0000:00:19.0: reg 0x18: [io  0xf080-0xf09f]
[   23.824623] pci 0000:00:19.0: PME# supported from D0 D3hot D3cold
[   23.861413] pci 0000:00:19.0: System wakeup disabled by ACPI
[   23.913917] pci 0000:00:1a.0: [8086:8c2d] type 00 class 0x0c0320
[   23.950329] pci 0000:00:1a.0: reg 0x10: [mem 0xf7c38000-0xf7c383ff]
[   23.988444] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[   24.025262] pci 0000:00:1a.0: System wakeup disabled by ACPI
[   24.077732] pci 0000:00:1c.0: [8086:8c10] type 01 class 0x060400
[   24.114292] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[   24.151082] pci 0000:00:1c.0: Enabling MPC IRBNCE
[   24.179626] pci 0000:00:1c.0: Intel PCH root port ACS workaround enabled
[   24.220205] pci 0000:00:1c.0: System wakeup disabled by ACPI
[   24.272728] pci 0000:00:1c.3: [8086:8c16] type 01 class 0x060400
[   24.309291] pci 0000:00:1c.3: PME# supported from D0 D3hot D3cold
[   24.346061] pci 0000:00:1c.3: Enabling MPC IRBNCE
[   24.374617] pci 0000:00:1c.3: Intel PCH root port ACS workaround enabled
[   24.415197] pci 0000:00:1c.3: System wakeup disabled by ACPI
[   24.467739] pci 0000:00:1d.0: [8086:8c26] type 00 class 0x0c0320
[   24.504137] pci 0000:00:1d.0: reg 0x10: [mem 0xf7c37000-0xf7c373ff]
[   24.542258] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[   24.579034] pci 0000:00:1d.0: System wakeup disabled by ACPI
[   24.631519] pci 0000:00:1f.0: [8086:8c4e] type 00 class 0x060100
[   24.686124] pci 0000:00:1f.2: [8086:8c02] type 00 class 0x010601
[   24.722535] pci 0000:00:1f.2: reg 0x10: [io  0xf0d0-0xf0d7]
[   24.756306] pci 0000:00:1f.2: reg 0x14: [io  0xf0c0-0xf0c3]
[   24.790121] pci 0000:00:1f.2: reg 0x18: [io  0xf0b0-0xf0b7]
[   24.823904] pci 0000:00:1f.2: reg 0x1c: [io  0xf0a0-0xf0a3]
[   24.857707] pci 0000:00:1f.2: reg 0x20: [io  0xf060-0xf07f]
[   24.891500] pci 0000:00:1f.2: reg 0x24: [mem 0xf7c36000-0xf7c367ff]
[   24.929556] pci 0000:00:1f.2: PME# supported from D3hot
[   24.979387] pci 0000:00:1f.3: [8086:8c22] type 00 class 0x0c0500
[   25.015801] pci 0000:00:1f.3: reg 0x10: [mem 0xf7c35000-0xf7c350ff 64bit]
[   25.056916] pci 0000:00:1f.3: reg 0x20: [io  0x0580-0x059f]
[   25.109055] acpiphp: Slot [1] registered
[   25.132846] pci 0000:00:1c.0: PCI bridge to [bus 01]
[   25.163198] pci 0000:02:00.0: [1283:8893] type 01 class 0x060401
[   25.199805] pci 0000:02:00.0: supports D1 D2
[   25.225389] pci 0000:02:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[   25.265494] pci 0000:02:00.0: System wakeup disabled by ACPI
[   25.317963] pci 0000:00:1c.3: PCI bridge to [bus 02-03]
[   25.349909] pci 0000:02:00.0: PCI bridge to [bus 03] (subtractive decode)
[   25.390834] acpi PNP0A08:00: Disabling ASPM (FADT indicates it is unsupported)
[   25.434671] xen: registering gsi 13 triggering 1 polarity 0
[   25.511051] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 10 *11 12 14 15)
[   25.552209] ACPI: PCI Interrupt Link [LNKB] (IRQs *3 4 5 6 10 11 12 14 15)
[   25.593806] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 *10 11 12 14 15)
[   25.635405] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 *10 11 12 14 15)
[   25.677000] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 *5 6 10 11 12 14 15)
[   25.718602] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled.
[   25.766953] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled.
[   25.815314] ACPI: PCI Interrupt Link [LNKH] (IRQs
[   25.825548] random: nonblocking pool is initialized
[   25.871946]  3
[   25.882348]  4 5 6 10 *11 12 14 15)
[   25.896188] ACPI: Enabled 5 GPEs in block 00 to 3F
[   25.925015] xen:balloon: Initialising balloon driver
[   25.955310] xen_balloon: Initialising balloon driver
[   25.985403] vgaarb: setting as boot device: PCI:0000:00:02.0
[   26.019620] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[   26.068544] vgaarb: loaded
[   26.085164] vgaarb: bridge control possible 0000:00:02.0
[   26.117600] PCI: Using ACPI for IRQ routing
[   26.147506] PCI: pci_cache_line_size set to 64 bytes
[   26.177221] e820: reserve RAM buffer [mem 0x0009d800-0x0009ffff]
[   26.213549] e820: reserve RAM buffer [mem 0x80062000-0x83ffffff]
[   26.250136] Switched to clocksource xen
[   26.276770] pnp: PnP ACPI init
[   26.295159] system 00:00: [io  0x0680-0x069f] has been reserved
[   26.330859] system 00:00: [io  0xffff] has been reserved
[   26.363097] system 00:00: [io  0xffff] has been reserved
[   26.395340] system 00:00: [io  0xffff] has been reserved
[   26.427573] system 00:00: [io  0x1c00-0x1cfe] has been reserved
[   26.463456] system 00:00: [io  0x1d00-0x1dfe] has been reserved
[   26.499331] system 00:00: [io  0x1e00-0x1efe] has been reserved
[   26.535212] system 00:00: [io  0x1f00-0x1ffe] has been reserved
[   26.571090] system 00:00: [io  0x1800-0x18fe] could not be reserved
[   26.609053] system 00:00: [io  0x164e-0x164f] has been reserved
[   26.644934] system 00:00: Plug and Play ACPI device, IDs PNP0c02 (active)
[   26.686020] xen: registering gsi 8 triggering 1 polarity 0
[   26.760384] pnp 00:01: Plug and Play ACPI device, IDs PNP0b00 (active)
[   26.799928] system 00:02: [io  0x1854-0x1857] has been reserved
[   26.835770] system 00:02: Plug and Play ACPI device, IDs INT3f0d PNP0c02 (active)
[   26.881145] system 00:03: [io  0x0a00-0x0a2f] has been reserved
[   26.916885] system 00:03: [io  0x0a30-0x0a3f] has been reserved
[   26.952764] system 00:03: [io  0x0a40-0x0a4f] has been reserved
[   26.988644] system 00:03: Plug and Play ACPI device, IDs PNP0c02 (active)
[   27.029771] system 00:04: [io  0x04d0-0x04d1] has been reserved
[   27.065629] system 00:04: Plug and Play ACPI device, IDs PNP0c02 (active)
[   27.106874] xen: registering gsi 4 triggering 1 polarity 0
[   27.139990] Already setup the GSI :4
[   27.161830] pnp 00:05: [dma 0 disabled]
[   27.185247] pnp 00:05: Plug and Play ACPI device, IDs PNP0501 (active)
[   27.224987] pnp 00:06: Plug and Play ACPI device, IDs PNP0c31 (active)
[   27.264695] system 00:07: [mem 0xfed1c000-0xfed1ffff] has been reserved
[   27.304301] system 00:07: [mem 0xfed10000-0xfed17fff] has been reserved
[   27.344339] system 00:07: [mem 0xfed18000-0xfed18fff] has been reserved
[   27.384375] system 00:07: [mem 0xfed19000-0xfed19fff] has been reserved
[   27.424419] system 00:07: [mem 0xf8000000-0xfbffffff] has been reserved
[   27.464459] system 00:07: [mem 0xfed20000-0xfed3ffff] has been reserved
[   27.504495] system 00:07: [mem 0xfed90000-0xfed93fff] has been reserved
[   27.544532] system 00:07: [mem 0xfed45000-0xfed8ffff] has been reserved
[   27.584576] system 00:07: [mem 0xff000000-0xffffffff] has been reserved
[   27.624612] system 00:07: [mem 0xfee00000-0xfeefffff] could not be reserved
[   27.666735] system 00:07: [mem 0xf7fdf000-0xf7fdffff] has been reserved
[   27.706768] system 00:07: [mem 0xf7fe0000-0xf7feffff] has been reserved
[   27.746813] system 00:07: Plug and Play ACPI device, IDs PNP0c02 (active)
[   27.788146] pnp: PnP ACPI: found 8 devices
[   27.820156] PM-Timer failed consistency check  (0xffffff) - aborting.
[   27.858716] pci 0000:00:1c.0: PCI bridge to [bus 01]
[   27.888845] pci 0000:02:00.0: PCI bridge to [bus 03]
[   27.919016] pci 0000:00:1c.3: PCI bridge to [bus 02-03]
[   27.950721] pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7]
[   27.984499] pci_bus 0000:00: resource 5 [io  0x0d00-0xffff]
[   28.018299] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
[   28.056281] pci_bus 0000:00: resource 7 [mem 0x000d4000-0x000d7fff]
[   28.094238] pci_bus 0000:00: resource 8 [mem 0x000d8000-0x000dbfff]
[   28.132196] pci_bus 0000:00: resource 9 [mem 0x000dc000-0x000dffff]
[   28.170152] pci_bus 0000:00: resource 10 [mem 0x000e0000-0x000e3fff]
[   28.208633] pci_bus 0000:00: resource 11 [mem 0x000e4000-0x000e7fff]
[   28.247114] pci_bus 0000:00: resource 12 [mem 0xdf200000-0xfeafffff]
[   28.285811] NET: Registered protocol family 2
[   28.312279] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[   28.355817] TCP bind hash table entries: 16384 (order: 6, 262144 bytes)
[   28.395853] TCP: Hash tables configured (established 16384 bind 16384)
[   28.435359] TCP: reno registered
[   28.455111] UDP hash table entries: 1024 (order: 3, 32768 bytes)
[   28.491513] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
[   28.530617] NET: Registered protocol family 1
[   28.557038] pci 0000:00:02.0: Video device with shadowed ROM
[   28.591406] xen: registering gsi 16 triggering 0 polarity 1
[   28.625162] xen: --> pirq=16 -> irq=16 (gsi=16)
[   28.694961] xen: registering gsi 17 triggering 0 polarity 1
[   28.728634] xen: --> pirq=17 -> irq=17 (gsi=17)
[   28.818251] xen: registering gsi 23 triggering 0 polarity 1
[   28.851558] xen: --> pirq=23 -> irq=23 (gsi=23)
[   28.938261] PCI: CLS 64 bytes, default 64
[   28.962234] Unpacking initramfs...
[   28.999946] Freeing initrd memory: 46240K (ffff880002000000 - ffff880004d28000)
[   29.044149] RAPL PMU detected, hw unit 2^-14 Joules, API unit is 2^-32 Joules, 4 fixed counters 655360 ms ovfl timer
[   29.107527] futex hash table entries: 2048 (order: 5, 131072 bytes)
[   29.145155] audit: initializing netlink subsys (disabled)
[   29.177826] audit: type=2000 audit(1421924655.048:1): initialized
[   29.214979] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[   29.253241] zpool: loaded
[   29.269332] zbud: loaded
[   29.285095] VFS: Disk quotas dquot_6.5.2
[   29.308930] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[   29.351277] alg: No test for stdrng (krng)
[   29.375821] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[   29.420576] io scheduler noop registered
[   29.444362] io scheduler deadline registered
[   29.470424] io scheduler cfq registered (default)
[   29.499085] xen: registering gsi 16 triggering 0 polarity 1
[   29.532762] Already setup the GSI :16
[   29.555260] xen: registering gsi 19 triggering 0 polarity 1
[   29.588931] xen: --> pirq=19 -> irq=19 (gsi=19)
[   29.658708] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[   29.692410] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[   29.732453] intel_idle: does not run on family 6 model 60
[   29.765225] GHES: HEST is not enabled!
[   29.788284] xen:xen_evtchn: Event-channel device installed
[   29.821862] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[   29.859673] hpet_acpi_add: no address or irqs in _CRS
[   29.890008] Linux agpgart interface v0.103
[   29.914983] AMD IOMMUv2 driver by Joerg Roedel <joerg.roedel@amd.com>
[   29.953947] AMD IOMMUv2 functionality not available on this system
[   29.991440] xen_netfront: Initialising Xen virtual ethernet driver
[   30.028848] i8042: PNP: No PS/2 controller found. Probing ports directly.
[   30.070549] serio: i8042 KBD port at 0x60,0x64 irq 1
[   30.100201] serio: i8042 AUX port at 0x60,0x64 irq 12
[   30.131115] mousedev: PS/2 mouse device common for all mice
[   30.164728] rtc_cmos 00:01: RTC can wake from S4
[   30.192929] rtc_cmos 00:01: rtc core: registered rtc_cmos as rtc0
[   30.229818] rtc_cmos 00:01: alarms up to one month, y3k, 242 bytes nvram
[   30.270261] Intel P-state driver initializing.
[   30.297285] ledtrig-cpu: registered to indicate activity on CPUs
[   30.334153] TCP: cubic registered
[   30.354128] NET: Registered protocol family 10
[   30.381333] mip6: Mobile IPv6
[   30.399191] NET: Registered protocol family 17
[   30.426229] mpls_gso: MPLS GSO support
[   30.449459] registered taskstats version 1
[   30.474809] rtc_cmos 00:01: setting system clock to 2015-01-22 11:04:18 UTC (1421924658)
[   30.523257] PM: Hibernation image not present or could not be loaded.
[   30.562500] Freeing unused kernel memory: 1240K (ffffffff81907000 - ffffffff81a3d000)
[   30.609529] Write protecting the kernel read-only data: 8192k
[   30.644895] Freeing unused kernel memory: 484K (ffff880001587000 - ffff880001600000)
[   30.691304] Freeing unused kernel memory: 140K (ffff8800017dd000 - ffff880001800000)
[   30.758222] systemd-udevd[101]: starting version 215
[   30.788029] systemd-udevd[101]: Network interface NamePolicy= disabled on kernel commandline, ignoring.
[   30.849298] thermal LNXTHERM:00: registered as thermal_zone0
[   30.883154] ACPI: Thermal Zone [TZ00] (28 C)
[   30.909581] thermal LNXTHERM:01: registered as thermal_zone1
[   30.909619] pps_core: LinuxPPS API ver. 1 registered
[   30.909620] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[   31.028737] ACPI: Thermal Zone [TZ01] (30 C)
[   31.055332] PTP clock support registered
[   31.079948] e1000e: Intel(R) PRO/1000 Network Driver - 2.3.2-k
[   31.079998] SCSI subsystem initialized
[   31.137713] e1000e: Copyright(c) 1999 - 2014 Intel Corporation.
[   31.173715] xen: registering gsi 20 triggering 0 polarity 1
[   31.207470] xen: --> pirq=20 -> irq=20 (gsi=20)
[   31.277246] e1000e 0000:00:19.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
[   31.277384] libata version 3.00 loaded.
[   31.528752] e1000e 0000:00:19.0 eth0: registered PHC clock
[   31.561540] e1000e 0000:00:19.0 eth0: (PCI Express:2.5GT/s:Width x1) 44:8a:5b:e2:9b:48
[   31.609380] e1000e 0000:00:19.0 eth0: Intel(R) PRO/1000 Network Connection
[   31.651025] e1000e 0000:00:19.0 eth0: MAC: 11, PHY: 12, PBA No: FFFFFF-0FF
[   31.692665] ahci 0000:00:1f.2: version 3.0
[   31.717671] xen: registering gsi 19 triggering 0 polarity 1
[   31.751342] Already setup the GSI :19
[   31.773766] ahci 0000:00:1f.2: SSS flag set, parallel bus scan disabled
[   31.813754] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 5 ports 6 Gbps 0xa impl SATA mode
[   31.862619] ahci 0000:00:1f.2: flags: 64bit ncq stag pm led clo pio slum part ems sxs apst 
[   31.918792] scsi host0: ahci
[   31.936303] scsi host1: ahci
[   31.953942] scsi host2: ahci
[   31.971614] scsi host3: ahci
[   31.989307] scsi host4: ahci
[   32.006738] ata1: DUMMY
[   32.021787] ata2: SATA max UDMA/133 abar m2048@0xf7c36000 port 0xf7c36180 irq 84
[   32.066522] ata3: DUMMY
[   32.081603] ata4: SATA max UDMA/133 abar m2048@0xf7c36000 port 0xf7c36280 irq 84
[   32.126322] ata5: DUMMY
[   32.458235] ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[   32.495965] ata2.00: ATA-9: WDC WD10EZEX-08M2NA0, 01.01A01, max UDMA/100
[   32.536028] ata2.00: 1953525168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[   32.580455] ata2.00: configured for UDMA/100
[   32.606145] scsi 1:0:0:0: Direct-Access     ATA      WDC WD10EZEX-08M 1A01 PQ: 0 ANSI: 5
[   32.974189] ata4: SATA link down (SStatus 0 SControl 300)
[   33.008427] sd 1:0:0:0: [sda] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB)
[   33.054193] sd 1:0:0:0: [sda] 4096-byte physical blocks
[   33.085950] sd 1:0:0:0: [sda] Write Protect is off
[   33.115048] sd 1:0:0:0: [sda] Mode Sense: 00 3a 00 00
[   33.145739] sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[   33.265178]  sda: sda1 < sda5 sda6 sda7 > sda2 sda3
[   33.295270] sd 1:0:0:0: [sda] Attached SCSI disk
[   33.323709] sd 1:0:0:0: Attached scsi generic sg0 type 0
[   33.908559] PM: Starting manual resume from disk
[   33.936166] PM: Hibernation image partition 8:5 present
[   33.967887] PM: Looking for hibernation image.
[   34.008325] PM: Image not found (code -22)
[   34.032789] PM: Hibernation image not present or could not be loaded.
[   34.125036] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null)
[   34.943956] systemd[1]: Mounting cgroup to /sys/fs/cgroup/cpuset of type cgroup with options cpuset.
[   34.998804] systemd[1]: Mounting cgroup to /sys/fs/cgroup/cpu,cpuacct of type cgroup with options cpu,cpuacct.
[   35.058936] systemd[1]: Mounting cgroup to /sys/fs/cgroup/memory of type cgroup with options memory.
[   35.114081] systemd[1]: Mounting cgroup to /sys/fs/cgroup/devices of type cgroup with options devices.
[   35.170257] systemd[1]: Mounting cgroup to /sys/fs/cgroup/freezer of type cgroup with options freezer.
[   35.226391] systemd[1]: Mounting cgroup to /sys/fs/cgroup/net_cls,net_prio of type cgroup with options net_cls,net_prio.
[   35.291905] systemd[1]: Mounting cgroup to /sys/fs/cgroup/blkio of type cgroup with options blkio.
[   35.345990] systemd[1]: Mounting cgroup to /sys/fs/cgroup/perf_event of type cgroup with options perf_event.
[   35.405286] systemd[1]: systemd 215 running in system mode. (+PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR)
[   35.485355] systemd[1]: Detected virtualization 'xen'.
[   35.516512] systemd[1]: Detected architecture 'x86-64'.
[   35.603830] systemd[1]: Your kernel apparently lacks built-in autofs4 support. Might be a good idea to compile it in. We'll now try to work around this by loading the module...
[   35.837078] systemd[1]: Inserted module 'autofs4'
[   35.886166] systemd[1]: Set hostname to <supershaka>.
[   35.942469] systemd[1]: Using cgroup controller name=systemd. File system hierarchy is at /sys/fs/cgroup/systemd.
[   36.003944] systemd[1]: Installed release agent.
[   36.031982] systemd[1]: Set up TFD_TIMER_CANCEL_ON_SET timerfd.
[   78.550990] systemd-udevd[223]: starting version 215
[   79.370583] wmi: Mapper loaded
[   79.605639] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)
[   79.605764] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input2
[   79.605767] ACPI: Power Button [PWRB]
[   79.605815] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input3
[   79.605816] ACPI: Power Button [PWRF]
[   79.788099] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)
[   79.862357] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)
[   79.904829] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)
[   79.947512] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)
[   79.947536] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[   80.030631] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)
[   80.073247] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)
[   80.116010] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)
[   80.158384] Warning: Processor Platform Limit not supported.
[   80.192477] EXT4-fs (sda2): re-mounted. Opts: errors=remount-ro
[   80.264241] xen: registering gsi 18 triggering 0 polarity 1
[   80.297628] xen: --> pirq=18 -> irq=18 (gsi=18)
[   80.390688] ACPI Warning: SystemIO range 0x0000000000000580-0x000000000000059f conflicts with OpRegion 0x0000000000000580-0x000000000000058f (\_SB_.PCI0.SBUS.SMBI) (20141107/utaddress-258)
[   80.508697] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[   80.712781] ACPI: bus type USB registered
[   80.758054] usbcore: registered new interface driver usbfs
[   80.792920] usbcore: registered new interface driver hub
[   80.833483] usbcore: registered new device driver usb
[   80.882726] input: PC Speaker as /devices/platform/pcspkr/input/input4
[   80.950179] tpm_tis 00:06: 1.2 TPM (device-id 0x0, rev-id 78)
[   80.950271] parport_pc parport_pc.956: Unable to set coherent dma mask: disabling DMA
[   80.950363] parport_pc parport_pc.888: Unable to set coherent dma mask: disabling DMA
[   80.950499] parport_pc parport_pc.632: Unable to set coherent dma mask: disabling DMA
[   81.135369] [drm] Initialized drm 1.1.0 20060810
[   81.174223] tpm_tis 00:06: TPM is disabled/deactivated (0x6)
[   81.289938] systemd-journald[212]: Received request to flush runtime journal from PID 1
[   81.346342] Error: Driver 'pcspkr' is already registered, aborting...
[   81.475046] xen: registering gsi 16 triggering 0 polarity 1
[   81.508492] Already setup the GSI :16
[   81.531186] iTCO_vendor_support: vendor-support=0
[   81.560506] xen: registering gsi 16 triggering 0 polarity 1
[   81.593824] Already setup the GSI :16
[   81.618014] ppdev: user-space parallel port driver
[   81.694314] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.11
[   81.727751] iTCO_wdt: Found a Lynx Point TCO device (Version=2, TCOBASE=0x1860)
[   81.771939] iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
[   81.813311] snd_hda_intel 0000:00:03.0: Cannot turn on display power on i915
[   81.855891] xen: registering gsi 16 triggering 0 polarity 1
[   81.889298] Already setup the GSI :16
[   81.911699] xhci_hcd 0000:00:14.0: xHCI Host Controller
[   81.943379] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 1
[   81.988257] xhci_hcd 0000:00:14.0: cache line size of 64 is not supported
[   82.055383] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[   82.125373] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   82.125374] usb usb1: Product: xHCI Host Controller
[   82.125386] usb usb1: Manufacturer: Linux 3.19.0-rc4+ xhci-hcd
[   82.125406] usb usb1: SerialNumber: 0000:00:14.0
[   82.125593] hub 1-0:1.0: USB hub found
[   82.125646] hub 1-0:1.0: 15 ports detected
[   82.130498] xhci_hcd 0000:00:14.0: xHCI Host Controller
[   82.130500] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 2
[   82.130550] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
[   82.130551] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   82.130552] usb usb2: Product: xHCI Host Controller
[   82.130553] usb usb2: Manufacturer: Linux 3.19.0-rc4+ xhci-hcd
[   82.130553] usb usb2: SerialNumber: 0000:00:14.0
[   82.130687] hub 2-0:1.0: USB hub found
[   82.130752] hub 2-0:1.0: 6 ports detected
[   82.500916] AVX2 version of gcm_enc/dec engaged.
[   82.500916] AES CTR mode by8 optimization enabled
[   82.502159] usb 1-7: new low-speed USB device number 3 using xhci_hcd
[   82.503148] alg: No test for __gcm-aes-aesni (__driver-gcm-aes-aesni)
[   82.677149] usb 1-7: New USB device found, idVendor=046d, idProduct=c077
[   82.677151] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[   82.677152] usb 1-7: Product: USB Optical Mouse
[   82.677152] usb 1-7: Manufacturer: Logitech
[   82.677261] usb 1-7: ep 0x81 - rounding interval to 64 microframes, ep desc says 80 microframes
[   82.714231] usb 2-3: new SuperSpeed USB device number 2 using xhci_hcd
[   82.730895] usb 2-3: New USB device found, idVendor=1058, idProduct=1230
[   82.730896] usb 2-3: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[   82.730897] usb 2-3: Product: My Book 1230
[   82.730898] usb 2-3: Manufacturer: Western Digital
[   82.730898] usb 2-3: SerialNumber: 574343344531333339323937
[   82.846153] usb 1-8: new low-speed USB device number 4 using xhci_hcd
[   83.015862] alg: No test for crc32 (crc32-pclmul)
[   83.098937] usb 1-8: New USB device found, idVendor=413c, idProduct=2106
[   83.098939] usb 1-8: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[   83.098939] usb 1-8: Product: Dell QuietKey Keyboard
[   83.098940] usb 1-8: Manufacturer: Dell
[   83.099031] usb 1-8: ep 0x81 - rounding interval to 64 microframes, ep desc says 80 microframes
[   83.511163] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[   83.588399] device eth0 entered promiscuous mode
[   83.671195] hidraw: raw HID events driver (C) Jiri Kosina
[   83.713619] usb-storage 2-3:1.0: USB Mass Storage device detected
[   83.750341] scsi host5: usb-storage 2-3:1.0
[   83.775670] usbcore: registered new interface driver usb-storage
[   83.821603] usbcore: registered new interface driver usbhid
[   83.839122] IPv6: ADDRCONF(NETDEV_UP): xenbr0: link is not ready
[   83.891342] usbhid: USB HID core driver
[   83.914978] intel_rapl: Found RAPL domain package
[   83.943348] intel_rapl: Found RAPL domain core
[   83.970379] intel_rapl: Found RAPL domain uncore
[   83.998459] intel_rapl: Found RAPL domain dram
[   84.025734] input: Logitech USB Optical Mouse as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/0003:046D:C077.0001/input/input6
[   84.242566] hid-generic 0003:046D:C077.0001: input,hidraw0: USB HID v1.11 Mouse [Logitech USB Optical Mouse] on usb-0000:00:14.0-7/input0
[   84.316875] input: Dell Dell QuietKey Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0/0003:413C:2106.0002/input/input7
[   84.442531] hid-generic 0003:413C:2106.0002: input,hidraw1: USB HID v1.10 Keyboard [Dell Dell QuietKey Keyboard] on usb-0000:00:14.0-8/input0
[   84.774709] scsi 5:0:0:0: Direct-Access     WD       My Book 1230     1050 PQ: 0 ANSI: 6
[   84.823449] scsi 5:0:0:1: Enclosure         WD       SES Device       1050 PQ: 0 ANSI: 6
[   84.873187] sd 5:0:0:0: Attached scsi generic sg1 type 0
[   84.874035] sd 5:0:0:0: [sdb] Spinning up disk...
[   84.933811] scsi 5:0:0:1: Attached scsi generic sg2 type 13
[   84.981589] scsi 5:0:0:1: Failed to get diagnostic page 0x8000002
[   85.018002] scsi 5:0:0:1: Failed to bind enclosure -19
[   85.049227] ses 5:0:0:1: Attached Enclosure device
[   85.874186] ..
[   87.275898] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
[   87.322747] xenbr0: port 1(eth0) entered forwarding state
[   87.355484] xenbr0: port 1(eth0) entered forwarding state
[   87.388265] IPv6: ADDRCONF(NETDEV_CHANGE): xenbr0: link becomes ready
[   87.890232] ........ready
[   95.033112] sd 5:0:0:0: [sdb] 976746240 4096-byte logical blocks: (4.00 TB/3.63 TiB)
[   95.079969] sd 5:0:0:0: [sdb] Write Protect is off
[   95.108793] sd 5:0:0:0: [sdb] Mode Sense: 53 00 10 08
[   95.109157] sd 5:0:0:0: [sdb] No Caching mode page found
[   95.109158] sd 5:0:0:0: [sdb] Assuming drive cache: write through
[   95.109636] sd 5:0:0:0: [sdb] 976746240 4096-byte logical blocks: (4.00 TB/3.63 TiB)
[   95.222808]  sdb: sdb1
[   95.255914] sd 5:0:0:0: [sdb] 976746240 4096-byte logical blocks: (4.00 TB/3.63 TiB)
[   95.257110] sd 5:0:0:0: [sdb] Attached SCSI disk
[   99.264422] cfg80211: Calling CRDA to update world regulatory domain
[   99.338358] cfg80211: World regulatory domain updated:
[   99.369054] cfg80211:  DFS Master region: unset
[   99.395062] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[   99.454317] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[   99.502698] cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[   99.551055] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
[   99.599421] cfg80211:   (5170000 KHz - 5250000 KHz @ 160000 KHz), (N/A, 2000 mBm), (N/A)
[   99.648305] cfg80211:   (5250000 KHz - 5330000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
[   99.648322] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
[   99.648325] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
[   99.648327] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
[  102.390212] xenbr0: port 1(eth0) entered forwarding state

I hope this is some amount info to look at.
If I have missed something, please let me know.

Elena

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-22 15:42 ` Roger Pau Monné
@ 2015-01-22 16:23   ` Elena Ufimtseva
  2015-01-22 17:34   ` Elena Ufimtseva
  1 sibling, 0 replies; 27+ messages in thread
From: Elena Ufimtseva @ 2015-01-22 16:23 UTC (permalink / raw)
  To: xen-devel
  Cc: kevin.tian, andrew.cooper3, tim, xen-devel, JBeulich,
	yang.z.zhang, boris.ostrovsky

On Thu, Jan 22, 2015 at 04:42:52PM +0100, Roger Pau Monné wrote:
> El 22/01/15 a les 16.18, Elena Ufimtseva ha escrit:
> > 
> > ----- JBeulich@suse.com wrote:
> > 
> >>>>> On 22.01.15 at 12:37, <roger.pau@citrix.com> wrote:
> >>> El 22/01/15 a les 12.09, Jan Beulich ha escrit:
> >>>>>>> On 22.01.15 at 11:59, <andrew.cooper3@citrix.com> wrote:
> >>>>> On 22/01/15 09:53, Jan Beulich wrote:
> >>>>>>>>> On 21.01.15 at 21:55, <elena.ufimtseva@oracle.com> wrote:
> >>>>>>> p2m_mmio_direct should result in setting IOMMUF_readable and
> >> IOMMUF_writable
> >>>>>>> flags.
> >>>>>>> When pvh domain maps mmio regions, the EPT entries are not
> >> getting mapped.
> >>>>>>> This leads to IOMMU Page faults for some devices, as for example
> >> USB Host
> >>>>>>> controllers with embedded Debug devices. See
> >> pvh-set-need_iommu-early RFC
> >>>>>>> patch discussion fgor detail.
> >>>>>> Even more so that the two patches aren't even a series, that
> >> part
> >>>>>> of the description belongs here, not in the other patch.
> >>>>>>
> >>>>>>> I will appreciate your comments and ideas in regards to this
> >> change.
> >>>>>>>
> >>>>>>> Looking at Roger patches (xen/pvh: check permissions when adding
> >> MMIO 
> >>>>>>> regions)
> >>>>>>> the mmio memory type is proposed to be changed from
> >> p2m_mmio_direct to 
> >>>>>>> p2m_access_rw.
> >>>>>>> This type still does not have proper IOMMU flags mapping.
> >>>>>> A fundamental question is what business devices have to DMA
> >> their
> >>>>>> own (or other devices') MMIO space. I could remotely see a need
> >>>>>> for this for e.g. frame buffers, but I have difficulty
> >> understanding
> >>>>>> this for USB devices. Please at the very least provide details on
> >> the
> >>>>>> MMIO regions that those devices have, and which of them you
> >>>>>> observed IOMMU faults on.
> >>>>>
> >>>>> It would appear that, in this case, it is a USB controller lacking
> >> an
> >>>>> appropriate RMRR description in the ACPI tables.
> >>>>
> >>>> No, RMRRs only reference RAM pages afaik.
> >>>
> >>> According to Linux IOMMU support document RMRRs reference regions
> >> marked
> >>> as "reserved" in the e820 memory map:
> >>>
> >>> https://www.kernel.org/doc/Documentation/Intel-IOMMU.txt 
> >>
> >> Exactly. And MMIO PCI BARs in particular are never to be
> >> reflected in the E820 (not the least because they're relocatable).
> >>
> >>> I don't think we are setting proper IOMMU entries for this regions
> >> at
> >>> all with the current PVH Dom0 code. IMHO instead of just adding
> >> IOMMU
> >>> entries for every MMIO region we should just add IOMMU entries for
> >> the
> >>> RMRR regions.
> >>
> >> Yes, RMRR regions should certainly be put there as r/w entries.
> >>
> >> Jan
> > 
> > How it will help in cases like this when this regions are not reported as RMRRs in ACPI?
> 
> AFAIK even if they are properly reported as RMRRs they won't have the
> right IOMMU mappings, are you sure they are not reported as RMRRs?
> 
> Roger.
> 

Yes, they are not RMRRs but I am about to send more details on this.

Elena

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
@ 2015-01-22 15:43 Elena Ufimtseva
  2015-01-23 11:19 ` Jan Beulich
  0 siblings, 1 reply; 27+ messages in thread
From: Elena Ufimtseva @ 2015-01-22 15:43 UTC (permalink / raw)
  To: JBeulich
  Cc: kevin.tian, andrew.cooper3, tim, xen-devel, yang.z.zhang,
	boris.ostrovsky, roger.pau


----- JBeulich@suse.com wrote:

> >>> On 22.01.15 at 16:18, <elena.ufimtseva@oracle.com> wrote:
> > ----- JBeulich@suse.com wrote:
> >> >>> On 22.01.15 at 12:37, <roger.pau@citrix.com> wrote:
> >> > I don't think we are setting proper IOMMU entries for this
> regions
> >> at
> >> > all with the current PVH Dom0 code. IMHO instead of just adding
> >> IOMMU
> >> > entries for every MMIO region we should just add IOMMU entries
> for
> >> the
> >> > RMRR regions.
> >> 
> >> Yes, RMRR regions should certainly be put there as r/w entries.
> > 
> > How it will help in cases like this when this regions are not
> reported as 
> > RMRRs in ACPI?
> 
> It won't help - I was merely commenting on Roger's statement.
> 
> > Also, pv dom0 has no such problem.
> 
> Even with "iommu=dom0-strict"?
> 
> Jan

Even with iommu=dom0-strict pv dom0 boots just fine.

Elena

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-22 15:18 Elena Ufimtseva
  2015-01-22 15:36 ` Jan Beulich
@ 2015-01-22 15:42 ` Roger Pau Monné
  2015-01-22 16:23   ` Elena Ufimtseva
  2015-01-22 17:34   ` Elena Ufimtseva
  1 sibling, 2 replies; 27+ messages in thread
From: Roger Pau Monné @ 2015-01-22 15:42 UTC (permalink / raw)
  To: Elena Ufimtseva, JBeulich
  Cc: kevin.tian, andrew.cooper3, tim, xen-devel, yang.z.zhang,
	boris.ostrovsky

El 22/01/15 a les 16.18, Elena Ufimtseva ha escrit:
> 
> ----- JBeulich@suse.com wrote:
> 
>>>>> On 22.01.15 at 12:37, <roger.pau@citrix.com> wrote:
>>> El 22/01/15 a les 12.09, Jan Beulich ha escrit:
>>>>>>> On 22.01.15 at 11:59, <andrew.cooper3@citrix.com> wrote:
>>>>> On 22/01/15 09:53, Jan Beulich wrote:
>>>>>>>>> On 21.01.15 at 21:55, <elena.ufimtseva@oracle.com> wrote:
>>>>>>> p2m_mmio_direct should result in setting IOMMUF_readable and
>> IOMMUF_writable
>>>>>>> flags.
>>>>>>> When pvh domain maps mmio regions, the EPT entries are not
>> getting mapped.
>>>>>>> This leads to IOMMU Page faults for some devices, as for example
>> USB Host
>>>>>>> controllers with embedded Debug devices. See
>> pvh-set-need_iommu-early RFC
>>>>>>> patch discussion fgor detail.
>>>>>> Even more so that the two patches aren't even a series, that
>> part
>>>>>> of the description belongs here, not in the other patch.
>>>>>>
>>>>>>> I will appreciate your comments and ideas in regards to this
>> change.
>>>>>>>
>>>>>>> Looking at Roger patches (xen/pvh: check permissions when adding
>> MMIO 
>>>>>>> regions)
>>>>>>> the mmio memory type is proposed to be changed from
>> p2m_mmio_direct to 
>>>>>>> p2m_access_rw.
>>>>>>> This type still does not have proper IOMMU flags mapping.
>>>>>> A fundamental question is what business devices have to DMA
>> their
>>>>>> own (or other devices') MMIO space. I could remotely see a need
>>>>>> for this for e.g. frame buffers, but I have difficulty
>> understanding
>>>>>> this for USB devices. Please at the very least provide details on
>> the
>>>>>> MMIO regions that those devices have, and which of them you
>>>>>> observed IOMMU faults on.
>>>>>
>>>>> It would appear that, in this case, it is a USB controller lacking
>> an
>>>>> appropriate RMRR description in the ACPI tables.
>>>>
>>>> No, RMRRs only reference RAM pages afaik.
>>>
>>> According to Linux IOMMU support document RMRRs reference regions
>> marked
>>> as "reserved" in the e820 memory map:
>>>
>>> https://www.kernel.org/doc/Documentation/Intel-IOMMU.txt 
>>
>> Exactly. And MMIO PCI BARs in particular are never to be
>> reflected in the E820 (not the least because they're relocatable).
>>
>>> I don't think we are setting proper IOMMU entries for this regions
>> at
>>> all with the current PVH Dom0 code. IMHO instead of just adding
>> IOMMU
>>> entries for every MMIO region we should just add IOMMU entries for
>> the
>>> RMRR regions.
>>
>> Yes, RMRR regions should certainly be put there as r/w entries.
>>
>> Jan
> 
> How it will help in cases like this when this regions are not reported as RMRRs in ACPI?

AFAIK even if they are properly reported as RMRRs they won't have the
right IOMMU mappings, are you sure they are not reported as RMRRs?

Roger.

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
@ 2015-01-22 15:42 Elena Ufimtseva
  0 siblings, 0 replies; 27+ messages in thread
From: Elena Ufimtseva @ 2015-01-22 15:42 UTC (permalink / raw)
  To: JBeulich
  Cc: kevin.tian, tim, xen-devel, yang.z.zhang, boris.ostrovsky, roger.pau


----- JBeulich@suse.com wrote:

> >>> On 22.01.15 at 16:11, <elena.ufimtseva@oracle.com> wrote:
> > ----- JBeulich@suse.com wrote:
> >> A fundamental question is what business devices have to DMA their
> >> own (or other devices') MMIO space. I could remotely see a need
> >> for this for e.g. frame buffers, but I have difficulty
> understanding
> >> this for USB devices. Please at the very least provide details on
> the
> >> MMIO regions that those devices have, and which of them you
> >> observed IOMMU faults on.
> > 
> > The IOMMU Page fault addresses are 0xd5d45 and 0xd5d46 in case of 
> > ThinkCentre machine.
> > If you would like to see any other details I am happy to send them
> as well.
> 
> Yes, the two numbers alone don't tell me anything - I can't even
> judge whether they're MFNs, GFNs, or host/guest physical
> addresses that way. I also specifically asked for providing the
> BAR values of the USB controller in question, to be able to match
> up the numbers. Logs and/or lspci output will be most useful for
> this purpose.
> 
> Jan

I will send all what I have.

Elena

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-22 15:18 Elena Ufimtseva
@ 2015-01-22 15:36 ` Jan Beulich
  2015-01-22 15:42 ` Roger Pau Monné
  1 sibling, 0 replies; 27+ messages in thread
From: Jan Beulich @ 2015-01-22 15:36 UTC (permalink / raw)
  To: Elena Ufimtseva
  Cc: kevin.tian, andrew.cooper3, tim, xen-devel, yang.z.zhang,
	boris.ostrovsky, roger.pau

>>> On 22.01.15 at 16:18, <elena.ufimtseva@oracle.com> wrote:
> ----- JBeulich@suse.com wrote:
>> >>> On 22.01.15 at 12:37, <roger.pau@citrix.com> wrote:
>> > I don't think we are setting proper IOMMU entries for this regions
>> at
>> > all with the current PVH Dom0 code. IMHO instead of just adding
>> IOMMU
>> > entries for every MMIO region we should just add IOMMU entries for
>> the
>> > RMRR regions.
>> 
>> Yes, RMRR regions should certainly be put there as r/w entries.
> 
> How it will help in cases like this when this regions are not reported as 
> RMRRs in ACPI?

It won't help - I was merely commenting on Roger's statement.

> Also, pv dom0 has no such problem.

Even with "iommu=dom0-strict"?

Jan

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
  2015-01-22 15:11 Elena Ufimtseva
@ 2015-01-22 15:34 ` Jan Beulich
  0 siblings, 0 replies; 27+ messages in thread
From: Jan Beulich @ 2015-01-22 15:34 UTC (permalink / raw)
  To: Elena Ufimtseva
  Cc: kevin.tian, tim, xen-devel, yang.z.zhang, boris.ostrovsky, roger.pau

>>> On 22.01.15 at 16:11, <elena.ufimtseva@oracle.com> wrote:
> ----- JBeulich@suse.com wrote:
>> A fundamental question is what business devices have to DMA their
>> own (or other devices') MMIO space. I could remotely see a need
>> for this for e.g. frame buffers, but I have difficulty understanding
>> this for USB devices. Please at the very least provide details on the
>> MMIO regions that those devices have, and which of them you
>> observed IOMMU faults on.
> 
> The IOMMU Page fault addresses are 0xd5d45 and 0xd5d46 in case of 
> ThinkCentre machine.
> If you would like to see any other details I am happy to send them as well.

Yes, the two numbers alone don't tell me anything - I can't even
judge whether they're MFNs, GFNs, or host/guest physical
addresses that way. I also specifically asked for providing the
BAR values of the USB controller in question, to be able to match
up the numbers. Logs and/or lspci output will be most useful for
this purpose.

Jan

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
@ 2015-01-22 15:18 Elena Ufimtseva
  2015-01-22 15:36 ` Jan Beulich
  2015-01-22 15:42 ` Roger Pau Monné
  0 siblings, 2 replies; 27+ messages in thread
From: Elena Ufimtseva @ 2015-01-22 15:18 UTC (permalink / raw)
  To: JBeulich
  Cc: kevin.tian, andrew.cooper3, tim, xen-devel, yang.z.zhang,
	boris.ostrovsky, roger.pau


----- JBeulich@suse.com wrote:

> >>> On 22.01.15 at 12:37, <roger.pau@citrix.com> wrote:
> > El 22/01/15 a les 12.09, Jan Beulich ha escrit:
> >>>>> On 22.01.15 at 11:59, <andrew.cooper3@citrix.com> wrote:
> >>> On 22/01/15 09:53, Jan Beulich wrote:
> >>>>>>> On 21.01.15 at 21:55, <elena.ufimtseva@oracle.com> wrote:
> >>>>> p2m_mmio_direct should result in setting IOMMUF_readable and
> IOMMUF_writable
> >>>>> flags.
> >>>>> When pvh domain maps mmio regions, the EPT entries are not
> getting mapped.
> >>>>> This leads to IOMMU Page faults for some devices, as for example
> USB Host
> >>>>> controllers with embedded Debug devices. See
> pvh-set-need_iommu-early RFC
> >>>>> patch discussion fgor detail.
> >>>> Even more so that the two patches aren't even a series, that
> part
> >>>> of the description belongs here, not in the other patch.
> >>>>
> >>>>> I will appreciate your comments and ideas in regards to this
> change.
> >>>>>
> >>>>> Looking at Roger patches (xen/pvh: check permissions when adding
> MMIO 
> >>>>> regions)
> >>>>> the mmio memory type is proposed to be changed from
> p2m_mmio_direct to 
> >>>>> p2m_access_rw.
> >>>>> This type still does not have proper IOMMU flags mapping.
> >>>> A fundamental question is what business devices have to DMA
> their
> >>>> own (or other devices') MMIO space. I could remotely see a need
> >>>> for this for e.g. frame buffers, but I have difficulty
> understanding
> >>>> this for USB devices. Please at the very least provide details on
> the
> >>>> MMIO regions that those devices have, and which of them you
> >>>> observed IOMMU faults on.
> >>>
> >>> It would appear that, in this case, it is a USB controller lacking
> an
> >>> appropriate RMRR description in the ACPI tables.
> >> 
> >> No, RMRRs only reference RAM pages afaik.
> > 
> > According to Linux IOMMU support document RMRRs reference regions
> marked
> > as "reserved" in the e820 memory map:
> > 
> > https://www.kernel.org/doc/Documentation/Intel-IOMMU.txt 
> 
> Exactly. And MMIO PCI BARs in particular are never to be
> reflected in the E820 (not the least because they're relocatable).
> 
> > I don't think we are setting proper IOMMU entries for this regions
> at
> > all with the current PVH Dom0 code. IMHO instead of just adding
> IOMMU
> > entries for every MMIO region we should just add IOMMU entries for
> the
> > RMRR regions.
> 
> Yes, RMRR regions should certainly be put there as r/w entries.
> 
> Jan

How it will help in cases like this when this regions are not reported as RMRRs in ACPI?

Also, pv dom0 has no such problem.


Elena

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH RFC] p2m: p2m_mmio_direct set RW permissions
@ 2015-01-22 15:11 Elena Ufimtseva
  2015-01-22 15:34 ` Jan Beulich
  0 siblings, 1 reply; 27+ messages in thread
From: Elena Ufimtseva @ 2015-01-22 15:11 UTC (permalink / raw)
  To: JBeulich
  Cc: kevin.tian, tim, xen-devel, yang.z.zhang, boris.ostrovsky, roger.pau


----- JBeulich@suse.com wrote:

> >>> On 21.01.15 at 21:55, <elena.ufimtseva@oracle.com> wrote:
> > p2m_mmio_direct should result in setting IOMMUF_readable and
> IOMMUF_writable
> > flags.
> > When pvh domain maps mmio regions, the EPT entries are not getting
> mapped.
> > This leads to IOMMU Page faults for some devices, as for example USB
> Host
> > controllers with embedded Debug devices. See
> pvh-set-need_iommu-early RFC
> > patch discussion fgor detail.
> 
> Even more so that the two patches aren't even a series, that part
> of the description belongs here, not in the other patch.
> 
> > I will appreciate your comments and ideas in regards to this
> change.
> > 
> > Looking at Roger patches (xen/pvh: check permissions when adding
> MMIO 
> > regions)
> > the mmio memory type is proposed to be changed from p2m_mmio_direct
> to 
> > p2m_access_rw.
> > This type still does not have proper IOMMU flags mapping.
> 
> A fundamental question is what business devices have to DMA their
> own (or other devices') MMIO space. I could remotely see a need
> for this for e.g. frame buffers, but I have difficulty understanding
> this for USB devices. Please at the very least provide details on the
> MMIO regions that those devices have, and which of them you
> observed IOMMU faults on.
> 
> Jan

Hi Jan

The IOMMU Page fault addresses are 0xd5d45 and 0xd5d46 in case of ThinkCentre machine.
If you would like to see any other details I am happy to send them as well.

With Dell Precision it is not known what addresses do trigger page faults because it just hangs.

I don't have an answer why the devices need to access DMA of their MMIOs. Will ask linux usb folks.

Elena

^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2015-01-30 16:48 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-21 20:55 [PATCH RFC] p2m: p2m_mmio_direct set RW permissions Elena Ufimtseva
2015-01-22  9:53 ` Jan Beulich
2015-01-22 10:59   ` Andrew Cooper
2015-01-22 11:09     ` Jan Beulich
2015-01-22 11:37       ` Roger Pau Monné
2015-01-22 11:54         ` Jan Beulich
2015-01-22 15:11 Elena Ufimtseva
2015-01-22 15:34 ` Jan Beulich
2015-01-22 15:18 Elena Ufimtseva
2015-01-22 15:36 ` Jan Beulich
2015-01-22 15:42 ` Roger Pau Monné
2015-01-22 16:23   ` Elena Ufimtseva
2015-01-22 17:34   ` Elena Ufimtseva
2015-01-23 10:50     ` Jan Beulich
2015-01-26 16:57       ` Elena Ufimtseva
2015-01-26 17:06         ` Jan Beulich
2015-01-26 17:30           ` Elena Ufimtseva
2015-01-27  6:41             ` Tian, Kevin
2015-01-27 15:05               ` Elena Ufimtseva
2015-01-28  2:28                 ` Tian, Kevin
2015-01-27  8:24             ` Jan Beulich
2015-01-27 15:07               ` Elena Ufimtseva
2015-01-30 16:34               ` Elena Ufimtseva
2015-01-30 16:48                 ` Jan Beulich
2015-01-22 15:42 Elena Ufimtseva
2015-01-22 15:43 Elena Ufimtseva
2015-01-23 11:19 ` Jan Beulich

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.