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 94E21C52D7C for ; Wed, 21 Aug 2024 15:00:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C552C6B012C; Wed, 21 Aug 2024 11:00:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BDD906B012D; Wed, 21 Aug 2024 11:00:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A7EA96B012E; Wed, 21 Aug 2024 11:00:43 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 89CA46B012C for ; Wed, 21 Aug 2024 11:00:43 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id D88A2120F79 for ; Wed, 21 Aug 2024 15:00:42 +0000 (UTC) X-FDA: 82476564324.19.E26B590 Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com [209.85.218.45]) by imf12.hostedemail.com (Postfix) with ESMTP id 209284003C for ; Wed, 21 Aug 2024 15:00:32 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=FU7M5X9u; spf=pass (imf12.hostedemail.com: domain of mhocko@suse.com designates 209.85.218.45 as permitted sender) smtp.mailfrom=mhocko@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724252393; 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=xcRUKZYdyBX916nHF6t0DptHBUYpaDVMRVKVcN+50Rc=; b=fJ+/k80YCcrV7cPvF82OM/1v6eRuHO6XRXHlEqQur5ewiIkjaJ3PkYRVS9Nu6Cc29dmFN3 CEwouZi3CzzlJsHjjSiznaJe9XvNSLFsh1m9+HRW9CMt9RqiJZvd2OEHG2raATH38PNspO 1X2N6ihOfWcsTKQEK3SjqnuhO4OrRrE= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=FU7M5X9u; spf=pass (imf12.hostedemail.com: domain of mhocko@suse.com designates 209.85.218.45 as permitted sender) smtp.mailfrom=mhocko@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724252393; a=rsa-sha256; cv=none; b=dJA/6N8W0SVVxezmE4sli0Ib6cbyH09XDi5j6ifvjTe30yzw5LkqnpVlK1GPhbBtSWzPqQ Q1NKsF/WsXt1FG6AQzh2qQ74wuBQniVEmut2gpwYVq4Nxe6xHYrCjQXuhYu68H2qE0QeHS 1SdlmBKhwfWjlAP72oJNreYoPuxHcAY= Received: by mail-ej1-f45.google.com with SMTP id a640c23a62f3a-a8684c31c60so32042066b.3 for ; Wed, 21 Aug 2024 08:00:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1724252431; x=1724857231; 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=xcRUKZYdyBX916nHF6t0DptHBUYpaDVMRVKVcN+50Rc=; b=FU7M5X9ujC2/3zAgY8g54EXoQRXv21GHUFwIlzl3DSav8sSx9cihoiOi7Q82MCzj+X xMQa/dqoC4hgT3MYVRFtXXOCCzpaIYRn1jzWCksuhXljTnlph+A3DZmkO56z2biqatX6 TrOB68F0AkWiTBj4eS7xyPggoq0v5DgqYHKQmfJ4E+EpiwDBCT1suMhALWYhG5xwMdB7 tHYZDPBYnObfRROa7sKHbzQldyXvmfojETa51EF/duLousiPmC6sdsXCPW6y8bmwg++B wF893rdTTQqP3ugGN0cISyUh7hUuc+Vl+hnQ3j32j9LChoY2H1yXWnG67sETwnRi2ni3 VFlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724252431; x=1724857231; 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=xcRUKZYdyBX916nHF6t0DptHBUYpaDVMRVKVcN+50Rc=; b=lv7cj4C4tjbc5QmOAwELN00C1PMlyBuKN2AGaomMA4cfsDix2OE8fGBNl6X9Agvkxp U1IGrCXCB1PHfReXXmgW3RoC/jG3hUK8mybx8sJZgnBa9Mnt3TQGuz4xlbWa6uc6K0dQ tYsDPkhWFyQJysoIxIbnANGDNHCA1SH7XL7Pj886jNQhlpYT5R7ZmXK+jTC7jkHqHly8 LiGGP/cObBmrm5KatxYxaa0Ken9SAk0BDKv/JMlpfde27cLV3rTjwmk0E6YxCGYq0B2V /uUwmrHObpLLzw5TgNxxCI8IR1MU964H3+U8uYKUthwAOKhHl0vywhc2UoHJIffBgQwV iLWQ== X-Forwarded-Encrypted: i=1; AJvYcCUeyjWniOLJ2QAO/pZ6Ohx8nz699Z8mf3OqOgzjvtE+X5l0c7N++A3YTB1sndbw4DGlZyUSfIjM1A==@kvack.org X-Gm-Message-State: AOJu0Yx8ycxozeU8ZrqMMLNDJRP4sc0os6Y4MvsDgWwY3mAFxFBWw6BP hszvFzQ671ECz3bQ1z/svBcpHQ4ylziGk3Qz743VgvDsuxPiVdzgffdqrw1qsVA= X-Google-Smtp-Source: AGHT+IETZL55oHXa2GmSfrxU68Y2JXpAaweNsD7J6sIoff16mz8wyMfOeSSbaZQl3H/+dKh9IQbnHg== X-Received: by 2002:a17:907:948e:b0:a7d:3cf6:48d1 with SMTP id a640c23a62f3a-a866f36f8b4mr144681566b.32.1724252430479; Wed, 21 Aug 2024 08:00:30 -0700 (PDT) Received: from localhost (109-81-81-250.rct.o2.cz. [109.81.81.250]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a8678084255sm99494766b.92.2024.08.21.08.00.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Aug 2024 08:00:30 -0700 (PDT) Date: Wed, 21 Aug 2024 17:00:28 +0200 From: Michal Hocko To: Zhongkun He Cc: akpm@linux-foundation.org, mgorman@techsingularity.net, hannes@cmpxchg.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, lizefan.x@bytedance.com Subject: Re: [PATCH] mm:page_alloc: fix the NULL ac->nodemask in __alloc_pages_slowpath() Message-ID: References: <20240821135900.2199983-1-hezhongkun.hzk@bytedance.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240821135900.2199983-1-hezhongkun.hzk@bytedance.com> X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: 209284003C X-Stat-Signature: p7he1r1jimscrgbrcioazkyazhd7eeno X-HE-Tag: 1724252432-639378 X-HE-Meta: U2FsdGVkX18sMUpEhMk2u+eL+bbK/xAQGfeakHw5QfflJJg9D+DT80KTtp9HaqUClnOUT+zQfEsxbVEaEtwd8uLZ3UiOmq3S6DRAySjuRr5wkbpe6Fvh7srIm8SXJEwnGFrrFGpSbaelZlou+JZliO2Mecqp6PqU2veLidhsqzMK9gJK4xGv99aGlbLgk4Jq/tCW3Y1eP6M0Tc1B1ccQclbPqiHw0AmWxJecrh9tQ2R4GVblfo7PtsS6oy46D21QAAZcv6Opj5F/Ydy8l7dGCASAeuH7jYu0SGOwfM5z0yl/jwPlacDMQRX4bBvMvYXtW04XE85ykx50rd9r+b17IDuLlm2ki8KBSxNil0RYXw6JcC8bcGfVNOon+9B+ARwfri7I0UIgLg63VKhX3WbN5lrsRNfQ+6RmKAiljHQ4QvjhBQbFqJ6SFW9sYCH5KqVBmeKrlxf0v7CRmARCWnbgYnJH7T9QMlPunmVyHtz8JR4w+/cTqsRXRcWhSjbiQog8GgWlXXldLDkh3lZS/KzCHeI2ma4VyX6Hd/CLWasybgttHBsTHadBtdR5/vkdRnisVbgmBS0WOn4UVb8+cYZN/1ds7qqAoaQdBZBJJ8B74rI3QnkuLVoKeLoBEjZdF5XGsOvgr0Pn12Lon9lARFRfFcQaIIJ1Wn3JHhurO6tC+esVv9oP8Uu6f3Lh26AvAP79VdZaTirJPkNdsJe8o0Uo9oK9Wnrw9Psou87Jl3i1ts8XSMB9HyRyQR3LPd/31VuAILjVIRYerUpes+Tvmgq1RqtJe1tJ2AIlPDJG5A92qzx84KkNi2PMr+uVdCWW+taNfCMFph5Jp02L6S/qTsoWsvxAn68G5yRcrWXBc+2QjZfgMlJNLpfyRYwLd2XhU8p57z/GAQrBoTftxu2RhbgY/X6cRnd7JoPxqofvN8zGQEPCxax2lWJ722JU3meZAqVTGXSlR1u1Hkm/CNhTBIA VgvTvb5I LTyGbf7V3Ld9svMgl7GwSyHNHC7/tJ3Zl2xn2KaIyB9/T7FpMCBL/4aATVKqTkEv650lyq9AqSI9tr/Z37+sq+6nZG6D40bvqzj5n2otxBvYWobAX4Gqkz519l7gtqasGCiUPpoL3BLL7dzG4pUF/doJ7yqxZYAiqkax6hHb1Z8qPsY/1pDLb3O1aKxNVRiqTB6PqFENWZg2JKhVuQzORMV3LGF7QeHQd5TW+V0LVNuyRDLB7CiaKt2P6Xqcn/pcTpgrx+oOg9sYo/UPCwPh3E8xhxVGcp68xj/JljbYteO6hs9ps6Ke0DBWVHSMSZaUzpzK2ynzzHk39NUs= 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 Wed 21-08-24 21:59:00, Zhongkun He wrote: > I found a problem in my test machine that should_reclaim_retry() do > not get the right node if i set the cpuset.mems > > 1.Test step and the machines. > ------------ > root@vm:/sys/fs/cgroup/test# numactl -H | grep size > node 0 size: 9477 MB > node 1 size: 10079 MB > node 2 size: 10079 MB > node 3 size: 10078 MB > > root@vm:/sys/fs/cgroup/test# cat cpuset.mems > 2 > > root@vm:/sys/fs/cgroup/test# stress --vm 1 --vm-bytes 12g --vm-keep > stress: info: [33430] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd > stress: FAIL: [33430] (425) <-- worker 33431 got signal 9 > stress: WARN: [33430] (427) now reaping child worker processes > stress: FAIL: [33430] (461) failed run completed in 2s OK, so the test gets killed as expected. > 2. reclaim_retry_zone info: > > We can only alloc pages from node=2, but the reclaim_retry_zone is > node=0 and return true. > > root@vm:/sys/kernel/debug/tracing# cat trace > stress-33431 [001] ..... 13223.617311: reclaim_retry_zone: node=0 zone=Normal order=0 reclaimable=4260 available=1772019 min_wmark=5962 no_progress_loops=1 wmark_check=1 > stress-33431 [001] ..... 13223.617682: reclaim_retry_zone: node=0 zone=Normal order=0 reclaimable=4260 available=1772019 min_wmark=5962 no_progress_loops=2 wmark_check=1 > stress-33431 [001] ..... 13223.618103: reclaim_retry_zone: node=0 zone=Normal order=0 reclaimable=4260 available=1772019 min_wmark=5962 no_progress_loops=3 wmark_check=1 > stress-33431 [001] ..... 13223.618454: reclaim_retry_zone: node=0 zone=Normal order=0 reclaimable=4260 available=1772019 min_wmark=5962 no_progress_loops=4 wmark_check=1 > stress-33431 [001] ..... 13223.618770: reclaim_retry_zone: node=0 zone=Normal order=0 reclaimable=4260 available=1772019 min_wmark=5962 no_progress_loops=5 wmark_check=1 > stress-33431 [001] ..... 13223.619150: reclaim_retry_zone: node=0 zone=Normal order=0 reclaimable=4260 available=1772019 min_wmark=5962 no_progress_loops=6 wmark_check=1 > stress-33431 [001] ..... 13223.619510: reclaim_retry_zone: node=0 zone=Normal order=0 reclaimable=4260 available=1772019 min_wmark=5962 no_progress_loops=7 wmark_check=1 > stress-33431 [001] ..... 13223.619850: reclaim_retry_zone: node=0 zone=Normal order=0 reclaimable=4260 available=1772019 min_wmark=5962 no_progress_loops=8 wmark_check=1 > stress-33431 [001] ..... 13223.620171: reclaim_retry_zone: node=0 zone=Normal order=0 reclaimable=4260 available=1772019 min_wmark=5962 no_progress_loops=9 wmark_check=1 > stress-33431 [001] ..... 13223.620533: reclaim_retry_zone: node=0 zone=Normal order=0 reclaimable=4260 available=1772019 min_wmark=5962 no_progress_loops=10 wmark_check=1 > stress-33431 [001] ..... 13223.620894: reclaim_retry_zone: node=0 zone=Normal order=0 reclaimable=4260 available=1772019 min_wmark=5962 no_progress_loops=11 wmark_check=1 > stress-33431 [001] ..... 13223.621224: reclaim_retry_zone: node=0 zone=Normal order=0 reclaimable=4260 available=1772019 min_wmark=5962 no_progress_loops=12 wmark_check=1 > stress-33431 [001] ..... 13223.621551: reclaim_retry_zone: node=0 zone=Normal order=0 reclaimable=4260 available=1772019 min_wmark=5962 no_progress_loops=13 wmark_check=1 > stress-33431 [001] ..... 13223.621847: reclaim_retry_zone: node=0 zone=Normal order=0 reclaimable=4260 available=1772019 min_wmark=5962 no_progress_loops=14 wmark_check=1 > stress-33431 [001] ..... 13223.622200: reclaim_retry_zone: node=0 zone=Normal order=0 reclaimable=4260 available=1772019 min_wmark=5962 no_progress_loops=15 wmark_check=1 > stress-33431 [001] ..... 13223.622580: reclaim_retry_zone: node=0 zone=Normal order=0 reclaimable=4260 available=1772019 min_wmark=5962 no_progress_loops=16 wmark_check=1 Are you suggesting that the problem is that should_reclaim_retry is iterating nodes which are not allowed by cpusets and that makes the retry loop happening more than unnecessary? Is there any reason why you haven't done the same that the page allocator does in this case? diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 28f80daf5c04..cbf09c0e3b8a 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -4098,6 +4098,11 @@ should_reclaim_retry(gfp_t gfp_mask, unsigned order, unsigned long min_wmark = min_wmark_pages(zone); bool wmark; + if (cpusets_enabled() && + (alloc_flags & ALLOC_CPUSET) && + !__cpuset_zone_allowed(zone, gfp_mask)) + continue; + available = reclaimable = zone_reclaimable_pages(zone); available += zone_page_state_snapshot(zone, NR_FREE_PAGES); -- Michal Hocko SUSE Labs