Skip to contentSkip to conversation

BUG: sleeping function called from invalid context at mm/page_alloc.c:3186

PATCH In review poma 4 participants 24 messages Sep 4, 2015 – Sep 10, 2015

Subsystems (3)
lore
Share & tools
lore

poma

author
#0 lore raw
Call Trace:
 [<ffffffff81847119>] dump_stack+0x4b/0x63
 [<ffffffff810d5329>] ___might_sleep+0x179/0x230
 [<ffffffff810d5429>] __might_sleep+0x49/0x80
 [<ffffffff811e541e>] __alloc_pages_nodemask+0x2fe/0xb90
 [<ffffffff81429236>] ? debug_object_activate+0xb6/0x1e0
 [<ffffffff814298c1>] ? debug_object_active_state+0x91/0x150
 [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
 [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
 [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
 [<ffffffffa003725e>] rtl8169_map_counters+0x3e/0x70 [r8169]
 [<ffffffffa0038674>] rtl8169_update_counters+0x64/0x140 [r8169]
 [<ffffffffa00388ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
 [<ffffffff816fc694>] dev_get_stats+0x54/0x100
 [<ffffffff817254c7>] dev_seq_printf_stats+0x37/0x120
 [<ffffffff817255c4>] dev_seq_show+0x14/0x30
 [<ffffffff8128e41a>] seq_read+0x2fa/0x3e0
 [<ffffffff812dbd92>] proc_reg_read+0x42/0x70
 [<ffffffff81264c17>] __vfs_read+0x37/0x100
 [<ffffffff81384ae3>] ? security_file_permission+0xa3/0xc0
 [<ffffffff81265596>] vfs_read+0x86/0x130
 [<ffffffff81266318>] SyS_read+0x58/0xd0
 [<ffffffff81850db2>] entry_SYSCALL_64_fastpath+0x12/0x76

https://bugzilla.kernel.org/show_bug.cgi?id=104031

maintainer
#1 lore raw

From: poma <[email protected]>
Date: Fri, 4 Sep 2015 16:05:12 +0200

Quoted 24 lines
Call Trace:
 [<ffffffff81847119>] dump_stack+0x4b/0x63
 [<ffffffff810d5329>] ___might_sleep+0x179/0x230
 [<ffffffff810d5429>] __might_sleep+0x49/0x80
 [<ffffffff811e541e>] __alloc_pages_nodemask+0x2fe/0xb90
 [<ffffffff81429236>] ? debug_object_activate+0xb6/0x1e0
 [<ffffffff814298c1>] ? debug_object_active_state+0x91/0x150
 [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
 [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
 [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
 [<ffffffffa003725e>] rtl8169_map_counters+0x3e/0x70 [r8169]
 [<ffffffffa0038674>] rtl8169_update_counters+0x64/0x140 [r8169]
 [<ffffffffa00388ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
 [<ffffffff816fc694>] dev_get_stats+0x54/0x100
 [<ffffffff817254c7>] dev_seq_printf_stats+0x37/0x120
 [<ffffffff817255c4>] dev_seq_show+0x14/0x30
 [<ffffffff8128e41a>] seq_read+0x2fa/0x3e0
 [<ffffffff812dbd92>] proc_reg_read+0x42/0x70
 [<ffffffff81264c17>] __vfs_read+0x37/0x100
 [<ffffffff81384ae3>] ? security_file_permission+0xa3/0xc0
 [<ffffffff81265596>] vfs_read+0x86/0x130
 [<ffffffff81266318>] SyS_read+0x58/0xd0
 [<ffffffff81850db2>] entry_SYSCALL_64_fastpath+0x12/0x76
Quoted 1 line

https://bugzilla.kernel.org/show_bug.cgi?id=104031

Corinna, I think your changes introduced this bug. Please take a look.

Thanks.

#2 lore raw

PATCH 1/1 r8169: fix sleepable allocation during netdevice stats retrieval.

net/core/net-sysfs.c::netstat_show fetches statistics under dev_base_lock.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=104031

Fixes 6e85d5ad36a2 ("r8169: Add values missing in @get_stats64 from HW counters")
Cc Corinna Vinschen <[email protected]>

---

Applies against davem's net as of f1ccbfce2fc787981d1182d09c1f6b67766783a8.

 drivers/net/ethernet/realtek/r8169.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/ethernet/realtek/r8169.c +1 -1
index 24dcbe6..56829ea 100644
@@ -2200,7 +2200,7 @@ static struct rtl8169_counters *rtl8169_map_counters(struct net_device *dev,
 	struct rtl8169_counters *counters;
 	u32 cmd;
 
-	counters = dma_alloc_coherent(d, sizeof(*counters), paddr, GFP_KERNEL);
+	counters = dma_alloc_coherent(d, sizeof(*counters), paddr, GFP_ATOMIC);
 	if (counters) {
 		RTL_W32(CounterAddrHigh, (u64)*paddr >> 32);
 		cmd = (u64)*paddr & DMA_BIT_MASK(32);
Signature · 1 line
2.4.3
maintainer
#3 lore raw

Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.

From: Francois Romieu <[email protected]>
Date: Fri, 4 Sep 2015 22:59:04 +0200

Quoted 6 lines

net/core/net-sysfs.c::netstat_show fetches statistics under dev_base_lock.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=104031

Fixes 6e85d5ad36a2 ("r8169: Add values missing in @get_stats64 from HW counters")
Cc Corinna Vinschen <[email protected]>

Is there any reason we cannot allocate this DMA buffer at probe or open time?

There cannot be any arguments concerning parallel access as far as I can see, there is a single set of registers to program this address into therefore we cannot allow more than one entity to get into the counter fetch sequence at the same time anyways.

#4 lore raw

Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.

David Miller <[email protected]> :
[...]

Quoted 2 lines

Is there any reason we cannot allocate this DMA buffer at probe or open time?

None.

As a fix for 6e85d5ad36a2 or as net-next material ?

Signature · 1 line
Ueimor
maintainer
#5 lore raw

Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.

From: Francois Romieu <[email protected]>
Date: Sat, 5 Sep 2015 01:11:05 +0200

Quoted 8 lines

David Miller <[email protected]> :
[...]

Quoted 2 lines

Is there any reason we cannot allocate this DMA buffer at probe or open time?

None.

As a fix for 6e85d5ad36a2 or as net-next material ?

I think we should just do it right to fix this bug, it's new to this merge window anyways.

#6 lore raw

Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.

In reply to Francois Romieu
Quoted 28 lines · Francois Romieu

net/core/net-sysfs.c::netstat_show fetches statistics under dev_base_lock.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=104031

Fixes 6e85d5ad36a2 ("r8169: Add values missing in @get_stats64 from HW counters")
Cc Corinna Vinschen <[email protected]>

---

Applies against davem's net as of f1ccbfce2fc787981d1182d09c1f6b67766783a8.

 drivers/net/ethernet/realtek/r8169.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/ethernet/realtek/r8169.c +1 -1
index 24dcbe6..56829ea 100644
@@ -2200,7 +2200,7 @@ static struct rtl8169_counters *rtl8169_map_counters(struct net_device *dev,
 	struct rtl8169_counters *counters;
 	u32 cmd;
 
-	counters = dma_alloc_coherent(d, sizeof(*counters), paddr, GFP_KERNEL);
+	counters = dma_alloc_coherent(d, sizeof(*counters), paddr, GFP_ATOMIC);
 	if (counters) {
 		RTL_W32(CounterAddrHigh, (u64)*paddr >> 32);
 		cmd = (u64)*paddr & DMA_BIT_MASK(32);
Signature · 1 line
2.4.3

I'll have a look tomorrow what I'm back to work, but for the time being, two questions.

- The code worked for me in local testing without problem, so I'm rather puzzled. How can I reproduce the problem?

- I'm pretty new to this stuff, so I don't understand this:

The dma_alloc_coherent(...,GFP_KERNEL) call is not new in the code, it's there since at least 2010. It appears to work fine in the context of @get_ethtool_stats. Why does this not work in the context of @ndo_get_stats64?

Thanks,
Corinna

#7 lore raw

Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.

Corinna Vinschen <[email protected]> :
[...]

Quoted 6 lines

- I'm pretty new to this stuff, so I don't understand this:

The dma_alloc_coherent(...,GFP_KERNEL) call is not new in the code, it's there since at least 2010. It appears to work fine in the context of @get_ethtool_stats. Why does this not work in the context of @ndo_get_stats64?

get_ethtool_stats is only called under RTNL, not with spinlock held.

ndo_get_stats64 is called under dev_base_lock from sysfs.

Signature · 1 line
Ueimor
author
#8 lore raw

Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.

In reply to Corinna Vinschen
Quoted 38 lines · Corinna Vinschen
Quoted 28 lines · Francois Romieu

net/core/net-sysfs.c::netstat_show fetches statistics under dev_base_lock.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=104031

Fixes 6e85d5ad36a2 ("r8169: Add values missing in @get_stats64 from HW counters")
Cc Corinna Vinschen <[email protected]>

---

Applies against davem's net as of f1ccbfce2fc787981d1182d09c1f6b67766783a8.

 drivers/net/ethernet/realtek/r8169.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/ethernet/realtek/r8169.c +1 -1
index 24dcbe6..56829ea 100644
@@ -2200,7 +2200,7 @@ static struct rtl8169_counters *rtl8169_map_counters(struct net_device *dev,
 	struct rtl8169_counters *counters;
 	u32 cmd;
 
-	counters = dma_alloc_coherent(d, sizeof(*counters), paddr, GFP_KERNEL);
+	counters = dma_alloc_coherent(d, sizeof(*counters), paddr, GFP_ATOMIC);
 	if (counters) {
 		RTL_W32(CounterAddrHigh, (u64)*paddr >> 32);
 		cmd = (u64)*paddr & DMA_BIT_MASK(32);
Signature · 1 line
2.4.3

I'll have a look tomorrow what I'm back to work, but for the time being, two questions.

- The code worked for me in local testing without problem, so I'm rather puzzled. How can I reproduce the problem?

- I'm pretty new to this stuff, so I don't understand this:

Quoted 9 lines

The dma_alloc_coherent(...,GFP_KERNEL) call is not new in the code, it's there since at least 2010. It appears to work fine in the context of @get_ethtool_stats. Why does this not work in the context of @ndo_get_stats64?

Thanks,
Corinna

1. Reverted to r8169.c?id=eb78139
- the noise is still present
2. Patches applied - Francois Romieu (3):
r8169: decouple the counters data and the device private area.
r8169: move rtl_reset_counters_cond before the hardware counters helpers.
r8169: increase the lifespan of the hardware counters dump area.
- the noise is still present

$ modinfo -n r8169 
/lib/modules/4.3.0-0.rc0.git7.1.fc24.x86_64/updates/r8169.ko

This noise is induced via userspace, xfce4-netload-plugin,
http://goodies.xfce.org/projects/panel-plugins/xfce4-netload-plugin

$ grep -i device .config/xfce4/panel/netload-16.rc
Network_Device=enp3s0
$ ethtool -i enp3s0 | grep driver
driver: r8169
$ dmesg | grep panel-16-netloa | wc -l
237
$ dmesg
...
[   68.597764] bridge0: port 1(enp3s0) entered forwarding state
[   70.016291] ===============================
[   70.016296] [ INFO: suspicious RCU usage. ]
[   70.016303] 4.3.0-0.rc0.git7.1.fc24.x86_64 #1 Not tainted
[   70.016308] -------------------------------
[   70.016314] include/linux/rcupdate.h:579 Illegal context switch in RCU read-side critical section!
[   70.016319] 
               other info that might help us debug this:
[   70.016327] 
               rcu_scheduler_active = 1, debug_locks = 0
[   70.016334] 2 locks held by panel-16-netloa/1806:
[   70.016338]  #0:  (&p->lock){+.+.+.}, at: [<ffffffff8128e21c>] seq_read+0x4c/0x3e0
[   70.016362]  #1:  (rcu_read_lock){......}, at: [<ffffffff817261c5>] dev_seq_start+0x5/0x140
[   70.016380] 
               stack backtrace:
[   70.016390] CPU: 3 PID: 1806 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git7.1.fc24.x86_64 #1
...
[   70.016435] Call Trace:
[   70.016445]  [<ffffffff81847841>] dump_stack+0x4b/0x63
[   70.016456]  [<ffffffff811008c7>] lockdep_rcu_suspicious+0xd7/0x110
[   70.016465]  [<ffffffff810d5297>] ___might_sleep+0xa7/0x230
[   70.016472]  [<ffffffff810d5469>] __might_sleep+0x49/0x80
[   70.016481]  [<ffffffff811e54ce>] __alloc_pages_nodemask+0x2fe/0xb90
[   70.016490]  [<ffffffff8112197d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[   70.016499]  [<ffffffff81024ab9>] ? sched_clock+0x9/0x10
[   70.016507]  [<ffffffff810e24ac>] ? local_clock+0x1c/0x20
[   70.016514]  [<ffffffff8112197d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[   70.016524]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[   70.016534]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[   70.016541]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[   70.016555]  [<ffffffffa003525e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[   70.016567]  [<ffffffffa0036674>] rtl8169_update_counters+0x64/0x140 [r8169]
[   70.016578]  [<ffffffffa00368ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[   70.016587]  [<ffffffff816fcd34>] dev_get_stats+0x54/0x100
[   70.016595]  [<ffffffff81725b67>] dev_seq_printf_stats+0x37/0x120
[   70.016605]  [<ffffffff81725c64>] dev_seq_show+0x14/0x30
[   70.016611]  [<ffffffff8128e4ca>] seq_read+0x2fa/0x3e0
[   70.016621]  [<ffffffff812dbec2>] proc_reg_read+0x42/0x70
[   70.016628]  [<ffffffff81264cc7>] __vfs_read+0x37/0x100
[   70.016637]  [<ffffffff81385113>] ? security_file_permission+0xa3/0xc0
[   70.016644]  [<ffffffff81265646>] vfs_read+0x86/0x130
[   70.016652]  [<ffffffff812663c8>] SyS_read+0x58/0xd0
[   70.016660]  [<ffffffff818514f2>] entry_SYSCALL_64_fastpath+0x12/0x76
[   70.016698] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[   70.016704] in_atomic(): 1, irqs_disabled(): 0, pid: 1806, name: panel-16-netloa
[   70.016708] INFO: lockdep is turned off.
[   70.016715] CPU: 3 PID: 1806 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git7.1.fc24.x86_64 #1
...
[   70.016760] Call Trace:
[   70.016768]  [<ffffffff81847841>] dump_stack+0x4b/0x63
[   70.016776]  [<ffffffff810d5369>] ___might_sleep+0x179/0x230
[   70.016784]  [<ffffffff810d5469>] __might_sleep+0x49/0x80
[   70.016792]  [<ffffffff811e54ce>] __alloc_pages_nodemask+0x2fe/0xb90
[   70.016800]  [<ffffffff8112197d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[   70.016809]  [<ffffffff81024ab9>] ? sched_clock+0x9/0x10
[   70.016817]  [<ffffffff810e24ac>] ? local_clock+0x1c/0x20
[   70.016826]  [<ffffffff8112197d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[   70.016836]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[   70.016847]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[   70.016856]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[   70.016868]  [<ffffffffa003525e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[   70.016881]  [<ffffffffa0036674>] rtl8169_update_counters+0x64/0x140 [r8169]
[   70.016893]  [<ffffffffa00368ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[   70.016904]  [<ffffffff816fcd34>] dev_get_stats+0x54/0x100
[   70.016912]  [<ffffffff81725b67>] dev_seq_printf_stats+0x37/0x120
[   70.016923]  [<ffffffff81725c64>] dev_seq_show+0x14/0x30
[   70.016930]  [<ffffffff8128e4ca>] seq_read+0x2fa/0x3e0
[   70.016939]  [<ffffffff812dbec2>] proc_reg_read+0x42/0x70
[   70.016948]  [<ffffffff81264cc7>] __vfs_read+0x37/0x100
[   70.016957]  [<ffffffff81385113>] ? security_file_permission+0xa3/0xc0
[   70.016965]  [<ffffffff81265646>] vfs_read+0x86/0x130
[   70.016972]  [<ffffffff812663c8>] SyS_read+0x58/0xd0
[   70.016980]  [<ffffffff818514f2>] entry_SYSCALL_64_fastpath+0x12/0x76
[   71.022092] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[   71.022104] in_atomic(): 1, irqs_disabled(): 0, pid: 1806, name: panel-16-netloa
[   71.022109] INFO: lockdep is turned off.
[   71.022118] CPU: 0 PID: 1806 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git7.1.fc24.x86_64 #1

...

#9 lore raw

Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.

Quoted 23 lines · poma
Quoted 14 lines · Corinna Vinschen
Quoted 13 lines · Francois Romieu

Applies against davem's net as of f1ccbfce2fc787981d1182d09c1f6b67766783a8.

 drivers/net/ethernet/realtek/r8169.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/ethernet/realtek/r8169.c +0 -0
index 24dcbe6..56829ea 100644
@@ -2200,7 +2200,7 @@ static struct rtl8169_counters *rtl8169_map_counters(struct net_device *dev,
 	struct rtl8169_counters *counters;
 	u32 cmd;
 
Quoted 8 lines
Quoted 7 lines
drivers/net/ethernet/realtek/r8169.c +1 -1
-	counters = dma_alloc_coherent(d, sizeof(*counters), paddr, GFP_KERNEL);
+	counters = dma_alloc_coherent(d, sizeof(*counters), paddr, GFP_ATOMIC);
 	if (counters) {
 		RTL_W32(CounterAddrHigh, (u64)*paddr >> 32);
 		cmd = (u64)*paddr & DMA_BIT_MASK(32);
Signature · 1 line
2.4.3

[...]

Quoted 7 lines

1. Reverted to r8169.c?id=eb78139
- the noise is still present
2. Patches applied - Francois Romieu (3):
r8169: decouple the counters data and the device private area.
r8169: move rtl_reset_counters_cond before the hardware counters helpers.
r8169: increase the lifespan of the hardware counters dump area.
- the noise is still present

Sure you tested the right code? I'm just asking because...

Quoted 5 lines
[   70.016445]  [<ffffffff81847841>] dump_stack+0x4b/0x63
[   70.016456]  [<ffffffff811008c7>] lockdep_rcu_suspicious+0xd7/0x110
[   70.016465]  [<ffffffff810d5297>] ___might_sleep+0xa7/0x230
[   70.016472]  [<ffffffff810d5469>] __might_sleep+0x49/0x80
[   70.016481]  [<ffffffff811e54ce>] __alloc_pages_nodemask+0x2fe/0xb90
Quoted 8 lines
[   70.016490]  [<ffffffff8112197d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[   70.016499]  [<ffffffff81024ab9>] ? sched_clock+0x9/0x10
[   70.016507]  [<ffffffff810e24ac>] ? local_clock+0x1c/0x20
[   70.016514]  [<ffffffff8112197d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[   70.016524]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[   70.016534]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[   70.016541]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[   70.016555]  [<ffffffffa003525e>] rtl8169_map_counters+0x3e/0x70 [r8169]

...rtl8169_map_counters only exists before Francois patch. The patch removes this function.

Corinna

author
#10 lore raw

Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.

Quoted 48 lines · Corinna Vinschen
Quoted 23 lines · poma
Quoted 14 lines · Corinna Vinschen
Quoted 13 lines · Francois Romieu

Applies against davem's net as of f1ccbfce2fc787981d1182d09c1f6b67766783a8.

 drivers/net/ethernet/realtek/r8169.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/ethernet/realtek/r8169.c +0 -0
index 24dcbe6..56829ea 100644
@@ -2200,7 +2200,7 @@ static struct rtl8169_counters *rtl8169_map_counters(struct net_device *dev,
 	struct rtl8169_counters *counters;
 	u32 cmd;
 
Quoted 8 lines
Quoted 7 lines
drivers/net/ethernet/realtek/r8169.c +1 -1
-	counters = dma_alloc_coherent(d, sizeof(*counters), paddr, GFP_KERNEL);
+	counters = dma_alloc_coherent(d, sizeof(*counters), paddr, GFP_ATOMIC);
 	if (counters) {
 		RTL_W32(CounterAddrHigh, (u64)*paddr >> 32);
 		cmd = (u64)*paddr & DMA_BIT_MASK(32);
Signature · 1 line
2.4.3

[...]

Quoted 7 lines

1. Reverted to r8169.c?id=eb78139
- the noise is still present
2. Patches applied - Francois Romieu (3):
r8169: decouple the counters data and the device private area.
r8169: move rtl_reset_counters_cond before the hardware counters helpers.
r8169: increase the lifespan of the hardware counters dump area.
- the noise is still present

Sure you tested the right code? I'm just asking because...

Quoted 5 lines
[   70.016445]  [<ffffffff81847841>] dump_stack+0x4b/0x63
[   70.016456]  [<ffffffff811008c7>] lockdep_rcu_suspicious+0xd7/0x110
[   70.016465]  [<ffffffff810d5297>] ___might_sleep+0xa7/0x230
[   70.016472]  [<ffffffff810d5469>] __might_sleep+0x49/0x80
[   70.016481]  [<ffffffff811e54ce>] __alloc_pages_nodemask+0x2fe/0xb90
Quoted 8 lines
[   70.016490]  [<ffffffff8112197d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[   70.016499]  [<ffffffff81024ab9>] ? sched_clock+0x9/0x10
[   70.016507]  [<ffffffff810e24ac>] ? local_clock+0x1c/0x20
[   70.016514]  [<ffffffff8112197d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[   70.016524]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[   70.016534]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[   70.016541]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[   70.016555]  [<ffffffffa003525e>] rtl8169_map_counters+0x3e/0x70 [r8169]
Quoted 6 lines

...rtl8169_map_counters only exists before Francois patch. The patch removes this function.

Corinna

I do not know, is this OK?

$ rpm -i https://kojipkgs.fedoraproject.org/packages/kernel/4.3.0/0.rc0.git7.1.fc24/src/kernel-4.3.0-0.rc0.git7.1.fc24.src.rpm
$ rpmbuild -bp rpmbuild/SPECS/kernel.spec
$ cd rpmbuild/BUILD/kernel-4.2.fc24/linux-4.3.0-0.rc0.git7.1.fc24.x86_64/
$ curl -s "http://marc.info/?l=linux-netdev&m=144145559429943&q=raw" | patch -p1
patching file drivers/net/ethernet/realtek/r8169.c
patch unexpectedly ends in middle of line
$ curl -s "http://marc.info/?l=linux-netdev&m=144145559729944&q=raw" | patch -p1
patching file drivers/net/ethernet/realtek/r8169.c
patch unexpectedly ends in middle of line
$ curl -s "http://marc.info/?l=linux-netdev&m=144145558929942&q=raw" | patch -p1
patching file drivers/net/ethernet/realtek/r8169.c
patch unexpectedly ends in middle of line
$ sed -i 's/PATCHLEVEL = 2/PATCHLEVEL = 3/' Makefile
$ sed -i 's/EXTRAVERSION =/EXTRAVERSION = -0.rc0.git7.1.fc24.x86_64/' Makefile
$ make -j drivers/net/ethernet/realtek/r8169.ko
$ su
# cp drivers/net/ethernet/realtek/r8169.ko /usr/lib/modules/4.3.0-0.rc0.git7.1.fc24.x86_64/updates/
# depmod 
# dracut -f --kver 4.3.0-0.rc0.git7.1.fc24.x86_64 
# lsinitrd --kver 4.3.0-0.rc0.git7.1.fc24.x86_64 | grep r8169
... usr/lib/modules/4.3.0-0.rc0.git7.1.fc24.x86_64/updates/r8169.ko
# systemctl reboot
author
#11 lore raw

Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.

2nd batch:
0001-r8169-decouple-the-counters-data-and-the-device-priv.patch 0002-r8169-use-a-single-condition-to-check-the-completion.patch 0003-r8169-increase-the-lifespan-of-the-hardware-counters.patch
- the noise is still present

#13 lore raw

Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.

Quoted 3 lines · poma

[PATCH net] r8169: Fix sleeping function called during get_stats64
http://marc.info/?l=linux-netdev&m=144180123410135&q=raw
- the noise is still present

Are you really sure? The entire dma_alloc/dma_free stuff has been moved away. There's no locking or sleeping involved different from what was there before my original patch when calling .ndo_get_stats64.

How would I be able to reproduce this on the command line?

Corinna

#14 lore raw

Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.

Quoted 10 lines · Corinna Vinschen
Quoted 3 lines · poma

[PATCH net] r8169: Fix sleeping function called during get_stats64
http://marc.info/?l=linux-netdev&m=144180123410135&q=raw
- the noise is still present

Are you really sure? The entire dma_alloc/dma_free stuff has been moved away. There's no locking or sleeping involved different from what was there before my original patch when calling .ndo_get_stats64.

How would I be able to reproduce this on the command line?

It would also be interesting to see the "noise" as it looks after applying the above patch...

Corinna

author
#15 lore raw

Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.

Quoted 10 lines · Corinna Vinschen
Quoted 9 lines · Corinna Vinschen
Quoted 3 lines · poma

[PATCH net] r8169: Fix sleeping function called during get_stats64
http://marc.info/?l=linux-netdev&m=144180123410135&q=raw
- the noise is still present

Are you really sure? The entire dma_alloc/dma_free stuff has been moved away. There's no locking or sleeping involved different from what was there before my original patch when calling .ndo_get_stats64.

It is literally the kernel ring buffer output,
so I really can not understand your question.

Quoted 2 lines
Quoted 1 line

How would I be able to reproduce this on the command line?

This I have already written, here's once more for you, <quote>
This noise is induced via userspace, xfce4-netload-plugin,
http://goodies.xfce.org/projects/panel-plugins/xfce4-netload-plugin

 $ grep -i device .config/xfce4/panel/netload-16.rc
 Network_Device=enp3s0
 $ ethtool -i enp3s0 | grep driver
 driver: r8169
</quote>

Therefore, to try to reproduce this issue, 'xfce4-netload-plugin' must run within 'xfce4-panel', moreover 'xfce4-netload-plugin' must be configured to monitor affected network interface.

No command line this time, hombre.

If you are eager to test it,
https://kojipkgs.fedoraproject.org/work/tasks/170/11000170/Fedora-Live-Xfce-x86_64-rawhide-20150908.iso

Quoted 6 lines

It would also be interesting to see the "noise" as it looks after applying the above patch...

Corinna

The "noise" after applying "r8169: Fix sleeping function called during get_stats64":

[  215.048821] ===============================
[  215.048826] [ INFO: suspicious RCU usage. ]
[  215.048834] 4.3.0-0.rc0.git9.1.fc24.x86_64 #1 Not tainted
[  215.048838] -------------------------------
[  215.048844] include/linux/rcupdate.h:579 Illegal context switch in RCU read-side critical section!
[  215.048849] 
               other info that might help us debug this:
[  215.048858] 
               rcu_scheduler_active = 1, debug_locks = 0
[  215.048865] 3 locks held by panel-16-netloa/2546:
[  215.048869]  #0:  (&f->f_pos_lock){+.+.+.}, at: [<ffffffff81288f19>] __fdget_pos+0x49/0x50
[  215.048893]  #1:  (&p->lock){+.+.+.}, at: [<ffffffff8128f9ac>] seq_read+0x4c/0x3e0
[  215.048986]  #2:  (rcu_read_lock){......}, at: [<ffffffff8172a005>] dev_seq_start+0x5/0x140
[  215.049008] 
               stack backtrace:
[  215.049020] CPU: 3 PID: 2546 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  215.049067] Call Trace:
[  215.049078]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  215.049090]  [<ffffffff81100d77>] lockdep_rcu_suspicious+0xd7/0x110
[  215.049099]  [<ffffffff810d5377>] ___might_sleep+0xa7/0x230
[  215.049107]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  215.049121]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  215.049130]  [<ffffffff81121b0d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[  215.049141]  [<ffffffff81024b29>] ? sched_clock+0x9/0x10
[  215.049149]  [<ffffffff810e258c>] ? local_clock+0x1c/0x20
[  215.049157]  [<ffffffff81121b0d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[  215.049168]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  215.049178]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  215.049193]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  215.049208]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  215.049221]  [<ffffffffa002f674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  215.049233]  [<ffffffffa002f8ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  215.049243]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  215.049251]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  215.049262]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  215.049270]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  215.049281]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  215.049289]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  215.049299]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  215.049311]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  215.049318]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  215.049327]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76
[  215.049337] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[  215.049343] in_atomic(): 1, irqs_disabled(): 0, pid: 2546, name: panel-16-netloa
[  215.049348] INFO: lockdep is turned off.
[  215.049355] CPU: 3 PID: 2546 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  215.049403] Call Trace:
[  215.049412]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  215.049421]  [<ffffffff810d5449>] ___might_sleep+0x179/0x230
[  215.049429]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  215.049437]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  215.049448]  [<ffffffff81121b0d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[  215.049456]  [<ffffffff81024b29>] ? sched_clock+0x9/0x10
[  215.049464]  [<ffffffff810e258c>] ? local_clock+0x1c/0x20
[  215.049472]  [<ffffffff81121b0d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[  215.049483]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  215.049492]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  215.049502]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  215.049522]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  215.049534]  [<ffffffffa002f674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  215.049546]  [<ffffffffa002f8ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  215.049555]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  215.049564]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  215.049576]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  215.049583]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  215.049593]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  215.049605]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  215.049614]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  215.049622]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  215.049630]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  215.049639]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76
[  216.057245] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[  216.057259] in_atomic(): 1, irqs_disabled(): 0, pid: 2546, name: panel-16-netloa
[  216.057265] INFO: lockdep is turned off.
[  216.057275] CPU: 3 PID: 2546 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  216.057320] Call Trace:
[  216.057336]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  216.057347]  [<ffffffff810d5449>] ___might_sleep+0x179/0x230
[  216.057355]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  216.057364]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  216.057374]  [<ffffffff8142cf36>] ? debug_object_activate+0xb6/0x1e0
[  216.057384]  [<ffffffff8142d5c1>] ? debug_object_active_state+0x91/0x150
[  216.057395]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  216.057404]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  216.057412]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  216.057426]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  216.057438]  [<ffffffffa002f674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  216.057450]  [<ffffffffa002f8ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  216.057460]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  216.057468]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  216.057478]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  216.057486]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  216.057496]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  216.057503]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  216.057512]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  216.057519]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  216.057526]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  216.057534]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76
[  217.061487] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[  217.061499] in_atomic(): 1, irqs_disabled(): 0, pid: 2546, name: panel-16-netloa
[  217.061505] INFO: lockdep is turned off.
[  217.061514] CPU: 3 PID: 2546 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  217.061558] Call Trace:
[  217.061573]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  217.061584]  [<ffffffff810d5449>] ___might_sleep+0x179/0x230
[  217.061592]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  217.061601]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  217.061611]  [<ffffffff8142cf36>] ? debug_object_activate+0xb6/0x1e0
[  217.061620]  [<ffffffff8142d5c1>] ? debug_object_active_state+0x91/0x150
[  217.061631]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  217.061640]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  217.061648]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  217.061662]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  217.061674]  [<ffffffffa002f674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  217.061686]  [<ffffffffa002f8ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  217.061696]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  217.061704]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  217.061714]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  217.061722]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  217.061731]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  217.061739]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  217.061748]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  217.061755]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  217.061762]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  217.061770]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76
[  218.065067] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[  218.065080] in_atomic(): 1, irqs_disabled(): 0, pid: 2546, name: panel-16-netloa
[  218.065085] INFO: lockdep is turned off.
[  218.065094] CPU: 3 PID: 2546 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  218.065229] Call Trace:
[  218.065246]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  218.065258]  [<ffffffff810d5449>] ___might_sleep+0x179/0x230
[  218.065269]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  218.065279]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  218.065290]  [<ffffffff8142cf36>] ? debug_object_activate+0xb6/0x1e0
[  218.065301]  [<ffffffff8142d5c1>] ? debug_object_active_state+0x91/0x150
[  218.065313]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  218.065327]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  218.065335]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  218.065351]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  218.065365]  [<ffffffffa002f674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  218.065378]  [<ffffffffa002f8ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  218.065388]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  218.065399]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  218.065410]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  218.065418]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  218.065431]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  218.065439]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  218.065449]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  218.065457]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  218.065466]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  218.065475]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76
[  218.839694] CE: hpet increased min_delta_ns to 11521 nsec
[  219.068448] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[  219.068461] in_atomic(): 1, irqs_disabled(): 0, pid: 2546, name: panel-16-netloa
[  219.068466] INFO: lockdep is turned off.
[  219.068476] CPU: 3 PID: 2546 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  219.068519] Call Trace:
[  219.068535]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  219.068547]  [<ffffffff810d5449>] ___might_sleep+0x179/0x230
[  219.068555]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  219.068564]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  219.068574]  [<ffffffff8142cf36>] ? debug_object_activate+0xb6/0x1e0
[  219.068583]  [<ffffffff8142d5c1>] ? debug_object_active_state+0x91/0x150
[  219.068594]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  219.068603]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  219.068611]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  219.068626]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  219.068638]  [<ffffffffa002f674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  219.068650]  [<ffffffffa002f8ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  219.068660]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  219.068668]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  219.068678]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  219.068686]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  219.068696]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  219.068703]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  219.068712]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  219.068719]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  219.068726]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  219.068735]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76
[  220.072620] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[  220.072632] in_atomic(): 1, irqs_disabled(): 0, pid: 2546, name: panel-16-netloa
[  220.072638] INFO: lockdep is turned off.
[  220.072647] CPU: 3 PID: 2546 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  220.072691] Call Trace:
[  220.072707]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  220.072719]  [<ffffffff810d5449>] ___might_sleep+0x179/0x230
[  220.072727]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  220.072735]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  220.072745]  [<ffffffff8142cf36>] ? debug_object_activate+0xb6/0x1e0
[  220.072755]  [<ffffffff8142d5c1>] ? debug_object_active_state+0x91/0x150
[  220.072765]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  220.072775]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  220.072782]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  220.072797]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  220.072809]  [<ffffffffa002f674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  220.072821]  [<ffffffffa002f8ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  220.072831]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  220.072839]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  220.072849]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  220.072857]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  220.072867]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  220.072874]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  220.072883]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  220.072890]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  220.072897]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  220.072906]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76
[  221.076200] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[  221.076213] in_atomic(): 1, irqs_disabled(): 0, pid: 2546, name: panel-16-netloa
[  221.076218] INFO: lockdep is turned off.
[  221.076226] CPU: 3 PID: 2546 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  221.076269] Call Trace:
[  221.076284]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  221.076373]  [<ffffffff810d5449>] ___might_sleep+0x179/0x230
[  221.076382]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  221.076391]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  221.076402]  [<ffffffff8142cf36>] ? debug_object_activate+0xb6/0x1e0
[  221.076412]  [<ffffffff8142d5c1>] ? debug_object_active_state+0x91/0x150
[  221.076424]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  221.076435]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  221.076447]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  221.076462]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  221.076475]  [<ffffffffa002f674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  221.076488]  [<ffffffffa002f8ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  221.076498]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  221.076507]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  221.076519]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  221.076528]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  221.076539]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  221.076546]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  221.076556]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  221.076564]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  221.076573]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  221.076590]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76
[  222.079576] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[  222.079588] in_atomic(): 1, irqs_disabled(): 0, pid: 2546, name: panel-16-netloa
[  222.079593] INFO: lockdep is turned off.
[  222.079602] CPU: 3 PID: 2546 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  222.079645] Call Trace:
[  222.079660]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  222.079670]  [<ffffffff810d5449>] ___might_sleep+0x179/0x230
[  222.079678]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  222.079687]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  222.079697]  [<ffffffff8142cf36>] ? debug_object_activate+0xb6/0x1e0
[  222.079706]  [<ffffffff8142d5c1>] ? debug_object_active_state+0x91/0x150
[  222.079717]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  222.079726]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  222.079734]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  222.079748]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  222.079760]  [<ffffffffa002f674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  222.079772]  [<ffffffffa002f8ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  222.079782]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  222.079790]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  222.079800]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  222.079808]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  222.079817]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  222.079824]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  222.079833]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  222.079841]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  222.079848]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  222.079856]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76
[  223.083699] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[  223.083712] in_atomic(): 1, irqs_disabled(): 0, pid: 2546, name: panel-16-netloa
[  223.083717] INFO: lockdep is turned off.
[  223.083726] CPU: 3 PID: 2546 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  223.083769] Call Trace:
[  223.083785]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  223.083795]  [<ffffffff810d5449>] ___might_sleep+0x179/0x230
[  223.083803]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  223.083812]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  223.083822]  [<ffffffff8142cf36>] ? debug_object_activate+0xb6/0x1e0
[  223.083831]  [<ffffffff8142d5c1>] ? debug_object_active_state+0x91/0x150
[  223.083842]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  223.083851]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  223.083859]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  223.083873]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  223.083885]  [<ffffffffa002f674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  223.083897]  [<ffffffffa002f8ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  223.083907]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  223.083915]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  223.083925]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  223.083933]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  223.083942]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  223.083950]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  223.083959]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  223.083966]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  223.083973]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  223.083981]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76
[  224.087894] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[  224.087906] in_atomic(): 1, irqs_disabled(): 0, pid: 2546, name: panel-16-netloa
[  224.087911] INFO: lockdep is turned off.
[  224.087920] CPU: 3 PID: 2546 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  224.087963] Call Trace:
[  224.087978]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  224.087988]  [<ffffffff810d5449>] ___might_sleep+0x179/0x230
[  224.087997]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  224.088005]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  224.088015]  [<ffffffff8142cf36>] ? debug_object_activate+0xb6/0x1e0
[  224.088024]  [<ffffffff8142d5c1>] ? debug_object_active_state+0x91/0x150
[  224.088035]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  224.088044]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  224.088052]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  224.088066]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  224.088078]  [<ffffffffa002f674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  224.088089]  [<ffffffffa002f8ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  224.088099]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  224.088107]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  224.088117]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  224.088125]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  224.088135]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  224.088142]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  224.088151]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  224.088158]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  224.088165]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  224.088174]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76
[  225.091421] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[  225.091433] in_atomic(): 1, irqs_disabled(): 0, pid: 2546, name: panel-16-netloa
[  225.091439] INFO: lockdep is turned off.
[  225.091448] CPU: 3 PID: 2546 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  225.091491] Call Trace:
[  225.091506]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  225.091517]  [<ffffffff810d5449>] ___might_sleep+0x179/0x230
[  225.091525]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  225.091616]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  225.091627]  [<ffffffff8142cf36>] ? debug_object_activate+0xb6/0x1e0
[  225.091644]  [<ffffffff8142d5c1>] ? debug_object_active_state+0x91/0x150
[  225.091656]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  225.091666]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  225.091674]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  225.091689]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  225.091705]  [<ffffffffa002f674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  225.091717]  [<ffffffffa002f8ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  225.091727]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  225.091737]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  225.091748]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  225.091757]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  225.091770]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  225.091778]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  225.091788]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  225.091796]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  225.091803]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  225.091813]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76
[  226.094851] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[  226.094864] in_atomic(): 1, irqs_disabled(): 0, pid: 2546, name: panel-16-netloa
[  226.094869] INFO: lockdep is turned off.
[  226.094878] CPU: 3 PID: 2546 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  226.094923] Call Trace:
[  226.094939]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  226.094950]  [<ffffffff810d5449>] ___might_sleep+0x179/0x230
[  226.094959]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  226.094967]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  226.094977]  [<ffffffff8142cf36>] ? debug_object_activate+0xb6/0x1e0
[  226.094987]  [<ffffffff8142d5c1>] ? debug_object_active_state+0x91/0x150
[  226.094998]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  226.095007]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  226.095014]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  226.095029]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  226.095041]  [<ffffffffa002f674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  226.095053]  [<ffffffffa002f8ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  226.095063]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  226.095071]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  226.095081]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  226.095089]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  226.095099]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  226.095106]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  226.095116]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  226.095123]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  226.095130]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  226.095138]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76
[  227.099112] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[  227.099124] in_atomic(): 1, irqs_disabled(): 0, pid: 2546, name: panel-16-netloa
[  227.099130] INFO: lockdep is turned off.
[  227.099140] CPU: 3 PID: 2546 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  227.099183] Call Trace:
[  227.099199]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  227.099210]  [<ffffffff810d5449>] ___might_sleep+0x179/0x230
[  227.099218]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  227.099227]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  227.099237]  [<ffffffff8142cf36>] ? debug_object_activate+0xb6/0x1e0
[  227.099247]  [<ffffffff8142d5c1>] ? debug_object_active_state+0x91/0x150
[  227.099257]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  227.099267]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  227.099274]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  227.099288]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  227.099301]  [<ffffffffa002f674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  227.099312]  [<ffffffffa002f8ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  227.099322]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  227.099331]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  227.099341]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  227.099348]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  227.099358]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  227.099365]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  227.099374]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  227.099382]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  227.099389]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  227.099397]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76
[  228.102657] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[  228.102670] in_atomic(): 1, irqs_disabled(): 0, pid: 2546, name: panel-16-netloa
[  228.102676] INFO: lockdep is turned off.
[  228.102686] CPU: 3 PID: 2546 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  228.102803] Call Trace:
[  228.102819]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  228.102831]  [<ffffffff810d5449>] ___might_sleep+0x179/0x230
[  228.102840]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  228.102850]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  228.102860]  [<ffffffff8142cf36>] ? debug_object_activate+0xb6/0x1e0
[  228.102871]  [<ffffffff8142d5c1>] ? debug_object_active_state+0x91/0x150
[  228.102887]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  228.102898]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  228.102906]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  228.102921]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  228.102935]  [<ffffffffa002f674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  228.102948]  [<ffffffffa002f8ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  228.102962]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  228.102971]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  228.102983]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  228.102992]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  228.103004]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  228.103017]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  228.103031]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  228.103038]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  228.103046]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  228.103055]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76
[  229.105851] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[  229.105863] in_atomic(): 1, irqs_disabled(): 0, pid: 2546, name: panel-16-netloa
[  229.105869] INFO: lockdep is turned off.
[  229.105878] CPU: 3 PID: 2546 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  229.105923] Call Trace:
[  229.105939]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  229.105950]  [<ffffffff810d5449>] ___might_sleep+0x179/0x230
[  229.105959]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  229.105968]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  229.105978]  [<ffffffff8142cf36>] ? debug_object_activate+0xb6/0x1e0
[  229.105988]  [<ffffffff8142d5c1>] ? debug_object_active_state+0x91/0x150
[  229.105999]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  229.106008]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  229.106016]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  229.106030]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  229.106043]  [<ffffffffa002f674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  229.106055]  [<ffffffffa002f8ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  229.106064]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  229.106073]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  229.106083]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  229.106091]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  229.106101]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  229.106108]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  229.106117]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  229.106125]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  229.106132]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  229.106140]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76
[  230.110086] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[  230.110099] in_atomic(): 1, irqs_disabled(): 0, pid: 2546, name: panel-16-netloa
[  230.110104] INFO: lockdep is turned off.
[  230.110114] CPU: 3 PID: 2546 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  230.110158] Call Trace:
[  230.110174]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  230.110185]  [<ffffffff810d5449>] ___might_sleep+0x179/0x230
[  230.110194]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  230.110203]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  230.110213]  [<ffffffff8142cf36>] ? debug_object_activate+0xb6/0x1e0
[  230.110222]  [<ffffffff8142d5c1>] ? debug_object_active_state+0x91/0x150
[  230.110233]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  230.110242]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  230.110250]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  230.110265]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  230.110277]  [<ffffffffa002f674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  230.110289]  [<ffffffffa002f8ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  230.110299]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  230.110307]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  230.110317]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  230.110325]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  230.110335]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  230.110342]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  230.110351]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  230.110358]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  230.110365]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  230.110374]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76
[  231.114332] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[  231.114345] in_atomic(): 1, irqs_disabled(): 0, pid: 2546, name: panel-16-netloa
[  231.114350] INFO: lockdep is turned off.
[  231.114360] CPU: 3 PID: 2546 Comm: panel-16-netloa Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  231.114404] Call Trace:
[  231.114420]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  231.114431]  [<ffffffff810d5449>] ___might_sleep+0x179/0x230
[  231.114440]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  231.114448]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  231.114458]  [<ffffffff8142cf36>] ? debug_object_activate+0xb6/0x1e0
[  231.114468]  [<ffffffff8142d5c1>] ? debug_object_active_state+0x91/0x150
[  231.114478]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  231.114488]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  231.114495]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  231.114510]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  231.114522]  [<ffffffffa002f674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  231.114534]  [<ffffffffa002f8ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  231.114543]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  231.114552]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  231.114562]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  231.114570]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  231.114579]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  231.114587]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  231.114596]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  231.114604]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  231.114611]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  231.114619]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76

...
etc.
etc.
etc.

This looks the same as at the beginning, as if you were dealing with an entirely different problem, hombre.

maintainer
#16 lore raw

Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.

From: poma <[email protected]>
Date: Wed, 9 Sep 2015 20:34:36 +0200

Quoted 7 lines
[  230.110233]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  230.110242]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  230.110250]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  230.110265]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  230.110277]  [<ffffffffa002f674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  230.110289]  [<ffffffffa002f8ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  230.110299]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100

The patch in question removes this call to dma_alloc_coherent() so you aren't running a kernel which actually has the patch applied.

author
#17 lore raw

Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.

Quoted 11 lines · David Miller

From: poma <[email protected]>
Date: Wed, 9 Sep 2015 20:34:36 +0200

Quoted 7 lines
[  230.110233]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  230.110242]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  230.110250]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  230.110265]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  230.110277]  [<ffffffffa002f674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  230.110289]  [<ffffffffa002f8ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  230.110299]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
Quoted 3 lines

The patch in question removes this call to dma_alloc_coherent() so you aren't running a kernel which actually has the patch applied.

Here is the obvious example - in use is what is patched:

$ grep MODULE_DESCRIPTION rpmbuild/BUILD/kernel-4.2.fc24/linux-4.3.0-0.rc0.git9.1.fc24.x86_64/drivers/net/ethernet/realtek/r8169.c
MODULE_DESCRIPTION("RealTek RTL-8169 Gigabit Ethernet driver patched with [PATCH v2] r8169: Fix sleeping function called during get_stats64");
$ modinfo -n r8169; modinfo -d r8169
/lib/modules/4.3.0-0.rc0.git9.1.fc24.x86_64/updates/r8169.ko
RealTek RTL-8169 Gigabit Ethernet driver patched with [PATCH v2] r8169: Fix sleeping function called during get_stats64
#18 lore raw

Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.

