Re: Microchip mcp25xxfd can controller driver- BUG: using __this_cpu_add() in preemptible

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hey Marc,
I added the options below, but it doesn't look like the stack is dumping.

check_preemption_disabled: 143 callbacks suppressed
BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
caller is __this_cpu_preempt_check+0x1c/0x20
CPU: 0 PID: 805 Comm: irq/194-mcp25xx Tainted: G           O
4.9.65-dey+gf832589 #44
Hardware name: Freescale i.MX6 UltraLite (Device Tree)
[<80111790>] (unwind_backtrace) from [<8010d6cc>] (show_stack+0x20/0x24)
[<8010d6cc>] (show_stack) from [<804c1c94>] (dump_stack+0xa0/0xcc)
[<804c1c94>] (dump_stack) from [<804e1ad8>]
(check_preemption_disabled+0x130/0x134)
[<804e1ad8>] (check_preemption_disabled) from [<804e1b1c>]
(__this_cpu_preempt_check+0x1c/0x20)
[<804e1b1c>] (__this_cpu_preempt_check) from [<80804284>]
(__netif_receive_skb_core+0x118/0xa60)
[<80804284>] (__netif_receive_skb_core) from [<80806ffc>]
(__netif_receive_skb+0x38/0x94)
[<80806ffc>] (__netif_receive_skb) from [<808070e8>]
(netif_receive_skb_internal+0x90/0x21c)
[<808070e8>] (netif_receive_skb_internal) from [<808072e4>]
(netif_receive_skb+0x70/0x1f4)
[<808072e4>] (netif_receive_skb) from [<8065006c>]
(mcp25xxfd_can_int+0x8f8/0x9cc)
[<8065006c>] (mcp25xxfd_can_int) from [<8019d2e4>] (irq_thread_fn+0x2c/0x64)
[<8019d2e4>] (irq_thread_fn) from [<8019d644>] (irq_thread+0x180/0x24c)
[<8019d644>] (irq_thread) from [<801529f4>] (kthread+0x11c/0x134)
[<801529f4>] (kthread) from [<80108650>] (ret_from_fork+0x14/0x24)
  can1  456   [8]  0F 00 00 00 00 00 00 00
  can1  456   [8]  0F 00 00 00 00 00 00 00
  can1  121   [8]  0F 00 00 00 00 00 00 00
  can1  354   [8]  0F 00 00 00 00 00 00 00
  can1  099   [8]  0F 00 00 00 00 00 00 00
  can1  331   [8]  0F 00 00 00 00 00 00 00
  can1  123   [8]  00 0E 00 00 00 00 00 00
  can1  003   [8]  00 00 00 04 00 00 00 00
  can1  099   [8]  00 00 00 00 00 0A 00 00
  can1  011   [8]  00 00 0D 00 00 00 00 00
BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
caller is __this_cpu_preempt_check+0x1c/0x20
CPU: 0 PID: 805 Comm: irq/194-mcp25xx Tainted: G           O
4.9.65-dey+gf832589 #44
Hardware name: Freescale i.MX6 UltraLite (Device Tree)
[<80111790>] (unwind_backtrace) from [<8010d6cc>] (show_stack+0x20/0x24)
[<8010d6cc>] (show_stack) from [<804c1c94>] (dump_stack+0xa0/0xcc)
[<804c1c94>] (dump_stack) from [<804e1ad8>]
(check_preemption_disabled+0x130/0x134)
[<804e1ad8>] (check_preemption_disabled) from [<804e1b1c>]
(__this_cpu_preempt_check+0x1c/0x20)
[<804e1b1c>] (__this_cpu_preempt_check) from [<80804284>]
(__netif_receive_skb_core+0x118/0xa60)
[<80804284>] (__netif_receive_skb_core) from [<80806ffc>]
(__netif_receive_skb+0x38/0x94)
[<80806ffc>] (__netif_receive_skb) from [<808070e8>]
(netif_receive_skb_internal+0x90/0x21c)
[<808070e8>] (netif_receive_skb_internal) from [<808072e4>]
(netif_receive_skb+0x70/0x1f4)
[<808072e4>] (netif_receive_skb) from [<8065006c>]
(mcp25xxfd_can_int+0x8f8/0x9cc)
[<8065006c>] (mcp25xxfd_can_int) from [<8019d2e4>] (irq_thread_fn+0x2c/0x64)
[<8019d2e4>] (irq_thread_fn) from [<8019d644>] (irq_thread+0x180/0x24c)
[<8019d644>] (irq_thread) from [<801529f4>] (kthread+0x11c/0x134)
[<801529f4>] (kthread) from [<80108650>] (ret_from_fork+0x14/0x24)
BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
caller is __this_cpu_preempt_check+0x1c/0x20
CPU: 0 PID: 805 Comm: irq/194-mcp25xx Tainted: G           O
4.9.65-dey+gf832589 #44
Hardware name: Freescale i.MX6 UltraLite (Device Tree)
[<80111790>] (unwind_backtrace) from [<8010d6cc>] (show_stack+0x20/0x24)
[<8010d6cc>] (show_stack) from [<804c1c94>] (dump_stack+0xa0/0xcc)
[<804c1c94>] (dump_stack) from [<804e1ad8>]
(check_preemption_disabled+0x130/0x134)
[<804e1ad8>] (check_preemption_disabled) from [<804e1b1c>]
(__this_cpu_preempt_check+0x1c/0x20)
[<804e1b1c>] (__this_cpu_preempt_check) from [<80804284>]
(__netif_receive_skb_core+0x118/0xa60)
[<80804284>] (__netif_receive_skb_core) from [<80806ffc>]
(__netif_receive_skb+0x38/0x94)
[<80806ffc>] (__netif_receive_skb) from [<808070e8>]
(netif_receive_skb_internal+0x90/0x21c)
[<808070e8>] (netif_receive_skb_internal) from [<808072e4>]
(netif_receive_skb+0x70/0x1f4)
[<808072e4>] (netif_receive_skb) from [<8065006c>]
(mcp25xxfd_can_int+0x8f8/0x9cc)
[<8065006c>] (mcp25xxfd_can_int) from [<8019d2e4>] (irq_thread_fn+0x2c/0x64)
[<8019d2e4>] (irq_thread_fn) from [<8019d644>] (irq_thread+0x180/0x24c)
[<8019d644>] (irq_thread) from [<801529f4>] (kthread+0x11c/0x134)
[<801529f4>] (kthread) from [<80108650>] (ret_from_fork+0x14/0x24)
  can1  331   [8]  0F 00 00 00 00 00 00 00
BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805

CONFIG_VIRTUALIZATION=y
CONFIG_DEBUG_KERNEL=y
CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_KPROBES=y
CONIFG_DEBUG_BUGVERBOSE=y
CONFIG_UNWIND_INFO=y
CONIFG_STACK_UNWIND=y
CONFIG_OF_DYNAMIC=y
CONFIG_FRAME_POINTER=y
#
# Debug Lockups and Hangs
#
# CONFIG_LOCKUP_DETECTOR is not set
# CONFIG_DETECT_HUNG_TASK is not set
# CONFIG_WQ_WATCHDOG is not set
# CONFIG_PANIC_ON_OOPS is not set
CONFIG_PANIC_ON_OOPS_VALUE=0
CONFIG_PANIC_TIMEOUT=0
# CONFIG_SCHED_DEBUG is not set
# CONFIG_SCHED_INFO is not set
# CONFIG_SCHEDSTATS is not set
# CONFIG_SCHED_STACK_END_CHECK is not set
# CONFIG_DEBUG_TIMEKEEPING is not set
# CONFIG_TIMER_STATS is not set
CONFIG_DEBUG_PREEMPT=y

#

