public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Ira Weiny <ira.weiny@intel.com>
To: Davidlohr Bueso <dave@stgolabs.net>, <ira.weiny@intel.com>
Cc: Dave Jiang <dave.jiang@intel.com>, Fan Ni <fan.ni@samsung.com>,
	"Jonathan Cameron" <Jonathan.Cameron@huawei.com>,
	Navneet Singh <navneet.singh@intel.com>,
	Dan Williams <dan.j.williams@intel.com>,
	"Alison Schofield" <alison.schofield@intel.com>,
	Vishal Verma <vishal.l.verma@intel.com>,
	<linux-btrfs@vger.kernel.org>, <linux-cxl@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 01/26] cxl/mbox: Flag support for Dynamic Capacity Devices (DCD)
Date: Tue, 2 Apr 2024 15:26:44 -0700	[thread overview]
Message-ID: <660c8624cb3c9_8a7d029456@iweiny-mobl.notmuch> (raw)
In-Reply-To: <aczotz4a2xv6x4cse3hh5vpk57ekuwqii67pu46okdvdciae7i@qsopoigqhvw5>

Davidlohr Bueso wrote:
> On Sun, 24 Mar 2024, ira.weiny@intel.com wrote:
> 
> >From: Navneet Singh <navneet.singh@intel.com>
> >
> >Per the CXL 3.1 specification software must check the Command Effects
> >Log (CEL) to know if a device supports dynamic capacity (DC).  If the
> >device does support DC the specifics of the DC Regions (0-7) are read
> >through the mailbox.
> 
> I vote to fold this into patch 3, favoring reduced patch count in the
> series to trvially enlarging that particular patch.

I'll consider it.  I've tried hard to split the original series up into
very easily reviewable chunks.  So I'm inclined to leave this separate for
now.

> 
> >Flag DC Device (DCD) commands in a device if they are supported.
> >Subsequent patches will key off these bits to configure DCD.
> 
> It would be good to mention these here explicitly (if this patch will
> live on). For example, that config will be the driver's way of telling
> if dcd is enabled or disabled - we could have cases of that zeroed bit
> but the rest enabled.

It took me a bit to parse this but I see what you mean.  Yes the
GET_CONFIG command is the one used specifically to determine if DCD is
supported.

I'll clean up the commit message.  In retrospect it was wrong for me to
mention subsequent patches here.  I'm going to move this final detail to
patch 3.

> 
> lgtm otherwise.
> 
> Reviewed-by: Davidlohr Bueso <dave@stgolabs.net>

Thanks!  :-D
Ira

