All of lore.kernel.org
 help / color / mirror / Atom feed
From: Raslan Darawsheh <rasland@mellanox.com>
To: Slava Ovsiienko <viacheslavo@mellanox.com>,
	"dev@dpdk.org" <dev@dpdk.org>
Cc: Matan Azrad <matan@mellanox.com>, Thomas Monjalon <thomas@monjalon.net>
Subject: Re: [dpdk-dev] [PATCH v2] net/mlx5: add queue start and stop feature
Date: Mon, 20 Jul 2020 07:04:58 +0000	[thread overview]
Message-ID: <AM0PR05MB670767BBA4C646A599B2CFB2C27B0@AM0PR05MB6707.eurprd05.prod.outlook.com> (raw)
In-Reply-To: <1595172937-21424-1-git-send-email-viacheslavo@mellanox.com>

Hi,

> -----Original Message-----
> From: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
> Sent: Sunday, July 19, 2020 6:36 PM
> To: dev@dpdk.org
> Cc: Matan Azrad <matan@mellanox.com>; Raslan Darawsheh
> <rasland@mellanox.com>; Thomas Monjalon <thomas@monjalon.net>
> Subject: [PATCH v2] net/mlx5: add queue start and stop feature
> 
> The mlx5 PMD did not support queue_start and queue_stop eth_dev API
> routines, queue could not be suspended and resumed during device
> operation.
> 
> There is the use case when this feature is crucial for applications:
> 
> - there is the secondary process handling the queue
> - secondary process crashed/aborted
> - some mbufs were allocated or used by secondary application
> - some mbufs were allocated by Rx queues to receive packets
> - some mbufs were placed to send queue
> - queue goes to undefined state
> 
> In this case there was no reliable way to recovery queue handling
> by restarted secondary process but reset queue to initial state
> freeing all involved resources, including buffers involved in queue
> operations, reset the mbuf pools, and then reinitialize queue
> to working state:
> 
> - reset mbuf pool, allocate all mbuf to initialize pool into
>   safe state after the crush and allow safe mbuf free calls
> - stop queue, free all potentially involved mbufs
> - reset mbuf pool again
> - start queue, reallocate mbufs needed
> 
> This patch introduces the queue start/stop feature with some
> limitations:
> 
> - hairpin queues are not supported
> - it is application responsibility to synchronize start/stop
>   with datapath routines, rx/tx_burst must be suspended during
>   the queue_start/queue_stop calls
> - it is application responsibility to track queue usage and
>   provide coordinated queue_start/queue_stop calls from
>   secondary and primary processes.
> - Rx queues with vectorized Rx routine and engaged CQE
>   compression are not supported by this patch currently
> 
> Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
> ---
> 
> v2: - rebase
>     - address comments for commit messages
> 
> 

Patch applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh

      reply	other threads:[~2020-07-20  7:05 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-17 14:37 [dpdk-dev] [PATCH] net/mlx5: add queue start and stop feature Viacheslav Ovsiienko
2020-07-17 15:03 ` Thomas Monjalon
2020-07-19 15:35 ` [dpdk-dev] [PATCH v2] " Viacheslav Ovsiienko
2020-07-20  7:04   ` Raslan Darawsheh [this message]

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=AM0PR05MB670767BBA4C646A599B2CFB2C27B0@AM0PR05MB6707.eurprd05.prod.outlook.com \
    --to=rasland@mellanox.com \
    --cc=dev@dpdk.org \
    --cc=matan@mellanox.com \
    --cc=thomas@monjalon.net \
    --cc=viacheslavo@mellanox.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.