mbox series

[net-next,v2,00/10] gve: Implement queue api

Message ID 20240501232549.1327174-1-shailend@google.com (mailing list archive)
Headers show
Series gve: Implement queue api | expand

Message

Shailend Chand May 1, 2024, 11:25 p.m. UTC
Following the discussion on
https://patchwork.kernel.org/project/linux-media/patch/20240305020153.2787423-2-almasrymina@google.com/,
the queue api defined by Mina is implemented for gve.

The first patch is just Mina's introduction of the api. The rest of the
patches make surgical changes in gve to enable it to work correctly with
only a subset of queues present (thus far it had assumed that either all
queues are up or all are down). The final patch has the api
implementation.

Changes since v1: clang warning fixes, kdoc warning fix, and addressed
review comments.

Mina Almasry (1):
  queue_api: define queue api

Shailend Chand (9):
  gve: Make the GQ RX free queue funcs idempotent
  gve: Add adminq funcs to add/remove a single Rx queue
  gve: Make gve_turn(up|down) ignore stopped queues
  gve: Make gve_turnup work for nonempty queues
  gve: Avoid rescheduling napi if on wrong cpu
  gve: Reset Rx ring state in the ring-stop funcs
  gve: Account for stopped queues when reading NIC stats
  gve: Alloc and free QPLs with the rings
  gve: Implement queue api

 drivers/net/ethernet/google/gve/gve.h         |  37 +-
 drivers/net/ethernet/google/gve/gve_adminq.c  |  79 ++-
 drivers/net/ethernet/google/gve/gve_adminq.h  |   2 +
 drivers/net/ethernet/google/gve/gve_dqo.h     |   6 +
 drivers/net/ethernet/google/gve/gve_ethtool.c |  48 +-
 drivers/net/ethernet/google/gve/gve_main.c    | 575 ++++++++++--------
 drivers/net/ethernet/google/gve/gve_rx.c      | 132 ++--
 drivers/net/ethernet/google/gve/gve_rx_dqo.c  | 137 +++--
 drivers/net/ethernet/google/gve/gve_tx.c      |  33 +-
 drivers/net/ethernet/google/gve/gve_tx_dqo.c  |  23 +-
 include/linux/netdevice.h                     |   3 +
 include/net/netdev_queues.h                   |  31 +
 12 files changed, 677 insertions(+), 429 deletions(-)

Comments

Willem de Bruijn May 2, 2024, 3:15 p.m. UTC | #1
Shailend Chand wrote:
> Following the discussion on
> https://patchwork.kernel.org/project/linux-media/patch/20240305020153.2787423-2-almasrymina@google.com/,
> the queue api defined by Mina is implemented for gve.
> 
> The first patch is just Mina's introduction of the api. The rest of the
> patches make surgical changes in gve to enable it to work correctly with
> only a subset of queues present (thus far it had assumed that either all
> queues are up or all are down). The final patch has the api
> implementation.
> 
> Changes since v1: clang warning fixes, kdoc warning fix, and addressed
> review comments.
> 
> Mina Almasry (1):
>   queue_api: define queue api
> 
> Shailend Chand (9):
>   gve: Make the GQ RX free queue funcs idempotent
>   gve: Add adminq funcs to add/remove a single Rx queue
>   gve: Make gve_turn(up|down) ignore stopped queues
>   gve: Make gve_turnup work for nonempty queues
>   gve: Avoid rescheduling napi if on wrong cpu
>   gve: Reset Rx ring state in the ring-stop funcs
>   gve: Account for stopped queues when reading NIC stats
>   gve: Alloc and free QPLs with the rings
>   gve: Implement queue api

Reviewed-by: Willem de Bruijn <willemb@google.com>

That QPLS alloc reorg is a great simplification. Nice bonus.
patchwork-bot+netdevbpf@kernel.org May 5, 2024, 1:40 p.m. UTC | #2
Hello:

This series was applied to netdev/net-next.git (main)
by David S. Miller <davem@davemloft.net>:

On Wed,  1 May 2024 23:25:39 +0000 you wrote:
> Following the discussion on
> https://patchwork.kernel.org/project/linux-media/patch/20240305020153.2787423-2-almasrymina@google.com/,
> the queue api defined by Mina is implemented for gve.
> 
> The first patch is just Mina's introduction of the api. The rest of the
> patches make surgical changes in gve to enable it to work correctly with
> only a subset of queues present (thus far it had assumed that either all
> queues are up or all are down). The final patch has the api
> implementation.
> 
> [...]

