linux-rt-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* v5.2-rt1: kernel: BUG: assuming atomic context at net/core/ptp_classifier.c:106 current
@ 2019-07-18 20:46 Luis Claudio R. Goncalves
  2019-08-13 16:17 ` Sebastian Andrzej Siewior
  0 siblings, 1 reply; 2+ messages in thread
From: Luis Claudio R. Goncalves @ 2019-07-18 20:46 UTC (permalink / raw)
  To: Clark Williams; +Cc: Thomas Gleixner, Sebastian Andrzej Siewior, RT

Hello,

Sounds like ptp_classify_raw() should be reached with IRQs disabled to
safely call BPF_PROG_RUN(). I am just unsure where, down the road, the
proper context should have been set.

08:46:58 darkmatter kernel: BUG: assuming atomic context at net/core/ptp_classifier.c:106
Jul 17 08:46:58 darkmatter kernel: in_atomic(): 0, irqs_disabled(): 0, pid: 1129, name: irq/35-enp4s0
Jul 17 08:46:58 darkmatter kernel: CPU: 1 PID: 1129 Comm: irq/35-enp4s0 Not tainted 5.2.0-rt1 #1
Jul 17 08:46:58 darkmatter kernel: Hardware name: Hewlett-Packard p7-1512/2ADA, BIOS 8.15 02/05/2013
Jul 17 08:46:58 darkmatter kernel: Call Trace:
Jul 17 08:46:58 darkmatter kernel: dump_stack+0x67/0x90
Jul 17 08:46:58 darkmatter kernel: __cant_sleep.cold+0x68/0x74
Jul 17 08:46:58 darkmatter kernel: ptp_classify_raw+0x1f/0xa0
Jul 17 08:46:58 darkmatter kernel: skb_defer_rx_timestamp+0x5a/0xb0
Jul 17 08:46:58 darkmatter kernel: netif_receive_skb_internal+0x34/0xe0
Jul 17 08:46:58 darkmatter kernel: napi_gro_receive+0x66/0x1c0
Jul 17 08:46:58 darkmatter kernel: rtl8169_poll+0x216/0x610 [r8169]
Jul 17 08:46:58 darkmatter kernel: net_rx_action+0x208/0x490
Jul 17 08:46:58 darkmatter kernel: ? __switch_to_asm+0x40/0x70
Jul 17 08:46:58 darkmatter kernel: ? __switch_to_asm+0x40/0x70
Jul 17 08:46:58 darkmatter kernel: ? __switch_to_asm+0x34/0x70
Jul 17 08:46:58 darkmatter kernel: ? __switch_to_asm+0x40/0x70
Jul 17 08:46:58 darkmatter kernel: ? __switch_to_asm+0x34/0x70
Jul 17 08:46:58 darkmatter kernel: ? __switch_to_asm+0x40/0x70
Jul 17 08:46:58 darkmatter kernel: ? sched_clock+0x5/0x10
Jul 17 08:46:58 darkmatter kernel: ? sched_clock_cpu+0x15/0x100
Jul 17 08:46:58 darkmatter kernel: __do_softirq+0x140/0x3c9
Jul 17 08:46:58 darkmatter kernel: ? irq_finalize_oneshot.part.0+0xd0/0xd0
Jul 17 08:46:58 darkmatter kernel: ? irq_thread+0x95/0x1d0
Jul 17 08:46:58 darkmatter kernel: __local_bh_enable_ip+0x13d/0x160
Jul 17 08:46:58 darkmatter kernel: irq_forced_thread_fn+0x70/0x80
Jul 17 08:46:58 darkmatter kernel: irq_thread+0xf6/0x1d0
Jul 17 08:46:58 darkmatter kernel: ? preempt_count_add+0x88/0xc0
Jul 17 08:46:58 darkmatter kernel: ? wake_threads_waitq+0x30/0x30
Jul 17 08:46:58 darkmatter kernel: kthread+0x103/0x140
Jul 17 08:46:58 darkmatter kernel: ? irq_thread_check_affinity+0x80/0x80
Jul 17 08:46:58 darkmatter kernel: ? kthread_park+0x90/0x90
Jul 17 08:46:58 darkmatter kernel: ret_from_fork+0x3a/0x50
Jul 17 08:46:58 darkmatter kernel: bpfilter: Loaded bpfilter_umh pid 1160
Jul 17 08:46:58 darkmatter kernel: bpfilter: read fail -13

Luis


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: v5.2-rt1: kernel: BUG: assuming atomic context at net/core/ptp_classifier.c:106 current
  2019-07-18 20:46 v5.2-rt1: kernel: BUG: assuming atomic context at net/core/ptp_classifier.c:106 current Luis Claudio R. Goncalves
@ 2019-08-13 16:17 ` Sebastian Andrzej Siewior
  0 siblings, 0 replies; 2+ messages in thread
