On Mon, Jan 5, 2015 at 3:44 AM, Jan Beulich <jbeul...@suse.com> wrote:
> >>> Elena Ufimtseva <ufimts...@gmail.com> 01/02/15 7:32 PM >>> > >The last successful command is the reading status register of second IOMMU > >unit: > > > ><snip from iommu_enable_translation() in > >./xen/drivers/passthrough/vtd/iommu.c> > > > >746: sts = dmar_readl(iommu->reg, DMAR_GSTS_REG); > >747: dmar_writel(iommu->reg, DMAR_GCMD_REG, sts | DMA_GCMD_TE); > > > ></snip> > > > >After dmar_writel for second iommu the machine hangs. > > That's rather odd - you say it doesn't even reach the IOMMU_WAIT_OP() > right after that? Thats odd, last tests I did show that it does complete the write to the control register of the second drhd, but I cannot say if it reaches IOMMU_WAIT_OP() as right after this write it hangs. I tried to enable iommu's in reverse order with the same result. > That would suggest a fault or other abnormal condition > raised by the translation enabling (i.e. some problem with the page tables, > albeit that should then have been a problem for the first IOMMU already). > I wonder if such problem can be diagnosed without interrupt. Maybe reflected in error logging event registers? Yet an eventual fault can't be delivered at that point due to interrupts > being > disabled. Perhaps the VT-d maintainers (now Cc-ed) have some suggestion > as to what's going on or how to diagnose. > I will try to figure out if machine hangs completely at this point. Also checking the PCI topology for this machine and how it gets enumerated, maybe it will shed some light. Will report back soon. > > Jan > > -- Elena
_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel