All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
To: Kurt Kanzenbach <kurt@linutronix.de>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>,
	Przemek Kitszel <przemyslaw.kitszel@intel.com>,
	"David S. Miller" <davem@davemloft.net>,
	"Eric Dumazet" <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Jesper Dangaard Brouer <hawk@kernel.org>,
	"John Fastabend" <john.fastabend@gmail.com>,
	Richard Cochran <richardcochran@gmail.com>,
	Sriram Yagnaraman <sriram.yagnaraman@ericsson.com>,
	Benjamin Steinke <benjamin.steinke@woks-audio.com>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	<intel-wired-lan@lists.osuosl.org>, <netdev@vger.kernel.org>,
	<bpf@vger.kernel.org>,
	Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Subject: Re: [PATCH iwl-next v6 3/6] igb: Introduce igb_xdp_is_enabled()
Date: Mon, 19 Aug 2024 15:11:56 +0200	[thread overview]
Message-ID: <ZsNEnGoztcCzT8Mq@boxer> (raw)
In-Reply-To: <20240711-b4-igb_zero_copy-v6-3-4bfb68773b18@linutronix.de>

On Fri, Aug 16, 2024 at 11:24:02AM +0200, Kurt Kanzenbach wrote:
> From: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
> 
> Introduce igb_xdp_is_enabled() to check if an XDP program is assigned to
> the device. Use that wherever xdp_prog is read and evaluated.
> 
> Signed-off-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
> [Kurt: Split patches and use READ_ONCE()]
> Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>

Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>

