From: Martin Habets <habetsm.xilinx@gmail.com>
To: Jason Wang <jasowang@redhat.com>
Cc: Gautam Dawar <gautam.dawar@amd.com>,
linux-net-drivers@amd.com, Edward Cree <ecree.xilinx@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Richard Cochran <richardcochran@gmail.com>,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
eperezma@redhat.com, harpreet.anand@amd.com, tanuj.kamde@amd.com,
koushik.dutta@amd.com
Subject: Re: [PATCH net-next v2 01/14] sfc: add function personality support for EF100 devices
Date: Mon, 13 Mar 2023 11:50:28 +0000 [thread overview]
Message-ID: <ZA8OBEDECFI4grXG@gmail.com> (raw)
In-Reply-To: <CACGkMEubKv-CGgTdTbt=Ja=pbazXT3nOGY9f_VtRwrOsmf8-rw@mail.gmail.com>
On Fri, Mar 10, 2023 at 01:04:14PM +0800, Jason Wang wrote:
> On Tue, Mar 7, 2023 at 7:36 PM Gautam Dawar <gautam.dawar@amd.com> wrote:
> >
> > A function personality defines the location and semantics of
> > registers in the BAR. EF100 NICs allow different personalities
> > of a PCIe function and changing it at run-time. A total of three
> > function personalities are defined as of now: EF100, vDPA and
> > None with EF100 being the default.
> > For now, vDPA net devices can be created on a EF100 virtual
> > function and the VF personality will be changed to vDPA in the
> > process.
> >
> > Co-developed-by: Martin Habets <habetsm.xilinx@gmail.com>
> > Signed-off-by: Martin Habets <habetsm.xilinx@gmail.com>
> > Signed-off-by: Gautam Dawar <gautam.dawar@amd.com>
> > ---
> > drivers/net/ethernet/sfc/ef100.c | 6 +-
> > drivers/net/ethernet/sfc/ef100_nic.c | 98 +++++++++++++++++++++++++++-
> > drivers/net/ethernet/sfc/ef100_nic.h | 11 ++++
> > 3 files changed, 111 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/net/ethernet/sfc/ef100.c b/drivers/net/ethernet/sfc/ef100.c
> > index 71aab3d0480f..c1c69783db7b 100644
> > --- a/drivers/net/ethernet/sfc/ef100.c
> > +++ b/drivers/net/ethernet/sfc/ef100.c
> > @@ -429,8 +429,7 @@ static void ef100_pci_remove(struct pci_dev *pci_dev)
> > if (!efx)
> > return;
> >
> > - probe_data = container_of(efx, struct efx_probe_data, efx);
> > - ef100_remove_netdev(probe_data);
> > + efx_ef100_set_bar_config(efx, EF100_BAR_CONFIG_NONE);
> > #ifdef CONFIG_SFC_SRIOV
> > efx_fini_struct_tc(efx);
> > #endif
> > @@ -443,6 +442,7 @@ static void ef100_pci_remove(struct pci_dev *pci_dev)
> > pci_disable_pcie_error_reporting(pci_dev);
> >
> > pci_set_drvdata(pci_dev, NULL);
> > + probe_data = container_of(efx, struct efx_probe_data, efx);
> > efx_fini_struct(efx);
> > kfree(probe_data);
> > };
> > @@ -508,7 +508,7 @@ static int ef100_pci_probe(struct pci_dev *pci_dev,
> > goto fail;
> >
> > efx->state = STATE_PROBED;
> > - rc = ef100_probe_netdev(probe_data);
> > + rc = efx_ef100_set_bar_config(efx, EF100_BAR_CONFIG_EF100);
> > if (rc)
> > goto fail;
> >
> > diff --git a/drivers/net/ethernet/sfc/ef100_nic.c b/drivers/net/ethernet/sfc/ef100_nic.c
> > index 4dc643b0d2db..8cbe5e0f4bdf 100644
> > --- a/drivers/net/ethernet/sfc/ef100_nic.c
> > +++ b/drivers/net/ethernet/sfc/ef100_nic.c
> > @@ -772,6 +772,99 @@ static int efx_ef100_get_base_mport(struct efx_nic *efx)
> > return 0;
> > }
> >
> > +/* BAR configuration.
> > + * To change BAR configuration, tear down the current configuration (which
> > + * leaves the hardware in the PROBED state), and then initialise the new
> > + * BAR state.
> > + */
> > +struct ef100_bar_config_ops {
> > + int (*init)(struct efx_probe_data *probe_data);
> > + void (*fini)(struct efx_probe_data *probe_data);
> > +};
> > +
> > +static const struct ef100_bar_config_ops bar_config_ops[] = {
> > + [EF100_BAR_CONFIG_EF100] = {
> > + .init = ef100_probe_netdev,
> > + .fini = ef100_remove_netdev
> > + },
> > +#ifdef CONFIG_SFC_VDPA
> > + [EF100_BAR_CONFIG_VDPA] = {
> > + .init = NULL,
> > + .fini = NULL
> > + },
> > +#endif
> > + [EF100_BAR_CONFIG_NONE] = {
> > + .init = NULL,
> > + .fini = NULL
> > + },
> > +};
>
> This looks more like a mini bus implementation. I wonder if we can
> reuse an auxiliary bus here which is more user friendly for management
> tools.
When we were in the design phase of vDPA for EF100 it was still called
virtbus, and the virtbus discussion was in full swing at that time.
We could not afford to add risk to the project by depending on it, as
it might not have been merged at all.
If we were doing the same design now I would definitely consider using
the auxiliary bus.
Martin
next prev parent reply other threads:[~2023-03-13 11:51 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-07 11:36 [PATCH net-next v2 00/14] sfc: add vDPA support for EF100 devices Gautam Dawar
2023-03-07 11:36 ` [PATCH net-next v2 01/14] sfc: add function personality " Gautam Dawar
2023-03-10 5:04 ` Jason Wang
2023-03-13 11:50 ` Martin Habets [this message]
2023-03-15 5:11 ` Jason Wang
2023-03-16 9:06 ` Martin Habets
2023-03-17 3:52 ` Jason Wang
2023-03-21 12:17 ` Martin Habets
2023-03-07 11:36 ` [PATCH net-next v2 02/14] sfc: implement MCDI interface for vDPA operations Gautam Dawar
2023-03-07 11:36 ` [PATCH net-next v2 03/14] sfc: update MCDI headers for CLIENT_CMD_VF_PROXY capability bit Gautam Dawar
[not found] ` <9a8c3a7d-7815-3099-e75e-930568dccb35@amd.com>
2023-03-08 16:15 ` Martin Habets
2023-03-13 14:38 ` Gautam Dawar
2023-03-14 8:32 ` Martin Habets
2023-03-07 11:36 ` [PATCH net-next v2 04/14] sfc: evaluate vdpa support based on FW capability CLIENT_CMD_VF_PROXY Gautam Dawar
2023-03-10 5:04 ` Jason Wang
2023-03-13 12:39 ` Gautam Dawar
2023-03-14 8:38 ` Martin Habets
2023-03-17 11:18 ` Gautam Dawar
2023-03-07 11:36 ` [PATCH net-next v2 05/14] sfc: implement init and fini functions for vDPA personality Gautam Dawar
2023-03-07 11:36 ` [PATCH net-next v2 06/14] sfc: implement vDPA management device operations Gautam Dawar
2023-03-08 16:41 ` Martin Habets
2023-03-13 15:09 ` Gautam Dawar
[not found] ` <e773fcb5-985d-071f-25dd-1aaacd393922@amd.com>
2023-03-08 16:48 ` Martin Habets
2023-03-07 11:36 ` [PATCH net-next v2 07/14] sfc: implement vdpa device config operations Gautam Dawar
2023-03-07 11:36 ` [PATCH net-next v2 08/14] sfc: implement vdpa vring " Gautam Dawar
2023-03-08 17:06 ` Martin Habets
2023-03-13 17:03 ` Gautam Dawar
2023-03-10 5:04 ` Jason Wang
2023-03-13 12:33 ` Gautam Dawar
2023-03-15 5:08 ` Jason Wang
2023-03-15 17:06 ` Gautam Dawar
2023-03-07 11:36 ` [PATCH net-next v2 09/14] sfc: implement device status related vdpa " Gautam Dawar
2023-03-10 5:05 ` Jason Wang
2023-03-13 12:10 ` Gautam Dawar
2023-03-15 5:00 ` Jason Wang
2023-03-15 17:18 ` Gautam Dawar
2023-03-17 11:01 ` Gautam Dawar
2023-03-07 11:36 ` [PATCH net-next v2 10/14] sfc: implement filters for receiving traffic Gautam Dawar
2023-03-10 5:05 ` Jason Wang
2023-03-13 9:19 ` Gautam Dawar
2023-03-07 11:36 ` [PATCH net-next v2 11/14] sfc: use PF's IOMMU domain for running VF's MCDI commands Gautam Dawar
2023-03-08 18:01 ` Martin Habets
2023-03-13 17:19 ` Gautam Dawar
2023-03-14 8:48 ` Martin Habets
2023-03-10 5:05 ` Jason Wang
2023-03-13 7:35 ` Gautam Dawar
2023-03-07 11:36 ` [PATCH net-next v2 12/14] sfc: unmap VF's MCDI buffer when switching to vDPA mode Gautam Dawar
2023-03-10 5:05 ` Jason Wang
2023-03-13 7:09 ` Gautam Dawar
2023-03-15 4:54 ` Jason Wang
2023-03-07 11:36 ` [PATCH net-next v2 13/14] sfc: update vdpa device MAC address Gautam Dawar
2023-03-10 5:05 ` Jason Wang
2023-03-13 6:37 ` Gautam Dawar
2023-03-15 4:50 ` Jason Wang
2023-03-07 11:36 ` [PATCH net-next v2 14/14] sfc: register the vDPA device Gautam Dawar
2023-03-10 5:09 ` [PATCH net-next v2 00/14] sfc: add vDPA support for EF100 devices Jason Wang
2023-03-13 6:26 ` Gautam Dawar
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=ZA8OBEDECFI4grXG@gmail.com \
--to=habetsm.xilinx@gmail.com \
--cc=davem@davemloft.net \
--cc=ecree.xilinx@gmail.com \
--cc=edumazet@google.com \
--cc=eperezma@redhat.com \
--cc=gautam.dawar@amd.com \
--cc=harpreet.anand@amd.com \
--cc=jasowang@redhat.com \
--cc=koushik.dutta@amd.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-net-drivers@amd.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=richardcochran@gmail.com \
--cc=tanuj.kamde@amd.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).