All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Horman <horms@kernel.org>
To: Petr Machata <petrm@nvidia.com>
Cc: "David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	netdev@vger.kernel.org, Ido Schimmel <idosch@nvidia.com>,
	Amit Cohen <amcohen@nvidia.com>,
	mlxsw@nvidia.com
Subject: Re: [PATCH net-next 07/15] mlxsw: pci: Poll command interface for each cmd_exec()
Date: Wed, 3 Apr 2024 13:38:48 +0100	[thread overview]
Message-ID: <20240403123848.GC26556@kernel.org> (raw)
In-Reply-To: <e674c70380ceda953e0e45a77334c5d22e69938f.1712062203.git.petrm@nvidia.com>

On Tue, Apr 02, 2024 at 03:54:20PM +0200, Petr Machata wrote:
> From: Amit Cohen <amcohen@nvidia.com>
> 
> Command interface is used for configuring and querying FW when EMADs are
> not available. During the time that the driver sets up the asynchronous
> queues, it polls the command interface for getting completions. Then,
> there is a short period when asynchronous queues work, but EMADs are not
> available (marked in the code as nopoll = true). During this time, we
> send commands via command interface, but we do not poll it, as we can get
> an interrupt for the completion. Completions of command interface are
> received from HW in EQ0 (event queue 0).
> 
> The usage of EQ0 instead of polling is done only 4 times during
> initialization and one time during tear down, but it makes an overhead
> during lifetime of the driver. For each interrupt, we have to check if
> we get events in EQ0 or EQ1 and handle them. This is really ineffective,
> especially because of the fact that EQ0 is used only as part of driver
> init/fini.
> 
> Instead, we can poll command interface for each call of cmd_exec(). It
> means that when we send a command via command interface (as EMADs are
> not available), we will poll it, regardless of availability of the
> asynchronous queues. This will allow us to configure later only EQ1 and
> simplify the flow.
> 
> Remove 'nopoll' indication and change mlxsw_pci_cmd_exec() to poll till
> answer/timeout regardless of queues' state. For now, completions are
> handled also by EQ0, but it will be removed in next patch. Additional
> cleanups will be added in next patches.
> 
> Signed-off-by: Amit Cohen <amcohen@nvidia.com>
> Reviewed-by: Ido Schimmel <idosch@nvidia.com>
> Signed-off-by: Petr Machata <petrm@nvidia.com>

Reviewed-by: Simon Horman <horms@kernel.org>


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

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-02 13:54 [PATCH net-next 00/15] mlxsw: Preparations for improving performance Petr Machata
2024-04-02 13:54 ` [PATCH net-next 01/15] mlxsw: pci: Move mlxsw_pci_eq_{init, fini}() Petr Machata
2024-04-03 12:36   ` Simon Horman
2024-04-02 13:54 ` [PATCH net-next 02/15] mlxsw: pci: Move mlxsw_pci_cq_{init, fini}() Petr Machata
2024-04-03 12:37   ` Simon Horman
2024-04-02 13:54 ` [PATCH net-next 03/15] mlxsw: pci: Do not setup tasklet from operation Petr Machata
2024-04-03 12:37   ` Simon Horman
2024-04-02 13:54 ` [PATCH net-next 04/15] mlxsw: pci: Arm CQ doorbell regardless of number of completions Petr Machata
2024-04-03 12:37   ` Simon Horman
2024-04-02 13:54 ` [PATCH net-next 05/15] mlxsw: pci: Remove unused counters Petr Machata
2024-04-03 12:38   ` Simon Horman
2024-04-02 13:54 ` [PATCH net-next 06/15] mlxsw: pci: Make style changes in mlxsw_pci_eq_tasklet() Petr Machata
2024-04-03 12:38   ` Simon Horman
2024-04-02 13:54 ` [PATCH net-next 07/15] mlxsw: pci: Poll command interface for each cmd_exec() Petr Machata
2024-04-03 12:38   ` Simon Horman [this message]
2024-04-02 13:54 ` [PATCH net-next 08/15] mlxsw: pci: Rename MLXSW_PCI_EQS_COUNT Petr Machata
2024-04-03 12:39   ` Simon Horman
2024-04-02 13:54 ` [PATCH net-next 09/15] mlxsw: pci: Use only one event queue Petr Machata
2024-04-03 12:39   ` Simon Horman
2024-04-02 13:54 ` [PATCH net-next 10/15] mlxsw: pci: Remove unused wait queue Petr Machata
2024-04-03 12:39   ` Simon Horman
2024-04-02 13:54 ` [PATCH net-next 11/15] mlxsw: pci: Make style change in mlxsw_pci_cq_tasklet() Petr Machata
2024-04-03 12:39   ` Simon Horman
2024-04-02 13:54 ` [PATCH net-next 12/15] mlxsw: pci: Break mlxsw_pci_cq_tasklet() into tasklets per queue type Petr Machata
2024-04-03 12:40   ` Simon Horman
2024-04-02 13:54 ` [PATCH net-next 13/15] mlxsw: pci: Remove mlxsw_pci_sdq_count() Petr Machata
2024-04-03 12:40   ` Simon Horman
2024-04-02 13:54 ` [PATCH net-next 14/15] mlxsw: pci: Remove mlxsw_pci_cq_count() Petr Machata
2024-04-03 12:40   ` Simon Horman
2024-04-02 13:54 ` [PATCH net-next 15/15] mlxsw: pci: Store DQ pointer as part of CQ structure Petr Machata
2024-04-03 12:40   ` Simon Horman
2024-04-04  3:50 ` [PATCH net-next 00/15] mlxsw: Preparations for improving performance patchwork-bot+netdevbpf

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=20240403123848.GC26556@kernel.org \
    --to=horms@kernel.org \
    --cc=amcohen@nvidia.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=idosch@nvidia.com \
    --cc=kuba@kernel.org \
    --cc=mlxsw@nvidia.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=petrm@nvidia.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.