From: Sebastian Andrzej Siewior @ 2019-08-13 16:17 UTC (permalink / raw)
  To: Luis Claudio R. Goncalves; +Cc: Clark Williams, Thomas Gleixner, RT

On 2019-07-18 17:46:55 [-0300], Luis Claudio R. Goncalves wrote:
> Hello,
> 
> Sounds like ptp_classify_raw() should be reached with IRQs disabled to
> safely call BPF_PROG_RUN(). I am just unsure where, down the road, the
> proper context should have been set.
> 
> 08:46:58 darkmatter kernel: BUG: assuming atomic context at net/core/ptp_classifier.c:106
> Jul 17 08:46:58 darkmatter kernel: in_atomic(): 0, irqs_disabled(): 0, pid: 1129, name: irq/35-enp4s0
> Jul 17 08:46:58 darkmatter kernel: CPU: 1 PID: 1129 Comm: irq/35-enp4s0 Not tainted 5.2.0-rt1 #1
> Jul 17 08:46:58 darkmatter kernel: Hardware name: Hewlett-Packard p7-1512/2ADA, BIOS 8.15 02/05/2013
> Jul 17 08:46:58 darkmatter kernel: Call Trace:
> Jul 17 08:46:58 darkmatter kernel: dump_stack+0x67/0x90
> Jul 17 08:46:58 darkmatter kernel: __cant_sleep.cold+0x68/0x74
> Jul 17 08:46:58 darkmatter kernel: ptp_classify_raw+0x1f/0xa0
> Jul 17 08:46:58 darkmatter kernel: skb_defer_rx_timestamp+0x5a/0xb0
> Jul 17 08:46:58 darkmatter kernel: netif_receive_skb_internal+0x34/0xe0
> Jul 17 08:46:58 darkmatter kernel: napi_gro_receive+0x66/0x1c0
> Jul 17 08:46:58 darkmatter kernel: rtl8169_poll+0x216/0x610 [r8169]
> Jul 17 08:46:58 darkmatter kernel: net_rx_action+0x208/0x490
> Jul 17 08:46:58 darkmatter kernel: __do_softirq+0x140/0x3c9
> Jul 17 08:46:58 darkmatter kernel: __local_bh_enable_ip+0x13d/0x160
> Jul 17 08:46:58 darkmatter kernel: irq_forced_thread_fn+0x70/0x80
> Jul 17 08:46:58 darkmatter kernel: irq_thread+0xf6/0x1d0
> Jul 17 08:46:58 darkmatter kernel: kthread+0x103/0x140
> Jul 17 08:46:58 darkmatter kernel: ret_from_fork+0x3a/0x50
> Jul 17 08:46:58 darkmatter kernel: bpfilter: Loaded bpfilter_umh pid 1160
> Jul 17 08:46:58 darkmatter kernel: bpfilter: read fail -13

I would argue that this cant_sleep() thingy is nonsense. On !RT you run
in softirq and while this check does not trigger (because the preemption
counter is != 0) you can be preempted by an IRQ.
I have no idea what it intends to protect. The commit does not explain
why it is important to keep preemption disabled while invoking a BPF
program.

> Luis

Sebastian

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-08-13 16:17 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-18 20:46 v5.2-rt1: kernel: BUG: assuming atomic context at net/core/ptp_classifier.c:106 current Luis Claudio R. Goncalves
2019-08-13 16:17 ` Sebastian Andrzej Siewior

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).