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 BA6E5FC6172 for ; Fri, 13 Sep 2024 21:54:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E9CE18D0001; Fri, 13 Sep 2024 17:54:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DB0CD6B00C2; Fri, 13 Sep 2024 17:54:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C2A2D8D0001; Fri, 13 Sep 2024 17:54:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id A02056B00C1 for ; Fri, 13 Sep 2024 17:54:41 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 5B9D5C0E71 for ; Fri, 13 Sep 2024 21:54:41 +0000 (UTC) X-FDA: 82561069962.11.A66F89C Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) by imf24.hostedemail.com (Postfix) with ESMTP id A6C21180004 for ; Fri, 13 Sep 2024 21:54:38 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=netmeu4R; spf=pass (imf24.hostedemail.com: domain of lkp@intel.com designates 198.175.65.14 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=1726264425; 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=/va1Ir4tx3jQopFom6CC0uVWPAhc0Fd03SZw1XVLF8c=; b=PhOysSHfZpgXFOTdPxb83WYOv3LoWeQEdsbbsF29+FdN8qIZGtQ96yMZXr2rLt6xiSPEPz njn8evR/dKcwWEVGerHtS/BTP9LXtwq4MSLWA6vktfHtpxZDCEXYFTX4HYu7NCIjzHT7Nc srd058XCyxWKQWRVQT9BwulC1OSncNk= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=netmeu4R; spf=pass (imf24.hostedemail.com: domain of lkp@intel.com designates 198.175.65.14 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=1726264425; a=rsa-sha256; cv=none; b=Lc9XJIQsPtQjjG6i7JeCz7un04SmnmayRf9sCjyHIYxy+01/VLMZ0Kg8ZpwUySbbzdPZje WcPeSfmI36hdbQokzeg38Kx4vsw+UqkcFy3qyrXY4Bpi9Ar70T/tBCePkqcVplhHgONQ0Q noxefR1RptunIvxP+IRLjGnwrb9gNdk= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1726264479; x=1757800479; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=zAwlk67tqKRq3ykb3Dq/lPmctb9a7uuG+dbiA68cadA=; b=netmeu4R2dVdHdmurhoGv46VMzMcG3k8ojE8iMUo+SC3if81kiFISaYs 69TeooRLBeSoGQh+0UFiIATJgZmSTle3Vt+J3OFIj6V2mfgripFr/fgZN +Rlk9JlsmYQYNRGzOLIWx7eHPgpi3P9ZN91w5K5Ir99zK2Gu8PcdZvrZE ptDPwb+bXglZuH5pRpEvJ7jX1iZnPjMEjLP0PGQhriPi2Wdt9CLXdpHyH 2qhb5eMfNmSEwIPb5PNj8F5oNOELQaVvi3lUm14eUV/HL+kW8+RJqaCSe GGm3qoe4uT7LdpzXLwR15ur8DClx23m1PDoaNmEeH+9Q3XAQFKfVRRSyU A==; X-CSE-ConnectionGUID: zU1sYv1jTheK+FHxqh95kw== X-CSE-MsgGUID: nDfxae/kRBiJ+LvmlfbXaA== X-IronPort-AV: E=McAfee;i="6700,10204,11194"; a="28964295" X-IronPort-AV: E=Sophos;i="6.10,227,1719903600"; d="scan'208";a="28964295" Received: from fmviesa004.fm.intel.com ([10.60.135.144]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Sep 2024 14:54:33 -0700 X-CSE-ConnectionGUID: FOi80xTeS1Oe+X0B2eo2eQ== X-CSE-MsgGUID: XvYNeoeQRMufVwcHM+SBeA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.10,227,1719903600"; d="scan'208";a="72802514" Received: from lkp-server01.sh.intel.com (HELO 53e96f405c61) ([10.239.97.150]) by fmviesa004.fm.intel.com with ESMTP; 13 Sep 2024 14:54:28 -0700 Received: from kbuild by 53e96f405c61 with local (Exim 4.96) (envelope-from ) id 1spEFF-00074a-1x; Fri, 13 Sep 2024 21:54:25 +0000 Date: Sat, 14 Sep 2024 05:53:55 +0800 From: kernel test robot To: Jesper Dangaard Brouer , tj@kernel.org, cgroups@vger.kernel.org, yosryahmed@google.com, shakeel.butt@linux.dev Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev, Jesper Dangaard Brouer , hannes@cmpxchg.org, lizefan.x@bytedance.com, longman@redhat.com, kernel-team@cloudflare.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH V11] cgroup/rstat: Avoid flushing if there is an ongoing root flush Message-ID: <202409140533.2vt8QPj8-lkp@intel.com> References: <172616070094.2055617.17676042522679701515.stgit@firesoul> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <172616070094.2055617.17676042522679701515.stgit@firesoul> X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: A6C21180004 X-Stat-Signature: tzsuoeqa7e19bwfg4s4mpbyj36pda4rn X-HE-Tag: 1726264478-240088 X-HE-Meta: U2FsdGVkX18rbDnSYqj8C0y+lorjX29zbNr9gieuljkj1fpt3GLpLBByg3ucNnY6Sv6GOzXBf/E/RbCX2yBIhhKWxWJ1oTYdgC71wWncn0aT92xfgOiJI8+fcMtc6PvU4KXPhAKmiPWj9TRjc0pHIBLcjf1S0AD+PlpptKEmDJxnhJ432UI1+rIVnF7GuA4kGEnhVdNSUe6kau6VR0LWSKJozfE+qShpNN5zrKRzxY0mINX3wTx6iHd/MW4GOlCHCsFcwF55YWnWT1F18zYR/d+uKr6yob1rKJlBJhgJcVruhIBXtMQGaToVZRkFd+PqkFSIiRYsVWyVuLmKINUDwf4qsr56rsvx/Qtn/5at0AzHU7B2pDG0SAAyVpAj402gRPj0u00AZGO6ANYWzXFbtyfS7HGXDYVCGZ5hj2OjFu3h5v5xAEwCw+7NtcwK5S2KGxlySOmV1zYZBAj/Q0ifNgUYiJ+SuxkQYqSQk+lKbyHZdPL0wCWPGVtZcQKLks4wVDZ78dWb4AkzddE1+PptZkDiD7/D+nWCBDJqEWk6rMM7GfBgtvx9+E+MbcEvBL8teFLCq6TSeSsMGhO6IE1Gj6kETKUh5ui43Z+Imc5O8Evl8RX1F+q7uePNIoqPxZl0LxUMcvjYhUt2hgXIa0Ok+K5sG8SeAG2OgjTXAerSLhlg98MIA46tqsTwz9v954aCAPM+LIGSU3Rd6wA+n0kna8/ekWv3lKteWUqZtffmCRSOnWp7LHlvRVyDdIle7IaBE99pMRxzq9mMFOHaRnwefJKEPCCplVPxulGqwgp0h15u1u3+LWYwLf/TwUUvEWqwvYtFEu5q3c4FBzPdFUCoCyWiVVHQEKbGL+9SE0gV/hHZGFfHByImSoyThYwyCOV3UeaS1Tfo2eF9vq2g9HjTN6s2QFbZGC33uxhOkfh2qC7St9aFI8DiTHcluxbqmll8hTquNgYJR/X+7LA7BSq b0YzsEVn gyitqZsR0bdDYHflP5Ms0+gnEmjQn/zl085NpBq+KC34FiSF4WuF6iMBr8kmd28XkWEMVFmM99v324g8JYiPVZ0GnQnA3n/jidVMaaToRGi2am54pQZBtN1/DIeEVvk2xKdcHzmT1WKDNj0H9xARhzXZ77rSgNR2RXCm1jAhmdxYLjSbDkgmn+9I57IFDeYG0nqmhRlQaWKmVftnApEKr//CnyOQyQov4RSm9rGItBHpHJO1slkat7dVgXNc/TpdQN46WXriMoypu3P+sjHl6FZsGTIbpkfEhG+G/FPHFdxqqHONJ25Yon8r16EeHMFnk2VpJRtfvVYfJx1NBndDj2pBYfsc/LE4wYYZT 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 Jesper, kernel test robot noticed the following build errors: [auto build test ERROR on tj-cgroup/for-next] [also build test ERROR on axboe-block/for-next linus/master v6.11-rc7] [cannot apply to akpm-mm/mm-everything next-20240913] [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/Jesper-Dangaard-Brouer/cgroup-rstat-Avoid-flushing-if-there-is-an-ongoing-root-flush/20240913-010800 base: https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git for-next patch link: https://lore.kernel.org/r/172616070094.2055617.17676042522679701515.stgit%40firesoul patch subject: [PATCH V11] cgroup/rstat: Avoid flushing if there is an ongoing root flush config: x86_64-allnoconfig (https://download.01.org/0day-ci/archive/20240914/202409140533.2vt8QPj8-lkp@intel.com/config) compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240914/202409140533.2vt8QPj8-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/202409140533.2vt8QPj8-lkp@intel.com/ All errors (new ones prefixed by >>): >> mm/vmscan.c:2265:2: error: call to undeclared function 'mem_cgroup_flush_stats_relaxed'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 2265 | mem_cgroup_flush_stats_relaxed(sc->target_mem_cgroup); | ^ mm/vmscan.c:2265:2: note: did you mean 'mem_cgroup_flush_stats_ratelimited'? include/linux/memcontrol.h:1429:20: note: 'mem_cgroup_flush_stats_ratelimited' declared here 1429 | static inline void mem_cgroup_flush_stats_ratelimited(struct mem_cgroup *memcg) | ^ 1 error generated. vim +/mem_cgroup_flush_stats_relaxed +2265 mm/vmscan.c 2250 2251 static void prepare_scan_control(pg_data_t *pgdat, struct scan_control *sc) 2252 { 2253 unsigned long file; 2254 struct lruvec *target_lruvec; 2255 2256 if (lru_gen_enabled()) 2257 return; 2258 2259 target_lruvec = mem_cgroup_lruvec(sc->target_mem_cgroup, pgdat); 2260 2261 /* 2262 * Flush the memory cgroup stats, so that we read accurate per-memcg 2263 * lruvec stats for heuristics. 2264 */ > 2265 mem_cgroup_flush_stats_relaxed(sc->target_mem_cgroup); 2266 2267 /* 2268 * Determine the scan balance between anon and file LRUs. 2269 */ 2270 spin_lock_irq(&target_lruvec->lru_lock); 2271 sc->anon_cost = target_lruvec->anon_cost; 2272 sc->file_cost = target_lruvec->file_cost; 2273 spin_unlock_irq(&target_lruvec->lru_lock); 2274 2275 /* 2276 * Target desirable inactive:active list ratios for the anon 2277 * and file LRU lists. 2278 */ 2279 if (!sc->force_deactivate) { 2280 unsigned long refaults; 2281 2282 /* 2283 * When refaults are being observed, it means a new 2284 * workingset is being established. Deactivate to get 2285 * rid of any stale active pages quickly. 2286 */ 2287 refaults = lruvec_page_state(target_lruvec, 2288 WORKINGSET_ACTIVATE_ANON); 2289 if (refaults != target_lruvec->refaults[WORKINGSET_ANON] || 2290 inactive_is_low(target_lruvec, LRU_INACTIVE_ANON)) 2291 sc->may_deactivate |= DEACTIVATE_ANON; 2292 else 2293 sc->may_deactivate &= ~DEACTIVATE_ANON; 2294 2295 refaults = lruvec_page_state(target_lruvec, 2296 WORKINGSET_ACTIVATE_FILE); 2297 if (refaults != target_lruvec->refaults[WORKINGSET_FILE] || 2298 inactive_is_low(target_lruvec, LRU_INACTIVE_FILE)) 2299 sc->may_deactivate |= DEACTIVATE_FILE; 2300 else 2301 sc->may_deactivate &= ~DEACTIVATE_FILE; 2302 } else 2303 sc->may_deactivate = DEACTIVATE_ANON | DEACTIVATE_FILE; 2304 2305 /* 2306 * If we have plenty of inactive file pages that aren't 2307 * thrashing, try to reclaim those first before touching 2308 * anonymous pages. 2309 */ 2310 file = lruvec_page_state(target_lruvec, NR_INACTIVE_FILE); 2311 if (file >> sc->priority && !(sc->may_deactivate & DEACTIVATE_FILE) && 2312 !sc->no_cache_trim_mode) 2313 sc->cache_trim_mode = 1; 2314 else 2315 sc->cache_trim_mode = 0; 2316 2317 /* 2318 * Prevent the reclaimer from falling into the cache trap: as 2319 * cache pages start out inactive, every cache fault will tip 2320 * the scan balance towards the file LRU. And as the file LRU 2321 * shrinks, so does the window for rotation from references. 2322 * This means we have a runaway feedback loop where a tiny 2323 * thrashing file LRU becomes infinitely more attractive than 2324 * anon pages. Try to detect this based on file LRU size. 2325 */ 2326 if (!cgroup_reclaim(sc)) { 2327 unsigned long total_high_wmark = 0; 2328 unsigned long free, anon; 2329 int z; 2330 2331 free = sum_zone_node_page_state(pgdat->node_id, NR_FREE_PAGES); 2332 file = node_page_state(pgdat, NR_ACTIVE_FILE) + 2333 node_page_state(pgdat, NR_INACTIVE_FILE); 2334 2335 for (z = 0; z < MAX_NR_ZONES; z++) { 2336 struct zone *zone = &pgdat->node_zones[z]; 2337 2338 if (!managed_zone(zone)) 2339 continue; 2340 2341 total_high_wmark += high_wmark_pages(zone); 2342 } 2343 2344 /* 2345 * Consider anon: if that's low too, this isn't a 2346 * runaway file reclaim problem, but rather just 2347 * extreme pressure. Reclaim as per usual then. 2348 */ 2349 anon = node_page_state(pgdat, NR_INACTIVE_ANON); 2350 2351 sc->file_is_tiny = 2352 file + free <= total_high_wmark && 2353 !(sc->may_deactivate & DEACTIVATE_ANON) && 2354 anon >> sc->priority; 2355 } 2356 } 2357 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki