netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
@ 2015-09-04 14:05 poma
  2015-09-04 18:36 ` David Miller
  0 siblings, 1 reply; 24+ messages in thread
From: poma @ 2015-09-04 14:05 UTC (permalink / raw)
  To: netdev@vger.kernel.org

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

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

* Re: BUG: sleeping function called from invalid context at mm/page_alloc.c:3186
  2015-09-04 14:05 BUG: sleeping function called from invalid context at mm/page_alloc.c:3186 poma
@ 2015-09-04 18:36 ` David Miller
  2015-09-04 20:59   ` [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval Francois Romieu
  0 siblings, 1 reply; 24+ messages in thread
From: David Miller @ 2015-09-04 18:36 UTC (permalink / raw)
  To: pomidorabelisima; +Cc: netdev, vinschen

From: poma <pomidorabelisima@gmail.com>
Date: Fri, 4 Sep 2015 16:05:12 +0200

> 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

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

Thanks.

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

* [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-04 18:36 ` David Miller
@ 2015-09-04 20:59   ` Francois Romieu
  2015-09-04 22:22     ` David Miller
  2015-09-06 10:19     ` Corinna Vinschen
  0 siblings, 2 replies; 24+ messages in thread
From: Francois Romieu @ 2015-09-04 20:59 UTC (permalink / raw)
  To: David Miller; +Cc: pomidorabelisima, netdev, vinschen

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")
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Corinna Vinschen <vinschen@redhat.com>
---

 Applies against davem's net as of f1ccbfce2fc787981d1182d09c1f6b67766783a8.

 drivers/net/ethernet/realtek/r8169.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index 24dcbe6..56829ea 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -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);
-- 
2.4.3

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-04 20:59   ` [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval Francois Romieu
@ 2015-09-04 22:22     ` David Miller
  2015-09-04 23:11       ` Francois Romieu
  2015-09-06 10:19     ` Corinna Vinschen
  1 sibling, 1 reply; 24+ messages in thread
From: David Miller @ 2015-09-04 22:22 UTC (permalink / raw)
  To: romieu; +Cc: pomidorabelisima, netdev, vinschen

From: Francois Romieu <romieu@fr.zoreil.com>
Date: Fri, 4 Sep 2015 22:59:04 +0200

> 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")
> Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
> Cc: Corinna Vinschen <vinschen@redhat.com>

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.

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-04 22:22     ` David Miller
@ 2015-09-04 23:11       ` Francois Romieu
  2015-09-04 23:15         ` David Miller
  0 siblings, 1 reply; 24+ messages in thread
From: Francois Romieu @ 2015-09-04 23:11 UTC (permalink / raw)
  To: David Miller; +Cc: pomidorabelisima, netdev, vinschen

David Miller <davem@davemloft.net> :
[...]
> 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 ?

-- 
Ueimor

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-04 23:11       ` Francois Romieu
@ 2015-09-04 23:15         ` David Miller
  0 siblings, 0 replies; 24+ messages in thread
From: David Miller @ 2015-09-04 23:15 UTC (permalink / raw)
  To: romieu; +Cc: pomidorabelisima, netdev, vinschen

From: Francois Romieu <romieu@fr.zoreil.com>
Date: Sat, 5 Sep 2015 01:11:05 +0200

> David Miller <davem@davemloft.net> :
> [...]
>> 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.

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-04 20:59   ` [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval Francois Romieu
  2015-09-04 22:22     ` David Miller
@ 2015-09-06 10:19     ` Corinna Vinschen
  2015-09-06 20:20       ` Francois Romieu
  2015-09-07  7:13       ` poma
  1 sibling, 2 replies; 24+ messages in thread
From: Corinna Vinschen @ 2015-09-06 10:19 UTC (permalink / raw)
  To: netdev; +Cc: David Miller, pomidorabelisima, Francois Romieu

[-- Attachment #1: Type: text/plain, Size: 1773 bytes --]

On Sep  4 22:59, Francois Romieu wrote:
> 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")
> Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
> Cc: Corinna Vinschen <vinschen@redhat.com>
> ---
> 
>  Applies against davem's net as of f1ccbfce2fc787981d1182d09c1f6b67766783a8.
> 
>  drivers/net/ethernet/realtek/r8169.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
> index 24dcbe6..56829ea 100644
> --- a/drivers/net/ethernet/realtek/r8169.c
> +++ b/drivers/net/ethernet/realtek/r8169.c
> @@ -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);
> -- 
> 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

[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-06 10:19     ` Corinna Vinschen
@ 2015-09-06 20:20       ` Francois Romieu
  2015-09-07  7:13       ` poma
  1 sibling, 0 replies; 24+ messages in thread
From: Francois Romieu @ 2015-09-06 20:20 UTC (permalink / raw)
  To: netdev, David Miller, pomidorabelisima

Corinna Vinschen <vinschen@redhat.com> :
[...]
> - 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.

-- 
Ueimor

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-06 10:19     ` Corinna Vinschen
  2015-09-06 20:20       ` Francois Romieu
@ 2015-09-07  7:13       ` poma
  2015-09-07  8:50         ` Corinna Vinschen
  1 sibling, 1 reply; 24+ messages in thread
From: poma @ 2015-09-07  7:13 UTC (permalink / raw)
  To: netdev, David Miller, Francois Romieu, Mike Massonnet
  Cc: Benedikt Meurer, Bernhard Walle, Hendrik Scholz, Florian Rivoal

On 06.09.2015 12:19, Corinna Vinschen wrote:
> On Sep  4 22:59, Francois Romieu wrote:
>> 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")
>> Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
>> Cc: Corinna Vinschen <vinschen@redhat.com>
>> ---
>>
>>  Applies against davem's net as of f1ccbfce2fc787981d1182d09c1f6b67766783a8.
>>
>>  drivers/net/ethernet/realtek/r8169.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
>> index 24dcbe6..56829ea 100644
>> --- a/drivers/net/ethernet/realtek/r8169.c
>> +++ b/drivers/net/ethernet/realtek/r8169.c
>> @@ -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);
>> -- 
>> 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
> 

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
...

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-07  7:13       ` poma
@ 2015-09-07  8:50         ` Corinna Vinschen
  2015-09-07 14:43           ` poma
  0 siblings, 1 reply; 24+ messages in thread
From: Corinna Vinschen @ 2015-09-07  8:50 UTC (permalink / raw)
  To: poma
  Cc: netdev, David Miller, Francois Romieu, Mike Massonnet,
	Benedikt Meurer, Bernhard Walle, Hendrik Scholz, Florian Rivoal

[-- Attachment #1: Type: text/plain, Size: 2512 bytes --]

On Sep  7 09:13, poma wrote:
> On 06.09.2015 12:19, Corinna Vinschen wrote:
> > On Sep  4 22:59, Francois Romieu wrote:
> >>  Applies against davem's net as of f1ccbfce2fc787981d1182d09c1f6b67766783a8.
> >>
> >>  drivers/net/ethernet/realtek/r8169.c | 2 +-
> >>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
> >> index 24dcbe6..56829ea 100644
> >> --- a/drivers/net/ethernet/realtek/r8169.c
> >> +++ b/drivers/net/ethernet/realtek/r8169.c
> >> @@ -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);
> >> -- 
> >> 2.4.3
> > [...]
> 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...

> [   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]

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


Corinna

[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-07  8:50         ` Corinna Vinschen
@ 2015-09-07 14:43           ` poma
  2015-09-08  6:36             ` poma
  0 siblings, 1 reply; 24+ messages in thread