In reply to poma
Quoted 7 lines · poma
Quoted 6 lines · Corinna Vinschen
Quoted 5 lines · Corinna Vinschen
Quoted 3 lines · poma

[PATCH net] r8169: Fix sleeping function called during get_stats64
http://marc.info/?l=linux-netdev&m=144180123410135&q=raw
- the noise is still present

Quoted 8 lines
Quoted 4 lines
Quoted 4 lines

Are you really sure? The entire dma_alloc/dma_free stuff has been moved away. There's no locking or sleeping involved different from what was there before my original patch when calling .ndo_get_stats64.

It is literally the kernel ring buffer output,
so I really can not understand your question.

I'm asking because I'm wondering if you're actually testing the right r8169.ko module, the one with the patch applied. See below.

Quoted 10 lines
Quoted 1 line
Quoted 1 line

How would I be able to reproduce this on the command line?

This I have already written, here's once more for you, <quote>
This noise is induced via userspace, xfce4-netload-plugin,
http://goodies.xfce.org/projects/panel-plugins/xfce4-netload-plugin

 $ grep -i device .config/xfce4/panel/netload-16.rc
 Network_Device=enp3s0
Quoted 6 lines
 $ ethtool -i enp3s0 | grep driver
 driver: r8169
</quote>

Therefore, to try to reproduce this issue, 'xfce4-netload-plugin' must run within 'xfce4-panel', moreover 'xfce4-netload-plugin' must be configured to monitor affected network interface.

