Skip to content
  • Zoltan Kiss's avatar
    2b2b614d
    tracing/events: Add bounce tracing to swiotbl · 2b2b614d
    Zoltan Kiss authored
    
    
    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: default avatarZoltan Kiss <zoltan.kiss@citrix.com>
    [v1: Don't print 'swiotlb_force=X', just print swiotlb_force if it is enabled]
    Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    2b2b614d
    tracing/events: Add bounce tracing to swiotbl
    Zoltan Kiss authored
    
    
    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: default avatarZoltan Kiss <zoltan.kiss@citrix.com>
    [v1: Don't print 'swiotlb_force=X', just print swiotlb_force if it is enabled]
    Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Loading