From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id F332BD31769 for ; Tue, 5 Nov 2024 17:22:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8AFB86B0088; Tue, 5 Nov 2024 12:22:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 85FE26B0089; Tue, 5 Nov 2024 12:22:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 700236B008A; Tue, 5 Nov 2024 12:22:30 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 489CB6B0088 for ; Tue, 5 Nov 2024 12:22:30 -0500 (EST) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id E7DA2ACD51 for ; Tue, 5 Nov 2024 17:22:29 +0000 (UTC) X-FDA: 82752709788.04.5CE0D7F Received: from relay.hostedemail.com (unirelay01 [10.200.18.64]) by imf19.hostedemail.com (Postfix) with ESMTP id 9F4691A0019 for ; Tue, 5 Nov 2024 17:21:45 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; arc=pass ("hostedemail.com:s=arc-20220608:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1730827224; a=rsa-sha256; cv=pass; b=ajE2Y8HVOtBU2w74jiJVdr8o1g58AkYz5cG6KaBpPx0iWjzKOXaYJ84BJt7P5TpXsNIMlE J4BBdO7xE+3sQjv0aC5VZmd7M2l+ncBvJFGzi1optH9lzC3Re3vbvhvkGf/C9THJIh7zQl 6UB/2Nbq3RrTec7TJz1o2tDU8wPvU4s= ARC-Authentication-Results: i=2; imf19.hostedemail.com; arc=pass ("hostedemail.com:s=arc-20220608:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1730827224; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=W7EDjgcg9w4MgkfbkSdja0YnNVe8D/ONUUr9bILMx78=; b=TYDhO+RrfXgwj11NZd25k0G6hKSXYPKCwO1hp5j/Mi+OrJx5IOt+Axdz1RdQtwAr/W87E1 DMh2vNQP4XAG0uNU2UdeDhkurC3kUP63XDnW3kPlj9oShPcjj5tJKaZQCuDzNKulSzdcPc IXGYgnwE6OwsiSfrs8RSpWcr9TJa49k= Received: from relay.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id EFE5B1C788F for ; Tue, 5 Nov 2024 17:22:26 +0000 (UTC) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id D0836161248 for ; Tue, 5 Nov 2024 17:22:26 +0000 (UTC) X-FDA: 82752709704.11.734F16E Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.21]) by imf21.hostedemail.com (Postfix) with ESMTP id 1A1271C001F for ; Tue, 5 Nov 2024 17:21:20 +0000 (UTC) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1730827122; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=W7EDjgcg9w4MgkfbkSdja0YnNVe8D/ONUUr9bILMx78=; b=7A6iR4DS8bS1ZPgMtXB+WYwfQLGeRZGYqcZoUhrhdHkQPlXWn1SjaE757aRycd3sjuADDb cUJ8oHMLmNZKbGXXtUYahCohst9WY1LFxnrzSkjolccLtw3BMR/hCrE0iY4gv5B9REr44C ZbnT1sF4QxIWKXUVZOCkryT/FHGEL5M= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=EWSw5Uk8; spf=pass (imf21.hostedemail.com: domain of dave.jiang@intel.com designates 198.175.65.21 as permitted sender) smtp.mailfrom=dave.jiang@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1730827122; a=rsa-sha256; cv=none; b=FyGboF15NDTaulETy1k4b5J1CdaQV8X4BCZqyVjNKX474w7KmdtGfx80jiiZ7FNj4mxaUJ AolPpbXB410kuJ6gayF30VKbhQOghhuelSC2YjVY/G3wg9062X9wqknpzieGdJCnIToeq8 6e04Sk5nrWaeX6UCuMOYA4vhjWFt+Hs= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1730827345; x=1762363345; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=fOVeXbQGB4t/BL9BtTDqtV361bSwIcfJ/2tZaOWzY+8=; b=EWSw5Uk8uHbQgK4F0Oawk9wCGYwwlX1+vnlKbU+ZJeaRZME9MpZNjpjB FBPTZrZlsihA93T3tR6TzU4UVVJMFmOvTq5mQMkZ2xtw3n7ooGFujIKPC vGBxxdg0j+9v4ctca3O0HApR4HCJdAE8MC32ogsdqsSfLvBZINng28fup CSGg/BMSjK8vModcskywROJYu0G/F4ButVQNCuPy6j7u0+hJPj5wRHtKM lYKvAcGktEfQClK8l8nUY9SBI4jVmjmaBq2KdNLBrZTmbtACHs43bRPIF wOOX9Lw5+V9ed321RpFxLGIHDVFUbiJBDNjPDzRwMQR44iL33xsYDg0lA w==; X-CSE-ConnectionGUID: QIqrbjQ5SQeEHVYNoN/atw== X-CSE-MsgGUID: iKBOV+M/TiaksfoRoGN58w== X-IronPort-AV: E=McAfee;i="6700,10204,11222"; a="30545374" X-IronPort-AV: E=Sophos;i="6.11,199,1725346800"; d="scan'208";a="30545374" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa113.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Nov 2024 09:22:23 -0800 X-CSE-ConnectionGUID: 8eL9tSElRCKhFF2qqTPsUw== X-CSE-MsgGUID: dVJ9YNh1Sra4CUon2yA5JA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.11,260,1725346800"; d="scan'208";a="114875996" Received: from spandruv-mobl4.amr.corp.intel.com (HELO [10.125.109.253]) ([10.125.109.253]) by orviesa002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Nov 2024 09:22:18 -0800 Message-ID: Date: Tue, 5 Nov 2024 10:22:17 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v15 12/15] cxl/mbox: Add support for PERFORM_MAINTENANCE mailbox command To: shiju.jose@huawei.com, linux-edac@vger.kernel.org, linux-cxl@vger.kernel.org, linux-acpi@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: bp@alien8.de, tony.luck@intel.com, rafael@kernel.org, lenb@kernel.org, mchehab@kernel.org, dan.j.williams@intel.com, dave@stgolabs.net, jonathan.cameron@huawei.com, gregkh@linuxfoundation.org, sudeep.holla@arm.com, jassisinghbrar@gmail.com, alison.schofield@intel.com, vishal.l.verma@intel.com, ira.weiny@intel.com, david@redhat.com, Vilas.Sridharan@amd.com, leo.duran@amd.com, Yazen.Ghannam@amd.com, rientjes@google.com, jiaqiyan@google.com, Jon.Grimm@amd.com, dave.hansen@linux.intel.com, naoya.horiguchi@nec.com, james.morse@arm.com, jthoughton@google.com, somasundaram.a@hpe.com, erdemaktas@google.com, pgonda@google.com, duenwen@google.com, gthelen@google.com, wschwartz@amperecomputing.com, dferguson@amperecomputing.com, wbs@os.amperecomputing.com, nifan.cxl@gmail.com, tanxiaofei@huawei.com, prime.zeng@hisilicon.com, roberto.sassu@huawei.com, kangkang.shen@futurewei.com, wanghuiqiang@huawei.com, linuxarm@huawei.com References: <20241101091735.1465-1-shiju.jose@huawei.com> <20241101091735.1465-13-shiju.jose@huawei.com> Content-Language: en-US From: Dave Jiang In-Reply-To: <20241101091735.1465-13-shiju.jose@huawei.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-HE-Meta: U2FsdGVkX18ASjg35aSrgzVTxJIbmfEsHNf8TTK5cK0r8AG5EU2LWTLKXT2OqcozLXSsIGpzuVBvTc1T6F9tVn5KcJ7lEUoYml273F/BY0JC+yEVH5g/w+IBHh4D2b9uLxg9cemMa1qwMxBL5mEMqfl3z1Jb/K6ZgZLyvaAzaPY8xJQoM7/3FeCkx1mjwRg5W5OG6KoSXjG4n9GVIvJQ0fAHJ+7/AGDfCDbcqMZNHridAqlCScnwD4bmkE6MUvfsUM4YmJOVSLpq4UY2s1hCjnRxkbJWjOqk/ZB/T6GnbRAuMPNfg43K5hhLbSBX68DpIl4k46ezuS2Wbm5oyDy49xTGUJBsf8sLhv1qttJIXf3my1+4UVRikwCIub9/CO9fwXC/4biQXIWTzj87wCF4nCPWhDUlg9OwThz4Esrgh1aMJhmo6FbgqELzm50mIhmS9Ujfg5XvwV9FjMo0TZRQQpmsVpa8LKoPtLKMeg5RxGmO+xcAkzy6R4bsgkwrOCCO5yXKNNM36tTCmesXY7mx8Y1U3IOELK7nt4KEMkdy7eTvhovdYDjGmZm5Gvf8jhiY31MFk3puC7WXNi6eTxox5l4GB3ACVOeh9QxdMFHG1oYC0ljV+vMSHQKhOMyjWT4AVmVJEaQfKHrBvx41KXrBsYNldBd8YLtkHNNcUvelD6Mhry35HXUWBoVQMtU0A9HWzhxw2oEcmZm0hLWQ2u5oSk8bq4Ety4XVqnsZAbcW7fHnES+7EM+8BhCRvu3VdSwVpdgYob6jd2izWMCY1CekdeUutgudXPfgwG6zyqXDTwKMbaU3GMver/TdBOLt3c/GpWfBYsknAksq0r0CvDXibs5Y3Vwvv4Bn9Sc1HiCzMmwVOOgKJ94hRv4A7QledlTWqpG3jq62gvRepfF8JW7B7TVhuLFkfZ/0qj0xQLM93N3VwFHn0mIVjji2NYBjwjNRyuOEbU/GhbtqF+pIb7c InYvT3ye 5DiQzJ5TSUuSuQ9l4dVk4xM5cogjItBzfWh2TJrFAcEKq/27++sd+2xI3x3pU9Qi9zPLClJEyAgE4CGGEQWlqjRW+d7wSCrulj3Qi+BSGxRmBXrVrtjqHHVzDnIaAdTPJYLfG7ZUnsSSiaNzuSpBtt31uL+aMN7SZxi9sizbCjkduP+PJNtJDVSp13+0816/pXYB6chMyExIEKjOWAO0EFQ0IFsgfGgUUBMPpRv9QmR/3gHvaHPp8KL11/obeDz1gyvgjHYBqOo4xmyTZtxuZbzTJ4qO4s+1NPUJIxrwnld0djVg1A4jaYKArP9s2NTvhqvEerOX4Bf2Bj41PkMZcJCbuyHttvWtz3mYaBjyyk//+hUo+jth2KpHaGw== X-Rspamd-Queue-Id: 9F4691A0019 X-Stat-Signature: j4oaejqmmdnpkci3kjmhbgwp7bhhyzp5 X-HE-Tag-Orig: 1730827280-842503 X-Rspam-User: X-Rspamd-Server: rspam05 X-HE-Tag: 1730827305-709733 X-HE-Meta: U2FsdGVkX1/USsDYXVr+g81PUhDHNnI7ZLtq5XxmFpXL3TWhy1TxlTK5/3C21qyFhExMvZ+G5AjU94p5TIIHuIgImn+PAytVIDrabKDl9ETJyAO47zmS3QAAwTsJQlhYN/+c6oHiMdGwmlc0Tr6rURlvTrlkEQmIOr3RfsQbT/jZiugOqcGUp9S44mLLxbQIN4iswdz5KnJbtDy8t5p5Qshy/Isx3Sm+Xx7d8ZySnQcmIEWyvAmYj7clZ3/3z6eGeBGyBKU3CyTVcQDVEjDvZADFM3j4UTNdwBhsV1eg2tkuU4Y04Xyk8lNjllvsnZ/1QUCtKlhh+83ELgK3/36mZfovzRyOR0ONksyPh5u0ObrLIvZ81a6nbUdRBTGT/HbbPf03ojs3vBegnrDiV2kNZJ1wjIj/g695ijdJnfjHu2XvuPc2w6FOP53ATMjuZc5EOn9jT2OuGUY7CZWuqPHA5oA1MHDLTias6SupIP7Nw2RYjs37IqNFmTPwUI17U0JfzOpUTOIVz/CtFhhUPbeEjfWzioW5UmswitfIb0H8/zegzp/EctCM461mxbV4De55O+XqFb1Vp1y4LGUXhKGUO3uso3rRLy3RjKd9N8dt6IL2tjmepkfq4Tp4TvdKG+Apui5Eyaogtcui/zh7087U/qp3dKOegdvHTRrOIUqa/BApxI4ygRRZVA53emUgnUJpIkr+Da64zBApsLx2tovCK/vktAM2U+SZzSJBpUTHDUlzehu/3PP+LzkEyiF/D0mAFOn1HW8CM1HqWIEeBB5Riv+3bvy0OT/2v1ZjgcMUH6m9YSz+PV4aRG0gmBmpHgaFofLqTT4ZWpgrSwNV3TQHAEgtFNUUItB1LCWXz5z03yOO5hX7WMcuWMY9gXM1I+p75m0ZiH7ARzSRAlcvNCqwhJaU9851trgIWnSe44srnAE9WgOkbJHnSRBwLglz60oek8SlIdw4+OJxqTRWGO9 aoQvyuF2 vGNLAS1U1d6ai2A6SQkpICW6sn4dZF1ToP6S93CaxATPqYuGK4DtB4ELfSHJV87Ul34ByzA2l3JBaWXr74V1vpxqKha6qc0+SwQ+cQ7/pKv/YiWp3HNKAwPJGNJkGb7Bl6KnjhAGIlrqTS0oGjvjvUEWg5KADTlv43J7r6OzQ3TlkTexALJ1j9p9dQ5mvvHK/RgrLKrE1V/RzGT+B3Pt8uama10/HR95avZNnFVLOyaPVp2/Q6PcW6dek/f0+6uP4gymRd+V5EUWVapnY2Ol/0rxxIbLTjAHzsan4awChPkTHYlowOg5g9ZMj9ikYfQHj+lIL X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On 11/1/24 2:17 AM, shiju.jose@huawei.com wrote: > From: Shiju Jose > > Add support for PERFORM_MAINTENANCE mailbox command. > > CXL spec 3.1 section 8.2.9.7.1 describes the Perform Maintenance command. > This command requests the device to execute the maintenance operation > specified by the maintenance operation class and the maintenance operation > subclass. > > Reviewed-by: Jonathan Cameron > Signed-off-by: Shiju Jose Reviewed-by: Dave Jiang > --- > drivers/cxl/core/mbox.c | 35 +++++++++++++++++++++++++++++++++++ > drivers/cxl/cxlmem.h | 17 +++++++++++++++++ > 2 files changed, 52 insertions(+) > > diff --git a/drivers/cxl/core/mbox.c b/drivers/cxl/core/mbox.c > index 4b9e62de164b..381cf9d61c85 100644 > --- a/drivers/cxl/core/mbox.c > +++ b/drivers/cxl/core/mbox.c > @@ -1084,6 +1084,41 @@ int cxl_set_feature(struct cxl_memdev_state *mds, > } > EXPORT_SYMBOL_NS_GPL(cxl_set_feature, CXL); > > +int cxl_do_maintenance(struct cxl_memdev_state *mds, > + u8 class, u8 subclass, > + void *data_in, size_t data_in_size) > +{ > + struct cxl_mailbox *cxl_mbox = &mds->cxlds.cxl_mbox; > + struct cxl_memdev_maintenance_pi { > + struct cxl_mbox_do_maintenance_hdr hdr; > + u8 data[]; > + } __packed; > + struct cxl_mbox_cmd mbox_cmd; > + size_t hdr_size; > + > + struct cxl_memdev_maintenance_pi *pi __free(kfree) = > + kmalloc(cxl_mbox->payload_size, GFP_KERNEL); > + pi->hdr.op_class = class; > + pi->hdr.op_subclass = subclass; > + hdr_size = sizeof(pi->hdr); > + /* > + * Check minimum mbox payload size is available for > + * the maintenance data transfer. > + */ > + if (hdr_size + data_in_size > cxl_mbox->payload_size) > + return -ENOMEM; > + > + memcpy(pi->data, data_in, data_in_size); > + mbox_cmd = (struct cxl_mbox_cmd) { > + .opcode = CXL_MBOX_OP_DO_MAINTENANCE, > + .size_in = hdr_size + data_in_size, > + .payload_in = pi, > + }; > + > + return cxl_internal_send_cmd(cxl_mbox, &mbox_cmd); > +} > +EXPORT_SYMBOL_NS_GPL(cxl_do_maintenance, CXL); > + > /** > * cxl_enumerate_cmds() - Enumerate commands for a device. > * @mds: The driver data for the operation > diff --git a/drivers/cxl/cxlmem.h b/drivers/cxl/cxlmem.h > index 9259c5d70a65..28290f7c89f7 100644 > --- a/drivers/cxl/cxlmem.h > +++ b/drivers/cxl/cxlmem.h > @@ -533,6 +533,7 @@ enum cxl_opcode { > CXL_MBOX_OP_GET_SUPPORTED_FEATURES = 0x0500, > CXL_MBOX_OP_GET_FEATURE = 0x0501, > CXL_MBOX_OP_SET_FEATURE = 0x0502, > + CXL_MBOX_OP_DO_MAINTENANCE = 0x0600, > CXL_MBOX_OP_IDENTIFY = 0x4000, > CXL_MBOX_OP_GET_PARTITION_INFO = 0x4100, > CXL_MBOX_OP_SET_PARTITION_INFO = 0x4101, > @@ -909,6 +910,19 @@ struct cxl_mbox_set_feat_hdr { > u8 rsvd[9]; > } __packed; > > +/* > + * Perform Maintenance CXL 3.1 Spec 8.2.9.7.1 > + */ > + > +/* > + * Perform Maintenance input payload > + * CXL rev 3.1 section 8.2.9.7.1 Table 8-102 > + */ > +struct cxl_mbox_do_maintenance_hdr { > + u8 op_class; > + u8 op_subclass; > +} __packed; > + > int cxl_internal_send_cmd(struct cxl_mailbox *cxl_mbox, > struct cxl_mbox_cmd *cmd); > int cxl_dev_state_identify(struct cxl_memdev_state *mds); > @@ -986,4 +1000,7 @@ int cxl_set_feature(struct cxl_memdev_state *mds, > const uuid_t feat_uuid, u8 feat_version, > void *feat_data, size_t feat_data_size, > u8 feat_flag); > +int cxl_do_maintenance(struct cxl_memdev_state *mds, > + u8 class, u8 subclass, > + void *data_in, size_t data_in_size); > #endif /* __CXL_MEM_H__ */