#
# Lock Debugging (spinlocks, mutexes, etc...)
#
CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_WW_MUTEX_SLOWPATH=y
CONFIG_DEBUG_LOCK_ALLOC=y
CONFIG_PROVE_LOCKING=y
CONFIG_LOCKDEP=y
CONFIG_LOCK_STAT=y
CONFIG_DEBUG_LOCKDEP=y
CONFIG_DEBUG_ATOMIC_SLEEP=y
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_LOCK_TORTURE_TEST is not set
CONFIG_TRACE_IRQFLAGS=y
CONFIG_STACKTRACE=y
#
# Memory Debugging
#
# CONFIG_PAGE_EXTENSION is not set
# CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_PAGE_POISONING is not set
# CONFIG_DEBUG_PAGE_REF is not set
CONFIG_DEBUG_OBJECTS=y
CONFIG_DEBUG_OBJECTS_SELFTEST=y
CONFIG_DEBUG_OBJECTS_FREE=y
CONFIG_DEBUG_OBJECTS_TIMERS=y
CONFIG_DEBUG_OBJECTS_WORK=y
CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y
CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
# CONFIG_SLUB_STATS is not set
CONFIG_HAVE_DEBUG_KMEMLEAK=y
CONFIG_DEBUG_KMEMLEAK=y
CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=400
# CONFIG_DEBUG_KMEMLEAK_TEST is not set
# CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_MEMORY_INIT is not set
# CONFIG_DEBUG_PER_CPU_MAPS is not set
# CONFIG_DEBUG_HIGHMEM is not set
# CONFIG_DEBUG_SHIRQ is not set


On Thu, Jul 25, 2019 at 6:50 AM Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx> wrote:
>
> On 7/25/19 12:27 PM, Tom Prohaszka wrote:
> > Here is the backtrace:
> >
> >  can1  456   [8]  0F 00 00 00 00 00 00 00
> >   can1  354   [8]  0F 00 00 00 00 00 00 00
> >   can1  331   [8]  0F 00 00 00 00 00 00 00
> >   can1  234   [8]  01 00 00 00 00 00 00 00
> >   can1  044   [8]  00 00 00 00 00 00 07 00
> >   can1  354   [8]^C  can1  456   [8]  0F 00 00 00 00 00 00 00
>
> Do you reproduce the problem by pressing Ctrl+c?
>
> > root@ccimx6ulcvdp:~/tmp# BUG: using __this_cpu_add() in preemptible
> > [00000000] code: irq/194-mcp25xx/805
> > BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
> > BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
> > BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
> > BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
> > BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
> > BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
> > BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
> > BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
> > BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
> > BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
> > BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
> > BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
> > BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
> > BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
> > BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
> > BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
> > BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
> > BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
> > BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
>
> Hmm according to the code, it should print a backtrace here...
>
> See https://elixir.bootlin.com/linux/v4.9.65/source/lib/smp_processor_id.c#L46
>
> >         preempt_disable_notrace();
> >
> >         if (!printk_ratelimit())
> >                 goto out_enable;
> >
> >         printk(KERN_ERR "BUG: using %s%s() in preemptible [%08x] code: %s/%d\n",
> >                 what1, what2, preempt_count() - 1, current->comm, current->pid);
> >
> >         print_symbol("caller is %s\n", (long)__builtin_return_address(0));
> >         dump_stack();
>
> Can you enable some of the in-kernel debugging stuff:
>
> Kernel hacking
>         -> Memory Debugging
>                 -> Debug object operations              (everyting)
>                 -> Kernel memory leak detector          (enable)
>         -> Debug preemptible kernel                     (enable)
>         -> Lock Debugging (spinlocks, mutexes, etc...)  (everything, but not the self tests)
>         -> Stack backtrace support                      (enable)
>
> .. and send output when it breaks.
>
> Marc
>
> --
> Pengutronix e.K.                  | Marc Kleine-Budde           |
> Industrial Linux Solutions        | Phone: +49-231-2826-924     |
> Vertretung West/Dortmund          | Fax:   +49-5121-206917-5555 |
> Amtsgericht Hildesheim, HRA 2686  | http://www.pengutronix.de   |
>



[Index of Archives]     [Automotive Discussions]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [CAN Bus]

  Powered by Linux