Linux IOMMU Development
 help / color / mirror / Atom feed
From: Anthony DeRobertis <aderobertis-VnMYzjHJ8tfR7s880joybQ@public.gmane.org>
To: Neil Horman <nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
Cc: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org
Subject: Re: PROBLEM: do_IRQ: [number] No irq handler for vector (irq -1)
Date: Thu, 23 Jan 2014 14:24:06 -0500	[thread overview]
Message-ID: <52E16C56.9000709@metrics.net> (raw)
In-Reply-To: <20140123123743.GA26800-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>

On 01/23/2014 07:37 AM, Neil Horman wrote:
> diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c
> index bab10b1..19f41ee 100644
> --- a/drivers/iommu/intel_irq_remapping.c
> +++ b/drivers/iommu/intel_irq_remapping.c
> @@ -533,6 +533,8 @@ static int __init intel_irq_remapping_supported(void)
>   			"contact your BIOS vendor for an update\n");
>   		add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
>   		disable_irq_remap = 1;
> +		/* In case BIOS already enabled irq remapping */
> +		disable_irq_remapping();
>   		return 0;
>   	}

I already tried that, well, similar (you need to declare 
disable_irq_remapping above that or it won't compile). I also added in 
some printks, to see what it is doing:

diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c
index bab10b1..8a502d7 100644
--- a/drivers/iommu/intel_irq_remapping.c
+++ b/drivers/iommu/intel_irq_remapping.c
@@ -496,8 +496,13 @@ static void iommu_disable_irq_remapping(struct intel_iommu *iommu)
         raw_spin_lock_irqsave(&iommu->register_lock, flags);
  
         sts = dmar_readq(iommu->reg + DMAR_GSTS_REG);
-       if (!(sts & DMA_GSTS_IRES))
+       if (!(sts & DMA_GSTS_IRES)) {
+               printk(KERN_WARNING
+                      "Not disabling interrupt remapping, was not enabled.\n");
                 goto end;
+       } else {
+               printk(KERN_INFO "Disabling interrupt remapping.\n");
+       }
  
         iommu->gcmd &= ~DMA_GCMD_IRE;
         writel(iommu->gcmd, iommu->reg + DMAR_GCMD_REG);
@@ -518,6 +523,8 @@ static int __init dmar_x2apic_optout(void)
         return dmar->flags & DMAR_X2APIC_OPT_OUT;
  }
  
+static void disable_irq_remapping(void);
+
  static int __init intel_irq_remapping_supported(void)
  {
         struct dmar_drhd_unit *drhd;
@@ -533,6 +540,7 @@ static int __init intel_irq_remapping_supported(void)
                         "contact your BIOS vendor for an update\n");
                 add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
                 disable_irq_remap = 1;
+               disable_irq_remapping();
                 return 0;
         }


The result. Note this is two boots, I changed to printk messages to 
something more understandable and rebooted to make sure there were no 
brown paper bag bugs. So the do_IRQ bugs logs are the first boot, the 
rest is the second boot:

[    0.063923] dmar: ATSR flags: 0x0
[    0.064075] This system BIOS has enabled interrupt remapping
[    0.064075] on a chipset that contains an erratum making that
[    0.064075] feature unstable.  To maintain system stability
[    0.064075] interrupt remapping is being disabled.  Please
[    0.064075] contact your BIOS vendor for an update
[    0.064226] Not disabling interrupt remapping, was not enabled.
[    0.064287] Not disabling interrupt remapping, was not enabled.
[    0.064408] Switched APIC routing to physical flat.