Here is the summary with links:
  - [net-next,v2,01/10] queue_api: define queue api
    https://git.kernel.org/netdev/net-next/c/087b24de5c82
  - [net-next,v2,02/10] gve: Make the GQ RX free queue funcs idempotent
    https://git.kernel.org/netdev/net-next/c/dcecfcf21bd1
  - [net-next,v2,03/10] gve: Add adminq funcs to add/remove a single Rx queue
    https://git.kernel.org/netdev/net-next/c/242f30fe692e
  - [net-next,v2,04/10] gve: Make gve_turn(up|down) ignore stopped queues
    https://git.kernel.org/netdev/net-next/c/5abc37bdcbc5
  - [net-next,v2,05/10] gve: Make gve_turnup work for nonempty queues
    https://git.kernel.org/netdev/net-next/c/864616d97a45
  - [net-next,v2,06/10] gve: Avoid rescheduling napi if on wrong cpu
    https://git.kernel.org/netdev/net-next/c/9a5e0776d11f
  - [net-next,v2,07/10] gve: Reset Rx ring state in the ring-stop funcs
    https://git.kernel.org/netdev/net-next/c/770f52d5a0ed
  - [net-next,v2,08/10] gve: Account for stopped queues when reading NIC stats
    https://git.kernel.org/netdev/net-next/c/af9bcf910b1f
  - [net-next,v2,09/10] gve: Alloc and free QPLs with the rings
    https://git.kernel.org/netdev/net-next/c/ee24284e2a10
  - [net-next,v2,10/10] gve: Implement queue api
    (no matching commit)

You are awesome, thank you!
Shailend Chand May 6, 2024, 5:41 p.m. UTC | #3
On Sun, May 5, 2024 at 6:40 AM <patchwork-bot+netdevbpf@kernel.org> wrote:
>
> Hello:
>
> This series was applied to netdev/net-next.git (main)
> by David S. Miller <davem@davemloft.net>:
>
> On Wed,  1 May 2024 23:25:39 +0000 you wrote:
> > Following the discussion on
> > https://patchwork.kernel.org/project/linux-media/patch/20240305020153.2787423-2-almasrymina@google.com/,
> > the queue api defined by Mina is implemented for gve.
> >
> > The first patch is just Mina's introduction of the api. The rest of the
> > patches make surgical changes in gve to enable it to work correctly with
> > only a subset of queues present (thus far it had assumed that either all
> > queues are up or all are down). The final patch has the api
> > implementation.
> >
> > [...]
>
> Here is the summary with links:
>   - [net-next,v2,01/10] queue_api: define queue api
>     https://git.kernel.org/netdev/net-next/c/087b24de5c82
>   - [net-next,v2,02/10] gve: Make the GQ RX free queue funcs idempotent
>     https://git.kernel.org/netdev/net-next/c/dcecfcf21bd1
>   - [net-next,v2,03/10] gve: Add adminq funcs to add/remove a single Rx queue
>     https://git.kernel.org/netdev/net-next/c/242f30fe692e
>   - [net-next,v2,04/10] gve: Make gve_turn(up|down) ignore stopped queues
>     https://git.kernel.org/netdev/net-next/c/5abc37bdcbc5
>   - [net-next,v2,05/10] gve: Make gve_turnup work for nonempty queues
>     https://git.kernel.org/netdev/net-next/c/864616d97a45
>   - [net-next,v2,06/10] gve: Avoid rescheduling napi if on wrong cpu
>     https://git.kernel.org/netdev/net-next/c/9a5e0776d11f
>   - [net-next,v2,07/10] gve: Reset Rx ring state in the ring-stop funcs
>     https://git.kernel.org/netdev/net-next/c/770f52d5a0ed
>   - [net-next,v2,08/10] gve: Account for stopped queues when reading NIC stats
>     https://git.kernel.org/netdev/net-next/c/af9bcf910b1f
>   - [net-next,v2,09/10] gve: Alloc and free QPLs with the rings
>     https://git.kernel.org/netdev/net-next/c/ee24284e2a10
>   - [net-next,v2,10/10] gve: Implement queue api
>     (no matching commit)

The last patch of this patchset did not get applied:
https://patchwork.kernel.org/project/netdevbpf/patch/20240430231420.699177-11-shailend@google.com/,
not sure why there is a "no matching commit" message.