I'lll see if I can try this tomorrow.

Quoted 1 line

No command line this time, hombre.

If it has to be spanish, I'd prefer mujer, but whatever.

Quoted 5 lines
Quoted 2 lines

It would also be interesting to see the "noise" as it looks after applying the above patch...

The "noise" after applying "r8169: Fix sleeping function called during get_stats64":
[...]

Quoted 14 lines
[  215.049067] Call Trace:
[  215.049078]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  215.049090]  [<ffffffff81100d77>] lockdep_rcu_suspicious+0xd7/0x110
[  215.049099]  [<ffffffff810d5377>] ___might_sleep+0xa7/0x230
[  215.049107]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  215.049121]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  215.049130]  [<ffffffff81121b0d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[  215.049141]  [<ffffffff81024b29>] ? sched_clock+0x9/0x10
[  215.049149]  [<ffffffff810e258c>] ? local_clock+0x1c/0x20
[  215.049157]  [<ffffffff81121b0d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[  215.049168]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  215.049178]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  215.049193]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  215.049208]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]

This is very certainly not the r8169.ko driver with my patch applied. There is no rtl8169_map_counters function anymore, just as with Francois' patch. I'm not sure what you're doing wrong there, but this stack dump definitely cannot be produced with either Francois or my patch, so you're apparently testing the unpatched upstream driver all the time.

