]> Pileus Git - ~andy/linux/commit
tracing/events: Add bounce tracing to swiotbl
authorZoltan Kiss <zoltan.kiss@citrix.com>
Wed, 4 Sep 2013 20:11:05 +0000 (21:11 +0100)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Wed, 2 Oct 2013 16:53:26 +0000 (12:53 -0400)
commit2b2b614dd24e4e6474fcf2dcf69c95c908838959
tree9874899c477d237e1ec207834fc730c1151088f5
parent04b772d2b819f0dda2163e3193fa7cd447a6245c
tracing/events: Add bounce tracing to swiotbl

Ftrace is currently not able to detect when SWIOTLB has to do double buffering.
Under Xen you can only see it indirectly in function_graph, when
xen_swiotlb_map_page() doesn't stop after range_straddles_page_boundary(), but
calls spinlock functions, memcpy() and xen_phys_to_bus() as well. This patch
introduces the swiotlb:swiotlb_bounced event, which also prints out the
following informations to help you find out why bouncing happened:

dev_name: 0000:08:00.0 dma_mask=ffffffffffffffff dev_addr=9149f000 size=32768
swiotlb_force=0

If you use Xen, and (dev_addr + size + 1) > dma_mask, the buffer is out of the
device's DMA range. If swiotlb_force == 1, you should really change the kernel
parameters. Otherwise, the buffer is not contiguous in mfn space.

Signed-off-by: Zoltan Kiss <zoltan.kiss@citrix.com>
[v1: Don't print 'swiotlb_force=X', just print swiotlb_force if it is enabled]
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
drivers/xen/swiotlb-xen.c
include/trace/events/swiotlb.h [new file with mode: 0644]
lib/swiotlb.c