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 0C80EEB64DD for ; Wed, 2 Aug 2023 03:00:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A06D328011F; Tue, 1 Aug 2023 23:00:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9B6B9280112; Tue, 1 Aug 2023 23:00:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 87E9328011F; Tue, 1 Aug 2023 23:00:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 748B7280112 for ; Tue, 1 Aug 2023 23:00:36 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 3C9A21A050F for ; Wed, 2 Aug 2023 03:00:36 +0000 (UTC) X-FDA: 81077661672.04.FDFC414 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) by imf13.hostedemail.com (Postfix) with ESMTP id 5919C2001B for ; Wed, 2 Aug 2023 03:00:34 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=vQJAOG12; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf13.hostedemail.com: domain of kaleshsingh@google.com designates 209.85.128.44 as permitted sender) smtp.mailfrom=kaleshsingh@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1690945234; a=rsa-sha256; cv=none; b=QwarwfJ85qMGZLOtsXCrYI7VUk0Bg9ItNitrR9W3/TX/4NT0giG35kTIjYjBuADkwSLMeC q9EKxcrhg5ZR+NU8nn2z6MvzjK19d29pCXy6iHOSaokIntImzhQOo0+W9MhMK08vSnPfbm 9sgQVw9RR6KvF1GYQy5l9TmH1Ufgxlg= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=vQJAOG12; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf13.hostedemail.com: domain of kaleshsingh@google.com designates 209.85.128.44 as permitted sender) smtp.mailfrom=kaleshsingh@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690945234; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=RlAKMW2hhyEGf7EbQoDjxae+sXt59ciz5L61y3xkpbo=; b=yTvw6A+DT/Qq51mDvSUjJRA7CKqHf73Mv194HySQkgyCebIgHMzjjaz5yDwPGWsbi3rN2l vuca9msXv18szvIx3TOyLMVcs1IG/sTijUSYVrZByLoOQIYQfhvMGdlGe/xS2o0+9YXOjn qWBl/VBCJk0a5dARQvCAu+nfpQjHgO4= Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-3fe1e44fd2bso53725e9.0 for ; Tue, 01 Aug 2023 20:00:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1690945233; x=1691550033; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=RlAKMW2hhyEGf7EbQoDjxae+sXt59ciz5L61y3xkpbo=; b=vQJAOG12dWe2jHunL4c0y4nkGH47MCyLHObcx3wytIGo7cJbUOCvivyIOYUfF+wrFO unrIYujYnkF+ySOaIF+/kcNOKmOBLJwGwj82XBbWwBb4288Zuc617LPlcbAkRHKXxyc5 rQZH0wA/4bJp316IZY7q/iIlBwVwzQoknehVtxOnQF9lE4ooLuTLpS3sAyHviJqQTGml CUIsHiFKJHycqolab+QqPxjMe5wacy98j7JS/gsZ7WJMly20mExGGR5QswsxqfNN6H8z b1QZLQZMBTSFcRd6AW/jY+z3nqiiHzg9EFUz6rDPVjnkT4UfpTVHJzZLPg+mdXbypAn9 E6iA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690945233; x=1691550033; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RlAKMW2hhyEGf7EbQoDjxae+sXt59ciz5L61y3xkpbo=; b=eFzwz+SCbiChYXxX4zFLcwDOk+Pqa1AfNMTSsSWntlTbgMHM1bsiTWs/VH1B84A3vt GuQkt6ok8oWbCLxglkxdJCOVz6NRMF61dPDHb6d0F59DqwX76HO2mkCnZWBrlRvPy9Fm L78fTNn9Mmzfk6edvQxVwopbz9L5283wVENyqg+yC3RJQNnZx25FqSJEY/0RWN7SMWw1 9+tSVhRUQGq9+hJSHwIjIDPLk1rtXmf8zlhpoAjQnukH9n50ncD7vEbhpO0mIxFhYxln TVhO150FJM3AJot+BzvILrhrO00yb0NIQpKVSifQfldFJ8klvhrgJRohL7e3ylDbm9U6 hYFg== X-Gm-Message-State: ABy/qLY+jXvxA9FlCnKykLGz09blNZe+VYNpkBQf6qcl6FTMNDahW6Xe rXHnDhUHehAX2FBiWCk/yMw2Q/UdDltmSvd44xrgrw== X-Google-Smtp-Source: APBJJlEAU7sf9LNnkdL9BM8PD1a8rc+IfAWYFJmdLXziM/Js7RppZ43toQ4SbcluXzArg9H2qin9Z8zMAbCrzSlThAg= X-Received: by 2002:a05:600c:1f0a:b0:3f7:e59f:2183 with SMTP id bd10-20020a05600c1f0a00b003f7e59f2183mr310158wmb.5.1690945232638; Tue, 01 Aug 2023 20:00:32 -0700 (PDT) MIME-Version: 1.0 References: <20230802001938.3913174-1-kaleshsingh@google.com> In-Reply-To: From: Kalesh Singh Date: Tue, 1 Aug 2023 20:00:20 -0700 Message-ID: Subject: Re: [PATCH 1/3] mm-unstable: Multi-gen LRU: Fix per-zone reclaim To: Yu Zhao Cc: akpm@linux-foundation.org, surenb@google.com, android-mm@google.com, kernel-team@android.com, Charan Teja Kalla , Lecopzer Chen , Matthias Brugger , AngeloGioacchino Del Regno , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 5919C2001B X-Stat-Signature: nscxh5t1o53kxqwjhhayndytbomr4uma X-HE-Tag: 1690945234-362142 X-HE-Meta: U2FsdGVkX1/0QldXHMqSf9SZZYPuUM1Zkjuz2P6k948d+Q8/WaMcCqEtMpxJPXfFdDPelKPcqHqJQInOLj/qt55saXviulU3zegOGNUygHhQi6zhIHMWq9CV2dPVxhKDuI2xNVhNYVO4RRPxt5uclGiv0HT0hrbZHjgkdqPI/G9bvGBvaqaWe4WfFzBqxey7Xu6sqHvOSmT/8b/9bfOy6t0DcHXm+KazBRsFR5KnUN+2aKnEJC9bwaqkniITfi0Y8Sc0bgD3aQjSdj2w8/qnbwR+sTNHEkIw/lUFG79PQxVoEBizJf4chj12kRSwIknsppSOV6eEumZmPxggVPl7tK5urSwFNRN8O6e4xAM+ZprVTAac2eCz4RRakpCOsn7/pB7uYaYwoFwpmHUt91mAotsfB9UQLmtul5V0t+05DziuYCqwT2sf1XpFH5heSOzHxcVjhqu5sA3HDhmWPHtQ9ZbyvMpgxSuNwHQDtwNY0+8/qyiHHBOrg5Y9VSoLqDWsMtlEC7Q+dsqelb6RN2WfU7EEB3bFRDccCCj+1jAtG+e1QllNCnZ8Ozf0Zy4HXnw182POd3vdMqGJ9Rd+qfsgTKnISsXsTa6mgYLbDgWSotHpXw9Qqoso4/DYETonKUlPM8qwHt63tuKvIFRvXs2NlIzM5OVUy7+F7xA9bXkzVPa1ODqzVWuvCFOQpo7jlB00VeRerTNZzDO+AHOaeXl6z/ZWbVSDFBLWRya1sCmbsFfok+G8QhwxTznsLtETtw1XI5BrPazBqzl4d/d5aFGo7Eu6i1ByWHtZHTBw60OuLn2WGdTMutS4+j/e9N8sRqC2HeT1IfVi2eK77uJecuZeFrv+L9FkTY7i9pLyM1myEwdfP9Azymi/uUDRHffGjnCYqb8nNk7Q11xbA8vz9nqdbQ00+0GPYKaHshj57+7kkzphRFPA/+/DEZPumsN2UTvzPmnIaqfhnCeg5mZOLfF y5xB3A+o i/J/tcx8ZjWv48re7XbseZwT3VPHp2XuJLJesTQRsxIWNsr5g7dDVaVf6Cnje+TbJ+BG9NpqYeXXgQ45ktZOpduiqXbk7dcTdXQEzgRrOFi2UJ9GBRYhCYjEmotiWvzbaDYjaNBrGcNuG3PV1Y8yaWJh7wHYdGQ8L3xJqd0dDIOnTDnKtoI+Jlu/wG+C3WM3RGP64sipqHbiKU16pv7U+aHHO4IC9YixCsd5nanNZRLJMYICDBx1WW2HKFMwAVXb08wIdAC5t/pwq80/oNqc83ujc8gcuHkBz7wElUdNde9kYD2E++rH6nbAqpa2lrjBvdapWJrSy9ypUDBSrr/20t7ZHAEhVK3isypWQpzQISqB/fyntNYuy1IJGkg2VUafj0FQK40M8x/XVzRTdIvtnZVUo7Hi6NH19/JdMqXYLxs3o0D6tWP4m5bV6OtxBMCeDB2NE2iAdrWcpbJGa2THYZ6UQMLEGm7Ug3QC/X4cufHxFoN+5+y6F6AiJqMyNpALgtnuf5Qnuvm9O3RP7jh6QKXxn1/ebLJqXBr+kEPF+V4mlwF+t4diM9S7JXUSpQTvEnWds X-Bogosity: Ham, tests=bogofilter, spamicity=0.034961, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Tue, Aug 1, 2023 at 7:08=E2=80=AFPM Yu Zhao wrote: > > On Tue, Aug 1, 2023 at 6:19=E2=80=AFPM Kalesh Singh wrote: > > > > MGLRU has a LRU list for each zone for each type (anon/file) in each > > generation: > > > > long nr_pages[MAX_NR_GENS][ANON_AND_FILE][MAX_NR_ZONES]; > > > > The min_seq (oldest generation) can progress independently for each > > type but the max_seq (youngest generation) is shared for both anon and > > file. This is to maintain a common frame of reference. > > > > In order for eviction to advance the min_seq of a type, all the per-zon= e > > lists in the oldest generation of that type must be empty. > > > > The eviction logic only considers pages from eligible zones for > > eviction or promotion. > > > > scan_folios() { > > ... > > for (zone =3D sc->reclaim_idx; zone >=3D 0; zone--) { > > ... > > sort_folio(); // Promote > > ... > > isolate_folio(); // Evict > > } > > ... > > } > > > > Consider the system has the movable zone configured and default 4 > > generations. The current state of the system is as shown below > > (only illustrating one type for simplicity): > > > > Type: ANON > > > > Zone DMA32 Normal Movable Device > > > > Gen 0 0 0 4GB 0 > > > > Gen 1 0 1GB 1MB 0 > > > > Gen 2 1MB 4GB 1MB 0 > > > > Gen 3 1MB 1MB 1MB 0 > > > > Now consider there is a GFP_KERNEL allocation request (eligible zone > > index <=3D Normal), evict_folios() will return without doing any work > > since there are no pages to scan in the eligible zones of the oldest > > generation. Reclaim won't make progress until triggered from a ZONE_MOV= ABLE > > allocation request; which may not happen soon if there is a lot of free > > memory in the movable zone. This can lead to OOM kills, although there > > is 1GB pages in the Normal zone of Gen 1 that we have not yet tried to > > reclaim. > > > > This issue is not seen in the conventional active/inactive LRU since > > there are no per-zone lists. > > > > If there are no (not enough) folios to scan in the eligible zones, move > > folios from ineligible zone (zone_index > reclaim_index) to the next > > generation. This allows for the progression of min_seq and reclaiming > > from the next generation (Gen 1). > > > > Qualcomm, Mediatek and raspberrypi [1] discovered this issue independen= tly. > > > > [1] https://github.com/raspberrypi/linux/issues/5395 > > > > Cc: Yu Zhao > > Cc: Andrew Morton > > Reported-by: Charan Teja Kalla > > Reported-by: Lecopzer Chen > > Signed-off-by: Kalesh Singh > > LGTM. But I think we need the Fixes tag and Cc stable. I've reposted the patches with fixes tag and stable cc'ed at: https://lore.kernel.org/lkml/20230802025606.346758-1-kaleshsingh@google.com= /#t Thanks, Kalesh