From: poma @ 2015-09-07 14:43 UTC (permalink / raw)
  To: netdev, David Miller, Francois Romieu, Mike Massonnet,
	Benedikt Meurer, Bernhard Walle, Hendrik Scholz, Florian Rivoal

On 07.09.2015 10:50, Corinna Vinschen wrote:
> On Sep  7 09:13, poma wrote:
>> On 06.09.2015 12:19, Corinna Vinschen wrote:
>>> On Sep  4 22:59, Francois Romieu wrote:
>>>>  Applies against davem's net as of f1ccbfce2fc787981d1182d09c1f6b67766783a8.
>>>>
>>>>  drivers/net/ethernet/realtek/r8169.c | 2 +-
>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
>>>> index 24dcbe6..56829ea 100644
>>>> --- a/drivers/net/ethernet/realtek/r8169.c
>>>> +++ b/drivers/net/ethernet/realtek/r8169.c
>>>> @@ -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);
>>>> -- 
>>>> 2.4.3
>>> [...]
>> 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...
> 
>> [   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]
> 
> ...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

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-07 14:43           ` poma
@ 2015-09-08  6:36             ` poma
  2015-09-09 15:24               ` poma
  0 siblings, 1 reply; 24+ messages in thread
From: poma @ 2015-09-08  6:36 UTC (permalink / raw)
  To: netdev, David Miller, Francois Romieu, Mike Massonnet,
	Benedikt Meurer, Bernhard Walle, Hendrik Scholz, Florian Rivoal

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

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-08  6:36             ` poma
@ 2015-09-09 15:24               ` poma
  2015-09-09 15:54                 ` Corinna Vinschen
  0 siblings, 1 reply; 24+ messages in thread
From: poma @ 2015-09-09 15:24 UTC (permalink / raw)
  To: netdev, David Miller, Francois Romieu, Mike Massonnet,
	Benedikt Meurer, Bernhard Walle, Hendrik Scholz, Florian Rivoal

