• Zoltan Kiss's avatar
    xen-netback: Grant copy the header instead of map and memcpy · bdab8275
    Zoltan Kiss authored
    An old inefficiency of the TX path that we are grant mapping the first slot,
    and then copy the header part to the linear area. Instead, doing a grant copy
    for that header straight on is more reasonable. Especially because there are
    ongoing efforts to make Xen avoiding TLB flush after unmap when the page were
    not touched in Dom0. In the original way the memcpy ruined that.
    The key changes:
    - the vif has a tx_copy_ops array again
    - xenvif_tx_build_gops sets up the grant copy operations
    - we don't have to figure out whether the header and first frag are on the same
      grant mapped page or not
    Note, we only grant copy PKT_PROT_LEN bytes from the first slot, the rest (if
    any) will be on the first frag, which is grant mapped. If the first slot is
    smaller than PKT_PROT_LEN, then we grant copy that, and later __pskb_pull_tail
    will pull more from the frags (if any)
    Signed-off-by: default avatarZoltan Kiss <zoltan.kiss@citrix.com>
    Reviewed-by: default avatarPaul Durrant <paul.durrant@citrix.com>
    Acked-by: default avatarIan Campbell <ian.campbell@citrix.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    bdab8275
netback.c 49.5 KB