> 
> >Signed-off-by: Navneet Singh <navneet.singh@intel.com>
> >Co-developed-by: Ira Weiny <ira.weiny@intel.com>
> >Signed-off-by: Ira Weiny <ira.weiny@intel.com>
> >---
> >Changes for v1
> >[iweiny: update to latest master]
> >[iweiny: update commit message]
> >[iweiny: Based on the fix:
> >	https://lore.kernel.org/all/20230903-cxl-cel-fix-v1-1-e260c9467be3@intel.com/
> >[jonathan: remove unneeded format change]
> >[jonathan: don't split security code in mbox.c]
> >---
> > drivers/cxl/core/mbox.c | 33 +++++++++++++++++++++++++++++++++
> > drivers/cxl/cxlmem.h    | 15 +++++++++++++++
> > 2 files changed, 48 insertions(+)
> >
> >diff --git a/drivers/cxl/core/mbox.c b/drivers/cxl/core/mbox.c
> >index 9adda4795eb7..ed4131c6f50b 100644
> >--- a/drivers/cxl/core/mbox.c
> >+++ b/drivers/cxl/core/mbox.c
> >@@ -161,6 +161,34 @@ static void cxl_set_security_cmd_enabled(struct cxl_security_state *security,
> >	}
> > }
> >
> >+static bool cxl_is_dcd_command(u16 opcode)
> >+{
> >+#define CXL_MBOX_OP_DCD_CMDS 0x48
> >+
> >+	return (opcode >> 8) == CXL_MBOX_OP_DCD_CMDS;
> >+}
> >+
> >+static void cxl_set_dcd_cmd_enabled(struct cxl_memdev_state *mds,
> >+					u16 opcode)
> >+{
> >+	switch (opcode) {
> >+	case CXL_MBOX_OP_GET_DC_CONFIG:
> >+		set_bit(CXL_DCD_ENABLED_GET_CONFIG, mds->dcd_cmds);
> >+		break;
> >+	case CXL_MBOX_OP_GET_DC_EXTENT_LIST:
> >+		set_bit(CXL_DCD_ENABLED_GET_EXTENT_LIST, mds->dcd_cmds);
> >+		break;
> >+	case CXL_MBOX_OP_ADD_DC_RESPONSE:
> >+		set_bit(CXL_DCD_ENABLED_ADD_RESPONSE, mds->dcd_cmds);
> >+		break;
> >+	case CXL_MBOX_OP_RELEASE_DC:
> >+		set_bit(CXL_DCD_ENABLED_RELEASE, mds->dcd_cmds);
> >+		break;
> >+	default:
> >+		break;
> >+	}
> >+}
> >+
> > static bool cxl_is_poison_command(u16 opcode)
> > {
> > #define CXL_MBOX_OP_POISON_CMDS 0x43
> >@@ -733,6 +761,11 @@ static void cxl_walk_cel(struct cxl_memdev_state *mds, size_t size, u8 *cel)
> >			enabled++;
> >		}
> >
> >+		if (cxl_is_dcd_command(opcode)) {
> >+			cxl_set_dcd_cmd_enabled(mds, opcode);
> >+			enabled++;
> >+		}
> >+
> >		dev_dbg(dev, "Opcode 0x%04x %s\n", opcode,
> >			enabled ? "enabled" : "unsupported by driver");
> >	}
> >diff --git a/drivers/cxl/cxlmem.h b/drivers/cxl/cxlmem.h
> >index 20fb3b35e89e..79a67cff9143 100644
> >--- a/drivers/cxl/cxlmem.h
> >+++ b/drivers/cxl/cxlmem.h
> >@@ -238,6 +238,15 @@ struct cxl_event_state {
> >	struct mutex log_lock;
> > };
> >
> >+/* Device enabled DCD commands */
> >+enum dcd_cmd_enabled_bits {
> >+	CXL_DCD_ENABLED_GET_CONFIG,
> >+	CXL_DCD_ENABLED_GET_EXTENT_LIST,
> >+	CXL_DCD_ENABLED_ADD_RESPONSE,
> >+	CXL_DCD_ENABLED_RELEASE,
> >+	CXL_DCD_ENABLED_MAX
> >+};
> >+
> > /* Device enabled poison commands */
> > enum poison_cmd_enabled_bits {
> >	CXL_POISON_ENABLED_LIST,
> >@@ -454,6 +463,7 @@ struct cxl_dev_state {
> >  *                (CXL 2.0 8.2.9.5.1.1 Identify Memory Device)
> >  * @mbox_mutex: Mutex to synchronize mailbox access.
> >  * @firmware_version: Firmware version for the memory device.
> >+ * @dcd_cmds: List of DCD commands implemented by memory device
> >  * @enabled_cmds: Hardware commands found enabled in CEL.
> >  * @exclusive_cmds: Commands that are kernel-internal only
> >  * @total_bytes: sum of all possible capacities
> >@@ -481,6 +491,7 @@ struct cxl_memdev_state {
> >	size_t lsa_size;
> >	struct mutex mbox_mutex; /* Protects device mailbox and firmware */
> >	char firmware_version[0x10];
> >+	DECLARE_BITMAP(dcd_cmds, CXL_DCD_ENABLED_MAX);
> >	DECLARE_BITMAP(enabled_cmds, CXL_MEM_COMMAND_ID_MAX);
> >	DECLARE_BITMAP(exclusive_cmds, CXL_MEM_COMMAND_ID_MAX);
> >	u64 total_bytes;
> >@@ -551,6 +562,10 @@ enum cxl_opcode {
> >	CXL_MBOX_OP_UNLOCK		= 0x4503,
> >	CXL_MBOX_OP_FREEZE_SECURITY	= 0x4504,
> >	CXL_MBOX_OP_PASSPHRASE_SECURE_ERASE	= 0x4505,
> >+	CXL_MBOX_OP_GET_DC_CONFIG	= 0x4800,
> >+	CXL_MBOX_OP_GET_DC_EXTENT_LIST	= 0x4801,
> >+	CXL_MBOX_OP_ADD_DC_RESPONSE	= 0x4802,
> >+	CXL_MBOX_OP_RELEASE_DC		= 0x4803,
> >	CXL_MBOX_OP_MAX			= 0x10000
> > };
> >
> >
> >--
> >2.44.0
> >

  reply	other threads:[~2024-04-02 22:27 UTC|newest]

Thread overview: 161+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-24 23:18 [PATCH 00/26] DCD: Add support for Dynamic Capacity Devices (DCD) ira.weiny
2024-03-24 23:18 ` [PATCH 01/26] cxl/mbox: Flag " ira.weiny
2024-03-25 16:11   ` Jonathan Cameron
2024-03-25 22:16   ` fan
2024-03-25 22:56   ` Davidlohr Bueso
2024-04-02 22:26     ` Ira Weiny [this message]
2024-03-26 16:34   ` Dave Jiang
2024-04-02 22:30     ` Ira Weiny
2024-04-10 18:15   ` Alison Schofield
2024-03-24 23:18 ` [PATCH 02/26] cxl/core: Separate region mode from decoder mode ira.weiny
2024-03-25 16:20   ` Jonathan Cameron
2024-04-02 23:24     ` Ira Weiny
2024-03-25 23:18   ` Davidlohr Bueso
2024-03-28  5:22     ` Ira Weiny
2024-03-28 20:09       ` Dave Jiang
2024-04-02 23:27         ` Ira Weiny
2024-04-24 17:58         ` Ira Weiny
2024-04-02 23:25     ` Ira Weiny
2024-04-10 18:49   ` Alison Schofield
2024-03-24 23:18 ` [PATCH 03/26] cxl/mem: Read dynamic capacity configuration from the device ira.weiny
2024-03-25 17:40   ` Jonathan Cameron
2024-04-03 22:22     ` Ira Weiny
2024-03-25 23:36   ` fan
2024-04-03 22:41     ` Ira Weiny
2024-04-02 11:41   ` Jørgen Hansen
2024-04-05 18:09     ` Ira Weiny
2024-04-09  8:42       ` Jørgen Hansen
2024-04-09  2:00   ` Alison Schofield
2024-03-24 23:18 ` [PATCH 04/26] cxl/region: Add dynamic capacity decoder and region modes ira.weiny
2024-03-25 17:42   ` Jonathan Cameron
2024-03-26 16:17   ` fan
2024-03-27 15:43   ` Dave Jiang
2024-04-05 18:19     ` Ira Weiny
2024-04-06  0:01       ` Dave Jiang
2024-05-14  2:40   ` Zhijian Li (Fujitsu)
2024-03-24 23:18 ` [PATCH 05/26] cxl/core: Simplify cxl_dpa_set_mode() Ira Weiny
2024-03-25 17:46   ` Jonathan Cameron
2024-03-25 21:38   ` Davidlohr Bueso
2024-03-26 16:25   ` fan
2024-03-26 17:46   ` Dave Jiang
2024-04-05 19:21     ` Ira Weiny
2024-04-06  0:02       ` Dave Jiang
2024-04-09  0:43   ` Alison Schofield
2024-05-03 19:09     ` Ira Weiny
2024-05-03 20:33       ` Alison Schofield
2024-05-04  1:19       ` Dan Williams
2024-05-06  4:06         ` Ira Weiny
2024-05-04  4:13       ` Dan Williams
2024-05-06  3:46         ` Ira Weiny
2024-03-24 23:18 ` [PATCH 06/26] cxl/port: Add Dynamic Capacity mode support to endpoint decoders ira.weiny
2024-03-26 16:35   ` fan
2024-04-05 19:50     ` Ira Weiny
2024-03-26 17:58   ` Dave Jiang
2024-04-05 20:34     ` Ira Weiny
2024-04-04  8:32   ` Jonathan Cameron
2024-04-05 20:56     ` Ira Weiny
2024-05-06 16:22       ` Dan Williams
2024-05-10  5:31         ` Ira Weiny
2024-04-10 20:33   ` Alison Schofield
2024-03-24 23:18 ` [PATCH 07/26] cxl/port: Add dynamic capacity size " ira.weiny
2024-04-05 13:54   ` Jonathan Cameron
2024-05-03 17:09     ` Ira Weiny
2024-05-03 17:21       ` Dan Williams
2024-05-06  4:07         ` Ira Weiny
2024-04-10 22:50   ` Alison Schofield
2024-03-24 23:18 ` [PATCH 08/26] cxl/mem: Expose device dynamic capacity capabilities ira.weiny
2024-03-25 23:40   ` Davidlohr Bueso
2024-03-26 18:30     ` fan
2024-04-04  8:44       ` Jonathan Cameron
2024-04-04  8:51   ` Jonathan Cameron
2024-03-24 23:18 ` [PATCH 09/26] cxl/region: Add Dynamic Capacity CXL region support ira.weiny
2024-03-26 22:31   ` fan
2024-04-10  4:25     ` Ira Weiny
2024-03-27 17:27   ` Dave Jiang
2024-04-10  4:35     ` Ira Weiny
2024-04-04 10:26   ` Jonathan Cameron
2024-04-10  4:40     ` Ira Weiny
2024-03-24 23:18 ` [PATCH 10/26] cxl/events: Factor out event msgnum configuration Ira Weiny
2024-03-27 17:38   ` Dave Jiang
2024-04-04 15:07   ` Jonathan Cameron
2024-03-24 23:18 ` [PATCH 11/26] cxl/pci: Delay event buffer allocation Ira Weiny
2024-03-25 22:26   ` Davidlohr Bueso
2024-03-27 17:38   ` Dave Jiang
2024-04-04 15:08   ` Jonathan Cameron
2024-03-24 23:18 ` [PATCH 12/26] cxl/pci: Factor out interrupt policy check Ira Weiny
2024-03-27 17:41   ` Dave Jiang
2024-04-04 15:10   ` Jonathan Cameron
2024-03-24 23:18 ` [PATCH 13/26] cxl/mem: Configure dynamic capacity interrupts ira.weiny
2024-03-26 23:12   ` fan
2024-04-10  4:48     ` Ira Weiny
2024-03-27 17:54   ` Dave Jiang
2024-04-10  5:26     ` Ira Weiny
2024-04-04 15:22   ` Jonathan Cameron
2024-04-10  5:34     ` Ira Weiny
2024-04-10 23:23   ` Alison Schofield
2024-05-06 16:56   ` Dan Williams
2024-03-24 23:18 ` [PATCH 14/26] cxl/region: Read existing extents on region creation ira.weiny
2024-03-26 23:27   ` fan
2024-04-10  5:46     ` Ira Weiny
2024-03-27 17:45   ` fan
2024-04-10  6:19     ` Ira Weiny
2024-03-27 18:31   ` Dave Jiang
2024-04-10  6:09     ` Ira Weiny
2024-04-02 13:57   ` Jørgen Hansen
2024-04-10  6:29     ` Ira Weiny
2024-04-04 16:04   ` Jonathan Cameron
2024-04-04 16:13   ` Jonathan Cameron
2024-04-10 17:44   ` Alison Schofield
2024-05-06 18:34   ` Dan Williams
2024-06-29  3:47     ` Ira Weiny
2024-03-24 23:18 ` [PATCH 15/26] range: Add range_overlaps() Ira Weiny
2024-03-25 18:33   ` David Sterba
2024-03-25 21:24   ` Davidlohr Bueso
2024-03-26 12:51   ` Johannes Thumshirn
2024-03-27 17:36   ` fan
2024-03-28 20:09   ` Dave Jiang
2024-04-04 16:06   ` Jonathan Cameron
2024-03-24 23:18 ` [PATCH 16/26] cxl/extent: Realize extent devices ira.weiny
2024-03-27 22:34   ` fan
2024-03-28 21:11   ` Dave Jiang
2024-04-24 19:57     ` Ira Weiny
2024-04-04 16:32   ` Jonathan Cameron
2024-04-30  3:23     ` Ira Weiny
2024-05-02 21:12       ` Dan Williams
2024-05-06  4:35         ` Ira Weiny
2024-04-11  0:09   ` Alison Schofield
2024-05-07  1:30   ` Dan Williams
2024-03-24 23:18 ` [PATCH 17/26] dax/region: Create extent resources on DAX region driver load ira.weiny
2024-04-04 16:36   ` Jonathan Cameron
2024-04-09 16:22   ` fan
2024-05-07  2:31   ` Dan Williams
2024-03-24 23:18 ` [PATCH 18/26] cxl/mem: Handle DCD add & release capacity events ira.weiny
2024-04-04 17:03   ` Jonathan Cameron
2024-05-07  5:04   ` Dan Williams
2024-03-24 23:18 ` [PATCH 19/26] dax/bus: Factor out dev dax resize logic Ira Weiny
2024-04-04 17:15   ` Jonathan Cameron
2024-03-24 23:18 ` [PATCH 20/26] dax: Document dax dev range tuple Ira Weiny
2024-04-01 17:06   ` Dave Jiang
2024-04-04 17:19   ` Jonathan Cameron
2024-03-24 23:18 ` [PATCH 21/26] dax/region: Prevent range mapping allocation on sparse regions Ira Weiny
2024-04-01 17:07   ` Dave Jiang
2024-04-10 23:02   ` Alison Schofield
2024-03-24 23:18 ` [PATCH 22/26] dax/region: Support DAX device creation on sparse DAX regions Ira Weiny
2024-04-04 17:36   ` Jonathan Cameron
2024-03-24 23:18 ` [PATCH 23/26] cxl/mem: Trace Dynamic capacity Event Record ira.weiny
2024-04-01 17:56   ` Dave Jiang
2024-04-04 17:38   ` Jonathan Cameron
2024-04-10 17:03   ` Alison Schofield
2024-03-24 23:18 ` [PATCH 24/26] tools/testing/cxl: Make event logs dynamic Ira Weiny
2024-03-24 23:18 ` [PATCH 25/26] tools/testing/cxl: Add DC Regions to mock mem data Ira Weiny
2024-03-24 23:18 ` [PATCH 26/26] tools/testing/cxl: Add Dynamic Capacity events Ira Weiny
2024-03-25 19:24 ` [PATCH 00/26] DCD: Add support for Dynamic Capacity Devices (DCD) fan
2024-03-28  5:20   ` Ira Weiny
2024-04-03 20:39     ` Jonathan Cameron
2024-04-04 10:20 ` Jonathan Cameron
2024-04-04 17:49 ` Jonathan Cameron
2024-05-01 23:49   ` Ira Weiny
2024-05-03  9:20     ` Jonathan Cameron
2024-05-06  4:24       ` Ira Weiny
2024-05-08 14:43         ` Jonathan Cameron
2024-04-10 18:01 ` Alison Schofield

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=660c8624cb3c9_8a7d029456@iweiny-mobl.notmuch \
    --to=ira.weiny@intel.com \
    --cc=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=fan.ni@samsung.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-cxl@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=navneet.singh@intel.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