From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
To: Dan Williams <dan.j.williams@intel.com>
Cc: Dave Jiang <dave.jiang@intel.com>, <linux-cxl@vger.kernel.org>,
<ira.weiny@intel.com>, <vishal.l.verma@intel.com>,
<alison.schofield@intel.com>, <dave@stgolabs.net>,
<jgg@nvidia.com>, <shiju.jose@huawei.com>
Subject: Re: [PATCH v1 04/19] cxl: Add Get Supported Features command for kernel usage
Date: Mon, 27 Jan 2025 11:10:08 +0000 [thread overview]
Message-ID: <20250127111008.000002c1@huawei.com> (raw)
In-Reply-To: <6792df1982a19_20fa294db@dwillia2-xfh.jf.intel.com.notmuch>
On Thu, 23 Jan 2025 16:30:17 -0800
Dan Williams <dan.j.williams@intel.com> wrote:
> Dave Jiang wrote:
> > CXL spec r3.1 8.2.9.6.1 Get Supported Features (Opcode 0500h)
> > The command retrieve the list of supported device-specific features
> > (identified by UUID) and general information about each Feature.
> >
> > The driver will retrieve the feature entries in order to make checks and
> > provide information for the Get Feature and Set Feature command. One of
> > the main piece of information retrieved are the effects a Set Feature
> > command would have for a particular feature.
> >
> > Co-developed-by: Shiju Jose <shiju.jose@huawei.com>
> > Signed-off-by: Shiju Jose <shiju.jose@huawei.com>
> > Signed-off-by: Dave Jiang <dave.jiang@intel.com>
> > ---
> > v1:
> > - Change input param from cxlds to cxl_mbox
> > - Move mbox_out declaration inline. (Jonathan)
> > - Fix __counted_by() input. (Jonathan)
> > - Return count for cxl_get_supported_features_count(). (Dan)
> > - Remove goto from cxl_get_supported_features(). (Dan)
> > - Return cxl_get_supported_feature_entry() directly. (Dan)
> > - Drop user path enumeration. (Dan)
> > - Move to the feature driver model. (Dan)
> > - Add support for 0 feature data requested.
> > - Add missing increment of feature data ptr during copy.
> > ---
> > drivers/cxl/core/features.c | 28 +++++++
> > drivers/cxl/core/mbox.c | 3 +-
> > drivers/cxl/cxl.h | 2 +
> > drivers/cxl/features.c | 146 +++++++++++++++++++++++++++++++++++-
> > include/cxl/features.h | 32 ++++++++
> > 5 files changed, 209 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/cxl/core/features.c b/drivers/cxl/core/features.c
> > index eb6eb191a32e..66a4b82910e6 100644
> > --- a/drivers/cxl/core/features.c
> > +++ b/drivers/cxl/core/features.c
> > @@ -1,6 +1,7 @@
> > // SPDX-License-Identifier: GPL-2.0-only
> > /* Copyright(c) 2024-2025 Intel Corporation. All rights reserved. */
> > #include <linux/device.h>
> > +#include <cxl/mailbox.h>
> > #include "cxl.h"
> > #include "core.h"
> >
> > @@ -69,3 +70,30 @@ struct cxl_features *cxl_features_alloc(struct cxl_mailbox *cxl_mbox,
> > return ERR_PTR(rc);
> > }
> > EXPORT_SYMBOL_NS_GPL(cxl_features_alloc, "CXL");
> > +
> > +struct cxl_feat_entry *
> > +cxl_get_supported_feature_entry(struct cxl_features *features,
> > + const uuid_t *feat_uuid)
> > +{
> > + struct cxl_feat_entry *feat_entry;
> > + struct cxl_features_state *cfs;
> > + int count;
> > +
> > + cfs = dev_get_drvdata(&features->dev);
> > + if (!cfs)
> > + return ERR_PTR(-EOPNOTSUPP);
>
> How could this function be called outside of the driver being enabled?
>
> If the driver might not be enabled when this is called, what stops it
> from being disabled immediately after this check?
>
> Went looking for the caller of this function... none in this patch set.
>
> If this is for the EDAC use case, that enabling had better be triggered
> from a known context where these questions have a satisfactory answer.
> As it stands I think you can just delete it, right?
>
> This has me thinking that the EDAC integration should just be a feature
> of the cxl_features_driver.
I'm not 100% sure I see what you mean here, but if you mean pushing
the registration code into cxl_features.ko...
I replied to this in the other thread, but just to add a bit here.
I think this creates a worse spiders web than we have today. Not
all EDAC features we might add (e.g. device self test) have anything to do
with get/set features. I'm not sure we'll support that one in EDAC soon
though it might make sense if there is generality with non CXL systems
(I've been meaning to look into that.)
To me, the CXL features support is providing a service to some of the EDAC
features, but they use other services from CXL drivers and potentially
don't use CXL features at all. For now we have the repair drivers
that only use the features support for a tiny bit of what they do
(tweaking device initiated aspects and detailed record generation
- if we even support those yet).
At some point we may have core CXL functionality depending on
get/set features as well as there are things we definitely don't
want in either EDAC or fwctl like metabits storage controls.
So I'd be careful adding any thing to cxl_features beyond stuff
that is definitely clustered with fwctl bit or helpers.
Soon I'd also expect us to add 'features' to fwctl interface
that aren't using get/set features. I think you suggested that we
could do this by making up some guids for them and pushing though
this same interface.
Jonathan
next prev parent reply other threads:[~2025-01-27 11:10 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-22 23:50 [PATCH v1 0/19] cxl: Add CXL feature commands support via fwctl Dave Jiang
2025-01-22 23:50 ` [PATCH v1 01/19] cxl: Refactor user ioctl command path from mds to mailbox Dave Jiang
2025-01-22 23:50 ` [PATCH v1 02/19] cxl: Add skeletal features driver Dave Jiang
2025-01-23 3:59 ` Dan Williams
2025-01-23 15:49 ` Dave Jiang
2025-01-23 19:57 ` Dan Williams
2025-01-23 17:24 ` Jonathan Cameron
2025-01-22 23:50 ` [PATCH v1 03/19] cxl: Enumerate feature commands Dave Jiang
2025-01-23 17:33 ` Jonathan Cameron
2025-01-23 23:55 ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 04/19] cxl: Add Get Supported Features command for kernel usage Dave Jiang
2025-01-23 17:43 ` Jonathan Cameron
2025-01-24 0:30 ` Dan Williams
2025-01-24 15:01 ` Jason Gunthorpe
2025-01-27 11:10 ` Jonathan Cameron [this message]
2025-01-28 0:54 ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 05/19] cxl: Add features driver attribute to emit number of features supported Dave Jiang
2025-01-23 17:44 ` Jonathan Cameron
2025-01-24 0:35 ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 06/19] cxl/test: Add Get Supported Features mailbox command support Dave Jiang
2025-01-23 17:47 ` Jonathan Cameron
2025-01-24 0:42 ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 07/19] cxl/mbox: Add GET_FEATURE mailbox command Dave Jiang
2025-01-23 17:50 ` Jonathan Cameron
2025-01-24 22:58 ` Dan Williams
2025-01-29 0:14 ` Dave Jiang
2025-01-22 23:50 ` [PATCH v1 08/19] cxl/mbox: Add SET_FEATURE " Dave Jiang
2025-01-23 17:52 ` Jonathan Cameron
2025-01-24 23:01 ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 09/19] cxl: Setup exclusive CXL features that are reserved for the kernel Dave Jiang
2025-01-23 17:59 ` Jonathan Cameron
2025-01-24 23:05 ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 10/19] cxl: Add FWCTL support to the CXL features driver Dave Jiang
2025-01-23 18:04 ` Jonathan Cameron
2025-01-23 18:53 ` Jason Gunthorpe
2025-01-24 23:14 ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 11/19] cxl: Add support for get driver information Dave Jiang
2025-01-23 18:09 ` Jonathan Cameron
2025-01-25 1:26 ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 12/19] cxl: Move cxl_mem.h under uapi to cxl exclusive directory Dave Jiang
2025-01-23 18:10 ` Jonathan Cameron
2025-01-25 1:29 ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 13/19] cxl: Move cxl feature command structs to user header Dave Jiang
2025-01-23 18:12 ` Jonathan Cameron
2025-01-23 18:13 ` Jonathan Cameron
2025-01-25 1:34 ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 14/19] cxl: Add support for fwctl RPC command to enable CXL feature commands Dave Jiang
2025-01-23 18:21 ` Jonathan Cameron
2025-01-25 2:08 ` Dan Williams
2025-01-27 10:51 ` Jonathan Cameron
2025-01-28 0:40 ` Dan Williams
2025-01-28 12:01 ` Jonathan Cameron
2025-01-28 15:55 ` Dave Jiang
2025-01-30 13:42 ` Jonathan Cameron
2025-02-04 1:43 ` Dan Williams
2025-02-04 10:04 ` Jonathan Cameron
2025-02-04 22:26 ` Dan Williams
2025-02-05 17:36 ` Jonathan Cameron
2025-02-05 18:02 ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 15/19] cxl: Add support to handle user feature commands for get feature Dave Jiang
2025-01-23 18:25 ` Jonathan Cameron
2025-01-25 2:23 ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 16/19] cxl: Add support to handle user feature commands for set feature Dave Jiang
2025-01-23 18:26 ` Jonathan Cameron
2025-01-25 2:29 ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 17/19] cxl/test: Add Get Feature support to cxl_test Dave Jiang
2025-01-25 2:33 ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 18/19] cxl/test: Add Set " Dave Jiang
2025-01-25 2:36 ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 19/19] fwctl/cxl: Add documentation to FWCTL CXL Dave Jiang
2025-01-25 2:55 ` Dan Williams
2025-01-23 17:03 ` [PATCH v1 0/19] cxl: Add CXL feature commands support via fwctl Jonathan Cameron
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=20250127111008.000002c1@huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=alison.schofield@intel.com \
--cc=dan.j.williams@intel.com \
--cc=dave.jiang@intel.com \
--cc=dave@stgolabs.net \
--cc=ira.weiny@intel.com \
--cc=jgg@nvidia.com \
--cc=linux-cxl@vger.kernel.org \
--cc=shiju.jose@huawei.com \
--cc=vishal.l.verma@intel.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