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 C301FC77B6C for ; Wed, 5 Apr 2023 21:08:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 493526B0075; Wed, 5 Apr 2023 17:08:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 443166B0078; Wed, 5 Apr 2023 17:08:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 308E96B007B; Wed, 5 Apr 2023 17:08:38 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 1FD8A6B0075 for ; Wed, 5 Apr 2023 17:08:38 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id EFA7AC0B3F for ; Wed, 5 Apr 2023 21:08:37 +0000 (UTC) X-FDA: 80648576274.19.0866F92 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by imf25.hostedemail.com (Postfix) with ESMTP id D96A8A0004 for ; Wed, 5 Apr 2023 21:08:35 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=ZRgH+uEE; spf=pass (imf25.hostedemail.com: domain of lkp@intel.com designates 134.134.136.100 as permitted sender) smtp.mailfrom=lkp@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680728916; a=rsa-sha256; cv=none; b=svnKqw0QLM18qPj2k0Al/v3VU+XhvXdH07cghchMMKyEl0/PC2qUDBrL6jBhnHmJh8a2Y7 kjBWwBle3nNWaWHY58/+ZtTiZidZfdm7TT9+fqCqND777IvUGGG0dGygx4yyNxWyroxtEv NJX0ahYdHMUjTDIwWGLQW1F8HuBBomY= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=ZRgH+uEE; spf=pass (imf25.hostedemail.com: domain of lkp@intel.com designates 134.134.136.100 as permitted sender) smtp.mailfrom=lkp@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680728916; 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=DVDrIhSpKkWRxjTwr51k0znx/hxPUKeE/KW7x9jgiQU=; b=Q3W/K6ogTyGGR8Pzz884gKMWhfwmAd8tSGobrHZ4EdYaA2cqfYlr+9qp1sfuXJv2VdgG40 cL0DI9rgQWB+lGesqYVKxIvmkIgrqHPB1rINda8uVgqN/X1uAZ1p7F5A/6nmfxekFRcWxH +SiRRraBDhyACECWcDAUnTvtmI0DSRg= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1680728915; x=1712264915; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=picBdeJZw61WBdGmpyZ2sgLgyFBlqMaZ7koEZZt3f8c=; b=ZRgH+uEEpRiH4X7wY4oY4LacarV1ELZZfPeQpXdBFK751RchcCKnVQUU KCd3hOwqus2FTmbTr8BnEQjtNPa9542HnFaToNvKun2dpyuZLdRkZBJKo hws6bvfaecc55Z+Y1EYqzDynbahJig9RNGriQrjJhEYanY9vbHPycb/xa M8ma8FMsZueZaonFeJiZ3rJxHHckd9Sa6h7PVGc8qxMtP7z4Q+3c0hJxw kU8yilByGOBlIW967Fy/eqiLdHQH3zdKBvPkiMLh+/DJkmZUh8C9LzYr6 5f1uVUug5jk61cj30lui9W74VenZgDPS4J2PYhCppt6c6AaUBRcHB/w+g Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10671"; a="407657503" X-IronPort-AV: E=Sophos;i="5.98,321,1673942400"; d="scan'208";a="407657503" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Apr 2023 14:08:29 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10671"; a="1016620275" X-IronPort-AV: E=Sophos;i="5.98,321,1673942400"; d="scan'208";a="1016620275" Received: from lkp-server01.sh.intel.com (HELO b613635ddfff) ([10.239.97.150]) by fmsmga005.fm.intel.com with ESMTP; 05 Apr 2023 14:08:25 -0700 Received: from kbuild by b613635ddfff with local (Exim 4.96) (envelope-from ) id 1pkAMi-000Qnu-1t; Wed, 05 Apr 2023 21:08:24 +0000 Date: Thu, 6 Apr 2023 05:07:56 +0800 From: kernel test robot To: ankita@nvidia.com, jgg@nvidia.com, alex.williamson@redhat.com, naoya.horiguchi@nec.com, maz@kernel.org, oliver.upton@linux.dev Cc: oe-kbuild-all@lists.linux.dev, aniketa@nvidia.com, cjia@nvidia.com, kwankhede@nvidia.com, targupta@nvidia.com, vsethi@nvidia.com, acurrid@nvidia.com, apopple@nvidia.com, jhubbard@nvidia.com, danw@nvidia.com, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org Subject: Re: [PATCH v3 3/6] mm: handle poisoning of pfn without struct pages Message-ID: <202304060452.tpNrPK39-lkp@intel.com> References: <20230405180134.16932-4-ankita@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230405180134.16932-4-ankita@nvidia.com> X-Rspam-User: X-Rspamd-Queue-Id: D96A8A0004 X-Rspamd-Server: rspam01 X-Stat-Signature: zk3xdt4px7m9713bptnwzyxm1tqmeayg X-HE-Tag: 1680728915-327062 X-HE-Meta: U2FsdGVkX1+lQ+EcmNU74Zzpy4UQl8sOUzXVOb/iBj1dVb5hW2Uv5il7dojo7+6wHWUwE41innb70VJSeGr5NseyQC/6WCMJJgN/IFgovdWm/edyMeiZPrgmZYrbeKsmNsU8u0f72+1wzKahhL0a5R+rEfaIdv04ssil0LWroCmXPdfvYxb6mSFlM8TmYskqE8yJh8RjhyTs4K4QFgenhUHelJ+PmOCEUGPqFGPOcodW4ZzEb076yXdwBXTKwXcJU5mHtwHS4hwjhBLrj1KOOHdbg+DGcDqR0jGiv3wyCxpNqfRrkH8/Z2WpegehiVnUTTjf4/UfJ7yn1iNobKxJejoWqo/ckcocVcIqPSc3uCMGJhjYhpBPu9jMtiz0jnxvNOdKLTbYNxkzYUUUhc8A33P11omjeHiZOPGv2HHSeGIw1gFUTwkUqOQF/SsTGTgHZ6LlZA1RzbA3VqhsM57Hix7VZuy6HDWAbQc6wgcaKq8d7gQICI+Cn1cGX6g4yBODSj6ifwT6BkT8JZf+AwPLT+UMTQu3NiMfdUJX5sclaPEMztjd9Rb7QiasZFBWoYLmnhwqV1pFwCsl30K/ljosbzMZxGQcLHcZSginAyLOF8zzQ1EIMJu0aySn1sHJJJCw38E1fedluP/92THGE/E3QiGT5YuTIl0jPaNUs4VAiAi+qTcKbkCcHcJnAXHXh0IY774ItkPawCqyGBOAQkF7IVAsoTwTP3JKUynyLf8xQpl06XO8cNo8xZmnBzqaGGsnOGcXSFAXoKFMgLgXhhTTJavFSqyGVaqkHAg0aJNMZZ1juE8qDE3xqKaAtMdOS3jEXCsKuHwKwa24pMGLAw6MX9ru6FIQc3N5FvLfvqipUiQSf7F2GOvf4zC5p9TxrqQ/V+hXZ6wAMJJV9B52x+kBU/MOpTOPQx5vF/UAiBkgek2JPh5DlyfQxEAquO6WFN7o0wI+TvyTPhVW+KKU/Xu JBU5NWra tjWRWEm7609KHcMQqsaRypClbiiy8WAQWoo/FjyN+1/q8tpUEVnJgfYpN7s6iElj1R88XsXMHdT94E/NQKutiNglj32TwahvIGI+YU/9Wov+ESD7KzIARzON6AfaEoBZ3RxqF3vPaVvdPNjQjMRp/38vqvfIDYyDoxhyNnft/dWsEYOUra51p2f/+A6gFjH7oo+zMTYKPP2Ubc4eopEnNKm7w2R/XdEph/+E4iE048+3tfHI0+vlP4VYDEvie57euavLHi2kEtzRAP+v1JIgBb7gsCKJUw3Ovbtd2ppjuwkCGmBsHvv+HYM8P0rgHTaW8VtHxKNsRCcCinj3YVDdSvGJoOUYLHvES9UFRM0dJPw7fxq9MzPJvK6HDjpA0N6qIGE5izOacNiSR3t9FcFO/z6Reg/7cV3TruzSW 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: Hi, kernel test robot noticed the following build errors: [auto build test ERROR on awilliam-vfio/for-linus] [also build test ERROR on kvmarm/next akpm-mm/mm-everything linus/master v6.3-rc5] [cannot apply to awilliam-vfio/next next-20230405] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/ankita-nvidia-com/kvm-determine-memory-type-from-VMA/20230406-020404 base: https://github.com/awilliam/linux-vfio.git for-linus patch link: https://lore.kernel.org/r/20230405180134.16932-4-ankita%40nvidia.com patch subject: [PATCH v3 3/6] mm: handle poisoning of pfn without struct pages config: x86_64-randconfig-a015-20230403 (https://download.01.org/0day-ci/archive/20230406/202304060452.tpNrPK39-lkp@intel.com/config) compiler: gcc-11 (Debian 11.3.0-8) 11.3.0 reproduce (this is a W=1 build): # https://github.com/intel-lab-lkp/linux/commit/25466c8c2fa22d39a08721a24f0cf3bc3059417b git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review ankita-nvidia-com/kvm-determine-memory-type-from-VMA/20230406-020404 git checkout 25466c8c2fa22d39a08721a24f0cf3bc3059417b # save the config file mkdir build_dir && cp config build_dir/.config make W=1 O=build_dir ARCH=x86_64 olddefconfig make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot | Link: https://lore.kernel.org/oe-kbuild-all/202304060452.tpNrPK39-lkp@intel.com/ All errors (new ones prefixed by >>): ld: vmlinux.o: in function `memory_failure_pfn': >> mm/memory-failure.c:2124: undefined reference to `interval_tree_iter_first' >> ld: mm/memory-failure.c:2125: undefined reference to `interval_tree_iter_next' ld: vmlinux.o: in function `register_pfn_address_space': >> mm/memory-failure.c:2087: undefined reference to `interval_tree_insert' ld: vmlinux.o: in function `unregister_pfn_address_space': >> mm/memory-failure.c:2105: undefined reference to `interval_tree_remove' vim +2124 mm/memory-failure.c 2065 2066 /** 2067 * register_pfn_address_space - Register PA region for poison notification. 2068 * @pfn_space: structure containing region range and callback function on 2069 * poison detection. 2070 * 2071 * This function is called by a kernel module to register a PA region and 2072 * a callback function with the kernel. On detection of poison, the 2073 * kernel code will go through all registered regions and call the 2074 * appropriate callback function associated with the range. The kernel 2075 * module is responsible for tracking the poisoned pages. 2076 * 2077 * Return: 0 if successfully registered, 2078 * -EBUSY if the region is already registered 2079 */ 2080 int register_pfn_address_space(struct pfn_address_space *pfn_space) 2081 { 2082 if (!request_mem_region(pfn_space->node.start << PAGE_SHIFT, 2083 (pfn_space->node.last - pfn_space->node.start + 1) << PAGE_SHIFT, "")) 2084 return -EBUSY; 2085 2086 mutex_lock(&pfn_space_lock); > 2087 interval_tree_insert(&pfn_space->node, &pfn_space_itree); 2088 mutex_unlock(&pfn_space_lock); 2089 2090 return 0; 2091 } 2092 EXPORT_SYMBOL_GPL(register_pfn_address_space); 2093 2094 /** 2095 * unregister_pfn_address_space - Unregister a PA region from poison 2096 * notification. 2097 * @pfn_space: structure containing region range to be unregistered. 2098 * 2099 * This function is called by a kernel module to unregister the PA region 2100 * from the kernel from poison tracking. 2101 */ 2102 void unregister_pfn_address_space(struct pfn_address_space *pfn_space) 2103 { 2104 mutex_lock(&pfn_space_lock); > 2105 interval_tree_remove(&pfn_space->node, &pfn_space_itree); 2106 mutex_unlock(&pfn_space_lock); 2107 release_mem_region(pfn_space->node.start << PAGE_SHIFT, 2108 (pfn_space->node.last - pfn_space->node.start + 1) << PAGE_SHIFT); 2109 } 2110 EXPORT_SYMBOL_GPL(unregister_pfn_address_space); 2111 2112 static int memory_failure_pfn(unsigned long pfn, int flags) 2113 { 2114 struct interval_tree_node *node; 2115 int rc = -EBUSY; 2116 LIST_HEAD(tokill); 2117 2118 mutex_lock(&pfn_space_lock); 2119 /* 2120 * Modules registers with MM the address space mapping to the device memory they 2121 * manage. Iterate to identify exactly which address space has mapped to this 2122 * failing PFN. 2123 */ > 2124 for (node = interval_tree_iter_first(&pfn_space_itree, pfn, pfn); node; > 2125 node = interval_tree_iter_next(node, pfn, pfn)) { 2126 struct pfn_address_space *pfn_space = 2127 container_of(node, struct pfn_address_space, node); 2128 rc = 0; 2129 2130 /* 2131 * Modules managing the device memory needs to be conveyed about the 2132 * memory failure so that the poisoned PFN can be tracked. 2133 */ 2134 pfn_space->ops->failure(pfn_space, pfn); 2135 2136 collect_procs_pgoff(NULL, pfn_space->mapping, pfn, &tokill); 2137 2138 unmap_mapping_range(pfn_space->mapping, pfn << PAGE_SHIFT, 2139 PAGE_SIZE, 0); 2140 } 2141 mutex_unlock(&pfn_space_lock); 2142 2143 /* 2144 * Unlike System-RAM there is no possibility to swap in a different 2145 * physical page at a given virtual address, so all userspace 2146 * consumption of direct PFN memory necessitates SIGBUS (i.e. 2147 * MF_MUST_KILL) 2148 */ 2149 flags |= MF_ACTION_REQUIRED | MF_MUST_KILL; 2150 kill_procs(&tokill, true, false, pfn, flags); 2151 2152 pr_err("%#lx: recovery action for %s: %s\n", 2153 pfn, action_page_types[MF_MSG_PFN], 2154 action_name[rc ? MF_FAILED : MF_RECOVERED]); 2155 2156 return rc; 2157 } 2158 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests