On Thu, Jan 16, 2014 at 03:07:21PM -0500, Anthony DeRobertis wrote:
> On 01/16/2014 01:21 PM, Neil Horman wrote:
> >Yes, What I would like to see is your backout patch removed, and the the
> >following tests preformed:
> >
> >1) VT-D off in bios
> >2) VT-D on in bios and nointremap specified on the command line
> >3) VT-D on in bios and nointremap _not_ specified on the command line
> >
> >If I could see the boot logs for all of those that would be helpful. What
> >would
> >be particularly helpful is to know if test (2) results in the problem
> >reproducing. If it does that suggests our ability to disable interrupt
> >remapping in the kernel is somehow ineffective on your system.
>
> (2) results in the problem reproducing. To be clear, all three tests
> have been done without my patch applied. They were built from:
>
> master a6da83f Merge branch 'merge' of
> git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
>
>
> To get the dmesg for (1) and (3), I booted into single user, and
> didn't go any further. (2) I first booted to single user, but then
> continued on—that's why you'll see the much later timestamp loading
> tun, etc.
>
So, something just doesn't ring true here. In test 2, you specified nointremap
on the kernel command line, which is good. But specifying that on the kernel
command line sets disable_irq_remap=1. In intel_irq_remapping_supported, the
code reads as follows:
static int __init intel_irq_remapping_supported(void)
{
struct dmar_drhd_unit *drhd;
if (disable_irq_remap)
return 0;
if (irq_remap_broken) {
printk(KERN_WARNING
"This system BIOS has enabled interrupt remapping\n"
"on a chipset that contains an erratum making that\n"
"feature unstable. To maintain system stability\n"
"interrupt remapping is being disabled. Please\n"
"contact your BIOS vendor for an update\n");
add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
disable_irq_remap = 1;
return 0;
}
...
If disable_irq_remap had been set by nointremap, that function should have
returned immediately, but in test 2 you got the "This system BIOS.." warning,
indicating that disable_irq_remap was not set. It seems to me something is
wrong with your kernel build. I'd suggest confirming this (mis)-behavior by
adding a printk to the function setup_nointremap, indicating the value
disable_irq_remap is getting set to. I would also add a printk to the start of
intel_irq_remapping_supported to print out the value of disable_irq_remap again,
to ensure it hasn't changed. That should give us some additional clues as to
whats going on.
Regards
Neil
_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu