<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:383722318;
        mso-list-type:hybrid;
        mso-list-template-ids:-1121130208 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-text:"%1\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1
        {mso-list-id:1082141118;
        mso-list-type:hybrid;
        mso-list-template-ids:-1683333100 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
        {mso-level-text:"%1\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">I am trying to load a driver for an Exar serial chip, but that chip is gobbled up by the 8250 driver on boot. So, I use the “unbind” command in /sys/bus/pci/drivers/serial to remove the device from the clutches of 8250. Based on cobbled
together google searches, I use the following to unbind it (assuming the address in /sys/bus/pci/drivers/serial is 0000:04:00.0.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">sudo echo -n “0000:04:00.0” | tee ./unbind<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The address disappears from that dir when I do this command, so I’m assuming it works.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I then go and install the Exar-provided driver. Within about 3 seconds, I then get a system notification that the IRQ used by the Exar driver has been disabled. I can also go look at /proc/interrupts and see a huge amount of interrupts
happening on that IRQ.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">There’s a crash message in the log:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[ 167.938861] irq 17: nobody cared (try booting with the "irqpoll" option)<o:p></o:p></p>
<p class="MsoNormal">[ 167.938868] CPU: 0 PID: 801 Comm: Xorg Tainted: G O 3.16.6-2-desktop #1<o:p></o:p></p>
<p class="MsoNormal">[ 167.938871] Hardware name: RTD Embedded Technologies, Inc CMA34CR/CMA34CR, BIOS v3.72.51.0009-1.1.85582 02/09/2015 09:39:58<o:p></o:p></p>
<p class="MsoNormal">[ 167.938873] ffff880148672cc4 ffffffff8161ab03 ffff880148672c00 ffffffff810b8acd<o:p></o:p></p>
<p class="MsoNormal">[ 167.938877] ffff880148672c00 0000000000000011 0000000000000000 ffffffff810b9011<o:p></o:p></p>
<p class="MsoNormal">[ 167.938880] 0000000000000000 0000000000000000 0000000000000011 0000000000000000<o:p></o:p></p>
<p class="MsoNormal">[ 167.938883] Call Trace:<o:p></o:p></p>
<p class="MsoNormal">[ 167.938899] [<ffffffff8100519e>] dump_trace+0x8e/0x350<o:p></o:p></p>
<p class="MsoNormal">[ 167.938905] [<ffffffff81005506>] show_stack_log_lvl+0xa6/0x190<o:p></o:p></p>
<p class="MsoNormal">[ 167.938909] [<ffffffff81006c01>] show_stack+0x21/0x50<o:p></o:p></p>
<p class="MsoNormal">[ 167.938914] [<ffffffff8161ab03>] dump_stack+0x49/0x6a<o:p></o:p></p>
<p class="MsoNormal">[ 167.938922] [<ffffffff810b8acd>] __report_bad_irq+0x2d/0xc0<o:p></o:p></p>
<p class="MsoNormal">[ 167.938928] [<ffffffff810b9011>] note_interrupt+0x241/0x290<o:p></o:p></p>
<p class="MsoNormal">[ 167.938935] [<ffffffff810b67f1>] handle_irq_event_percpu+0xa1/0x1d0<o:p></o:p></p>
<p class="MsoNormal">[ 167.938940] [<ffffffff810b695e>] handle_irq_event+0x3e/0x60<o:p></o:p></p>
<p class="MsoNormal">[ 167.938945] [<ffffffff810b9b58>] handle_fasteoi_irq+0x88/0x160<o:p></o:p></p>
<p class="MsoNormal">[ 167.938949] [<ffffffff810050fd>] handle_irq+0x1d/0x30<o:p></o:p></p>
<p class="MsoNormal">[ 167.938955] [<ffffffff81624549>] do_IRQ+0x49/0xe0<o:p></o:p></p>
<p class="MsoNormal">[ 167.938959] [<ffffffff816224ad>] common_interrupt+0x6d/0x6d<o:p></o:p></p>
<p class="MsoNormal">[ 167.938967] [<ffffffff81620dce>] _raw_spin_unlock_irqrestore+0xe/0x30<o:p></o:p></p>
<p class="MsoNormal">[ 167.938974] [<ffffffff815c3f05>] unix_poll+0x25/0xb0<o:p></o:p></p>
<p class="MsoNormal">[ 167.938980] [<ffffffff81513fa9>] sock_poll+0x49/0x110<o:p></o:p></p>
<p class="MsoNormal">[ 167.938986] [<ffffffff811caf40>] do_select+0x390/0x7a0<o:p></o:p></p>
<p class="MsoNormal">[ 167.938991] [<ffffffff811cb4e4>] core_sys_select+0x194/0x2b0<o:p></o:p></p>
<p class="MsoNormal">[ 167.938995] [<ffffffff811cb6aa>] SyS_select+0xaa/0xf0<o:p></o:p></p>
<p class="MsoNormal">[ 167.938999] [<ffffffff8162182d>] system_call_fastpath+0x1a/0x1f<o:p></o:p></p>
<p class="MsoNormal">[ 167.939015] [<00007f7563abda43>] 0x7f7563abda42<o:p></o:p></p>
<p class="MsoNormal">[ 167.939016] handlers:<o:p></o:p></p>
<p class="MsoNormal">[ 167.939020] [<ffffffffa0549110>] serialxr_interrupt [xr17v35x]<o:p></o:p></p>
<p class="MsoNormal">[ 167.939023] Disabling IRQ #17<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">So, as near as I can tell, when the Exar driver is inserted, an interrupt flood occurs, and the Exar driver (the only interrupt handler on that IRQ) does not respond to any of them. I put in some debug code and verified that the Exar interrupt
handler is called… but the handler just returns with an IRQ_NONE value.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’ve tried:<o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l1 level1 lfo2"><![if !supportLists]><span style="mso-list:Ignore">1)<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Multiple CPUs from different families (Core i7, Core 2 Duo, AMD G-Series) and it occurs with all of them.<o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l1 level1 lfo2"><![if !supportLists]><span style="mso-list:Ignore">2)<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Kernels 3.16 and 4.2 and it occurs with both of them.<o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l1 level1 lfo2"><![if !supportLists]><span style="mso-list:Ignore">3)<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Disabling ModemManager and it still happens.<o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l1 level1 lfo2"><![if !supportLists]><span style="mso-list:Ignore">4)<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Contacting Exar about this. They could not reproduce the problem.<o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l1 level1 lfo2"><![if !supportLists]><span style="mso-list:Ignore">5)<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>openSUSE 13.2 and Fedora 20. It happened with openSUSE, but NOT with Fedora 20.<o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l1 level1 lfo2"><![if !supportLists]><span style="mso-list:Ignore">6)<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>The reference Exar implementation vs. our implementation, and it occurs with both of them.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Do you have any suggestions on how I can discover what is sending all of those interrupts? Are there kernel tools specifically for that?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thank you.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Rob Groner<span style="font-size:10.0pt;font-family:"Times New Roman",serif">
<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>