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 9A092C52D6F for ; Thu, 22 Aug 2024 01:29:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1FAAF6B01AE; Wed, 21 Aug 2024 21:29:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1AA7C6B01B1; Wed, 21 Aug 2024 21:29:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F180F6B01B3; Wed, 21 Aug 2024 21:29:32 -0400 (EDT) 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 D310A6B01AE for ; Wed, 21 Aug 2024 21:29:32 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 85189121323 for ; Thu, 22 Aug 2024 01:29:32 +0000 (UTC) X-FDA: 82478148984.12.F05E97F Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.11]) by imf06.hostedemail.com (Postfix) with ESMTP id 6164318000F for ; Thu, 22 Aug 2024 01:29:28 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=OeXCFpdz; spf=pass (imf06.hostedemail.com: domain of dan.j.williams@intel.com designates 192.198.163.11 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=1724290129; 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=Non5N6BWLh6gdb+S26rOSE+YVMH6mjn7rd7RHwejvaM=; b=cwocsvNSQXDtzYn6sHIP7Ni0+fiGZy+LhkagKdTqg9Aksjr0JCLIu0StHG5NZU88LJVk3q nLaHs5SL23l9jGAwnerokT9UFC7fg3BdPj0/f9gTWYJQk52LslBd+bIL8YfAXZR80NTH0V uVWIbmgRxGiIUk6X75e5sdqBEMUKuOw= ARC-Authentication-Results: i=2; imf06.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=OeXCFpdz; spf=pass (imf06.hostedemail.com: domain of dan.j.williams@intel.com designates 192.198.163.11 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=1724290129; a=rsa-sha256; cv=fail; b=ozk+8AHfTj9OPbKnnBDWSe+x/mBP8NR+78+6tFuKs7GLMNphF55nTKt1TaS4ETvVv4GPNT Ta6QkGltwELjowYSiB6rKFbsaEAywu07qrEcnKeBYYRKPWldRhd5YCcfhaQk1+ZHXOwBVL zG0AMOfHR2AnoeqJNwnbY5zIOSFusbE= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1724290168; x=1755826168; h=date:from:to:cc:subject:message-id:references: in-reply-to:mime-version; bh=tMuNF0ewdJxQgLViIF7tA1P7kfjcYUc0ep1cWjmAeXw=; b=OeXCFpdz7BlqyHbvA6+OARI2Tnepr8RrIfFNuJE94seTsb8V41qHN6LX J5MyxfoBWVdw93rvw2p9m61FLe4KzxYXE0uIpqv52xDuAQ7uvPY7qCuqt eE6sYUsDnLSl/qZwfnFBH34dmmIrBSKtQ6wa80aPlS2v2OC/qVvhUd5tj ZeQvL+JsBsvOi9undUXVM5Hi0tTOngjK5xQa2m+bNwvutR8R+Yc8nRfGI wUloeUCbbMnBBp6XrcyYUfEzXpuXrs/pUtswkLoyqZKbTXkcs5rSzlucQ Oo+8WRn5UisXnO5pxXpNCHbd8IA7PMF154c+C6OXEqX1zybzKkKKj+aus A==; X-CSE-ConnectionGUID: CClkl9KBRyKUMRliU8s0eA== X-CSE-MsgGUID: 6ORAw1YRSMSIruYXxkkBoA== X-IronPort-AV: E=McAfee;i="6700,10204,11171"; a="33299345" X-IronPort-AV: E=Sophos;i="6.10,165,1719903600"; d="scan'208";a="33299345" Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Aug 2024 18:29:27 -0700 X-CSE-ConnectionGUID: 2YnD5vwjRRifFgIb0FhMVw== X-CSE-MsgGUID: cUOG8XkGQeyOzS7PT0YUgw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.10,165,1719903600"; d="scan'208";a="61138050" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orviesa010.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 21 Aug 2024 18:29:27 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) 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:29:26 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) 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:29:26 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.47) by edgegateway.intel.com (134.134.137.100) 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:29:26 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PFF1mJ2oMFMLLQ6TWDq52Ui5vlLR4WlNZQ1gKlAKiewPsenYacpZbjr3H9+0ahkfGwBC8atMrzV5xLAfRvK55YR6mE4I0TWW27Ds/AImrPstrXRW7YSr1Pealq1pmHITiKUtwIfdriXsQKLg+NIfbbX326v/xlrHO97qhACiaNpvDaLduAw4gTEURAFJf0LxzukzjZPml+d+e1x88T2HCmDcVxniTHpIj024XgNQpRC3bU3LhVxbrXLeMVWbE2Sgqem0NgU0BFppDXFhGoABOMmEp3tnT44d41ZHVBlQ5Ip0/9cWQOjdBEr90FWBfGr0RinEADfcLJM/51kGyM3YuQ== 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=Non5N6BWLh6gdb+S26rOSE+YVMH6mjn7rd7RHwejvaM=; b=Y+WckE4vLR5ZXrrfyirz3hfdZwc2fHRUF9ohIkdrGU9Ggo+Z1fq9ddR0zr8IBJ97ihLy0WnBngl6+j1LIx/Csjx9sDB4cfyGrmAEov2JfljAhvBQiQouwDncF0UXpQLkTHw3IM2TW1oxlIG+1WyHc/q8Gp+sng1aO/edLdF2ZV46UZnbyDjjeBo5Glwl/gJhJJ8RsdVqE6OcFozTtPeZWX2BGYkt71iUd3PRO7KaH0uaCtf6zYgCuxOdhGelAfq/hZeNV4ZDFiMoA53fRpotKC3QAmRyQxsZq9cshghWK00OcRg2r3mvyu69fW2+i0nWj9lJJM/SjgB8jKMRicUODg== 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 LV3PR11MB8725.namprd11.prod.outlook.com (2603:10b6:408:21e::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7875.20; Thu, 22 Aug 2024 01:29:24 +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:29:24 +0000 Date: Wed, 21 Aug 2024 18:29:20 -0700 From: Dan Williams To: "Huang, Ying" , Dan Williams CC: Andrew Morton , , , , Davidlohr Bueso , Jonathan Cameron , "Dave Jiang" , Alison Schofield , Vishal Verma , Ira Weiny , Alistair Popple , Andy Shevchenko , Bjorn Helgaas , Baoquan He Subject: Re: [PATCH] Resource: fix region_intersects() for CXL memory Message-ID: <66c69470ae357_7605294ab@dwillia2-mobl3.amr.corp.intel.com.notmuch> References: <20240816020723.771196-1-ying.huang@intel.com> <66bedd0f746ab_1c18294b5@dwillia2-mobl3.amr.corp.intel.com.notmuch> <87y14wj4ju.fsf@yhuang6-desk2.ccr.corp.intel.com> Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <87y14wj4ju.fsf@yhuang6-desk2.ccr.corp.intel.com> X-ClientProxiedBy: MW4PR04CA0347.namprd04.prod.outlook.com (2603:10b6:303:8a::22) To PH8PR11MB8107.namprd11.prod.outlook.com (2603:10b6:510:256::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH8PR11MB8107:EE_|LV3PR11MB8725:EE_ X-MS-Office365-Filtering-Correlation-Id: ec9429a2-cd78-4d13-0ad7-08dcc249dabf 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|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?PMKdxJQtUlsm4sHEleGP2z/rwuQbwBmL1OfLFHPhQ3+HVqCKl2kghEfJjIAu?= =?us-ascii?Q?Oq/R/jIy9fFq2Fs6leX9MgkRArSTPMetmT6g9LhWdhFG8MTyNTK+rV/zxJOV?= =?us-ascii?Q?QY44GDtwe+EtETd9alELR5bApa1NHFRcUwvgKh2mEKaNrsugFtxf1f0dT5fh?= =?us-ascii?Q?qNHfESlGpIpfeRuXDL3ZqYAGhgUuhNOHDGjCdXdqKObxaJkPwutKqpiL3sBD?= =?us-ascii?Q?HFTIiS5zju3C0D53K3KHXsdf9r0guWgXaqyh5KeaLPRZfTMRGEkirg3JtRL/?= =?us-ascii?Q?Q5IMHfNWeJJy468WXcQeTgow2RqI63cSagAN+zp1aBNqGCKY4YNdO42K1l07?= =?us-ascii?Q?cJhew2/X4rRwg/s35Cl64qKLh3fjtX9r1pIIcLbXOmvaxs4J7CU4gCpzdTCJ?= =?us-ascii?Q?eUQiPTVYVrjC7fqdqIuQwcoEpfZn2l+FHLY6QPSHfMRsoS3uZ6KhzTNKSaUu?= =?us-ascii?Q?zUviYbC4LgJTyv+ygFlQ79IbBh0G7eJ88PlVfk0YiaHkGhzY4DX+XAG1N7sg?= =?us-ascii?Q?Pnva+BdJQiGQt4TCWEpaDtd7xt57h2UCbjveggpP2o+u5MqxkwafyzVB7txb?= =?us-ascii?Q?ego2fstHXnXTdLIGFuv6T8GL+oxpSU+f/L+uMo8L3BTulCd/GmNbfN89LRWg?= =?us-ascii?Q?+Ufvx04k6ikWqtZaTlgFXV/1rQ7FRoesbJiP0i43GGQoQ8EXM+tEGmG5ELXM?= =?us-ascii?Q?kRxLyvA+TR7icOVOhbMavtg9XQpluf5WIf1CzKBimvbg1mLEX+LFCc1nKHk8?= =?us-ascii?Q?eVdduGmpm+419yZThRHHrHKIRee2rAFnnY4/FM/n2nC7oEWH0PLtF2Q4tINf?= =?us-ascii?Q?DijABs5CfrzmoWzhVbD9U6DImb/8ZaiIaldTCjE40njI6c3UX+mt7jh8eHvN?= =?us-ascii?Q?bVslVW+bovp6oxPD9KAJuqt6YujdyfkviX5WtZubcD+vq5ZsrKpo1ZmuewJG?= =?us-ascii?Q?NPfkx1eI3RoABhL2rSrglPavElxw1+JKwQo6OvDunWAXDywnZ9Pm5AYOyP1P?= =?us-ascii?Q?2JrNhN1AMvbLxZ/4oczoYmpVuMdi+JbRzqTJ4VZ3KbJsq9DIFGKE4d2LBnu5?= =?us-ascii?Q?SE54w3yOszb5gnZ8BD5P/LQr5me8Ja1LhJ1YXgdPYqlOVzlLafpeIoj/MeOp?= =?us-ascii?Q?AyuFyLCJAReZ7zEawM2gPal/Ox3szAXQFAecnAKXUw2Ww8YYvCpQ+kZ1Qsjs?= =?us-ascii?Q?Qna1du/OSyerqa7EAwC/SKWfTHnJgBQp6sz43S3Gx9DjszpIHto7HKyrIQzR?= =?us-ascii?Q?67Ics78nOxCAn/8ADiVWLHRUNq7g85EsSLqDDeKep87Nqgko0iH3CrOZ1qw4?= =?us-ascii?Q?FIJYXsasMbGjpeU1eJKTU0uvzTs3R/PA0RizSmlUCvxsnA=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)(366016)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?saAi3nG4TXyJVzmuk4ebVckrGfxgOdQhpRLH1TDyFFb+JMnE7ZZI4HEyNrD8?= =?us-ascii?Q?e6e/XSo36WB6jwXdtIymxOwhTjEDEAiZzxclk7SPavK5tJuRjDs0t89dgfpO?= =?us-ascii?Q?oWe9f/p8u5yxTExIf1Po038kYhKgfbhB8tuaIqgqSXPs7CEyRUfZ+BW3Lqrt?= =?us-ascii?Q?YyJx+PI70eAJcOUIQ9jda+7qdejT37spkdE679pZlbGsyzIFgTNjJw2u0jVL?= =?us-ascii?Q?aj1kb35dJiRvk2RoVIYPgUA9isV7Ne4RZwyFsypKjM6Ogx0AeY0fKDPeIy2B?= =?us-ascii?Q?9WiRSC4FhhyrAkyRoba0dMqtLVrP5exI3hAEl393iUBXaYffyUNUADV295C/?= =?us-ascii?Q?d4RG6WauP89udpzWKYveIakKGV5sR7uH/JwqXlkeZQCV8/cCauir5F4CTOce?= =?us-ascii?Q?U2J93tvVNAdDbR2Wu5JrLD1dujOKuvO3nBoyG2IV+8EyX5wBfXLc1p7lOLk4?= =?us-ascii?Q?7d5NkJ1Nx3Y9RXzbxgeb2P6sc2ty9dmpZkAaMzJhaxR0l5oYRO4AVzNVL/qn?= =?us-ascii?Q?+BpkcHO85AmSCa2afIuDRd0NnE66iWXheb/hNyey43HoNC1M7P/IciN1Usv5?= =?us-ascii?Q?EYoyE0aSQw4RcB//mPEAH6UsZuWwqGcMHEXkdo0X8i9PPoDvCc45HEL/NOJ4?= =?us-ascii?Q?3lBgnrKLGG76ScPeS8YaX6B8cz7v/HoTHYaMqmZlU34gEnqBvwOmdUWYCjQU?= =?us-ascii?Q?6WWNbf9Rgig8m02bSoH4HYLIcmpJ+QicyTi5XYz+vfU9DVQV33wvU/04wCIY?= =?us-ascii?Q?BQ/gIgB63cn8NkQ43af1IXCiLzaxJ7zzsfQwbI0Q5HMEuUu1f4YGxluFhIX/?= =?us-ascii?Q?1X2SSheyQiRLc2UtQKx6NR11X0j/v5aHdAZR3HxUFlBkzLbs1FeSWMV0GuZL?= =?us-ascii?Q?/VdieuGJPAUJbAa7VbWfK19FpC2erLgOkuaWMzwW4Tv6D/yl13qcGCJu6Khu?= =?us-ascii?Q?ZKrhoX6Wu4IBuixX1/FhGkp5ffr3tCOGEpeJCNqK5wS5oYrQMlGVlYpueoWL?= =?us-ascii?Q?7VJYUfPhpQSp8tw0jFRrcBcbuJbDmEWcKA+IdaAiJFyBC6DaaSFdKZWD1IU2?= =?us-ascii?Q?+YO+h1xWqrOsBV9W/OHzkzjNrI4f+wsow6YEcSScHoCKeqBM/c1XiXTP6NZC?= =?us-ascii?Q?32i+EbQ7kRQdyBrtzlZGvsE8HaLE1ZUS3AKoVDuE2nNNidckdgw0jhl8OX6Y?= =?us-ascii?Q?4D5zxlosx5fHpdCmt2NSgTwxgX26Rg2y3SOPMVgNWCmmG41xDjaqDTJT4MPn?= =?us-ascii?Q?srAX0EmTJhZCGij2rOLv1206QokVkJwMw8fHfIqT44fIejaQn5xH8Omdtyvg?= =?us-ascii?Q?ymqFcqKEjlCxAUJuEZx3PWEDW49CqObVvNVo4SwwtZdLdyTkISJfZ0FkI2ii?= =?us-ascii?Q?xasQH3BceeS+uwCip17K38FzjWLJ1I3Hmu9ne1lBYe93hpuspxmvRcegSsjD?= =?us-ascii?Q?0DYUdHnq8z6nRmAS7pgBuG290v/wiaL2EH/QcTIRcqzV1LVTmprFBHKwvB0A?= =?us-ascii?Q?nUZxLAkXIP5sLdxYi5zqIQDatRyLnnLwDNTMqxj1m3buT1GK8eDNU6k/u5ZW?= =?us-ascii?Q?aVLCujYsPGjv+lEHM8fijYbMSxHdX4UEfkqd7HpBN11uajMHLCEmTqamXmNa?= =?us-ascii?Q?FQ=3D=3D?= X-MS-Exchange-CrossTenant-Network-Message-Id: ec9429a2-cd78-4d13-0ad7-08dcc249dabf 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:29:23.9412 (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: tzsvbS6aLdYZnUWeQDNUOY3rPuz1ziN1t+xKdiPk531NzqlsETyDVoK5+Bb533CES45gHwj/Rvf/hUn00KVtAHDc7sy6hQQ4nIA34Lxtyv0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR11MB8725 X-OriginatorOrg: intel.com X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: 6164318000F X-Stat-Signature: j3uuky13b1b8rwmwrn9homayzbdio3ci X-HE-Tag: 1724290168-522188 X-HE-Meta: U2FsdGVkX19h2gTUKiFh6rtohIYm6CtsGqR2EkQfeiy/nShRqsvchEk690RYUxZXiQV3tIUIWONlIMnI2agK9J5bAp4R70ilJpD60yECqEYaLqPpvnho6iDvzVWdiIoue+gfS9bUTj2zM4VZvve2BjYLrYiCk+gf8Edzfi4mWNXYf+jkIifqsIwD7S4dFC1Tjf1tyP6Io3SKBA8PKzh5ZVXnLl13o60Kg33utY6xlgHr32zD8dCBkFCi0UvLM8A7//QK3exm77+i+QwDlFf5WBK71HrWnwiU126s8JHyskyXrUvMMntl2zXMNjX1RQDp/6RX7zi8pUIU7xNKUvP5uiikNg56i2O6UNAso07jQpCfig65QWSChZB8TVyKWUlWzgv7gnwNK4v8uuJ9JHkUAxY9KyTXtor1NyqCbO/HZgPK3abeD/wU2qSdaRR5nHbARWyp21FSjmI9hqIUZ19No914Xv82Jw1BV3MQzgm9eh7fOnQ7PYFW09lRaFLfkZSoOU50BIfU25/sTCPZlclT4FuIXIgtpK9A98vJMV7N1kcj8MU1V8grQ/DSDE/mpRmL4SwYZOedBlLUsl8lqvubADbQkkYdbtc7PuaDrjozP2W6c5BL0FvVFxoDmziEk+WPe3IQ2w4Hke4hP0o5fE+DvY557+rMa0N65upzoIehR3JFPupTlamgQSRMSmtVOPM/xfZNDLtvE6CWRStZKYHvOHGjPU8bvzBd/iDgqUI17UafW7esVl1Vg8yi0dLaWosoYo/QjYDL1IiIWtdQc1ly6hfYuDsrZRI9GEXY6mR4P3u2rfl0eC3+B2bSDxFHZHB3wIQ5OaulUvTmY9ie76Gnb7Oi3fDmF1tyOL5d3uMPuZXlkClpL+TNdA9xFlXCmy+FGw2rGJ+SLI93Ocm/ztD8hL+Kauo6PmmT66tPmdilvo/hIbRHFgn1bpkZWiBr7BxF5pr4RY3Y9Gc6tGGlKeV 1ynrLaH1 NJyKczLGOwloVxjIbeJYg9hyMehqJgC+EStcC4nlU42t9i4V8V+AchjWWaCc3w78PrYQFQ5qDYbspOqTqfRwHxodljsIN9z6wdMWgEHTIDKI40XB9/fCwXZaM1XR1ng1N0h9tBhu9vbEutAOlR1w0NIs4e7Th9+0lLuYHVvke2YdOuIHuAqgDxoRarDvjZE2fq1mkLd70h4zELovUhvKrYQQELSM2wF215Ux9RKRJDImVoJyIjBCiMTbsZKihhuBOzK7THhRnCc2HL2VeeqjpG8Yf6/ZeoIj74u63tZyx6cx4zG/Iz09qrmLxYeYlNadFPrjzUQKSFNXxunX+2dAtsozm/A== 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: Huang, Ying wrote: > Dan Williams writes: > > Huang Ying wrote: [..] > >> kernel/resource.c | 44 +++++++++++++++++++++++++++++++++++++------- > >> 1 file changed, 37 insertions(+), 7 deletions(-) > >> > >> diff --git a/kernel/resource.c b/kernel/resource.c > >> index 14777afb0a99..c97a5add9394 100644 > >> --- a/kernel/resource.c > >> +++ b/kernel/resource.c [..] > >> + /* > >> + * Continue to search in descendant resources. Unless > >> + * the matched descendant resources cover the whole > >> + * overlapped range, increase 'other', because it > >> + * overlaps with 'p' at least. > >> + */ > >> + other++; > > > > This results in REGION_MIXED whenever the target of the search is found > > as a descendant of @parent which I believe is unwanted. > > This is not the behavior of this patch. There's a "other--" later in > this patch. > > + ostart = max(res.start, p->start); > + oend = min(res.end, p->end); > + for_each_resource(p, dp, false) { > + if (!resource_overlaps(dp, &res)) > + continue; > + is_type = (((dp->flags & flags) == flags) && > + ((desc == IORES_DESC_NONE) || > + (desc == dp->desc))); > + if (is_type) { > + type++; > + if (dp->start > ostart) > + break; > + if (dp->end >= oend) { > + other--; <====================== HERE! Yes, I missed that. > + break; > + } > + ostart = dp->end + 1; > + } > + } > } > > if (type == 0) > > > That is, if the overlapped range is covered by matched (is_type == true) > descendant resources completely, other will not increase. > > So, for resource tree as follows > > 490000000-52fffffff : CXL Window 0 > 490000000-50fffffff : region0 > 490000000-50fffffff : dax0.0 > 490000000-50fffffff : System RAM (kmem) > 510000000-52fffffff > 510000000-52fffffff : dax0.1 > > region_intersects(, 0x490000000, PAGE_SIZE, IORESOURCE_SYSTEM_RAM, > IORES_DESC_NONE) => REGION_INTERSECTS > region_intersects(, 0x50f000000, 0x2000000, IORESOURCE_SYSTEM_RAM, > IORES_DESC_NONE) => REGION_MIXED > > Even for > > 490000000-52fffffff : CXL Window 0 > 490000000-50fffffff : region0 > 490000000-50fffffff : dax0.0 > 490000000-50fffffff : System RAM (kmem) > > region_intersects(, 0x50f000000, 0x2000000, IORESOURCE_SYSTEM_RAM, > IORES_DESC_NONE) => REGION_MIXED > > This isn't perfect, but it looks OK for me. Because for > > 490000000-50fffffff : System RAM > 510000000-52fffffff : CXL Window 0 > > region_intersects(, 0x50f000000, 0x2000000, IORESOURCE_SYSTEM_RAM, > IORES_DESC_NONE) => REGION_MIXED That explanation makes sense and matches my expectation. > However, I admit that the original code is hard to be understood, > whether is something like below better? I like that this proposal defers incrementing @other rather than decrement after the fact. > > for (p = parent->child; p ; p = p->sibling) { > if (!resource_overlaps(p, &res)) > continue; > is_type = (((p->flags & flags) == flags) && > ((desc == IORES_DESC_NONE) || (desc == p->desc))); > if (is_type) { > type++; > continue; > } > /* > * Continue to search in descendant resources. Unless > * the matched descendant resources cover the whole > * overlapped range, increase 'other', because it > * overlaps with 'p' at least. > */ > covered = false; I would call @covered, @single_descendant. Since @covered is ambiguous. > ostart = max(res.start, p->start); > oend = min(res.end, p->end); > for_each_resource(p, dp, false) { > if (!resource_overlaps(dp, &res)) > continue; > is_type = (((dp->flags & flags) == flags) && > ((desc == IORES_DESC_NONE) || > (desc == dp->desc))); > if (is_type) { > type++; > if (dp->start > ostart) ...this should have a comment: /* partial descendant overlap indicates overlap with a descendant hole */ > break; > if (dp->end >= oend) { > covered = true; > break; ...then per above this because easier to read as: single_descendant = true; > } > ostart = dp->end + 1; > } > } > if (!covered) > other++; > } > > > The semantics of region_intersects() has always been within a single > > sibling level to date. So, I don't think @other should be incremented > > until @is_type is non-zero. It follows that if @is_type is set and > > !resource_contains(p, &res) then there is no point in descending because > > it is known at that there are no descendants to worry about. > > Sorry, I don't understand your words here. Can you show your idea with > some examples or pseudo code? I think your proposed updates address my concern.