From: Jakub Kicinski <kuba@kernel.org>
To: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: davem@davemloft.net, pabeni@redhat.com, edumazet@google.com,
netdev@vger.kernel.org,
Maciej Fijalkowski <maciej.fijalkowski@intel.com>,
magnus.karlsson@intel.com, aleksander.lobakin@intel.com,
ast@kernel.org, daniel@iogearbox.net, hawk@kernel.org,
john.fastabend@gmail.com, bpf@vger.kernel.org,
Shannon Nelson <shannon.nelson@amd.com>,
Chandan Kumar Rout <chandanx.rout@intel.com>
Subject: Re: [PATCH net 6/8] ice: improve updating ice_{t, r}x_ring::xsk_pool
Date: Tue, 9 Jul 2024 18:45:24 -0700 [thread overview]
Message-ID: <20240709184524.232b9f57@kernel.org> (raw)
In-Reply-To: <20240708221416.625850-7-anthony.l.nguyen@intel.com>
On Mon, 8 Jul 2024 15:14:12 -0700 Tony Nguyen wrote:
> @@ -1556,7 +1556,7 @@ int ice_napi_poll(struct napi_struct *napi, int budget)
> * comparison in the irq context instead of many inside the
> * ice_clean_rx_irq function and makes the codebase cleaner.
> */
> - cleaned = rx_ring->xsk_pool ?
> + cleaned = READ_ONCE(rx_ring->xsk_pool) ?
> ice_clean_rx_irq_zc(rx_ring, budget_per_ring) :
> ice_clean_rx_irq(rx_ring, budget_per_ring);
> work_done += cleaned;
> @@ -832,8 +839,8 @@ ice_add_xsk_frag(struct ice_rx_ring *rx_ring, struct xdp_buff *first,
> */
> int ice_clean_rx_irq_zc(struct ice_rx_ring *rx_ring, int budget)
> {
> + struct xsk_buff_pool *xsk_pool = READ_ONCE(rx_ring->xsk_pool);
> unsigned int total_rx_bytes = 0, total_rx_packets = 0;
> - struct xsk_buff_pool *xsk_pool = rx_ring->xsk_pool;
> u32 ntc = rx_ring->next_to_clean;
> u32 ntu = rx_ring->next_to_use;
> struct xdp_buff *first = NULL;
This looks suspicious, you need to at least explain why it's correct.
READ_ONCE() means one access per critical section, usually.
You access it at least twice in a single NAPI pool.
next prev parent reply other threads:[~2024-07-10 1:45 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-08 22:14 [PATCH net 0/8][pull request] ice: fix AF_XDP ZC timeout and concurrency issues Tony Nguyen
2024-07-08 22:14 ` [PATCH net 1/8] ice: respect netif readiness in AF_XDP ZC related ndo's Tony Nguyen
2024-07-08 22:14 ` [PATCH net 2/8] ice: don't busy wait for Rx queue disable in ice_qp_dis() Tony Nguyen
2024-07-08 22:14 ` [PATCH net 3/8] ice: replace synchronize_rcu with synchronize_net Tony Nguyen
2024-07-08 22:14 ` [PATCH net 4/8] ice: modify error handling when setting XSK pool in ndo_bpf Tony Nguyen
2024-07-08 22:14 ` [PATCH net 5/8] ice: toggle netif_carrier when setting up XSK pool Tony Nguyen
2024-07-08 22:14 ` [PATCH net 6/8] ice: improve updating ice_{t, r}x_ring::xsk_pool Tony Nguyen
2024-07-10 1:45 ` Jakub Kicinski [this message]
2024-07-23 23:46 ` Maciej Fijalkowski
2024-07-24 14:57 ` Jakub Kicinski
2024-07-24 15:49 ` Maciej Fijalkowski
2024-07-25 13:38 ` Jakub Kicinski
2024-07-25 18:31 ` Maciej Fijalkowski
2024-07-25 23:07 ` Jakub Kicinski
2024-07-26 13:43 ` Maciej Fijalkowski
2024-07-26 14:37 ` Jakub Kicinski
2024-07-08 22:14 ` [PATCH net 7/8] ice: add missing WRITE_ONCE when clearing ice_rx_ring::xdp_prog Tony Nguyen
2024-07-08 22:14 ` [PATCH net 8/8] ice: xsk: fix txq interrupt mapping Tony Nguyen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240709184524.232b9f57@kernel.org \
--to=kuba@kernel.org \
--cc=aleksander.lobakin@intel.com \
--cc=anthony.l.nguyen@intel.com \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=chandanx.rout@intel.com \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hawk@kernel.org \
--cc=john.fastabend@gmail.com \
--cc=maciej.fijalkowski@intel.com \
--cc=magnus.karlsson@intel.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=shannon.nelson@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.