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 153E0C54E68 for ; Thu, 21 Mar 2024 14:24:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9F1DA6B0082; Thu, 21 Mar 2024 10:24:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 97AAA6B0085; Thu, 21 Mar 2024 10:24:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7F4AB6B008A; Thu, 21 Mar 2024 10:24:41 -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 687706B0082 for ; Thu, 21 Mar 2024 10:24:41 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 0284D1A0C5B for ; Thu, 21 Mar 2024 14:24:40 +0000 (UTC) X-FDA: 81921267162.27.8073542 Received: from mail-oa1-f45.google.com (mail-oa1-f45.google.com [209.85.160.45]) by imf08.hostedemail.com (Postfix) with ESMTP id D6AC2160014 for ; Thu, 21 Mar 2024 14:24:38 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=dOYVwEJ6; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf08.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.160.45 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1711031079; 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=uMwHK5SLtdqChoTJnZ8oDxJRYwecYOvB8jcFY9CBgVk=; b=178p/WomqhACjxMd6o9cWRr6BxtZXNhfLiawiA5iJxRx16lgujRf82rgFXdpraF8oA25M0 tseVNcyFLMY3RXXPMri7zGLSFLKKM2ASk5reDm3ouuQTc/K+BrJHuMjVsKW5mdRaQoC0/p 2qWopZFYYXbPCdCGAtaCFh24adI7jQw= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=dOYVwEJ6; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf08.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.160.45 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1711031079; a=rsa-sha256; cv=none; b=HB+PWHnWKRCFYQBLK9pRlTHFW4ks3GCXBZsMuyPfKpDYeD5x098uu/8VsvBdDQ2IjvNNx1 7Yde3kxjjuf+Df8qHWBikaQFTAddRGLA4Y7ArgjFpOADVXDUjzNJfIlCBOgw9VQXfTgHRQ 8S+aWeCe9yyr+guBf27spnLSZLtx9l8= Received: by mail-oa1-f45.google.com with SMTP id 586e51a60fabf-222a9eae9a7so466714fac.3 for ; Thu, 21 Mar 2024 07:24:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20230601.gappssmtp.com; s=20230601; t=1711031078; x=1711635878; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=uMwHK5SLtdqChoTJnZ8oDxJRYwecYOvB8jcFY9CBgVk=; b=dOYVwEJ66zvRRSfgi0rlfm0mtaIbEHNYmAw4QoRzuf1wJzcj90Y4nXdAE1jD2twfI5 sjthLhIOMpgdb7BZExEFrh6luGi3s8tJXOYCEw/Mgf1vNpRO15wC9NOZiJLXwt5sybeK TPuOQQdfGIXFQourPRyhCF4OrX+QvikVpK/6G7YJdqc3Kr+svPEub4K5R41Ja1gydEzo hdYvO+6ZIUCZR9VWHB1wYGkuO54c1E2AukU+JcBhdjL81pqi0AecG13YhJUg9HZkUopu pUMqJbm+tVNZi5t6Tz4GixTDTAkvjeFWRSTSoJs3n+G3qMP+CtAi5+5Amu/e3O5UjuKZ keig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711031078; x=1711635878; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=uMwHK5SLtdqChoTJnZ8oDxJRYwecYOvB8jcFY9CBgVk=; b=Fru3ofV+btUzi8p5sCV4B45xrFMfi4zVGrTgE2WtoUrjhcfod9Z72aj6o6B3/HM7Yk vBX2xlOkSAhCOshfsNMyvEtkACMgd5Fcc4DSySA0uMcEj7hKyV5L7Lzasn5tBvY6M44l Odrs5sufYFZsanLwvWr4q6EwkQt/rKlhrtDeacPqKMWu99JHDnOGvHYwfcuhtegtt1ND tTlI5yQcRiKZEtNYOg41aE7ou0C511GDNqbc7nbVxrEPukLwLcKlkZoHMitt6QZX7Tp1 +fuwSvNPiLZtZZI3Mh2/bm2CEEIS5vYk2KT+om4Uhfgd098dKcSvruFgZBphn3Go98di kBfg== X-Forwarded-Encrypted: i=1; AJvYcCVE5gLPav4YC/lFXmv8Xnth45/CSN87TejVk82bwS/0W+MtAjvzB5wG6jGnF8yB1sfeDnlX7VS/rWDDvwggPXRJxkU= X-Gm-Message-State: AOJu0Yy7I2bP/3ZDwZgnEOh+1HmNVd/8MGXt0YPxV94itD9thQeHPPWR k3pqWCcDtKfXfYSqM/ZRSS+XgeFoGzFKsjfCnacz0QWhcl7vDorQilAKWWbrY+o= X-Google-Smtp-Source: AGHT+IFov2e+/kQxGWoYd6pon9dB6ic+JHmJrCaJt3wZ16SD0JwIMpyHn3WTmkRdA23DHfA9eY8cKg== X-Received: by 2002:a05:6870:f10c:b0:222:6495:642a with SMTP id k12-20020a056870f10c00b002226495642amr5490576oac.46.1711031077907; Thu, 21 Mar 2024 07:24:37 -0700 (PDT) Received: from localhost (2603-7000-0c01-2716-da5e-d3ff-fee7-26e7.res6.spectrum.com. [2603:7000:c01:2716:da5e:d3ff:fee7:26e7]) by smtp.gmail.com with ESMTPSA id s14-20020a0562140cae00b0069124066c2fsm8956146qvs.140.2024.03.21.07.24.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 21 Mar 2024 07:24:37 -0700 (PDT) Date: Thu, 21 Mar 2024 10:24:26 -0400 From: Johannes Weiner To: kernel test robot Cc: Andrew Morton , oe-kbuild-all@lists.linux.dev, Linux Memory Management List , Vlastimil Babka , Mel Gorman , Zi Yan , "Huang, Ying" , David Hildenbrand , linux-kernel@vger.kernel.org Subject: Re: [PATCH 09/10] mm: page_isolation: prepare for hygienic freelists Message-ID: <20240321142426.GB777580@cmpxchg.org> References: <20240320180429.678181-10-hannes@cmpxchg.org> <202403212118.ye7lcKjD-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202403212118.ye7lcKjD-lkp@intel.com> X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: D6AC2160014 X-Stat-Signature: pnkhbxskefawk7tepz3f7e44og6ykt53 X-HE-Tag: 1711031078-735040 X-HE-Meta: U2FsdGVkX19ccRwgC9gaKoDZDLJnzPMZigOEumZDGG3SItytaQnU8XT+zu8NXj7TKVSPntoglBz5P+6W6uav2nCnQLAHA7G2Y0oTSLinSWHhCajseMPeVUUTqKdXKfrfHrkf2HFVUPPhsOPzLIMsFu0SCTIbr9DljFQ7eCMd+8aMAg5QZtN5HLU+S5l7c+ZRyH1mn6eUhucB1S7HwahNfABSvAw5GSf/4EpAKSYnPhSJv0nGUqwo4brf3h/CeJ8J/j6hOKf858BH1Y13zI8kGfFaC3FYjAFkupUUT6cX/QEbwlc1uCWBPYtM05N2Z2h+4FOmsk+O+xizfY71YEvpdw+mOuPx1StofXkghp/LTU5cZetropxoBSZFBi4bsEKVE/9XEX7RKugAW+rAyNtsoluWLoJKbagTlYcak8Q/F8VwfswcW9/seQBS61nYO27MqzxS/lDqXaEOrGXtll2P+wmcYD3qfdoZN9E0wpjgmFM2UZgvno8BhYczxAb1WLL3I7DBAlP1d/atYqgD8tGXUUEZqOzPAlPetjPHv++Q/BQT16F5O50e7rWnE7pTTuXuawJsfwn0/RnK/UJNAMw2TkLPKnNZcuO9xADaq4nSUlO7zTKjn8dt25J/AQwJwUjiaZxF6Md3xx2xL5VnKRCQUOr/rK//97jo4ElL0Ybf1F+KdTiJhWYSILNbIzKKIKyDa+DZIOcnpFoUCMo4Hkrzk4NWJkPYEirM42WUd99TpFm6lAc8YNVPiFrPecu5dHi7fr7YooX57lUtAfjyJRf+lxYkACF2Nz7jS5CV1YSXf0nqNBiXaD0IyvTg4xvyQ+Qp/0G0pIef30vk7NoMDCdwtxs+SudoJn8HMTDNmooBhmoxqODvCpi4ZmDpNkalzsmnNmAOxB/wY4yw4OrUfl/hSxdRnHmsAwGWBQGIRi3FI7QnTuNH1ZjSVKPWO3lga2SMfceE2BmDe+1FmLY+ZTL CROYXlD7 Qilrclr4QiTI0apVx231RoU5Tr8GjSlMbYK1iS2fmhKKdW7KXCDo5QKNxRobWlIuP1C3MYggePc8Lgtqb/V/VoFosPPrqY2lYN7u2RNUcrTw3u6akC+gT7lxCUejCpXBIT75YM5gnL+dO9SzZyAh/R2Kca2HrjzUj5X3CeVgmRo7oYNQp8GZ0BERhsdCcb4jl6xmxwcDfXdbqEpkyGoLL3IjjXY0UMPc2jVwFAVwETiR2c7kR7k+YW7kj5jb9wGy+ZDYVKJNa3mRxKnJVU0NuogecTrWDOzKwy/spgG5hTEYei6CbkxW2tP+lyCStGPICasQZYC3WsPvn7xoFtBbkibM0wYKaCaSz6/h3QfvnqcopcsFiO/AQacxTYRLNtoT3j6gnKuZRQFC9X3JL3tjww9AJmHK1dpyc7amH5vLWF3qiCFrHutd8m1dZbS4BEl7pFw509yEei/9N3CC6hdBbLNtiUxZoUXf1Fxl/K1F5bOesKTdhLACq58eX60xhx+0SxijiwO40/hmrjsJ+DJnCZNFJnvlXHTZRDA4mRkcsLSQpPmNrMWSrsr/a3AyMwOAvoAAOtOLh/hHwokX6lLNk2aflVoni+YFxGO6LTKH1vl2dHMShLipBaAEOxNyrGNkvXlsPAH53bJeBv6Wbju1pp96n8emBfC68K1OX 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 Thu, Mar 21, 2024 at 09:13:57PM +0800, kernel test robot wrote: > Hi Johannes, > > kernel test robot noticed the following build warnings: > > [auto build test WARNING on akpm-mm/mm-everything] > > url: https://github.com/intel-lab-lkp/linux/commits/Johannes-Weiner/mm-page_alloc-remove-pcppage-migratetype-caching/20240321-020814 > base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything > patch link: https://lore.kernel.org/r/20240320180429.678181-10-hannes%40cmpxchg.org > patch subject: [PATCH 09/10] mm: page_isolation: prepare for hygienic freelists > config: i386-randconfig-003-20240321 (https://download.01.org/0day-ci/archive/20240321/202403212118.ye7lcKjD-lkp@intel.com/config) > compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240321/202403212118.ye7lcKjD-lkp@intel.com/reproduce) > > If you fix the issue in a separate patch/commit (i.e. not just a new version of > the same patch/commit), kindly add following tags > | Reported-by: kernel test robot > | Closes: https://lore.kernel.org/oe-kbuild-all/202403212118.ye7lcKjD-lkp@intel.com/ > > All warnings (new ones prefixed by >>): > > mm/page_alloc.c: In function 'move_freepages_block_isolate': > >> mm/page_alloc.c:688:17: warning: array subscript 11 is above array bounds of 'struct free_area[11]' [-Warray-bounds] > 688 | zone->free_area[order].nr_free--; > | ~~~~~~~~~~~~~~~^~~~~~~ > >> mm/page_alloc.c:688:17: warning: array subscript 11 is above array bounds of 'struct free_area[11]' [-Warray-bounds] I think this is a bug in the old gcc. We have this in move_freepages_block_isolate(): /* We're the starting block of a larger buddy */ if (PageBuddy(page) && buddy_order(page) > pageblock_order) { int mt = get_pfnblock_migratetype(page, pfn); int order = buddy_order(page); if (!is_migrate_isolate(mt)) __mod_zone_freepage_state(zone, -(1UL << order), mt); del_page_from_free_list(page, zone, order); And this config doesn't have hugetlb enabled, so: /* If huge pages are not used, group by MAX_ORDER_NR_PAGES */ #define pageblock_order MAX_PAGE_ORDER If buddies were indeed >MAX_PAGE_ORDER, this would be an out-of-bounds access when delete updates the freelist count. Of course, buddies per definition cannot be larger than MAX_PAGE_ORDER. But the older gcc doesn't seem to realize this branch in this configuration is dead. Maybe we can help it out and make the impossible scenario a bit more explicit? Does this fixlet silence the warning? diff --git a/mm/page_alloc.c b/mm/page_alloc.c index efb2581ac142..4cdc356e73f6 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1698,6 +1698,10 @@ bool move_freepages_block_isolate(struct zone *zone, struct page *page, NULL, NULL)) return false; + /* No splits needed if buddies can't span multiple blocks */ + if (pageblock_order == MAX_PAGE_ORDER) + goto move; + /* We're a tail block in a larger buddy */ pfn = find_large_buddy(start_pfn); if (pfn != start_pfn) { @@ -1725,7 +1729,7 @@ bool move_freepages_block_isolate(struct zone *zone, struct page *page, split_large_buddy(zone, page, pfn, order); return true; } - +move: mt = get_pfnblock_migratetype(page, start_pfn); nr_moved = move_freepages(zone, start_pfn, end_pfn, migratetype); if (!is_migrate_isolate(mt)) Zi Yan, does this look sane to you as well?