Quoted 7 lines

...
etc.
etc.
etc.

This looks the same as at the beginning, as if you were dealing with an entirely different problem, hombre.

No, sorry, it's you running the wrong kernel module, and a single occurence of the stack dump would have been sufficient, but thanks all the same.

Corinna

author
#19 lore raw

Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.

Quoted 14 lines · Corinna Vinschen
Quoted 13 lines · poma
Quoted 10 lines · Corinna Vinschen
Quoted 9 lines · Corinna Vinschen
Quoted 3 lines · poma

[PATCH net] r8169: Fix sleeping function called during get_stats64
http://marc.info/?l=linux-netdev&m=144180123410135&q=raw
- the noise is still present

Are you really sure? The entire dma_alloc/dma_free stuff has been moved away. There's no locking or sleeping involved different from what was there before my original patch when calling .ndo_get_stats64.

Quoted 6 lines
Quoted 2 lines

It is literally the kernel ring buffer output,
so I really can not understand your question.

I'm asking because I'm wondering if you're actually testing the right r8169.ko module, the one with the patch applied. See below.

I already explained the patching/building procedure
http://www.spinics.net/lists/netdev/msg342268.html

Quoted 10 lines
Quoted 10 lines
Quoted 1 line
Quoted 1 line

How would I be able to reproduce this on the command line?