anthony@Zia:~$ dmesg | grep do_IRQ     # this is from the first boot
[ 2713.768956] do_IRQ: 40 callbacks suppressed
[ 2713.768963] do_IRQ: 0.132 No irq handler for vector (irq -1)
[ 3914.191481] do_IRQ: 3.219 No irq handler for vector (irq -1)
[12336.482217] do_IRQ: 3.106 No irq handler for vector (irq -1)
[19669.277859] do_IRQ: 2.136 No irq handler for vector (irq -1)
[31304.932672] do_IRQ: 2.204 No irq handler for vector (irq -1)
[35867.281432] do_IRQ: 2.135 No irq handler for vector (irq -1)
[43867.266257] do_IRQ: 1.174 No irq handler for vector (irq -1)
[50097.592403] do_IRQ: 3.81 No irq handler for vector (irq -1)
[55498.847866] do_IRQ: 0.92 No irq handler for vector (irq -1)
[57560.923165] do_IRQ: 0.199 No irq handler for vector (irq -1)
[57650.204418] do_IRQ: 0.120 No irq handler for vector (irq -1)
[72835.450862] do_IRQ: 0.163 No irq handler for vector (irq -1)
[76884.819496] do_IRQ: 2.68 No irq handler for vector (irq -1)
[77687.282915] do_IRQ: 2.216 No irq handler for vector (irq -1)
[77885.355992] do_IRQ: 2.185 No irq handler for vector (irq -1)
[78615.309285] do_IRQ: 12 callbacks suppressed
[78615.309291] do_IRQ: 3.45 No irq handler for vector (irq -1)
[78735.392357] do_IRQ: 6 callbacks suppressed
[78735.392362] do_IRQ: 2.173 No irq handler for vector (irq -1)
[79785.646442] do_IRQ: 6 callbacks suppressed
[79785.646449] do_IRQ: 1.53 No irq handler for vector (irq -1)
[79965.718447] do_IRQ: 8 callbacks suppressed
[79965.718453] do_IRQ: 0.150 No irq handler for vector (irq -1)

PS: Sent Asus a support request, to see if they have anything to say 
about what the BIOS is doing with that erratum. Will let you know if 
they respond with anything useful, I mostly expect "we don't support 
Linux". 
https://vip.asus.com/VIP2/Services/MailDetail/WTM20140124024244911 ... 
no idea if that link works for anyone but me.

  parent reply	other threads:[~2014-01-23 19:24 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-14 17:41 PROBLEM: do_IRQ: [number] No irq handler for vector (irq -1) Anthony DeRobertis
     [not found] ` <52D576E3.8050006-VnMYzjHJ8tfR7s880joybQ@public.gmane.org>
2014-01-16  4:03   ` Alex Williamson
     [not found]     ` <1389844985.8705.45.camel-xdHQ/5r00wBBDLzU/O5InQ@public.gmane.org>
2014-01-16 12:16       ` Neil Horman
     [not found]         ` <20140116121617.GA9984-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-01-16 17:08           ` Anthony DeRobertis
     [not found]             ` <52D8120D.7090606-VnMYzjHJ8tfR7s880joybQ@public.gmane.org>
2014-01-16 18:21               ` Neil Horman
     [not found]                 ` <20140116182134.GC9984-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-01-16 20:07                   ` Anthony DeRobertis
     [not found]                     ` <52D83BF9.7040502-VnMYzjHJ8tfR7s880joybQ@public.gmane.org>
2014-01-17 14:08                       ` Neil Horman
     [not found]                         ` <20140117140831.GA19452-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-01-17 18:52                           ` Anthony DeRobertis
     [not found]                             ` <52D97BFB.1020106-VnMYzjHJ8tfR7s880joybQ@public.gmane.org>
2014-01-17 20:27                               ` Neil Horman
     [not found]                                 ` <20140117202712.GC19452-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-01-17 22:33                                   ` Anthony DeRobertis
     [not found]                                     ` <52D9AFBB.5080203-VnMYzjHJ8tfR7s880joybQ@public.gmane.org>
2014-01-20 12:26                                       ` Neil Horman
     [not found]                                         ` <20140120122630.GB22690-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-01-22 16:29                                           ` Anthony DeRobertis
     [not found]                                             ` <52DFF1FE.2080805-VnMYzjHJ8tfR7s880joybQ@public.gmane.org>
2014-01-22 18:17                                               ` Neil Horman
     [not found]                                                 ` <20140122181707.GA14646-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-01-22 19:41                                                   ` Anthony DeRobertis
     [not found]                                                     ` <52E01ED2.4080604-VnMYzjHJ8tfR7s880joybQ@public.gmane.org>
2014-01-23 12:37                                                       ` Neil Horman
     [not found]                                                         ` <20140123123743.GA26800-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-01-23 19:24                                                           ` Anthony DeRobertis [this message]
     [not found]                                                             ` <52E16C56.9000709-VnMYzjHJ8tfR7s880joybQ@public.gmane.org>
2014-01-23 21:51                                                               ` Neil Horman
2014-01-16 17:17           ` Anthony DeRobertis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52E16C56.9000709@metrics.net \
    --to=aderobertis-vnmyzjhj8tfr7s880joybq@public.gmane.org \
    --cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox