<br>Am working on a problem where the system hanging after some unequal intervals, with the below o/p printing on the console,<br>Though this might be mostly tighten to the click router module am using, but I see the do_IRQ in the stack trace multiple times.<br>



This brought some suspicious questions to me why so many times the module is interrupted.<br>Ealier I was running with centos5.3 kernel, now running with centos5.5 kernel (2.6.18-194).<br>In the new kernel config, I found CONFIG_PREPEMPT_NONE=y and CONFIG_PREEMPT_VOLUNTARY is not set, whereas these options are opposite in the old kernel.<br>


<br>This made to look for what preemption level the kernel is running with?<br>=======================<br>low stack detected by irq handler<br>[&lt;c0405e9b&gt;] do_IRQ+0x86/0xc3<br>[&lt;c04046e6&gt;] common_interrupt+0x1a/0x20<br>


[&lt;c05b83c6&gt;] __ip_route_output_key+0x774/0x79e<br>[&lt;fb817e32&gt;] _ZN8FromHost5fl_txEP7sk_buffP10net_device+0xc2/0x100 [click]<br>[&lt;c05a1b23&gt;] dev_hard_start_xmit+0x1b4/0x25a<br>[&lt;c05af12f&gt;] __qdisc_run+0xd6/0x153<br>


[&lt;c05a3196&gt;] dev_queue_xmit+0x1f8/0x216<br>[&lt;c05a7431&gt;] neigh_resolve_output+0x170/0x19a<br>[&lt;c05b8403&gt;] ip_route_output_flow+0x13/0x1d4<br>[&lt;c05bd2db&gt;] ip_push_pending_frames+0x31a/0x3a4<br>[&lt;c05b85cd&gt;] ip_route_output_key+0x9/0xb<br>


[&lt;c05bdd5d&gt;] ip_send_reply+0xf8/0x209<br>[&lt;c0418baf&gt;] __wake_up+0x11/0x1a<br>[&lt;c059b077&gt;] sock_def_readable+0x26/0x4b<br>[&lt;c05c9cf4&gt;] tcp_data_queue+0x4c7/0x9a4<br>[&lt;c05cfc56&gt;] tcp_v4_send_reset+0x104/0x11c<br>


[&lt;c05d0879&gt;] tcp_v4_do_rcv+0x240/0x269<br>[&lt;c05d28cb&gt;] tcp_v4_rcv+0x7f7/0x848<br>[&lt;c05bb173&gt;] ip_local_deliver+0x157/0x1d0<br>[&lt;c05baff2&gt;] ip_rcv+0x3cb/0x3f5<br>[&lt;c05a141d&gt;] __netif_receive_skb+0x3b3/0x3d5<br>


[&lt;fb81c21e&gt;] _ZN6ToHost4pushEiP6Packet+0xee/0x210 [click]<br>[&lt;fb83985d&gt;] _ZN12EnsureEther24pushEiP6Packet+0x1d/0x20 [click]<br>[&lt;fb82b895&gt;] _ZN11ARPQuerier44pushEiP6Packet+0x4c5/0x2370 [click]<br>[&lt;c05bb173&gt;] ip_local_deliver+0x157/0x1d0<br>


[&lt;c043f334&gt;] __do_IRQ+0x0/0x9f<br>[&lt;c0405ecc&gt;] do_IRQ+0xb7/0xc3<br>[&lt;c04046e6&gt;] common_interrupt+0x1a/0x20<br>[&lt;fb80942d&gt;] _ZN4IPRw7Mapping9make_pairEiRK8IPFlowIDS3_iiPS0_S4_+0xad/0xd0 [click]<br>

[&lt;fb872674&gt;] _ZN11PaintSwitch4pushEiP6Packet+0x44/0xe0 [click]<br>
[&lt;fb86679e&gt;] _ZN6Passer4pushEiP6Packet+0x12e/0x860 [click]<br>[&lt;fb80acfb&gt;] _ZN4IPRw7Pattern14create_mappingEiRK8IPFlowIDiiPNS_7MappingES5_RK7HashMapIS1_S5_E+0x1cb/0x1f0 [click]<br>[&lt;fb872674&gt;] _ZN11PaintSwitch4pushEiP6Packet+0x44/0xe0 [click]<br>


[&lt;fb86679e&gt;] _ZN6Passer4pushEiP6Packet+0x12e/0x860 [click]<br>[&lt;fb883ce3&gt;] _ZN10IPRewriter13apply_patternEPN4IPRw7PatternEiRK8IPFlowIDii+0x153/0x160 [click]<br>[&lt;fb883d9e&gt;] _ZN10IPRewriter4pushEiP6Packet+0xae/0x260 [click]<br>


[&lt;fb855535&gt;] _ZN11MacThrottle10l2PushProcEiP6Packet+0x55/0x3b0 [click]<br>[&lt;fb82b895&gt;] _ZN11ARPQuerier44pushEiP6Packet+0x4c5/0x2370 [click]<br>[&lt;c04046e6&gt;] common_interrupt+0x1a/0x20<br>[&lt;c05a007b&gt;] dev_seq_next+0xc/0x16<br>


[&lt;fb82b895&gt;] _ZN11ARPQuerier44pushEiP6Packet+0x4c5/0x2370 [click]<br>[&lt;c05bf06c&gt;] ip_queue_xmit+0x3cb/0x401<br>[&lt;c05a3196&gt;] dev_queue_xmit+0x1f8/0x216<br>[&lt;fb855b96&gt;] _ZN11MacThrottle4pushEiP6Packet+0x306/0x1890 [click]<br>


[&lt;c05bf06c&gt;] ip_queue_xmit+0x3cb/0x401<br>[&lt;c0417f22&gt;] enqueue_task+0x29/0x39<br>[&lt;c043f334&gt;] __do_IRQ+0x0/0x9f<br>[&lt;c0405ecc&gt;] do_IRQ+0xb7/0xc3<br>[&lt;c04046e6&gt;] common_interrupt+0x1a/0x20<br>


[&lt;fb7c0806&gt;] _ZN7Element4pushEiP6Packet+0x26/0x40 [click]<br>[&lt;fb872674&gt;] _ZN11PaintSwitch4pushEiP6Packet+0x44/0xe0 [click]<br>[&lt;fb7c0806&gt;] _ZN7Element4pushEiP6Packet+0x26/0x40 [click]<br>[&lt;fb872674&gt;] _ZN11PaintSwitch4pushEiP6Packet+0x44/0xe0 [click]<br>


[&lt;fb859075&gt;] _ZN17NtlmLoginDetector4pushEiP6Packet+0x65/0x15d0 [click]<br>[&lt;fb88a881&gt;] _ZN15RecycledSkbPool7recycleEP7sk_buff+0x31/0xf0 [click]<br>[&lt;fb866fdb&gt;] _ZN14PerfigoDiscard4pushEiP6Packet+0x4b/0x1c0 [click]<br>


[&lt;c0411f41&gt;] smp_apic_timer_interrupt+0x32/0x45<br>[&lt;c05bb173&gt;] ip_local_deliver+0x157/0x1d0<br>[&lt;fb872674&gt;] _ZN11PaintSwitch4pushEiP6Packet+0x44/0xe0 [click]<br>[&lt;fb843e86&gt;] _ZN11HashIPTable4pushEiP6Packet+0xf6/0x2d0 [click]<br>


[&lt;fb86679e&gt;] _ZN6Passer4pushEiP6Packet+0x12e/0x860 [click]<br>[&lt;fb81c21e&gt;] _ZN6ToHost4pushEiP6Packet+0xee/0x210 [click]<br>[&lt;fb7fd904&gt;] _ZN8IPFilter4pushEiP6Packet+0x64/0xf0 [click]<br>[&lt;fb84f517&gt;] _ZN12IPPortLookup4pushEiP6Packet+0x47/0x9e0 [click]<br>


[&lt;fb7bca6f&gt;] _ZN6Packet19expensive_uniqueifyEiib+0x18f/0x1c0 [click]<br>[&lt;fb8385fc&gt;] _ZN10DnsHandler17is_packet_allowedEPK6Packeti+0x8c/0x5e0 [click]<br>[&lt;fb8319d8&gt;] _ZN8BWShaper4pushEiP6Packet+0x58/0xe90 [click]<br>


[&lt;fb8319d8&gt;] _ZN8BWShaper4pushEiP6Packet+0x58/0xe90 [click]<br>[&lt;fb8333a0&gt;] _ZN10DnsHandler15is_host_matchedERK6VectorINS_9HostEntryEERK6StringRb+0x90/0x150 [click]<br>[&lt;fb833753&gt;] _ZN10DnsHandler13get_dns_queryEPKcS1_RS1_R17perfigo_dns_queryR6String+0x43/0x90 [click]<br>