> ---
>  drivers/net/ethernet/intel/igb/igb.h      | 5 +++++
>  drivers/net/ethernet/intel/igb/igb_main.c | 8 +++++---
>  2 files changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/igb/igb.h b/drivers/net/ethernet/intel/igb/igb.h
> index c718e3d14401..dbba193241b9 100644
> --- a/drivers/net/ethernet/intel/igb/igb.h
> +++ b/drivers/net/ethernet/intel/igb/igb.h
> @@ -805,6 +805,11 @@ static inline struct netdev_queue *txring_txq(const struct igb_ring *tx_ring)
>  	return netdev_get_tx_queue(tx_ring->netdev, tx_ring->queue_index);
>  }
>  
> +static inline bool igb_xdp_is_enabled(struct igb_adapter *adapter)
> +{
> +	return !!READ_ONCE(adapter->xdp_prog);
> +}
> +
>  int igb_add_filter(struct igb_adapter *adapter,
>  		   struct igb_nfc_filter *input);
>  int igb_erase_filter(struct igb_adapter *adapter,
> diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
> index 0b81665b2478..db1598876424 100644
> --- a/drivers/net/ethernet/intel/igb/igb_main.c
> +++ b/drivers/net/ethernet/intel/igb/igb_main.c
> @@ -2946,7 +2946,8 @@ int igb_xdp_xmit_back(struct igb_adapter *adapter, struct xdp_buff *xdp)
>  	/* During program transitions its possible adapter->xdp_prog is assigned
>  	 * but ring has not been configured yet. In this case simply abort xmit.
>  	 */
> -	tx_ring = adapter->xdp_prog ? igb_xdp_tx_queue_mapping(adapter) : NULL;
> +	tx_ring = igb_xdp_is_enabled(adapter) ?
> +		igb_xdp_tx_queue_mapping(adapter) : NULL;
>  	if (unlikely(!tx_ring))
>  		return IGB_XDP_CONSUMED;
>  
> @@ -2979,7 +2980,8 @@ static int igb_xdp_xmit(struct net_device *dev, int n,
>  	/* During program transitions its possible adapter->xdp_prog is assigned
>  	 * but ring has not been configured yet. In this case simply abort xmit.
>  	 */
> -	tx_ring = adapter->xdp_prog ? igb_xdp_tx_queue_mapping(adapter) : NULL;
> +	tx_ring = igb_xdp_is_enabled(adapter) ?
> +		igb_xdp_tx_queue_mapping(adapter) : NULL;
>  	if (unlikely(!tx_ring))
>  		return -ENXIO;
>  
> @@ -6612,7 +6614,7 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu)
>  	struct igb_adapter *adapter = netdev_priv(netdev);
>  	int max_frame = new_mtu + IGB_ETH_PKT_HDR_PAD;
>  
> -	if (adapter->xdp_prog) {
> +	if (igb_xdp_is_enabled(adapter)) {
>  		int i;
>  
>  		for (i = 0; i < adapter->num_rx_queues; i++) {
> 
> -- 
> 2.39.2
> 

WARNING: multiple messages have this Message-ID (diff)
From: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
To: Kurt Kanzenbach <kurt@linutronix.de>
Cc: Jesper Dangaard Brouer <hawk@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Sriram Yagnaraman <sriram.yagnaraman@est.tech>,
	Przemek Kitszel <przemyslaw.kitszel@intel.com>,
	Richard Cochran <richardcochran@gmail.com>,
	John Fastabend <john.fastabend@gmail.com>,
	Alexei Starovoitov <ast@kernel.org>,
	Sriram Yagnaraman <sriram.yagnaraman@ericsson.com>,
	Benjamin Steinke <benjamin.steinke@woks-audio.com>,
	Eric Dumazet <edumazet@google.com>,
	netdev@vger.kernel.org, Tony Nguyen <anthony.l.nguyen@intel.com>,
	intel-wired-lan@lists.osuosl.org,
	Jakub Kicinski <kuba@kernel.org>,
	bpf@vger.kernel.org, Paolo Abeni <pabeni@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Subject: Re: [Intel-wired-lan] [PATCH iwl-next v6 3/6] igb: Introduce igb_xdp_is_enabled()
Date: Mon, 19 Aug 2024 15:11:56 +0200	[thread overview]
Message-ID: <ZsNEnGoztcCzT8Mq@boxer> (raw)
In-Reply-To: <20240711-b4-igb_zero_copy-v6-3-4bfb68773b18@linutronix.de>

On Fri, Aug 16, 2024 at 11:24:02AM +0200, Kurt Kanzenbach wrote:
> From: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
> 
> Introduce igb_xdp_is_enabled() to check if an XDP program is assigned to
> the device. Use that wherever xdp_prog is read and evaluated.
> 
> Signed-off-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
> [Kurt: Split patches and use READ_ONCE()]
> Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>

Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>

> ---
>  drivers/net/ethernet/intel/igb/igb.h      | 5 +++++
>  drivers/net/ethernet/intel/igb/igb_main.c | 8 +++++---
>  2 files changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/igb/igb.h b/drivers/net/ethernet/intel/igb/igb.h
> index c718e3d14401..dbba193241b9 100644
> --- a/drivers/net/ethernet/intel/igb/igb.h
> +++ b/drivers/net/ethernet/intel/igb/igb.h
> @@ -805,6 +805,11 @@ static inline struct netdev_queue *txring_txq(const struct igb_ring *tx_ring)
>  	return netdev_get_tx_queue(tx_ring->netdev, tx_ring->queue_index);
>  }
>  
> +static inline bool igb_xdp_is_enabled(struct igb_adapter *adapter)
> +{
> +	return !!READ_ONCE(adapter->xdp_prog);
> +}
> +
>  int igb_add_filter(struct igb_adapter *adapter,
>  		   struct igb_nfc_filter *input);
>  int igb_erase_filter(struct igb_adapter *adapter,
> diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
> index 0b81665b2478..db1598876424 100644
> --- a/drivers/net/ethernet/intel/igb/igb_main.c
> +++ b/drivers/net/ethernet/intel/igb/igb_main.c
> @@ -2946,7 +2946,8 @@ int igb_xdp_xmit_back(struct igb_adapter *adapter, struct xdp_buff *xdp)
>  	/* During program transitions its possible adapter->xdp_prog is assigned
>  	 * but ring has not been configured yet. In this case simply abort xmit.
>  	 */
> -	tx_ring = adapter->xdp_prog ? igb_xdp_tx_queue_mapping(adapter) : NULL;
> +	tx_ring = igb_xdp_is_enabled(adapter) ?
> +		igb_xdp_tx_queue_mapping(adapter) : NULL;
>  	if (unlikely(!tx_ring))
>  		return IGB_XDP_CONSUMED;
>  
> @@ -2979,7 +2980,8 @@ static int igb_xdp_xmit(struct net_device *dev, int n,
>  	/* During program transitions its possible adapter->xdp_prog is assigned
>  	 * but ring has not been configured yet. In this case simply abort xmit.
>  	 */
> -	tx_ring = adapter->xdp_prog ? igb_xdp_tx_queue_mapping(adapter) : NULL;
> +	tx_ring = igb_xdp_is_enabled(adapter) ?
> +		igb_xdp_tx_queue_mapping(adapter) : NULL;
>  	if (unlikely(!tx_ring))
>  		return -ENXIO;
>  
> @@ -6612,7 +6614,7 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu)
>  	struct igb_adapter *adapter = netdev_priv(netdev);
>  	int max_frame = new_mtu + IGB_ETH_PKT_HDR_PAD;
>  
> -	if (adapter->xdp_prog) {
> +	if (igb_xdp_is_enabled(adapter)) {
>  		int i;
>  
>  		for (i = 0; i < adapter->num_rx_queues; i++) {
> 
> -- 
> 2.39.2
> 

  reply	other threads:[~2024-08-19 13:12 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-16  9:23 [PATCH iwl-next v6 0/6] igb: Add support for AF_XDP zero-copy Kurt Kanzenbach
2024-08-16  9:23 ` [Intel-wired-lan] " Kurt Kanzenbach
2024-08-16  9:24 ` [PATCH iwl-next v6 1/6] igb: Always call igb_xdp_ring_update_tail() under Tx lock Kurt Kanzenbach
2024-08-16  9:24   ` [Intel-wired-lan] " Kurt Kanzenbach
2024-08-16  9:38   ` Sebastian Andrzej Siewior
2024-08-16  9:38     ` [Intel-wired-lan] " Sebastian Andrzej Siewior
2024-08-16  9:56     ` Kurt Kanzenbach
2024-08-16  9:56       ` [Intel-wired-lan] " Kurt Kanzenbach
2024-08-19 13:07   ` Maciej Fijalkowski
2024-08-19 13:07     ` [Intel-wired-lan] " Maciej Fijalkowski
2024-08-19 14:21     ` Kurt Kanzenbach
2024-08-19 14:21       ` [Intel-wired-lan] " Kurt Kanzenbach
2024-08-16  9:24 ` [PATCH iwl-next v6 2/6] igb: Remove static qualifiers Kurt Kanzenbach
2024-08-16  9:24   ` [Intel-wired-lan] " Kurt Kanzenbach
2024-08-19 13:10   ` Maciej Fijalkowski
2024-08-19 13:10     ` [Intel-wired-lan] " Maciej Fijalkowski
2024-08-19 14:23     ` Kurt Kanzenbach
2024-08-19 14:23       ` [Intel-wired-lan] " Kurt Kanzenbach
2024-08-16  9:24 ` [PATCH iwl-next v6 3/6] igb: Introduce igb_xdp_is_enabled() Kurt Kanzenbach
2024-08-16  9:24   ` [Intel-wired-lan] " Kurt Kanzenbach
2024-08-19 13:11   ` Maciej Fijalkowski [this message]
2024-08-19 13:11     ` Maciej Fijalkowski
2024-08-16  9:24 ` [PATCH iwl-next v6 4/6] igb: Introduce XSK data structures and helpers Kurt Kanzenbach
2024-08-16  9:24   ` [Intel-wired-lan] " Kurt Kanzenbach
2024-08-19 13:19   ` Maciej Fijalkowski
2024-08-19 13:19     ` [Intel-wired-lan] " Maciej Fijalkowski
2024-08-19 13:41     ` Kurt Kanzenbach
2024-08-19 13:41       ` [Intel-wired-lan] " Kurt Kanzenbach
2024-08-19 14:10       ` Maciej Fijalkowski
2024-08-19 14:10         ` [Intel-wired-lan] " Maciej Fijalkowski
2024-08-19 14:27         ` Kurt Kanzenbach
2024-08-19 14:27           ` [Intel-wired-lan] " Kurt Kanzenbach
2024-08-19 19:34         ` Sriram Yagnaraman
2024-08-19 19:34           ` [Intel-wired-lan] " Sriram Yagnaraman
2024-08-20 12:24           ` Kurt Kanzenbach
2024-08-20 12:24             ` [Intel-wired-lan] " Kurt Kanzenbach
2024-08-20 12:33             ` Fijalkowski, Maciej
2024-08-20 12:33               ` [Intel-wired-lan] " Fijalkowski, Maciej
2024-08-16  9:24 ` [PATCH iwl-next v6 5/6] igb: Add AF_XDP zero-copy Rx support Kurt Kanzenbach
2024-08-16  9:24   ` [Intel-wired-lan] " Kurt Kanzenbach
2024-08-19 14:47   ` Maciej Fijalkowski
2024-08-19 14:47     ` [Intel-wired-lan] " Maciej Fijalkowski
2024-08-16  9:24 ` [PATCH iwl-next v6 6/6] igb: Add AF_XDP zero-copy Tx support Kurt Kanzenbach
2024-08-16  9:24   ` [Intel-wired-lan] " Kurt Kanzenbach
2024-08-19 16:30   ` Maciej Fijalkowski
2024-08-19 16:30     ` [Intel-wired-lan] " Maciej Fijalkowski
2024-08-16 12:17 ` [PATCH iwl-next v6 0/6] igb: Add support for AF_XDP zero-copy Maciej Fijalkowski
2024-08-16 12:17   ` [Intel-wired-lan] " Maciej Fijalkowski

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=ZsNEnGoztcCzT8Mq@boxer \
    --to=maciej.fijalkowski@intel.com \
    --cc=anthony.l.nguyen@intel.com \
    --cc=ast@kernel.org \
    --cc=benjamin.steinke@woks-audio.com \
    --cc=bigeasy@linutronix.de \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=hawk@kernel.org \
    --cc=intel-wired-lan@lists.osuosl.org \
    --cc=john.fastabend@gmail.com \
    --cc=kuba@kernel.org \
    --cc=kurt@linutronix.de \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=przemyslaw.kitszel@intel.com \
    --cc=richardcochran@gmail.com \
    --cc=sriram.yagnaraman@ericsson.com \
    --cc=sriram.yagnaraman@est.tech \
    /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.