• Z
    tracing/events: Add bounce tracing to swiotbl · 2b2b614d
    Zoltan Kiss 提交于
    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: NZoltan Kiss <zoltan.kiss@citrix.com>
    [v1: Don't print 'swiotlb_force=X', just print swiotlb_force if it is enabled]
    Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    2b2b614d
swiotlb-xen.c 16.6 KB