diff options
author | Magnus Karlsson <magnus.karlsson@intel.com> | 2019-12-19 13:39:22 +0100 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2019-12-21 01:00:09 +0100 |
commit | d7012f05e3ca5aba92770c370895092d4882e8c2 (patch) | |
tree | 864e1def2e5a94e91cd47aa58ac4672223fa3683 /.clang-format | |
parent | xsk: Simplify detection of empty and full rings (diff) | |
download | linux-d7012f05e3ca5aba92770c370895092d4882e8c2.tar.xz linux-d7012f05e3ca5aba92770c370895092d4882e8c2.zip |
xsk: Consolidate to one single cached producer pointer
Currently, the xsk ring code has two cached producer pointers:
prod_head and prod_tail. This patch consolidates these two into a
single one called cached_prod to make the code simpler and easier to
maintain. This will be in line with the user space part of the the
code found in libbpf, that only uses a single cached pointer.
The Rx path only uses the two top level functions
xskq_produce_batch_desc and xskq_produce_flush_desc and they both use
prod_head and never prod_tail. So just move them over to
cached_prod.
The Tx XDP_DRV path uses xskq_produce_addr_lazy and
xskq_produce_flush_addr_n and unnecessarily operates on both prod_tail
and prod_head, so move them over to just use cached_prod by skipping
the intermediate step of updating prod_tail.
The Tx path in XDP_SKB mode uses xskq_reserve_addr and
xskq_produce_addr. They currently use both cached pointers, but we can
operate on the global producer pointer in xskq_produce_addr since it
has to be updated anyway, thus eliminating the use of both cached
pointers. We can also remove the xskq_nb_free in xskq_produce_addr
since it is already called in xskq_reserve_addr. No need to do it
twice.
When there is only one cached producer pointer, we can also simplify
xskq_nb_free by removing one argument.
Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/1576759171-28550-4-git-send-email-magnus.karlsson@intel.com
Diffstat (limited to '.clang-format')
0 files changed, 0 insertions, 0 deletions