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 AE121C5472F for ; Thu, 22 Aug 2024 01:44:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 252D46B0140; Wed, 21 Aug 2024 21:44:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2033D6B0158; Wed, 21 Aug 2024 21:44:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0075B6B0159; Wed, 21 Aug 2024 21:43:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id D47606B0140 for ; Wed, 21 Aug 2024 21:43:59 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 85A4C81243 for ; Thu, 22 Aug 2024 01:43:59 +0000 (UTC) X-FDA: 82478185398.13.51F0503 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) by imf20.hostedemail.com (Postfix) with ESMTP id C175B1C000C for ; Thu, 22 Aug 2024 01:43:55 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=mrZNy0bi; spf=pass (imf20.hostedemail.com: domain of dan.j.williams@intel.com designates 198.175.65.12 as permitted sender) smtp.mailfrom=dan.j.williams@intel.com; dmarc=pass (policy=none) header.from=intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724290929; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=b1qVu2kDZh7NDhJoGQMl6Ryiug9DBZ2sEvMleZgsphM=; b=W+wenYo+s0y9Iih8ZqajQHKZdna6HyjetZ/h+NlFrHHduLJByLsxtTQdT2WtiFIYtHgTgb 61KtlTg/jjKqIzOVdhd7dkOuBXDa1TA3RLmpTf6CWJZ0qyQW0vtwfjyqjetLRHUV5vgjCj YHDMepWEZHyuvjN8eBVSpz3jO64ZNeQ= ARC-Authentication-Results: i=2; imf20.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=mrZNy0bi; spf=pass (imf20.hostedemail.com: domain of dan.j.williams@intel.com designates 198.175.65.12 as permitted sender) smtp.mailfrom=dan.j.williams@intel.com; dmarc=pass (policy=none) header.from=intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1724290929; a=rsa-sha256; cv=fail; b=st62Hkv6spNlR0A4TfRUpUtr9wxZdqRPIdYy42ytDgeE+yHMCEV4WtYkSlIR3H78v2QeCK ymoZjZVZId2NrsbfhtyAjptSuwYHrqXJwqJi8UjfIBdluBnMmYJ6KJOJdP7nxPpS/X6Kua H33hLnk0IclW0ECsEnyXHCYoOvhwgF0= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1724291037; x=1755827037; h=date:from:to:cc:subject:message-id:references: in-reply-to:mime-version; bh=2/zHRFGpyfoVXE5AejMEH0Zb9DlWx/qgeXMWqXeu6TY=; b=mrZNy0bi+6Y55np8hXz/zi9/o0gjQWaB4LhgPIybqt/7SoUOoAvykO1Y oTO10oouOVzX7gNzzQDicHCUW8XUaxqj2hh4XQQ3xU3/DvSWvCbodLdEc rG+JFsDIQPmIkTIGbB/2whvD0ceYO+Yo7tbDNK7ngKAY9mFCOMGDDDmQj Lnxar5N4c2h6Z/xcrVwsA/pOc64YlFD0I3bEacY7+mvNbL4NrB/Z0O97K 0iURW4a4yuwpC1ZFMqfl40Rtjllqbr1U0r1Ef27FX7ud8z56fFx7Lqijj JI7wkyAZUVT/cqE7VvnkfnIeewNOLxT2Kl6IVhp4CtdZyFL1vtodPI7no w==; X-CSE-ConnectionGUID: fHvlS6w9TfmGBneuFOjFlg== X-CSE-MsgGUID: EJOVFK/EQy2DbG2Ia4cHUA== X-IronPort-AV: E=McAfee;i="6700,10204,11171"; a="34067732" X-IronPort-AV: E=Sophos;i="6.10,165,1719903600"; d="scan'208";a="34067732" Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Aug 2024 18:43:53 -0700 X-CSE-ConnectionGUID: Fis1+pEvREq+iyNi4TAp6w== X-CSE-MsgGUID: c0Mt4plsSweJYWH8ET2Yng== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.10,165,1719903600"; d="scan'208";a="65632336" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmviesa005.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 21 Aug 2024 18:43:49 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 21 Aug 2024 18:43:49 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Wed, 21 Aug 2024 18:43:49 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.41) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Wed, 21 Aug 2024 18:43:48 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dMz5sdrsvXQDuBSTUh6PGsRPogw2Jj7CUtZQEmiOFt7bIvRwbjv2hhldvg14VH7f777Q4JBZnnGV2+OxAsqtzDKCxd8Hkf0JZC9jYU4tDvUDLN4RTR4BVwdqnaetmCIRdQtiIrXS2RmS+8Npwrd1VR5GbGSQ1blF/FSALETqOBK43iCiWxlebGoCmDPHfDWbFrUpRlOtFVpfgui8R/otu3yJCR23YdnXBkFilvFiRCuop4Ch++jOrS7BStKxzSga3LYz//DkkLmMfNfd8cAQyGjppmjuVtxzCsjLrLqW0IlB6IkOY3BDmozufRUXMf/VRLwvegqq6VI/NHXmTQDORQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=b1qVu2kDZh7NDhJoGQMl6Ryiug9DBZ2sEvMleZgsphM=; b=Yby1mXOevY+E4Sh0Ifo07922cIE8ckrLl0Ay5t/shD/MHpMrjyaTK1KXIoy6nCw+NApdJq3i+dCpblS7kbtjSVToaKIx4+alUMbmVU4IKZgckAzfy+QqNm/8Xd3B29KycKCExcWG74Le/JycoK6WJ9KXy/iyEcPnv6V7oCmxw9M407wfclZliLcBz/MOJgbM9Sik155vUSYFG04gm9rCi+Ktw0y/LomnEZU9A9i/ARI5lhYocQGS36Q1KwTgB7pRfaKG3/yRULOkHhVHe5xjRaluoBLV7rdiquhRA2HC6rbMm/xN0ciO3rCwn9WSaLZ0yHmYt90sc4JMAvBf4jyQ9Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from PH8PR11MB8107.namprd11.prod.outlook.com (2603:10b6:510:256::6) by SJ2PR11MB8422.namprd11.prod.outlook.com (2603:10b6:a03:542::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7875.21; Thu, 22 Aug 2024 01:43:46 +0000 Received: from PH8PR11MB8107.namprd11.prod.outlook.com ([fe80::6b05:74cf:a304:ecd8]) by PH8PR11MB8107.namprd11.prod.outlook.com ([fe80::6b05:74cf:a304:ecd8%6]) with mapi id 15.20.7897.014; Thu, 22 Aug 2024 01:43:46 +0000 Date: Wed, 21 Aug 2024 18:43:43 -0700 From: Dan Williams To: Bjorn Helgaas , Huang Ying CC: Andrew Morton , , , , Dan Williams , David Hildenbrand , "Davidlohr Bueso" , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , "Ira Weiny" , Alistair Popple , "Andy Shevchenko" , Bjorn Helgaas , Baoquan He Subject: Re: [PATCH -v2] Resource: fix region_intersects() for CXL memory Message-ID: <66c697cf7b95a_760529414@dwillia2-mobl3.amr.corp.intel.com.notmuch> References: <20240819023413.1109779-1-ying.huang@intel.com> <20240821184615.GA262749@bhelgaas> Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20240821184615.GA262749@bhelgaas> X-ClientProxiedBy: MW4PR03CA0229.namprd03.prod.outlook.com (2603:10b6:303:b9::24) To PH8PR11MB8107.namprd11.prod.outlook.com (2603:10b6:510:256::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH8PR11MB8107:EE_|SJ2PR11MB8422:EE_ X-MS-Office365-Filtering-Correlation-Id: 5389bc2e-f51c-4ea8-27f9-08dcc24bdce5 X-LD-Processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?pXgvvEW0YrPdRmhup979zcArqmpHm94IxM2b18v1kVxMlbFcdKqJPldnZe+d?= =?us-ascii?Q?XZLvtj6QAH+dH0ORqvYJhjkEEMWe5FjgMsIEk4usZVr5KHFnTyIVIOo9jcAJ?= =?us-ascii?Q?H8js06Tz7mrpyEfMomsIkkc5akBtquOoMT+VojvqB78MPriJccnF9kPh3dRv?= =?us-ascii?Q?6vgC7IgttXZnqCCB0i5DAi0CyZXVxNHbKQPCPRQtpmElq3N6cjLw9mPmvBlt?= =?us-ascii?Q?uIcsmOpZaefX2ZhkeV/45oASAGtdSaQCrq6xLf2HQUrru4j71g2ndrUdShHi?= =?us-ascii?Q?lyzIHAnMhyxxAZ9XLFf/vNQamfV6+i6ni6lzk7yOXjYvCUnlfuBSJeIvdySP?= =?us-ascii?Q?h14sOcnscbSBRr9m13wcpdYi0mREb2ygj3fNYpzStrQ6rZOJBYyTC+4EOiv0?= =?us-ascii?Q?xGOZeK5nLh5r59Ph1H+u970vtlORhYIA5soSONBrr3f46Qgk8x5S8H2PqheW?= =?us-ascii?Q?eeKPs6SMYczXz29ZtGPSvBpI5eAItOe1fHZ1b8JyiVXniRSXaU1yz4KWHzyO?= =?us-ascii?Q?Fj/ygFDSycwYq0Q/BLrxpk7eK0VOkTEOmMsAulxcGrQ5sq+FyV4gyhPSgIPV?= =?us-ascii?Q?NYvT/I4AJaWwhmnzAh4JSabJ9dDKQDrh3kDhFnAIMxkgfuIzP2ysqgTlp24q?= =?us-ascii?Q?Yf4oOccqQHQGZGuS00uRVs7wisqaKGpoKzTIjQtqR2DiY8qavtRH03G4stbx?= =?us-ascii?Q?SXEpzzFEi8saxLXa5VkHzzz/kjSjZO6mmv7cT+S8bOjsYOxQ+llyqRxvbIMa?= =?us-ascii?Q?imQ6SACeqkoo+QoYCBTKTPfFwou/jhfiF/bvDtaXwTFgZFCKdfNv6/aDok/L?= =?us-ascii?Q?T4ETxqHB9DztWzCJSmd/uHtAFw/gefHO093Wg9QXIYoacfBmnn0bMlVuIygm?= =?us-ascii?Q?h/huuJej0HlrzPIw+00Q2kW4o182W9My3OMAeJahC66kVlG5CW7GkBhtEZlJ?= =?us-ascii?Q?tLaH1JDupAZz4qWEm6Kf2/HXY+Bh1kbyUb9X/Gr7B81nhB45/xc35dS6ZcIy?= =?us-ascii?Q?ER10R6b5jNjjPLyBHVfUnQbvxNDlfbDK7BSsvrtuBuO4iYSNITK03436DXKL?= =?us-ascii?Q?tVfO48Sysn/HjVxs00eQU3xsBJB1tiNggVRJO3g2aJ2lqDA0qU2fKeGdANLl?= =?us-ascii?Q?TNic93QLM8jW1IsIUXUnsS7szBTmfE/BZi6lf6OErgH9lZpDuUJBh/GtcZsP?= =?us-ascii?Q?mrnIe6gR+uP4mZdC5a7zJgA2pjS+lC9iX83B8MXMJ0mFbMwDmkJdSAzXpwV1?= =?us-ascii?Q?3lIukPOqgxPa9q3IDGfAn2U0wcq44X0pmo0C7rcNyX62GwEqBeanAMoqeg2y?= =?us-ascii?Q?5apF5fJJ1JUgYoP+fM2b8UwSuwTsY/Ag3ikogWPhuyl5pQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH8PR11MB8107.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kmxw3Vvnn1ZgpdgSaCZ38IcWyKFoTH5av/eH0Cbbe2XeMuzDaMs/sPWOLXcz?= =?us-ascii?Q?QduBComT8ujtHeP0dRZdfl0X98ntqAlAtlHrOMQLi+9gKzzdxXo+EmE5cyrO?= =?us-ascii?Q?IIGTxxS7BU5JeGGoSYQTAntq/7uCEdJxB+kukgZb4AkFhd8RUZ2R72ceAlfG?= =?us-ascii?Q?pedaIT1nUvNr5yrEjKGUGjcTHWIZzHvp8XRoeGn4HaEzr4OTh5Dx7wkLfjhK?= =?us-ascii?Q?5RMy9hIW14TWpIP1HW+8HxeNjrX3buDbMj05eGXyhn5X9xJoQLqThLEMsHpU?= =?us-ascii?Q?S60cWjblSzHTV4SqnNaU/U5WklQ9ymEPfZh1T4PrtUlyeX19zlqHI5leDbZl?= =?us-ascii?Q?4IGIRvtCa5qLYRMMWeK9VrReZ/Hy22IdjH9QvfubbzpX7OeOrRnRjZA4DnPn?= =?us-ascii?Q?ZpBdEdc/Dkjd+hk2SU2lGzct/ZlQenT/MpyBzEkNvttd5hYIFUMZaztwi9gd?= =?us-ascii?Q?r/WjPPdBQ46FJokVh+9ZLKE4MAYJ8LnkDRg9cIv4UKY3Pjml0z7A8Joju53b?= =?us-ascii?Q?UpgE3+wKA//N0OP2nVWqK3hD/Ww7nGmfgYOf0WGqgtwzBbOOEVm6xRNFYmHn?= =?us-ascii?Q?W/globO5rKidix8VXRWghKuaiwH5lsAEd0Lzr0YOyqkGndXNv1W4pUq4yMqz?= =?us-ascii?Q?dpEvZjruXfGS8jUjbkD/0Roz+boKe/aVu2z5wEnYlrPJnfsU5ooznj3rzKom?= =?us-ascii?Q?kFDexUfT4LCqRGWPEQy9uHuj0s6fL+5/z4/L89jarxcy1pErE1/1puAu9OnO?= =?us-ascii?Q?8yAHrLNJ8/T6gS1SUU3g4ChB98E3z87TV3ZsZ04GHPKVgq5LIN7n5wL0HrJF?= =?us-ascii?Q?AizQxPeBO0vn6WKk6+5QZxaO3yna1LER176F6CwvAZ+1VjaSeKW99XMVX+FB?= =?us-ascii?Q?4HirtDxQtgKvprE+kjorqBFpMYymn1IaumEkBZ/nCdIX2Kg0uvoFvnASgJgY?= =?us-ascii?Q?Qq1DskJCNCfH0yZsV9aHBRPa+QJLGMMLXx316BkTGcWzsdJMkNjL4qj8u+Jr?= =?us-ascii?Q?r/tKHmTS/SJUgy08TUxTvH4gViDRI7xXzN+knOGDpAfjNTIKw6iUysjbrjvB?= =?us-ascii?Q?Buc2lqQL5y8hrewK/M4y1SpT4QmhigUzfFr6+Y/McXTRaoxfpC/Xgbb5p8hj?= =?us-ascii?Q?v2IbD/ZFZ0wMoEDKkbXzJ4iNL20AfFPLb7wkqKLdeuAQs53Ai73GfWMSFt7a?= =?us-ascii?Q?qjshxPoVjvXpQb3yIW5MgYHXvr7CwfusKqrcZSKjqXiSvDMG5xrOi0HpeS+A?= =?us-ascii?Q?RxrFHyHknPa049NVhAd4azGPm1ITqKJ9zkge6Hu3iEz3xML66od3tBOD77PF?= =?us-ascii?Q?EobX3ggtFPmy+TniDdtN4dXgzvPdHkLkwKj8BogE8tQO5HYlvQdWSK3n7D0h?= =?us-ascii?Q?Xoyny+lrAQ5ZzkNwQi4gmfEmc5D984K+748KFAGchbbluDmkXwg+FK480uIa?= =?us-ascii?Q?zA5HEkVEKm5/SoWV52GENii2KmKIzGwoIU1sKYC81II5TR8cQjtLJEl40vsi?= =?us-ascii?Q?g5LRceutkb3QVztSCYU9FcJHbP2YSKwhgzUeEI9LUVuR5J2KhKkj5dPAUk/U?= =?us-ascii?Q?gorTK4Y9QLTUejXsYwKwXDf27K6w02SnTMxNC8ChZBLfqBEAg9kIghIPnit8?= =?us-ascii?Q?hA=3D=3D?= X-MS-Exchange-CrossTenant-Network-Message-Id: 5389bc2e-f51c-4ea8-27f9-08dcc24bdce5 X-MS-Exchange-CrossTenant-AuthSource: PH8PR11MB8107.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2024 01:43:46.5546 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ep0Y5HVAczDja+5j2gs6blz+e8uC7uDYLkR+zNr2czXxXMSCAaydjRyp1sYucMgw7nVZqtG4a/Lt1QLShtLtSuhOi7BgiXy76oMpyCrLQlM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR11MB8422 X-OriginatorOrg: intel.com X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: C175B1C000C X-Stat-Signature: 7ofwr78bgatx7etzdp9kueb863r5txuk X-Rspam-User: X-HE-Tag: 1724291035-876922 X-HE-Meta: U2FsdGVkX19snGa6BROG9OyY/UyqTtg3D4Au2AjzuSDAXy3QpLJqt3JI6XEvYejzSE07RbJmgPgw8YeqdvEivjhp+ii4WcejHPaOHq71jalA4aVmP8iFHcwvyYqQdyjH2g/35uL802ER43wv8dYrKf07psaN7pwofNJBhigr5XwCpo6QesqsLjyTZ7rQ3ycbjRchbNibd7NwnQlMN8gJsjF1mz26ZluXokxbHfoHmWySO+cGY6lz5/nZfoonYDMXOi+EZGCKqeswY9Mb1gT6ejvmh82m96AElENAIibBcD30bxLOj1MXVLqCNFlDpaDiH7Y4rnVinJ3x8HHO2CrMM1mmcE0F+bnECC9wptzuXDUXgnNdsdDtUAoO8+Xw11dTogpmFR42h9fN+icokXABCQ6bghAQs0o1S4uE+KBoPZ3Ab3GenOKix+k5dTxMZDBxKMwmr4G1khSxxZkwUaPFAAmonhrWyEWQByDRtsa1drUWAiSpYci7qPVC1A28OOBkIlzZ+3SmyyZ9PuwTn446SXBK4h5QQWQxKvateinE7ocJPjh5XspLR22FMJLMq8aq8xqguNoo7oL3LEUzWUECz90s4f4DZrLK3DkSj7UkbIBuEvlyLFNiyGfzl9sPwdrBwCmQwqx9sv7lrXBdgUWaoO56U4gZzTqzB8eqc4Nw3arY+Wnae24ru8gn13zybytJJtEIr5m+9TJvkDeq3b9NWpb3NVs7Kj6yfuf81q61qyxjXU8nTWXOhkUFqOCl58HCy9MgoXdbpZ0SoDIvqyK+rpOVjadP952D+4/x+k4vuTKZX0xu+9d9sWyTl3Efcmpm/nRHJ5HyMoDoZdyOsNf5QwEUJ0hzidK1jmTh/Fg9/BQ7x3GcN02isk+ebYakbHofeKmi5USQfKd2/nhPTAkI91GBBS0hPhEKwOPkMMT+lDlzIu5qypjGfIxfye6U11E5t58lEcdeUYZgvzTXWlu QvHUHzP+ RXbSeaS96AqeKkDlQcGrHabxIpaoyHWZRx/k8tWAmkS63TLb4Uy2CO0qh7W5da8tkH9k9Trd/aChGvsMWRY8O6jlCl/7tN8tkPoiO4GFVNp3N+5cUmqMoCUpeod1acNMPDD7esP0IeZmLQbu40paHw+/htAuCZe7DCvCnf4Wz7Lky9TL4tm28j/MQbIHU30HgWf8y8Z0bse59m0vpXG397yyGLqSlWrp/xtTPoUE/3bTbvwzqEMiqyOLmWaKl9ZpQvK6FvClKMGtLQdFPjIxKpnWuCkzv88iduacF4Xt5eUm6NMSkB+5gRvVwt6XIHy3Sn7+GDNLb1X+rbEV7iMkqua5hybHbLIuwsWehMPGV3updgOfLJH+CYn0RCO7sALc1hydrtfYWWs4VfMDLSuRheSIzjyJMBhS7DjEU4N4jR+kJU54= 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: Hi Bjorn, Ying is out for the next week or so, so I will address your comments and resubmit as I think this is a potentially urgent fix. Bjorn Helgaas wrote: > On Mon, Aug 19, 2024 at 10:34:13AM +0800, Huang Ying wrote: > > On a system with CXL memory installed, the resource tree (/proc/iomem) > > related to CXL memory looks like something as follows. > > > > 490000000-50fffffff : CXL Window 0 > > 490000000-50fffffff : region0 > > 490000000-50fffffff : dax0.0 > > 490000000-50fffffff : System RAM (kmem) > > I think the subject is too specific (the problem is something to do > with the tree topology, not the fact that it's "CXL memory") and at > the same time not specific enough ("fix" doesn't say anything about > what was wrong or how it is fixed). Agree, I will update this to be: kernel/resource: Fix region_intersects() vs add_memory_driver_managed() > IMO it could be improved by saying something about what is different > about CXL, e.g., maybe it could mention checking children in addition > to top-level resources. CXL is but one source of a resource tree topology where "System RAM" is a descendant of some other resource. I will fix up this changelog to make it clear that dax/kmem and add_memory_driver_managed() potentiall confuses region_intersects() in all cases since "System RAM" is never one of the resources passed in to add_memory_driver_managed(). > > When the following command line is run to try writing some memory in > > CXL memory range, > > > > $ dd if=data of=/dev/mem bs=1k seek=19136512 count=1 > > dd: error writing '/dev/mem': Bad address > > 1+0 records in > > 0+0 records out > > 0 bytes copied, 0.0283507 s, 0.0 kB/s > > Took me a minute, but I guess the connection is that > 19136512 * 1k = 0x490000000, which is the beginning of the CXL Window. Yeah, so might as well write this in a way that makes that association clearer: $ dd if=data of=/dev/mem bs=$((1 << 10)) seek=$((0x490000000 >> 10)) count=1 > > the command fails as expected. However, the error code is wrong. It > > should be "Operation not permitted" instead of "Bad address". And, > > the following warning is reported in kernel log. > > This intro makes it sound like the problem being solved is the error > code being wrong. But it seems like a more serious problem than that. The concern was that this bug allowed System RAM protection bypass. That does not seem to be the case on x86, but the worry is that other archs are not saved in the same way and /dev/mem protections are impacted. > > ioremap on RAM at 0x0000000490000000 - 0x0000000490000fff > > Incidental: it seems a little weird that this warning only exists on > x86 and mips (and powerpc32 has a similar warning with different > wording), but I assume we don't want to ioremap RAM on *any* > architecture? Put another way, we want "System RAM" presence to always fail devmem_is_allowed() anywhere that "System RAM" appears in the ancestry. > > WARNING: CPU: 2 PID: 416 at arch/x86/mm/ioremap.c:216 __ioremap_caller.constprop.0+0x131/0x35d > > Modules linked in: cxl_pmem libnvdimm cbc encrypted_keys cxl_pmu > > CPU: 2 UID: 0 PID: 416 Comm: dd Not tainted 6.11.0-rc3-kvm #40 > > Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 > > RIP: 0010:__ioremap_caller.constprop.0+0x131/0x35d > > ... > > > In the above resource tree, "System RAM" is a descendant of "CXL > > Window 0" instead of a top level resource. So, region_intersects() > > will report no System RAM resources in the CXL memory region > > incorrectly, because it only checks the top level resources. > > Consequently, devmem_is_allowed() will return 1 (allow access via > > /dev/mem) for CXL memory region incorrectly. Fortunately, ioremap() > > doesn't allow to map System RAM and reject the access. > > > > However, region_intersects() needs to be fixed to work correctly with > > the resources tree with CXL Window as above. To fix it, if we found a > > unmatched resource in the top level, we will continue to search > > matched resources in its descendant resources. So, we will not miss > > any matched resources in resource tree anymore. In the new > > implementation, > > > > |------------- "CXL Window 0" ------------| > > |-- "System RAM" --| > > > > will look as if > > > > |-- "System RAM" --||-- "CXL Window 0a" --| > > Where did "0a" come from? The /proc/iomem above mentioned > "CXL Window 0"; is the "a" spurious? Same question applies to the > code comment below. Not sure where that came from, will clean up and provide a test that can upstreammed as well.