2012-10-14 17:02:35

by Fengguang Wu

[permalink] [raw]
Subject: WARNING: at lib/dma-debug.c:948 check_unmap()

Hi Shuah,

FYI, your debug commit

commit 224d4b5563b005836628b1c02ebe374684df118f
Author: Shuah Khan <[email protected]>
Date: Fri Oct 12 15:23:05 2012 +1100

dma-debug: new interfaces to debug dma mapping errors

triggers the below warning. Hopefully you know better than me the real
issue and relevant developers to CC.

[ 12.756348] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 12.763446] ------------[ cut here ]------------
[ 12.764380] WARNING: at /c/kernel-tests/src/stable/lib/dma-debug.c:948 check_unmap+0x645/0x7bd()
[ 12.764380] Hardware name: Bochs
[ 12.764380] Sending DHCP requests .
[ 12.764380] e1000 0000:00:03.0: DMA-API: device driver failed to check map error[device address=0x00000000199140fa] [size=90 bytes] [mapped as single]
[ 12.764380] Modules linked in:
[ 12.764380] Pid: 0, comm: swapper/1 Not tainted 3.6.0-next-20121012 #1039
[ 12.764380] Call Trace:
[ 12.764380] <IRQ> [<ffffffff8145b79d>] ? check_unmap+0x645/0x7bd
[ 12.764380] [<ffffffff8106c814>] warn_slowpath_common+0x83/0x9c
[ 12.764380] [<ffffffff8106c8d0>] warn_slowpath_fmt+0x46/0x48
[ 12.764380] [<ffffffff8145b79d>] check_unmap+0x645/0x7bd
[ 12.764380] [<ffffffff8105e19b>] ? kvm_clock_read+0x2e/0x36
[ 12.764380] [<ffffffff8145b9da>] debug_dma_unmap_page+0x5b/0x65
[ 12.764380] [<ffffffff8105ecb9>] ? pvclock_clocksource_read+0x4d/0xc3
[ 12.764380] [<ffffffff810a13df>] ? sched_clock_local+0x12/0x75
[ 12.764380] [<ffffffff81721aee>] e1000_unmap_and_free_tx_resource.isra.27+0xc0/0xed
[ 12.764380] [<ffffffff81721bea>] e1000_clean+0xcf/0x73e
[ 12.764380] [<ffffffff8105ecb9>] ? pvclock_clocksource_read+0x4d/0xc3
[ 12.764380] [<ffffffff818fe001>] ? net_rx_action+0x1cc/0x244
[ 12.764380] [<ffffffff818fdefa>] net_rx_action+0xc5/0x244
[ 12.764380] [<ffffffff810740c8>] __do_softirq+0xf6/0x231
[ 12.764380] [<ffffffff81a5f151>] ? _raw_spin_unlock+0x29/0x3d
[ 12.764380] [<ffffffff81a67b3c>] call_softirq+0x1c/0x30
[ 12.764380] [<ffffffff8103c108>] do_softirq+0x4a/0xa6
[ 12.764380] [<ffffffff81074331>] irq_exit+0x51/0xbc
[ 12.764380] [<ffffffff81a6829d>] do_IRQ+0x9d/0xb4
[ 12.764380] [<ffffffff81a5f672>] common_interrupt+0x72/0x72
[ 12.764380] <EOI> [<ffffffff810a15c8>] ? local_clock+0x1d/0x5a
[ 12.764380] [<ffffffff8105e364>] ? native_safe_halt+0x6/0x8
[ 12.764380] [<ffffffff810c2431>] ? trace_hardirqs_on+0xd/0xf
[ 12.764380] [<ffffffff8104177c>] default_idle+0xc7/0x218
[ 12.764380] [<ffffffff810421e3>] cpu_idle+0x9f/0xf9
[ 12.764380] [<ffffffff81a3f2cb>] start_secondary+0x238/0x240

Thanks,
Fengguang


Attachments:
(No filename) (2.56 kB)
dmesg-kvm-bens-3404-2012-10-12-14-07-14-3.6.0-next-20121012-1039 (54.45 kB)
config-3.6.0-next-20121012 (87.20 kB)
Download all attachments

2012-10-15 16:06:19

by Shuah Khan

[permalink] [raw]
Subject: Re: WARNING: at lib/dma-debug.c:948 check_unmap()

On Mon, 2012-10-15 at 01:02 +0800, Fengguang Wu wrote:
> Hi Shuah,
>
> FYI, your debug commit
>
> commit 224d4b5563b005836628b1c02ebe374684df118f
> Author: Shuah Khan <[email protected]>
> Date: Fri Oct 12 15:23:05 2012 +1100
>
> dma-debug: new interfaces to debug dma mapping errors
>
> triggers the below warning. Hopefully you know better than me the real
> issue and relevant developers to CC.
>

This warning indicates that the driver failed to check dma mapping error
on a buffer returned by dma_map_single() or dma_map_page() call. Looking
at the the area where mapping is done, it appears it does call
dma_mapping_error(). It does allocate several buffers in a loop, so it
not obvious to me why the warning is showing up. I will follow-up on
this to make sure it is not a false alarm, before I get the driver team
involved. Thanks for reporting it.

-- Shuah