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 416C9C636D3 for ; Mon, 6 Feb 2023 21:06:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C48ED6B0075; Mon, 6 Feb 2023 16:06:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id BF8B26B007D; Mon, 6 Feb 2023 16:06:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AC0BB6B007E; Mon, 6 Feb 2023 16:06:18 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 99BB66B0075 for ; Mon, 6 Feb 2023 16:06:18 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 68FE3AACDD for ; Mon, 6 Feb 2023 21:06:18 +0000 (UTC) X-FDA: 80438100036.30.4CD3817 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by imf21.hostedemail.com (Postfix) with ESMTP id 44D5E1C0012 for ; Mon, 6 Feb 2023 21:06:16 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=GmdCCcd8; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf21.hostedemail.com: domain of dave.jiang@intel.com designates 134.134.136.126 as permitted sender) smtp.mailfrom=dave.jiang@intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1675717576; 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=2MTT07qkIBOR2BvwxnYuf1pROW0JMZ4iT4XZYh7kNzo=; b=gWEev0JkWhiI2U1tr9e0NvcvtvXpOW6ZVFcWC1dAaSa5rdtkWz8p2a/VIF/9s2Do96zDEI qt2ECMzUG4a67g/kXQs0L6gil67NYFmg2TOXWz2M7CeMlR0u0s57Po6uW5jFQS2QJq2k7F 2Qe9XBmWD6JY3O8eIrveKrbWrSPA2K0= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=GmdCCcd8; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf21.hostedemail.com: domain of dave.jiang@intel.com designates 134.134.136.126 as permitted sender) smtp.mailfrom=dave.jiang@intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1675717576; a=rsa-sha256; cv=none; b=iCRWJZjUPo/N1kWvtwN8aCWHEUsJpKS3xlyruMcFZsJydXIExVA3uqtMe7XViOEor9DdSz iFbaPVPmjX0uyh0OMzh9Op4d31rNsgR3EePW0rEMbX1dJvWDWQETl9XLwssxQfrNFWnMkq wCRn+dSUqxRI05Ttgr/L09yF69Mw2sw= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1675717576; x=1707253576; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=x9OMFsqoU0CKBlWyYK5ZU5H+rXMOEtYx1Jfz8qzH0vs=; b=GmdCCcd8AxWZMEN1t8N01LiKvNuDsRSPmEmIF7LQZfBpcMDV3J0SNt5t sn+XnQzQVTrAeODRI0igyWiNK6R+zL0JQqRm6HTlyiYAubhg0JdMG+oaz 75G7bsMQB7uLoAqwenb4OxaGQ3c+QV2s1XXqwRBC4L34ZMXpgWzyC4tui DSnVhFGCQzDD4FVY8GcvS9Mg5AumEo0OG2Wn+xYidvTqi7oJPDoPhawIj wIhIWCWYo+29bQk/I93dAOsW6Dxi0FEgte5RPHil9+siP03DEvWCPSu+i Kei8vqJ0qYu67WJTpWKQUVwSMfSaGyiibFJ6BOeGpsdi8Fd9Tjp/eMPVK w==; X-IronPort-AV: E=McAfee;i="6500,9779,10613"; a="312969549" X-IronPort-AV: E=Sophos;i="5.97,276,1669104000"; d="scan'208";a="312969549" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Feb 2023 13:06:00 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10613"; a="659973146" X-IronPort-AV: E=Sophos;i="5.97,276,1669104000"; d="scan'208";a="659973146" Received: from djiang5-mobl3.amr.corp.intel.com (HELO [10.212.111.195]) ([10.212.111.195]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Feb 2023 13:05:58 -0800 Message-ID: Date: Mon, 6 Feb 2023 14:05:58 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0 Thunderbird/102.6.0 Subject: Re: [PATCH 02/18] cxl/region: Add a mode attribute for regions Content-Language: en-US To: Dan Williams , linux-cxl@vger.kernel.org Cc: dave.hansen@linux.intel.com, linux-mm@kvack.org, linux-acpi@vger.kernel.org References: <167564534874.847146.5222419648551436750.stgit@dwillia2-xfh.jf.intel.com> <167564536041.847146.11330354943211409793.stgit@dwillia2-xfh.jf.intel.com> From: Dave Jiang In-Reply-To: <167564536041.847146.11330354943211409793.stgit@dwillia2-xfh.jf.intel.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 44D5E1C0012 X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: 1jwcjdbx9bxcnz8t3idjpb666dgmxaqi X-HE-Tag: 1675717576-740805 X-HE-Meta: U2FsdGVkX18BGbE6Tws5OkLyGPPOUmaZT27foO5hqCtFUVEizt5iba9jC2MaWFBNHgyVZ+Woc6xzKIyonV/0CGGYI6sqMRkL0YTe2V977QL05vBB3P7JFpVDNpO39brDwWn3IMUkfC81zZcFOlzvUIjQmZrELVIQHoxF0R/c1Suexk+iVw45kLlJuGek79Lt7Erd66c4QjTrOCx74WkCTyHn6e+8CWB4cVk0EjRzmKULoL7t99UUV0wb6S0qOCGIbwSHBgo51z39dEuzMsbjeFkHNIJNdPpEnWIGPDhiOwfvNfrJhixUJgPbPkY3jNR5CgtIw92JoV/u0ov5dcVsYQJnjpkCuwBkqcKnf4oS1d9KFTbDHDUSPtI975S9yoQEjuE8s3fJz0BW1f6l/asv/hPzZ6/4AaBwVvm6ZAoW4N3f5+VJa3osUhnpyssxE9WD06qMFkoa0nmXsIEvEUNiS12/S4jr2T4SmQUKfu8YMnQKRvmB6NrzlbhM3bzZMXJafKkji+EZpofdGibAO1lUWylGj4UbWq5WiasPCPbg8QXRg+muQJ3DYXxjqnM3q07oorC3jQUOEHwAlB8L08VyKJVz244kQQWdUeWCyECFKayWRkOgd1+D34U4unxqy1PfZ1qbO07wAxyULg/T1zCjbXNbpE51CxeFYfsGTcrD8SJGJw2oHdqE5P3Fx0JKeQnSY8R/w1osUn/W1BYgnrL9TTqC13zTWDrKpfyjeaqK8XRmifx3XxWNavZ+cdWvihsnibLwx2H2QI617/OLaCwl/d27TXgOPzAGps8mRvwe0fUpxfKmT3VOxhc41JnwVa74IC7YhkFdSBwEefvro6/W18XlUQ1gO2w40j0OOxNvrWm9UTpWa0As9Zv1AYV8Yf2RZLySHrjSILDZZP04y6uNzGT+gfWZYJfuSXWrRzjW0DkBAoCJxcO21ei6Oe/Motpl2IjXHWKKMBA1K7lQEsD VtTrm7Fq CCUpgAe6IlAltNEzSFohDaqhfvCSvnVMJOsWKtEuGMsCwN4wNG2FxVaiG+a9su8AngwV0Q2ZxcCcVGcauyBZbRNh5N9z3QQbWb6Ky2NZFbY/pK3yT674mDcD9MXgod5+RQe3MkkOKg8FMfQG1DGq28DxTGLa9+q/bhyU/pBDq0un/8yqzzepXqOA3PcoF0gtHAvBriz9MBpfLwSZlHCHp7lujzJhZ2jiOnljZ9TXtbJaGwevIpQ5em5wu/Opqy3ubffNttWoJccxVxV4= 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: On 2/5/23 6:02 PM, Dan Williams wrote: > In preparation for a new region type, "ram" regions, add a mode > attribute to clarify the mode of the decoders that can be added to a > region. Share the internals of mode_show() (for decoders) with the > region case. > > Signed-off-by: Dan Williams Reviewed-by: Dave Jiang > --- > Documentation/ABI/testing/sysfs-bus-cxl | 11 +++++++++++ > drivers/cxl/core/port.c | 12 +----------- > drivers/cxl/core/region.c | 10 ++++++++++ > drivers/cxl/cxl.h | 14 ++++++++++++++ > 4 files changed, 36 insertions(+), 11 deletions(-) > > diff --git a/Documentation/ABI/testing/sysfs-bus-cxl b/Documentation/ABI/testing/sysfs-bus-cxl > index 5be032313e29..058b0c45001f 100644 > --- a/Documentation/ABI/testing/sysfs-bus-cxl > +++ b/Documentation/ABI/testing/sysfs-bus-cxl > @@ -358,6 +358,17 @@ Description: > results in the same address being allocated. > > > +What: /sys/bus/cxl/devices/regionZ/mode > +Date: January, 2023 > +KernelVersion: v6.3 > +Contact: linux-cxl@vger.kernel.org > +Description: > + (RO) The mode of a region is established at region creation time > + and dictates the mode of the endpoint decoder that comprise the > + region. For more details on the possible modes see > + /sys/bus/cxl/devices/decoderX.Y/mode > + > + > What: /sys/bus/cxl/devices/regionZ/resource > Date: May, 2022 > KernelVersion: v6.0 > diff --git a/drivers/cxl/core/port.c b/drivers/cxl/core/port.c > index 410c036c09fa..8566451cb22f 100644 > --- a/drivers/cxl/core/port.c > +++ b/drivers/cxl/core/port.c > @@ -180,17 +180,7 @@ static ssize_t mode_show(struct device *dev, struct device_attribute *attr, > { > struct cxl_endpoint_decoder *cxled = to_cxl_endpoint_decoder(dev); > > - switch (cxled->mode) { > - case CXL_DECODER_RAM: > - return sysfs_emit(buf, "ram\n"); > - case CXL_DECODER_PMEM: > - return sysfs_emit(buf, "pmem\n"); > - case CXL_DECODER_NONE: > - return sysfs_emit(buf, "none\n"); > - case CXL_DECODER_MIXED: > - default: > - return sysfs_emit(buf, "mixed\n"); > - } > + return sysfs_emit(buf, "%s\n", cxl_decoder_mode_name(cxled->mode)); > } > > static ssize_t mode_store(struct device *dev, struct device_attribute *attr, > diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c > index 60828d01972a..17d2d0c12725 100644 > --- a/drivers/cxl/core/region.c > +++ b/drivers/cxl/core/region.c > @@ -458,6 +458,15 @@ static ssize_t resource_show(struct device *dev, struct device_attribute *attr, > } > static DEVICE_ATTR_RO(resource); > > +static ssize_t mode_show(struct device *dev, struct device_attribute *attr, > + char *buf) > +{ > + struct cxl_region *cxlr = to_cxl_region(dev); > + > + return sysfs_emit(buf, "%s\n", cxl_decoder_mode_name(cxlr->mode)); > +} > +static DEVICE_ATTR_RO(mode); > + > static int alloc_hpa(struct cxl_region *cxlr, resource_size_t size) > { > struct cxl_root_decoder *cxlrd = to_cxl_root_decoder(cxlr->dev.parent); > @@ -585,6 +594,7 @@ static struct attribute *cxl_region_attrs[] = { > &dev_attr_interleave_granularity.attr, > &dev_attr_resource.attr, > &dev_attr_size.attr, > + &dev_attr_mode.attr, > NULL, > }; > > diff --git a/drivers/cxl/cxl.h b/drivers/cxl/cxl.h > index aa3af3bb73b2..ca76879af1de 100644 > --- a/drivers/cxl/cxl.h > +++ b/drivers/cxl/cxl.h > @@ -320,6 +320,20 @@ enum cxl_decoder_mode { > CXL_DECODER_DEAD, > }; > > +static inline const char *cxl_decoder_mode_name(enum cxl_decoder_mode mode) > +{ > + static const char * const names[] = { > + [CXL_DECODER_NONE] = "none", > + [CXL_DECODER_RAM] = "ram", > + [CXL_DECODER_PMEM] = "pmem", > + [CXL_DECODER_MIXED] = "mixed", > + }; > + > + if (mode >= CXL_DECODER_NONE && mode <= CXL_DECODER_MIXED) > + return names[mode]; > + return "mixed"; > +} > + > /** > * struct cxl_endpoint_decoder - Endpoint / SPA to DPA decoder > * @cxld: base cxl_decoder_object >