>
> You are awesome, thank you!
> --
> Deet-doot-dot, I am a bot.
> https://korg.docs.kernel.org/patchwork/pwbot.html
>
>
Shailend Chand May 6, 2024, 6:07 p.m. UTC | #4
On Mon, May 6, 2024 at 10:41 AM Shailend Chand <shailend@google.com> wrote:
>
> On Sun, May 5, 2024 at 6:40 AM <patchwork-bot+netdevbpf@kernel.org> wrote:
> >
> > Hello:
> >
> > This series was applied to netdev/net-next.git (main)
> > by David S. Miller <davem@davemloft.net>:
> >
> > On Wed,  1 May 2024 23:25:39 +0000 you wrote:
> > > Following the discussion on
> > > https://patchwork.kernel.org/project/linux-media/patch/20240305020153.2787423-2-almasrymina@google.com/,
> > > the queue api defined by Mina is implemented for gve.
> > >
> > > The first patch is just Mina's introduction of the api. The rest of the
> > > patches make surgical changes in gve to enable it to work correctly with
> > > only a subset of queues present (thus far it had assumed that either all
> > > queues are up or all are down). The final patch has the api
> > > implementation.
> > >
> > > [...]
> >
> > Here is the summary with links:
> >   - [net-next,v2,01/10] queue_api: define queue api
> >     https://git.kernel.org/netdev/net-next/c/087b24de5c82
> >   - [net-next,v2,02/10] gve: Make the GQ RX free queue funcs idempotent
> >     https://git.kernel.org/netdev/net-next/c/dcecfcf21bd1
> >   - [net-next,v2,03/10] gve: Add adminq funcs to add/remove a single Rx queue
> >     https://git.kernel.org/netdev/net-next/c/242f30fe692e
> >   - [net-next,v2,04/10] gve: Make gve_turn(up|down) ignore stopped queues
> >     https://git.kernel.org/netdev/net-next/c/5abc37bdcbc5
> >   - [net-next,v2,05/10] gve: Make gve_turnup work for nonempty queues
> >     https://git.kernel.org/netdev/net-next/c/864616d97a45
> >   - [net-next,v2,06/10] gve: Avoid rescheduling napi if on wrong cpu
> >     https://git.kernel.org/netdev/net-next/c/9a5e0776d11f
> >   - [net-next,v2,07/10] gve: Reset Rx ring state in the ring-stop funcs
> >     https://git.kernel.org/netdev/net-next/c/770f52d5a0ed
> >   - [net-next,v2,08/10] gve: Account for stopped queues when reading NIC stats
> >     https://git.kernel.org/netdev/net-next/c/af9bcf910b1f
> >   - [net-next,v2,09/10] gve: Alloc and free QPLs with the rings
> >     https://git.kernel.org/netdev/net-next/c/ee24284e2a10
> >   - [net-next,v2,10/10] gve: Implement queue api
> >     (no matching commit)
>
> The last patch of this patchset did not get applied:
> https://patchwork.kernel.org/project/netdevbpf/patch/20240430231420.699177-11-shailend@google.com/,
> not sure why there is a "no matching commit" message.

This is the v2 patch that did not get applied
https://patchwork.kernel.org/project/netdevbpf/patch/20240501232549.1327174-11-shailend@google.com/.
The subjects of the cover letter and this patch both are the same,
differing only in their number prefix, maybe that could be triggering
some issue.

>
>
> >
> > You are awesome, thank you!
> > --
> > Deet-doot-dot, I am a bot.
> > https://korg.docs.kernel.org/patchwork/pwbot.html
> >
> >
Jakub Kicinski May 7, 2024, 1:25 a.m. UTC | #5
On Mon, 6 May 2024 11:07:52 -0700 Shailend Chand wrote:
> > The last patch of this patchset did not get applied:
> > https://patchwork.kernel.org/project/netdevbpf/patch/20240430231420.699177-11-shailend@google.com/,
> > not sure why there is a "no matching commit" message.  
> 
> This is the v2 patch that did not get applied
> https://patchwork.kernel.org/project/netdevbpf/patch/20240501232549.1327174-11-shailend@google.com/.
> The subjects of the cover letter and this patch both are the same,
> differing only in their number prefix, maybe that could be triggering
> some issue.

The space characters in Mina's review tag are funny looking, maybe that
was the cause. In any case, applied now, will push once build finishes.
Thanks!