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 X-Spam-Level: X-Spam-Status: No, score=-2.3 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9EA38C17440 for ; Tue, 12 Nov 2019 18:20:21 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 44718222BD for ; Tue, 12 Nov 2019 18:20:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=cmpxchg-org.20150623.gappssmtp.com header.i=@cmpxchg-org.20150623.gappssmtp.com header.b="KGZv5hfK" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 44718222BD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=cmpxchg.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id E1DC46B0010; Tue, 12 Nov 2019 13:20:20 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DCE656B0266; Tue, 12 Nov 2019 13:20:20 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CBD4F6B0269; Tue, 12 Nov 2019 13:20:20 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0006.hostedemail.com [216.40.44.6]) by kanga.kvack.org (Postfix) with ESMTP id B62646B0010 for ; Tue, 12 Nov 2019 13:20:20 -0500 (EST) Received: from smtpin16.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with SMTP id 7002B8249980 for ; Tue, 12 Nov 2019 18:20:20 +0000 (UTC) X-FDA: 76148440200.16.cat69_774e5c366b915 X-HE-Tag: cat69_774e5c366b915 X-Filterd-Recvd-Size: 6273 Received: from mail-qt1-f193.google.com (mail-qt1-f193.google.com [209.85.160.193]) by imf44.hostedemail.com (Postfix) with ESMTP for ; Tue, 12 Nov 2019 18:20:19 +0000 (UTC) Received: by mail-qt1-f193.google.com with SMTP id l24so20762373qtp.10 for ; Tue, 12 Nov 2019 10:20:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=w8YEl8DjjpzVT+jv1JTvmwB07dFEMqomlwwTe3310pY=; b=KGZv5hfKhSeMlIk3qURodC/bAqExsgUF/6lSCR5KsnlI2hk1Vvt1Ez2XgZxpFXA6M5 8NVnX35tumAMf8vnwXOFXvzbSO92tizrnnR0oG2BuR4cvUtk5ck7y7zDzOFViLG0BLii LlqvsQXofXqmA6yYdPv+ou1g+Dj4+W+uI7q/VBfOGf1zGxNnhbdp7/C+cgP1Pchyt/Fa nm4DL5uBVj/MkkJRMhVmzu8uNlKaGah+hX5o7Ukk+f2wXdl67Dpk/sfK9/hOPNH1GcT5 IyMHcklOBzKmgmgdX/rKt3LxiEfgOiElsQ7rJpf5BAx81/PxDpbMsgGNxbZOrH/gntTJ PSOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=w8YEl8DjjpzVT+jv1JTvmwB07dFEMqomlwwTe3310pY=; b=lTe0pZqcEGOYmhJq+KgMyBmcwVPHx5upLNI2KIZl7Qma8KskdmW5R0BR18JKwEzjXv PgRHpRr6mSpclMJc597BRVTW1reRGjspCFNyvXyeQaoUk/gOI5GDax72xDL/OvvWyW9B 8BlCn7v65yRAxSOX7KWjPSjAQVYzdWUo6PZabK22X2Q3RHYh2E73AunoUhS5xDPA2qcd wKr+tUZGTSJc1MyixUf9BeiKpuixKDLQsexPB/1UmvzFg1bDm7XpqY1lDIhnhPepu23W Dg05hHkTgArBLqbpHfPUKagxBy1LX7hw8UzHwA3XVIGTooCc/zLpQoMWAXtF3MY9Ax75 Ln7Q== X-Gm-Message-State: APjAAAVXbETV8AVYLPYfvmdkNsWfgQ1XnNkGw04xaV4ZiLu7cUOXUTt5 vdLQQpoWdNrBtqHu5Vfk1oKIEQ== X-Google-Smtp-Source: APXvYqxAJw9irKY7g9DkVQFTpe5A8l1M8lvcepZNDcLVyN+F4gO+m+2TgrsjbM1/Sy4V/K2ycaqo5w== X-Received: by 2002:aed:24c1:: with SMTP id u1mr33987362qtc.29.1573582818867; Tue, 12 Nov 2019 10:20:18 -0800 (PST) Received: from localhost ([2620:10d:c091:500::aa8c]) by smtp.gmail.com with ESMTPSA id k27sm8179165qkj.30.2019.11.12.10.20.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Nov 2019 10:20:18 -0800 (PST) Date: Tue, 12 Nov 2019 13:20:17 -0500 From: Johannes Weiner To: Michal Hocko Cc: Chris Down , Qian Cai , akpm@linux-foundation.org, guro@fb.com, linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH -next] mm/vmscan: fix an undefined behavior for zone id Message-ID: <20191112182017.GB179587@cmpxchg.org> References: <20191108204407.1435-1-cai@lca.pw> <64E60F6F-7582-427B-8DD5-EF97B1656F5A@lca.pw> <20191111130516.GA891635@chrisdown.name> <20191111131427.GB891635@chrisdown.name> <20191111132812.GK1396@dhcp22.suse.cz> <20191112145942.GA168812@cmpxchg.org> <20191112152750.GA512@dhcp22.suse.cz> <20191112161658.GF168812@cmpxchg.org> <20191112163156.GB512@dhcp22.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191112163156.GB512@dhcp22.suse.cz> User-Agent: Mutt/1.12.2 (2019-09-21) 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: On Tue, Nov 12, 2019 at 05:31:56PM +0100, Michal Hocko wrote: > On Tue 12-11-19 11:16:58, Johannes Weiner wrote: > > On Tue, Nov 12, 2019 at 04:27:50PM +0100, Michal Hocko wrote: > > > lruvec_lru_size is explicitly documented to use MAX_NR_ZONES for all > > > LRUs and git grep says there are more instances outside of > > > get_scan_count. So all of them have to be fixed. > > > > Which ones? > > > > [hannes@computer linux]$ git grep lruvec_lru_size > > include/linux/mmzone.h:extern unsigned long lruvec_lru_size(struct lruvec *lruvec, enum lru_list lru, int zone_idx); > > mm/vmscan.c: * lruvec_lru_size - Returns the number of pages on the given LRU list. > > mm/vmscan.c:unsigned long lruvec_lru_size(struct lruvec *lruvec, enum lru_list lru, int zone_idx) > > mm/vmscan.c: anon = lruvec_lru_size(lruvec, LRU_ACTIVE_ANON, MAX_NR_ZONES - 1) + > > mm/vmscan.c: lruvec_lru_size(lruvec, LRU_INACTIVE_ANON, MAX_NR_ZONES - 1); > > mm/vmscan.c: file = lruvec_lru_size(lruvec, LRU_ACTIVE_FILE, MAX_NR_ZONES - 1) + > > mm/vmscan.c: lruvec_lru_size(lruvec, LRU_INACTIVE_FILE, MAX_NR_ZONES - 1); > > mm/vmscan.c: lruvec_size = lruvec_lru_size(lruvec, lru, sc->reclaim_idx); > > [hannes@computer linux]$ > > I have checked the Linus tree but now double checked with the current > next > $ git describe next/master > next-20191112 > $ git grep "lruvec_lru_size.*MAX_NR_ZONES" next/master > next/master:mm/vmscan.c: lruvec_lru_size(lruvec, inactive_lru, MAX_NR_ZONES), inactive, > next/master:mm/vmscan.c: lruvec_lru_size(lruvec, active_lru, MAX_NR_ZONES), active, > next/master:mm/vmscan.c: anon = lruvec_lru_size(lruvec, LRU_ACTIVE_ANON, MAX_NR_ZONES) + > next/master:mm/vmscan.c: lruvec_lru_size(lruvec, LRU_INACTIVE_ANON, MAX_NR_ZONES); > next/master:mm/vmscan.c: file = lruvec_lru_size(lruvec, LRU_ACTIVE_FILE, MAX_NR_ZONES) + > next/master:mm/vmscan.c: lruvec_lru_size(lruvec, LRU_INACTIVE_FILE, MAX_NR_ZONES); > next/master:mm/workingset.c: active_file = lruvec_lru_size(lruvec, LRU_ACTIVE_FILE, MAX_NR_ZONES); > > are there any changes which didn't make it to linux next yet? Aaahh, that makes sense. I was looking at the latest mmots which has - mm: vmscan: detect file thrashing at the reclaim root - mm: vmscan: enforce inactive:active ratio at the reclaim root Those replace the inactive_is_low and the workingset callsites with the recursive lruvec_page_state(). It looks like that isn't in next - and while I hope it'll make it into 5.5, it might not. So we need a fix that considers the other callsites as well. Qian's patches that Andrew already has will be good then, as it reduces the churn to those other callsites that are in flux. We can clean things up when the dust settles.