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 61138C61D97 for ; Fri, 24 Nov 2023 10:59:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C9A628D0070; Fri, 24 Nov 2023 05:59:31 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C4AD68D006E; Fri, 24 Nov 2023 05:59:31 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B13AA8D0070; Fri, 24 Nov 2023 05:59:31 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id A20248D006E for ; Fri, 24 Nov 2023 05:59:31 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 77FACB6E0E for ; Fri, 24 Nov 2023 10:59:31 +0000 (UTC) X-FDA: 81492551742.11.7C7C622 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) by imf15.hostedemail.com (Postfix) with ESMTP id 9249FA0012 for ; Fri, 24 Nov 2023 10:59:29 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=xWjuIi1p; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf15.hostedemail.com: domain of rientjes@google.com designates 209.85.214.182 as permitted sender) smtp.mailfrom=rientjes@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700823569; a=rsa-sha256; cv=none; b=0WEpnfc3RVQ0dOPY9Bcqk70eOMFH5S6Ii05l2vMVD8DV8mh0q7ThVaaLFRo3cv6b0MbX+i ggFd9TL5NkoFAssLe6nurdyGX33dQIO2ao5u7zc6JxI0KGYmooJ8O+fBFyKaxOMQqwdalo 4pgB5fuA8naReomAFrVZ6/WpZH+ExTY= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=xWjuIi1p; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf15.hostedemail.com: domain of rientjes@google.com designates 209.85.214.182 as permitted sender) smtp.mailfrom=rientjes@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700823569; 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=9toATxM+d6eRCYqlZIqOo6hx5RVSvPJKB3GUF4f5giQ=; b=FD/b4WoSE1wymQxDj/06ZAGLswwzHKjJLvFoyTMK5quRWinXtPYQXE9UiKw1CZwcpo1Oe9 iz4pc1U3Kmcfhd2lIYBFuFkRMQ6fKx9ymigx4fZjmiF9gRGvHqBrpz/FAiI8urL21RYQXS P7KWOfU4efjEHab5fqCm/m0GwV4M+Sc= Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-1cf7e393b75so320335ad.0 for ; Fri, 24 Nov 2023 02:59:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1700823568; x=1701428368; darn=kvack.org; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=9toATxM+d6eRCYqlZIqOo6hx5RVSvPJKB3GUF4f5giQ=; b=xWjuIi1pJ1w5FY25sEX0D1lmHatu8LuoFX5Qyt4pq8UbhTRbVNNEww1DvH5aK5g6mm co5MSlwP+jde+WVYBVaEn32zOolbo70zDttFjmnIwETx00BLtpn/ZY9m6IzwGzl6Rd8C P++sEzOaQl8QJTO77Shd9SGPEnbUCFFxbLlSADiMEutnio4VsW+2LQKfUfTerngEIg86 speFvaBUuqXygpya51FgRIPBclwGnbYaJaSHcXbsI0t48sJRkX1UECqiSA4cIAOu5r+p UrNpnw5BOTeFJNQc15F9ZVJH8FR1/2VcFzzCOxoork05R96iPvrZT7g6NQldNYx/wbCu bq5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700823568; x=1701428368; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=9toATxM+d6eRCYqlZIqOo6hx5RVSvPJKB3GUF4f5giQ=; b=L8r4PxC3Bf/XYm3offEkuezQwMhYAcXiKfOurVdGK/GXwc4keOuBdO0D68yI/nKIWU 4Dm1w+JMFLKeOsDP0QZ63mEAsYf1DNVhmu+1QjaHClE+3crGRusyueaXfHd5+67yogNm 1goSSB12prw2ao9R4c9gl8RZl/emEDUOZs0BNpDqLB+K3O1zdFck9uRXIev9dmSqJlEs /W0AE9MKf39KdtwCZk4nDuJiuSDnQeCe249xqTi+8ZBBhciZ4jLKmAaGUByFLyHixdA0 gQDd7+CkahCKvHheex7ujFzuTGrF6N01ZXYEET+Svktwr2bH2SyJirtERD86BC/P90LP TYeA== X-Gm-Message-State: AOJu0YwkFYAgZI3Z/Tp154kdPP4XzJfTyVVUr3Up/RmS0GraNmpwDNCj C9IbUrpivpHn+rZabmneMhoMVg== X-Google-Smtp-Source: AGHT+IG5wV5x+TYKfxmSYuOtoy+5GCFyIyMKVSF37bVK+/JgxbgLDuhPZEJ4oq55qm6WAhy1z4+3aQ== X-Received: by 2002:a17:903:2312:b0:1ce:5f56:7fdb with SMTP id d18-20020a170903231200b001ce5f567fdbmr606021plh.25.1700823568098; Fri, 24 Nov 2023 02:59:28 -0800 (PST) Received: from [2620:0:1008:15:ab09:50a5:ec6d:7b5c] ([2620:0:1008:15:ab09:50a5:ec6d:7b5c]) by smtp.gmail.com with ESMTPSA id jk2-20020a170903330200b001b8b1f6619asm2939635plb.75.2023.11.24.02.59.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Nov 2023 02:59:27 -0800 (PST) Date: Fri, 24 Nov 2023 02:59:26 -0800 (PST) From: David Rientjes To: Charan Teja Kalla cc: akpm@linux-foundation.org, mgorman@techsingularity.net, mhocko@suse.com, david@redhat.com, vbabka@suse.cz, hannes@cmpxchg.org, quic_pkondeti@quicinc.com, quic_cgoldswo@quicinc.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [RESEND PATCH V2] mm: page_alloc: unreserve highatomic page blocks before oom In-Reply-To: <1700823445-27531-1-git-send-email-quic_charante@quicinc.com> Message-ID: <52128e17-7f69-ef51-95b4-5b4a338b9c3a@google.com> References: <1700823445-27531-1-git-send-email-quic_charante@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 9249FA0012 X-Stat-Signature: xdd7ni7tgrq58tfmj3yyeydexzyt4dew X-HE-Tag: 1700823569-325935 X-HE-Meta: U2FsdGVkX19AAkIe2p/WW5eKAax7NZKUoakTJfA+EkXTCFp9jRnW+S+RfiH15PbR7CZHKYjLlTrBivMl+sbW6E5hahnghMzGGfK0WX4HWRKtpAggHmDe4y26j8KQ/vNg5swlJj2fr5jh/p8bdRA7w0eDv3rPApqNDGvHytPqogLZn906Q+gZqsuRz19HqR8UmVjII8T0Pmd+0VBjjEkbuANG+loVWnJB9pZJWIS7KGDFHRUCHUdAn8IZwiXzajacVRnR+CPBFuxsghk3lwbrFF3Pn+yh4A7uG4TE5Z2CpYtRyIIy5IC9hNB+F4rH4ApryEikrSh5/iCPhWZTGoS/qu5Pa5ndghUnJYly2XHbNM5IqbZj1d9s4vJLoU0MqDTEAugUvJezx0vSTSt69pCrCVfLx0w+ecOnl0w/X+lV+n37SOMC5YqTQ2NDzhgzYr1HCqmxMnUuZZdUkOixCWYO5wSZXvadkUqAcpAQfjXxJzBFiID12b6uCWnI6LctlfWTGOsolKzDJ8Gh4z7SYZB7nwdvtgWiwggCb9uOS30j/AgVeNF52wSjASjlGUYDfnkBmJ+HhMro3c1PK3/vdKE9pmS6FEydAP4+PVmCiv/BKtfaHTlfIMxAC05jYKuawbhnqVHeyKHTEY8Y9EHZHUpc0W59dtvIb32cUtj39ZPhIwUWKdRJAFDC+DK5DQB1F6YqoIa8m+xkTI3kiejTsW1+b57sJEpH4Q92prvVNTDlgV3DEacKD2SkQ9F1xlCaKMJ3yWdoZH6fj2jI1hC1ur5zBRTf+rTKCr4pkH7B0N5lbbKlNS3hEhT7NjHNTPO3jgBmWNq9Yyw1agDV7voImJvSzaMrUL6wilVFqU14N+Zb965aNLjx5YoZQsW8G3NFCJ2AhUrd4Ti0p6ZCsaUeeVxkPIvVWPJgflCq01eG5ckHLPPwxyAjMBcXI2KrKCf/b4La3xMB04mvpou3sg/Jm7q Q50lM42+ 7jzvuHjN0TRr6jMhQSAJ017sdKL2aTZ8iMcj56CTI5q7kZzgFPx3sa58yB2yjDMDKZ6RjX8hdj06vxL6h/AQmLaPtl3GbYQwvOn6xeHyfkUhfpbJaMtlM9/0etj+hFPfLihxPGRYwSDec3hLUlHdfW+ho05hG7JaijsZeF919BnHfdIOzkcBjyyfzrW29NG76cmV2RbQUwCLxy/hLr8ACROjlB3GbaF9RHtGnyuFAgucDAVCs5x0WSGT7W/INfQe8g5a6p6tAcwDIgH8LuBnF0jMO+a0AfbcJH0v80hpqGF2+Y4XoDrOSUXRiYD0slk1o27OxV8HVbZTs89sp7v/oYv5UjZVKXYdUJ59CCxqixVuZSZ1HwiyaFsGl/cQymJL/GJg1A+/TTLCbXmDqii8i1NpM/qz0+4ljPusKrYBXtrLtJ9vvLh7hip4tzYAWZFN8xVjxnNOD2Y9btjKgn3Rozt0E4Kl1tOF8PDulyem+P6nrTEhXDiRcPIM4l5hT4hK4IWl3YCDAzynSSYlR8xzUgqy7CPpuLCqEBDyj/8hJ+17uDpkJ9qkkeHJdUxscUxsysORgw8KuPSg16Hc= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000005, 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 Fri, 24 Nov 2023, Charan Teja Kalla wrote: > __alloc_pages_direct_reclaim() is called from slowpath allocation where > high atomic reserves can be unreserved after there is a progress in > reclaim and yet no suitable page is found. Later should_reclaim_retry() > gets called from slow path allocation to decide if the reclaim needs to > be retried before OOM kill path is taken. > > should_reclaim_retry() checks the available(reclaimable + free pages) > memory against the min wmark levels of a zone and returns: > a) true, if it is above the min wmark so that slow path allocation will > do the reclaim retries. > b) false, thus slowpath allocation takes oom kill path. > > should_reclaim_retry() can also unreserves the high atomic reserves > **but only after all the reclaim retries are exhausted.** > > In a case where there are almost none reclaimable memory and free pages > contains mostly the high atomic reserves but allocation context can't > use these high atomic reserves, makes the available memory below min > wmark levels hence false is returned from should_reclaim_retry() leading > the allocation request to take OOM kill path. This can turn into a early > oom kill if high atomic reserves are holding lot of free memory and > unreserving of them is not attempted. > > (early)OOM is encountered on a VM with the below state: > [ 295.998653] Normal free:7728kB boost:0kB min:804kB low:1004kB > high:1204kB reserved_highatomic:8192KB active_anon:4kB inactive_anon:0kB > active_file:24kB inactive_file:24kB unevictable:1220kB writepending:0kB > present:70732kB managed:49224kB mlocked:0kB bounce:0kB free_pcp:688kB > local_pcp:492kB free_cma:0kB > [ 295.998656] lowmem_reserve[]: 0 32 > [ 295.998659] Normal: 508*4kB (UMEH) 241*8kB (UMEH) 143*16kB (UMEH) > 33*32kB (UH) 7*64kB (UH) 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB > 0*4096kB = 7752kB > > Per above log, the free memory of ~7MB exist in the high atomic > reserves is not freed up before falling back to oom kill path. > > Fix it by trying to unreserve the high atomic reserves in > should_reclaim_retry() before __alloc_pages_direct_reclaim() can > fallback to oom kill path. > > Fixes: 0aaa29a56e4f ("mm, page_alloc: reserve pageblocks for high-order atomic allocations on demand") > Reported-by: Chris Goldsworthy > Suggested-by: Michal Hocko > Acked-by: Michal Hocko > Signed-off-by: Charan Teja Kalla Acked-by: David Rientjes