This I have already written, here's once more for you, <quote>
This noise is induced via userspace, xfce4-netload-plugin,
http://goodies.xfce.org/projects/panel-plugins/xfce4-netload-plugin

 $ grep -i device .config/xfce4/panel/netload-16.rc
 Network_Device=enp3s0
Quoted 11 lines
Quoted 6 lines
 $ ethtool -i enp3s0 | grep driver
 driver: r8169
</quote>

Therefore, to try to reproduce this issue, 'xfce4-netload-plugin' must run within 'xfce4-panel', moreover 'xfce4-netload-plugin' must be configured to monitor affected network interface.

I'lll see if I can try this tomorrow.

Quoted 1 line

No command line this time, hombre.

This is how I managed to reproduce the noise within the CLI - via 'ifconfig', no need to pre-configure interface:

# ifconfig enp3s0 up
# dmesg 
[  390.128904] r8169 0000:03:00.0 enp3s0: link down
[  390.129669] IPv6: ADDRCONF(NETDEV_UP): enp3s0: link is not ready
# ifconfig
# dmesg
[  393.855932] ===============================
[  393.855937] [ INFO: suspicious RCU usage. ]
[  393.855945] 4.3.0-0.rc0.git9.1.fc24.x86_64 #1 Not tainted
[  393.855949] -------------------------------
[  393.855956] include/linux/rcupdate.h:579 Illegal context switch in RCU read-side critical section!
[  393.855960] 
               other info that might help us debug this:
[  393.855970] 
               rcu_scheduler_active = 1, debug_locks = 0
[  393.855977] 2 locks held by ifconfig/2642:
[  393.855981]  #0:  (&p->lock){+.+.+.}, at: [<ffffffff8128f9ac>] seq_read+0x4c/0x3e0
[  393.856004]  #1:  (rcu_read_lock){......}, at: [<ffffffff8172a005>] dev_seq_start+0x5/0x140
[  393.856022] 
               stack backtrace:
[  393.856032] CPU: 1 PID: 2642 Comm: ifconfig Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  393.856072] Call Trace:
[  393.856084]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  393.856095]  [<ffffffff81100d77>] lockdep_rcu_suspicious+0xd7/0x110
[  393.856104]  [<ffffffff810d5377>] ___might_sleep+0xa7/0x230
[  393.856111]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  393.856120]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  393.856129]  [<ffffffff81121b0d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[  393.856139]  [<ffffffff81024b29>] ? sched_clock+0x9/0x10
[  393.856146]  [<ffffffff810e258c>] ? local_clock+0x1c/0x20
[  393.856154]  [<ffffffff81121b0d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[  393.856164]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  393.856173]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  393.856240]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  393.856256]  [<ffffffffa003525e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  393.856278]  [<ffffffffa0036674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  393.856291]  [<ffffffffa00368ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  393.856307]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  393.856316]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  393.856327]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  393.856334]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  393.856345]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  393.856358]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  393.856368]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  393.856376]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  393.856384]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  393.856393]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76
[  393.856402] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[  393.856408] in_atomic(): 1, irqs_disabled(): 0, pid: 2642, name: ifconfig
[  393.856412] INFO: lockdep is turned off.
[  393.856420] CPU: 1 PID: 2642 Comm: ifconfig Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  393.856467] Call Trace:
[  393.856476]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  393.856484]  [<ffffffff810d5449>] ___might_sleep+0x179/0x230
[  393.856493]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  393.856501]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  393.856513]  [<ffffffff81121b0d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[  393.856522]  [<ffffffff81024b29>] ? sched_clock+0x9/0x10
[  393.856529]  [<ffffffff810e258c>] ? local_clock+0x1c/0x20
[  393.856537]  [<ffffffff81121b0d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[  393.856547]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  393.856556]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  393.856564]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  393.856577]  [<ffffffffa003525e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  393.856594]  [<ffffffffa0036674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  393.856606]  [<ffffffffa00368ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  393.856615]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  393.856623]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  393.856635]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  393.856643]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  393.856657]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  393.856665]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  393.856673]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  393.856681]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  393.856688]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  393.856697]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76
[  426.311398] BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
[  426.311412] in_atomic(): 1, irqs_disabled(): 0, pid: 2651, name: ifconfig
[  426.311417] INFO: lockdep is turned off.
[  426.311426] CPU: 3 PID: 2651 Comm: ifconfig Not tainted 4.3.0-0.rc0.git9.1.fc24.x86_64 #1
...
[  426.311470] Call Trace:
[  426.311486]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  426.311497]  [<ffffffff810d5449>] ___might_sleep+0x179/0x230
[  426.311505]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  426.311514]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  426.311524]  [<ffffffff8142cf36>] ? debug_object_activate+0xb6/0x1e0
[  426.311534]  [<ffffffff8142d5c1>] ? debug_object_active_state+0x91/0x150
[  426.311545]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  426.311555]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  426.311562]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  426.311577]  [<ffffffffa003525e>] rtl8169_map_counters+0x3e/0x70 [r8169]
[  426.311589]  [<ffffffffa0036674>] rtl8169_update_counters+0x64/0x140 [r8169]
[  426.311601]  [<ffffffffa00368ff>] rtl8169_get_stats64+0xbf/0x130 [r8169]
[  426.311612]  [<ffffffff81700b74>] dev_get_stats+0x54/0x100
[  426.311620]  [<ffffffff817299a7>] dev_seq_printf_stats+0x37/0x120
[  426.311630]  [<ffffffff81729aa4>] dev_seq_show+0x14/0x30
[  426.311638]  [<ffffffff8128fc5a>] seq_read+0x2fa/0x3e0
[  426.311648]  [<ffffffff812df0c2>] proc_reg_read+0x42/0x70
[  426.311655]  [<ffffffff812663c7>] __vfs_read+0x37/0x100
[  426.311664]  [<ffffffff81388743>] ? security_file_permission+0xa3/0xc0
[  426.311672]  [<ffffffff81266d46>] vfs_read+0x86/0x130
[  426.311679]  [<ffffffff81267ac8>] SyS_read+0x58/0xd0
[  426.311687]  [<ffffffff81855372>] entry_SYSCALL_64_fastpath+0x12/0x76
Quoted 2 lines

