• Magnus Karlsson's avatar
    xsk: Eliminate the lazy update threshold · 484b1653
    Magnus Karlsson authored
    The lazy update threshold was introduced to keep the producer and
    consumer some distance apart in the completion ring. This was
    important in the beginning of the development of AF_XDP as the ring
    format as that point in time was very sensitive to the producer and
    consumer being on the same cache line. This is not the case
    anymore as the current ring format does not degrade in any noticeable
    way when this happens. Moreover, this threshold makes it impossible
    to run the system with rings that have less than 128 entries.
    
    So let us remove this threshold and just get one entry from the ring
    as in all other functions. This will enable us to remove this function
    in a later commit. Note that xskq_produce_addr_lazy followed by
    xskq_produce_flush_addr_n are still not the same function as
    xskq_produce_addr() as it operates on another cached pointer.
    Signed-off-by: default avatarMagnus Karlsson <magnus.karlsson@intel.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/1576759171-28550-2-git-send-email-magnus.karlsson@intel.com
    484b1653
xsk_queue.h 9.41 KB