All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Horman <horms@kernel.org>
To: David Wei <dw@davidwei.uk>
Cc: netdev@vger.kernel.org, Michael Chan <michael.chan@broadcom.com>,
	Pavan Chebbi <pavan.chebbi@broadcom.com>,
	Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Adrian Alvarado <adrian.alvarado@broadcom.com>,
	Mina Almasry <almasrymina@google.com>,
	Shailend Chand <shailend@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Paolo Abeni <pabeni@redhat.com>
Subject: Re: [RFC PATCH net-next v2 1/9] queue_api: define queue api
Date: Sat, 4 May 2024 13:11:54 +0100	[thread overview]
Message-ID: <20240504121154.GF3167983@kernel.org> (raw)
In-Reply-To: <20240502045410.3524155-2-dw@davidwei.uk>

On Wed, May 01, 2024 at 09:54:02PM -0700, David Wei wrote:
> From: Mina Almasry <almasrymina@google.com>
> 
> This API enables the net stack to reset the queues used for devmem TCP.
> 
> Signed-off-by: Mina Almasry <almasrymina@google.com>
> Signed-off-by: David Wei <dw@davidwei.uk>

...

> diff --git a/include/net/netdev_queues.h b/include/net/netdev_queues.h
> index 1ec408585373..58042957c39f 100644
> --- a/include/net/netdev_queues.h
> +++ b/include/net/netdev_queues.h
> @@ -60,6 +60,33 @@ struct netdev_stat_ops {
>  			       struct netdev_queue_stats_tx *tx);
>  };
>  
> +/**
> + * struct netdev_queue_mgmt_ops - netdev ops for queue management
> + *
> + * @ndo_queue_mem_alloc: Allocate memory for an RX queue. The memory returned
> + *			 in the form of a void* can be passed to
> + *			 ndo_queue_mem_free() for freeing or to ndo_queue_start
> + *			 to create an RX queue with this memory.
> + *
> + * @ndo_queue_mem_free:	Free memory from an RX queue.
> + *
> + * @ndo_queue_start:	Start an RX queue at the specified index.
> + *
> + * @ndo_queue_stop:	Stop the RX queue at the specified index.
> + */
> +struct netdev_queue_mgmt_ops {
> +       void *                  (*ndo_queue_mem_alloc)(struct net_device *dev,
> +                                                      int idx);
> +       void                    (*ndo_queue_mem_free)(struct net_device *dev,
> +                                                     void *queue_mem);
> +       int                     (*ndo_queue_start)(struct net_device *dev,
> +                                                  int idx,
> +                                                  void *queue_mem);
> +       int                     (*ndo_queue_stop)(struct net_device *dev,
> +                                                 int idx,
> +                                                 void **out_queue_mem);

Nit: The indentation (before the return types) should use tabs rather than
     spaces. And I'm not sure I see the value of the large indentation after
     the return types. Basically, I suggest this:

	void * (*ndo_queue_mem_alloc)(struct net_device *dev, int idx);
	void   (*ndo_queue_mem_free)(struct net_device *dev, void *queue_mem);
	int    (*ndo_queue_start)(struct net_device *dev, int idx,
				  void *queue_mem);
	int    (*ndo_queue_stop)(struct net_device *dev, int idx,
				 void **out_queue_mem);

> +};
> +
>  /**
>   * DOC: Lockless queue stopping / waking helpers.
>   *
> -- 
> 2.43.0
> 
> 

  reply	other threads:[~2024-05-04 12:12 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-02  4:54 [RFC PATCH net-next v2 0/9] bnxt: implement queue api David Wei
2024-05-02  4:54 ` [RFC PATCH net-next v2 1/9] queue_api: define " David Wei
2024-05-04 12:11   ` Simon Horman [this message]
2024-05-06  0:34     ` David Wei
2024-05-02  4:54 ` [RFC PATCH net-next v2 2/9] bnxt: implement " David Wei
2024-05-02 17:23   ` Mina Almasry
2024-05-06  0:36     ` David Wei
2024-05-02  4:54 ` [RFC PATCH net-next v2 3/9] netdev: add netdev_rx_queue_restart() David Wei
2024-05-02 17:27   ` Mina Almasry
2024-05-06  0:38     ` David Wei
2024-05-04 12:20   ` Simon Horman
2024-05-06  0:41     ` David Wei
2024-05-07 16:46       ` Simon Horman
2024-05-08 17:13         ` Mina Almasry
2024-05-02  4:54 ` [RFC PATCH net-next v2 4/9] bnxt: refactor bnxt_{alloc,free}_one_rx_ring() David Wei
2024-05-02  4:54 ` [RFC PATCH net-next v2 5/9] bnxt: refactor bnxt_{alloc,free}_one_tpa_info() David Wei
2024-05-04 12:30   ` Simon Horman
2024-05-06  0:43     ` David Wei
2024-05-02  4:54 ` [RFC PATCH net-next v2 6/9] bnxt: add __bnxt_init_rx_ring_struct() helper David Wei
2024-05-02  4:54 ` [RFC PATCH net-next v2 7/9] bnxt: add helpers for allocating rx ring mem David Wei
2024-05-04 12:34   ` Simon Horman
2024-05-06  0:42     ` David Wei
2024-05-02  4:54 ` [RFC PATCH net-next v2 8/9] bnxt: alloc rx ring mem first before reset David Wei
2024-05-02  4:54 ` [RFC PATCH net-next v2 9/9] bnxt: swap rx ring mem during queue_stop() David Wei

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=20240504121154.GF3167983@kernel.org \
    --to=horms@kernel.org \
    --cc=adrian.alvarado@broadcom.com \
    --cc=almasrymina@google.com \
    --cc=andrew.gospodarek@broadcom.com \
    --cc=davem@davemloft.net \
    --cc=dw@davidwei.uk \
    --cc=edumazet@google.com \
    --cc=kuba@kernel.org \
    --cc=michael.chan@broadcom.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=pavan.chebbi@broadcom.com \
    --cc=shailend@google.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.