If it has to be spanish, I'd prefer mujer, but whatever.

But whatever.

Quoted 20 lines
Quoted 5 lines
Quoted 2 lines

It would also be interesting to see the "noise" as it looks after applying the above patch...

The "noise" after applying "r8169: Fix sleeping function called during get_stats64":
[...]

Quoted 14 lines
[  215.049067] Call Trace:
[  215.049078]  [<ffffffff8184b6c1>] dump_stack+0x4b/0x63
[  215.049090]  [<ffffffff81100d77>] lockdep_rcu_suspicious+0xd7/0x110
[  215.049099]  [<ffffffff810d5377>] ___might_sleep+0xa7/0x230
[  215.049107]  [<ffffffff810d5549>] __might_sleep+0x49/0x80
[  215.049121]  [<ffffffff811e575e>] __alloc_pages_nodemask+0x2fe/0xb90
[  215.049130]  [<ffffffff81121b0d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[  215.049141]  [<ffffffff81024b29>] ? sched_clock+0x9/0x10
[  215.049149]  [<ffffffff810e258c>] ? local_clock+0x1c/0x20
[  215.049157]  [<ffffffff81121b0d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[  215.049168]  [<ffffffff810218e6>] dma_generic_alloc_coherent+0x96/0x130
[  215.049178]  [<ffffffff81069865>] x86_swiotlb_alloc_coherent+0x25/0x50
[  215.049193]  [<ffffffff810215fd>] dma_alloc_attrs+0x6d/0xe0
[  215.049208]  [<ffffffffa002e25e>] rtl8169_map_counters+0x3e/0x70 [r8169]
Quoted 7 lines

This is very certainly not the r8169.ko driver with my patch applied. There is no rtl8169_map_counters function anymore, just as with Francois' patch. I'm not sure what you're doing wrong there, but this stack dump definitely cannot be produced with either Francois or my patch, so you're apparently testing the unpatched upstream driver all the time.

$ modinfo -n r8169
/lib/modules/4.3.0-0.rc0.git9.1.fc24.x86_64/updates/r8169.ko
This one -patched- is used, right?
$ objdump -DS $(modinfo -n r8169) | grep rtl8169_map_counters ; echo $?
1

The one in "/lib/modules/$(uname -r)/updates/ has priority, right?

# unxz /lib/modules/4.3.0-0.rc0.git9.1.fc24.x86_64/kernel/drivers/net/ethernet/realtek/r8169.ko.xz
$ objdump -DS /lib/modules/4.3.0-0.rc0.git9.1.fc24.x86_64/kernel/drivers/net/ethernet/realtek/r8169.ko | grep rtl8169_map_counters 
0000000000002220 <rtl8169_map_counters>:
    2220:	e8 00 00 00 00       	callq  2225 <rtl8169_map_counters+0x5>
    2259:	e8 00 00 00 00       	callq  225e <rtl8169_map_counters+0x3e>
    2261:	74 19                	je     227c <rtl8169_map_counters+0x5c>
    366f:	e8 ac eb ff ff       	callq  2220 <rtl8169_map_counters>
    b44f:	e8 cc 6d ff ff       	callq  2220 <rtl8169_map_counters>

And this is the original, which is not used, right?

Quoted 8 lines
Quoted 7 lines

...
etc.
etc.
etc.

This looks the same as at the beginning, as if you were dealing with an entirely different problem, hombre.

Quoted 7 lines

No, sorry, it's you running the wrong kernel module, and a single occurence of the stack dump would have been sufficient, but thanks all the same.

Corinna

If you say so, hombre.

author
#20 lore raw

Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.

[PATCH v2] r8169: Fix sleeping function called during get_stats64
http://www.spinics.net/lists/netdev/msg342490.html
- the noise is still present

Corinna, care to share kernel-core & kernel-modules you are testing with, to unravel the Gordian Knot?

#21 lore raw

Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.

Quoted 6 lines · poma

[PATCH v2] r8169: Fix sleeping function called during get_stats64
http://www.spinics.net/lists/netdev/msg342490.html
- the noise is still present

Corinna, care to share kernel-core & kernel-modules you are testing with, to unravel the Gordian Knot?

Somehow your initrd seem to refuse to pick up the new kernel module.

Here's basically what I do:

- Test system is RHEL7

- git clone git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git

- edit drivers/net/ethernet/realtek/r8169.c

- make config; make -j42

- make install_modules && make install

- init 6

Alternatively, if you already did the above once:

- git am <from http://www.spinics.net/lists/netdev/msg342490.html>

- make modules

- cp drivers/net/ethernet/realtek/r8169.ko \
/lib/modules/4.2.0+/kernel/drivers/net/ethernet/realtek/r8169.c

- dracut -f --kver '4.2.0+'

- init 6

Corinna

author Tested-by
#22 lore raw

Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.

Quoted 33 lines · Corinna Vinschen
Quoted 6 lines · poma

[PATCH v2] r8169: Fix sleeping function called during get_stats64
http://www.spinics.net/lists/netdev/msg342490.html
- the noise is still present

Corinna, care to share kernel-core & kernel-modules you are testing with, to unravel the Gordian Knot?

Somehow your initrd seem to refuse to pick up the new kernel module.

Here's basically what I do:

- Test system is RHEL7

- git clone git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git

- edit drivers/net/ethernet/realtek/r8169.c

- make config; make -j42

- make install_modules && make install

- init 6

Alternatively, if you already did the above once:

- git am <from http://www.spinics.net/lists/netdev/msg342490.html>

- make modules

- cp drivers/net/ethernet/realtek/r8169.ko \
/lib/modules/4.2.0+/kernel/drivers/net/ethernet/realtek/r8169.c

Quoted 7 lines

- dracut -f --kver '4.2.0+'

- init 6

Corinna

[PATCH v3] r8169: Fix sleeping function called during get_stats64, v2
http://marc.info/?l=linux-netdev&m=144187488130444&q=raw

# dracut --omit-drivers r8169 -f --kver 4.3.0-0.rc0.git11.1.fc24.x86_64

- the noise is gone

#23 lore raw

Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.

Quoted 12 lines · poma
Quoted 10 lines · Corinna Vinschen
Quoted 6 lines · poma

[PATCH v2] r8169: Fix sleeping function called during get_stats64
http://www.spinics.net/lists/netdev/msg342490.html
- the noise is still present

Corinna, care to share kernel-core & kernel-modules you are testing with, to unravel the Gordian Knot?

Somehow your initrd seem to refuse to pick up the new kernel module. [...etc...]

Quoted 8 lines

[PATCH v3] r8169: Fix sleeping function called during get_stats64, v2
http://marc.info/?l=linux-netdev&m=144187488130444&q=raw

# dracut --omit-drivers r8169 -f --kver 4.3.0-0.rc0.git11.1.fc24.x86_64

- the noise is gone

Thanks for testing!

Corinna