[&lt;fb838bb8&gt;] _ZN10DnsHandler4pushEiP6Packet+0x68/0xb00 [click]<br>[&lt;fb835593&gt;] _ZN10DnsHandler17process_dns_replyEPK6Packet+0x493/0x860 [click]<br>[&lt;fb82b67b&gt;] _ZN11ARPQuerier44pushEiP6Packet+0x2ab/0x2370 [click]<br>


[&lt;fb838bb8&gt;] _ZN10DnsHandler4pushEiP6Packet+0x68/0xb00 [click]<br>[&lt;fb872674&gt;] _ZN11PaintSwitch4pushEiP6Packet+0x44/0xe0 [click]<br>[&lt;fb84d34f&gt;] _ZN13IPFilterGroup4pushEiP6Packet+0x19f/0xa80 [click]<br>

[&lt;fb81c21e&gt;] _ZN6ToHost4pushEiP6Packet+0xee/0x210 [click]<br>
[&lt;fb7bcb42&gt;] _ZN6Packet4makeEjPKhjj+0x32/0x100 [click]<br>[&lt;fb83985d&gt;] _ZN12EnsureEther24pushEiP6Packet+0x1d/0x20 [click]<br>[&lt;fb82b895&gt;] _ZN11ARPQuerier44pushEiP6Packet+0x4c5/0x2370 [click]<br>[&lt;c043f334&gt;] __do_IRQ+0x0/0x9f<br>


[&lt;c0405ecc&gt;] do_IRQ+0xb7/0xc3<br>[&lt;fb83e492&gt;] _ZN13HashIPLookup34pushEiP6Packet+0x112/0x1c0 [click]<br>[&lt;fb8516cf&gt;] _ZN15LinearIPFilter24pushEiP6Packet+0x4f/0x3f0 [click]<br>[&lt;fb872674&gt;] _ZN11PaintSwitch4pushEiP6Packet+0x44/0xe0 [click]<br>


[&lt;fb80c1d1&gt;] _ZN14LinearIPLookup4pushEiP6Packet+0x71/0x100 [click]<br>[&lt;fb829a94&gt;] _ZN11ARPQuerier49handle_ipEP6Packet+0x734/0xe30 [click]<br>[&lt;fb848289&gt;] _ZN14HashMACLookup54pushEiP6Packet+0x249/0x890 [click]<br>


[&lt;fb86679e&gt;] _ZN6Passer4pushEiP6Packet+0x12e/0x860 [click]<br>[&lt;c0417f22&gt;] enqueue_task+0x29/0x39<br>[&lt;c05c0000&gt;] ip_setsockopt+0x184/0xa03<br>[&lt;fb83f5b7&gt;] _ZN13HashIPLookup54pushEiP6Packet+0xc7/0x110 [click]<br>


[&lt;fb8516cf&gt;] _ZN15LinearIPFilter24pushEiP6Packet+0x4f/0x3f0 [click]<br>[&lt;fb7fd904&gt;] _ZN8IPFilter4pushEiP6Packet+0x64/0xf0 [click]<br>[&lt;fb869516&gt;] _ZN10Classifier4pushEiP6Packet+0x76/0xe0 [click]<br>[&lt;fb84262e&gt;] _ZN12HashIPTable24pushEiP6Packet+0x18e/0x580 [click]<br>


[&lt;fb84262e&gt;] _ZN12HashIPTable24pushEiP6Packet+0x18e/0x580 [click]<br>[&lt;fb82b67b&gt;] _ZN11ARPQuerier44pushEiP6Packet+0x2ab/0x2370 [click]<br>[&lt;c05d28cb&gt;] tcp_v4_rcv+0x7f7/0x848<br>[&lt;fb82ab12&gt;] _ZN11ARPQuerier415handle_responseEP6Packet+0x32/0x8f0 [click]<br>


[&lt;fb84857a&gt;] _ZN14HashMACLookup54pushEiP6Packet+0x53a/0x890 [click]<br>[&lt;fb7fd904&gt;] _ZN8IPFilter4pushEiP6Packet+0x64/0xf0 [click]<br>[&lt;fb82b895&gt;] _ZN11ARPQuerier44pushEiP6Packet+0x4c5/0x2370 [click]<br>

[&lt;c05a141d&gt;] __netif_receive_skb+0x3b3/0x3d5<br>
[&lt;fb883d9e&gt;] _ZN10IPRewriter4pushEiP6Packet+0xae/0x260 [click]<br>[&lt;fb84262e&gt;] _ZN12HashIPTable24pushEiP6Packet+0x18e/0x580 [click]<br>[&lt;fb86679e&gt;] _ZN6Passer4pushEiP6Packet+0x12e/0x860 [click]<br>[&lt;fb84262e&gt;] _ZN12HashIPTable24pushEiP6Packet+0x18e/0x580 [click]<br>