[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

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-09 15:24               ` poma
@ 2015-09-09 15:54                 ` Corinna Vinschen
  2015-09-09 15:55                   ` Corinna Vinschen
  0 siblings, 1 reply; 24+ messages in thread
From: Corinna Vinschen @ 2015-09-09 15:54 UTC (permalink / raw)
  To: poma
  Cc: netdev, David Miller, Francois Romieu, Mike Massonnet,
	Benedikt Meurer, Bernhard Walle, Hendrik Scholz, Florian Rivoal

[-- Attachment #1: Type: text/plain, Size: 465 bytes --]

On Sep  9 17:24, poma wrote:
> [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

[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-09 15:54                 ` Corinna Vinschen
@ 2015-09-09 15:55                   ` Corinna Vinschen
  2015-09-09 18:34                     ` poma
  0 siblings, 1 reply; 24+ messages in thread
From: Corinna Vinschen @ 2015-09-09 15:55 UTC (permalink / raw)
  To: poma, netdev, David Miller, Francois Romieu, Mike Massonnet,
	Benedikt Meurer, Bernhard Walle, Hendrik Scholz, Florian Rivoal

[-- Attachment #1: Type: text/plain, Size: 638 bytes --]

On Sep  9 17:54, Corinna Vinschen wrote:
> On Sep  9 17:24, poma wrote:
> > [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

[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-09 15:55                   ` Corinna Vinschen
@ 2015-09-09 18:34                     ` poma
  2015-09-09 19:04                       ` David Miller
  2015-09-09 19:08                       ` Corinna Vinschen
  0 siblings, 2 replies; 24+ messages in thread
From: poma @ 2015-09-09 18:34 UTC (permalink / raw)
  To: netdev, David Miller, Francois Romieu, Mike Massonnet,
	Benedikt Meurer, Bernhard Walle, Hendrik Scholz, Florian Rivoal

On 09/09/2015 05:55 PM, Corinna Vinschen wrote:
> On Sep  9 17:54, Corinna Vinschen wrote:
>> On Sep  9 17:24, poma wrote:
>>> [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.


>> 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


> 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.

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-09 18:34                     ` poma
@ 2015-09-09 19:04                       ` David Miller
  2015-09-10  0:38                         ` poma
  2015-09-09 19:08                       ` Corinna Vinschen
  1 sibling, 1 reply; 24+ messages in thread
From: David Miller @ 2015-09-09 19:04 UTC (permalink / raw)
  To: pomidorabelisima
  Cc: netdev, romieu, m8t, benedikt.meurer, bernhard.walle, hscholz,
	frivoal

From: poma <pomidorabelisima@gmail.com>
Date: Wed, 9 Sep 2015 20:34:36 +0200

> [  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.

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-09 18:34                     ` poma
  2015-09-09 19:04                       ` David Miller
@ 2015-09-09 19:08                       ` Corinna Vinschen
  2015-09-09 23:11                         ` poma
  1 sibling, 1 reply; 24+ messages in thread
From: Corinna Vinschen @ 2015-09-09 19:08 UTC (permalink / raw)
  To: poma
  Cc: netdev, David Miller, Francois Romieu, Mike Massonnet,
	Benedikt Meurer, Bernhard Walle, Hendrik Scholz, Florian Rivoal

[-- Attachment #1: Type: text/plain, Size: 3427 bytes --]

On Sep  9 20:34, poma wrote:
> On 09/09/2015 05:55 PM, Corinna Vinschen wrote:
> > On Sep  9 17:54, Corinna Vinschen wrote:
> >> On Sep  9 17:24, poma wrote:
> >>> [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.

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.

> >> 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.

I'lll see if I can try this tomorrow.

> No command line this time, hombre.

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

> > 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":
> [...]
> [  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.

> ...
> 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

[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-09 19:08                       ` Corinna Vinschen
@ 2015-09-09 23:11                         ` poma
  2015-09-09 23:51                           ` poma
  0 siblings, 1 reply; 24+ messages in thread
From: poma @ 2015-09-09 23:11 UTC (permalink / raw)
  To: netdev, David Miller, Francois Romieu, Mike Massonnet,
	Benedikt Meurer, Bernhard Walle, Hendrik Scholz, Florian Rivoal

On 09/09/2015 09:08 PM, Corinna Vinschen wrote:
> On Sep  9 20:34, poma wrote:
>> On 09/09/2015 05:55 PM, Corinna Vinschen wrote:
>>> On Sep  9 17:54, Corinna Vinschen wrote:
>>>> On Sep  9 17:24, poma wrote:
>>>>> [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.
> 
> 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


>>>> 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.
> 
> I'lll see if I can try this tomorrow.
> 
>> 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


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


But whatever.


>>> 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":
>> [...]
>> [  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.
> 


$ 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?


>> ...
>> 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
> 


If you say so, hombre.

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-09 23:11                         ` poma
@ 2015-09-09 23:51                           ` poma
  2015-09-10  8:47                             ` Corinna Vinschen
  0 siblings, 1 reply; 24+ messages in thread
From: poma @ 2015-09-09 23:51 UTC (permalink / raw)
  To: netdev, David Miller, Francois Romieu, Mike Massonnet,
	Benedikt Meurer, Bernhard Walle, Hendrik Scholz, Florian Rivoal,
	Corinna Vinschen

[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?

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-09 19:04                       ` David Miller
@ 2015-09-10  0:38                         ` poma
  0 siblings, 0 replies; 24+ messages in thread
From: poma @ 2015-09-10  0:38 UTC (permalink / raw)
  To: David Miller
  Cc: netdev, romieu, m8t, benedikt.meurer, bernhard.walle, hscholz,
	frivoal

On 09.09.2015 21:04, David Miller wrote:
> From: poma <pomidorabelisima@gmail.com>
> Date: Wed, 9 Sep 2015 20:34:36 +0200
> 
>> [  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.
> 

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

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-09 23:51                           ` poma
@ 2015-09-10  8:47                             ` Corinna Vinschen
  2015-09-10 12:36                               ` poma
  0 siblings, 1 reply; 24+ messages in thread
From: Corinna Vinschen @ 2015-09-10  8:47 UTC (permalink / raw)
  To: poma
  Cc: netdev, David Miller, Francois Romieu, Mike Massonnet,
	Bernhard Walle, Hendrik Scholz, Florian Rivoal

[-- Attachment #1: Type: text/plain, Size: 943 bytes --]

On Sep 10 01:51, poma wrote:
> [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

[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-10  8:47                             ` Corinna Vinschen
@ 2015-09-10 12:36                               ` poma
  2015-09-10 14:29                                 ` Corinna Vinschen
  0 siblings, 1 reply; 24+ messages in thread
From: poma @ 2015-09-10 12:36 UTC (permalink / raw)
  To: netdev, David Miller, Francois Romieu, Mike Massonnet,
	Bernhard Walle, Hendrik Scholz, Florian Rivoal, Corinna Vinschen

On 10.09.2015 10:47, Corinna Vinschen wrote:
> On Sep 10 01:51, poma wrote:
>> [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
> 


[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

Tested-by: poma <pomidorabelisima@gmail.com>

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

* Re: [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval.
  2015-09-10 12:36                               ` poma
@ 2015-09-10 14:29                                 ` Corinna Vinschen
  0 siblings, 0 replies; 24+ messages in thread
From: Corinna Vinschen @ 2015-09-10 14:29 UTC (permalink / raw)
  To: poma
  Cc: netdev, David Miller, Francois Romieu, Mike Massonnet,
	Bernhard Walle, Hendrik Scholz, Florian Rivoal

[-- Attachment #1: Type: text/plain, Size: 825 bytes --]

On Sep 10 14:36, poma wrote:
> On 10.09.2015 10:47, Corinna Vinschen wrote:
> > On Sep 10 01:51, poma wrote:
> >> [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...]
> 
> [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
> 
> Tested-by: poma <pomidorabelisima@gmail.com>

Thanks for testing!


Corinna

[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]

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

end of thread, other threads:[~2015-09-10 14:29 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-04 14:05 BUG: sleeping function called from invalid context at mm/page_alloc.c:3186 poma
2015-09-04 18:36 ` David Miller
2015-09-04 20:59   ` [PATCH net 1/1] r8169: fix sleepable allocation during netdevice stats retrieval Francois Romieu
2015-09-04 22:22     ` David Miller
2015-09-04 23:11       ` Francois Romieu
2015-09-04 23:15         ` David Miller
2015-09-06 10:19     ` Corinna Vinschen
2015-09-06 20:20       ` Francois Romieu
2015-09-07  7:13       ` poma
2015-09-07  8:50         ` Corinna Vinschen
2015-09-07 14:43           ` poma
2015-09-08  6:36             ` poma
2015-09-09 15:24               ` poma
2015-09-09 15:54                 ` Corinna Vinschen
2015-09-09 15:55                   ` Corinna Vinschen
2015-09-09 18:34                     ` poma
2015-09-09 19:04                       ` David Miller
2015-09-10  0:38                         ` poma
2015-09-09 19:08                       ` Corinna Vinschen
2015-09-09 23:11                         ` poma
2015-09-09 23:51                           ` poma
2015-09-10  8:47                             ` Corinna Vinschen
2015-09-10 12:36                               ` poma
2015-09-10 14:29                                 ` Corinna Vinschen

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).