[&lt;fb872674&gt;] _ZN11PaintSwitch4pushEiP6Packet+0x44/0xe0 [click]<br>[&lt;c05a141d&gt;] __netif_receive_skb+0x3b3/0x3d5<br>[&lt;c043f334&gt;] __do_IRQ+0x0/0x9f<br>[&lt;c0405ecc&gt;] do_IRQ+0xb7/0xc3<br>[&lt;c043f334&gt;] __do_IRQ+0x0/0x9f<br>


[&lt;c0405ecc&gt;] do_IRQ+0xb7/0xc3<br>[&lt;fb869516&gt;] _ZN10Classifier4pushEiP6Packet+0x76/0xe0 [click]<br>[&lt;fb7c0806&gt;] _ZN7Element4pushEiP6Packet+0x26/0x40 [click]<br>[&lt;fb8162a5&gt;] _ZN10FromDevice8run_taskEP4Task+0xa5/0x120 [click]<br>


[&lt;fb7d7127&gt;] _ZN12RouterThread6driverEv+0x177/0x290 [click]<br>[&lt;fb887822&gt;] _Z11click_schedPv+0x82/0x130 [click]<br>[&lt;fb8877a0&gt;] _Z11click_schedPv+0x0/0x130 [click]<br>[&lt;c0404987&gt;] kernel_thread_helper+0x7/0x10<br>


<br>--Sri<br> <br><br><div class="gmail_quote">On Mon, Oct 24, 2011 at 10:08 AM, Greg KH <span dir="ltr">&lt;<a href="mailto:greg@kroah.com" target="_blank">greg@kroah.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>On Sun, Oct 23, 2011 at 11:20:03PM -0400, Greg Freemyer wrote:<br>
&gt; On Sun, Oct 23, 2011 at 1:34 PM, sri &lt;<a href="mailto:bskmohan@gmail.com" target="_blank">bskmohan@gmail.com</a>&gt; wrote:<br>
&gt; &gt; No, uname did not show anything.<br>
&gt; &gt; Is there any way to get the kernel preemption mode, programatically?<br>
&gt; &gt;<br>
&gt; &gt; Thanks,<br>
&gt; &gt; --Sri<br>
&gt; &gt;<br>
&gt; &gt; On Fri, Oct 21, 2011 at 6:41 PM, Daniel Baluta &lt;<a href="mailto:daniel.baluta@gmail.com" target="_blank">daniel.baluta@gmail.com</a>&gt;<br>
&gt; &gt; wrote:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; On Fri, Oct 21, 2011 at 2:28 PM, sri &lt;<a href="mailto:bskmohan@gmail.com" target="_blank">bskmohan@gmail.com</a>&gt; wrote:<br>
&gt; &gt;&gt; &gt; Hi,<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; Am using kernel 2.6.18-195(centos 5.5).<br>
&gt; &gt;&gt; &gt; My kernel configs have CONFIG_PREEMPT_NONE=7 and<br>
&gt; &gt;&gt; &gt; &quot;CONFIG_PREEMPT_VOLUNTERY<br>
&gt; &gt;&gt; &gt; is not set&quot;.<br>
&gt; &gt;&gt; &gt; How to check that preemption is really in place?<br>
&gt; &gt;&gt; &gt; Is there any way to check my kernel is configured with what preemption<br>
&gt; &gt;&gt; &gt; levels?<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Hmm, uname -a?<br>
&gt; I&#39;m sure its in /sys somewhere.<br>
<br>
</div>I do not think so.<br>
<div><br>
&gt; Remember /sys is part of the official ABI.<br>
<br>
</div>As documented in Documentation/ABI/, so perhaps you can read there.<br>
<div><br>
&gt; Also, you see what your config look like for sure by looking at<br>
&gt; /proc/config.gz  (that file is virtual, but shows the contents of how<br>
&gt; your config file was at compile time for the running kernel.<br>
<br>
</div>Not all distros enable this :(<br>
<br>
I think the question needs to really be stated, why, from userspace,<br>
does it matter if preempt is enabled or not?  This should never be<br>
something that userspace cares about at all.<br>
<br>
greg k-h<br>
</blockquote></div><br><br clear="all"><br>-- <br>--<br> Krishna Mohan B<br>