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=-12.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham 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 AA02BC4338F for ; Mon, 26 Jul 2021 01:43:39 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 4B0BA60720 for ; Mon, 26 Jul 2021 01:43:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 4B0BA60720 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvack.org Received: by kanga.kvack.org (Postfix) id DD0946B0033; Sun, 25 Jul 2021 21:43:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D59188D0002; Sun, 25 Jul 2021 21:43:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BD30E8D0001; Sun, 25 Jul 2021 21:43:38 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0105.hostedemail.com [216.40.44.105]) by kanga.kvack.org (Postfix) with ESMTP id A0C086B0033 for ; Sun, 25 Jul 2021 21:43:38 -0400 (EDT) Received: from smtpin17.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 577BD18020C2A for ; Mon, 26 Jul 2021 01:43:38 +0000 (UTC) X-FDA: 78403042116.17.9C98BB7 Received: from mail-pj1-f49.google.com (mail-pj1-f49.google.com [209.85.216.49]) by imf09.hostedemail.com (Postfix) with ESMTP id AAD67300D2F9 for ; Mon, 26 Jul 2021 01:43:37 +0000 (UTC) Received: by mail-pj1-f49.google.com with SMTP id m2-20020a17090a71c2b0290175cf22899cso12105410pjs.2 for ; Sun, 25 Jul 2021 18:43:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:subject:to:cc:references:in-reply-to:mime-version :message-id:content-transfer-encoding; bh=QNcRdWa89CMec3CorSn2nGC2QnCsrgJPXRJBZPjqvi4=; b=Ou/J2PKOQVKYqYvRHJmuzhsNii98XhQ7QYgesR1vPhYNoEOqZRj2VtfZEtobe8goeG jGhz3IAShSQlKMJFfeS/oWEYiY9FtUZYOAEGnzjrpt2Ae9laPUjl5pIoCZSo8p4/mgyb MGtZS4LpWOp3jWFoGK4FmLWoZ7NInhEI5sv64eVNXDDW0zECDdnheYl6fsm8DgOhInQN A58ebCoJ8BlOcmtkNnaK6x5W11s/+FCxSYFPWpgBaMNI28xIbRzqdys9CYCoUeCIPfOi 1ugDTwRFUcWSzzQ9jKA6dvsr5sOjyQXslqLXp0EjR13h22YLcqEJ0aEb1tywSNgpW1jL y7HA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:subject:to:cc:references:in-reply-to :mime-version:message-id:content-transfer-encoding; bh=QNcRdWa89CMec3CorSn2nGC2QnCsrgJPXRJBZPjqvi4=; b=YVj7zfls1l44J0VM49Q6cawYH2biPT2l198TuBJoEvcnLN8EQjf+VK1ba65hJ41/UP s34UX6H+gg26mDncWxiRLqf9tj0zlpjLSNNRKd0kD0CNgWY6QhCU1if/g0/NZHqF/dlh Ztf0LohFoHM91CZ2sVFFKFKZWM3fz7BLDHzK1wIk2JW6SYuSLb/zWcUiyMivDIw9aMfI QjuIxKPjmtrzW7mMr52ZXxfRWeC0aQ7okglloOW7Ikf9cwTCsAbDT2Zc8XlimNFeQuO6 23npZZIpIPC193ydWiUd/Yj59Y4JtOi3bIAf7aftCDKJTsnFzxVqdjx0drzyDZSsrQt9 hAZw== X-Gm-Message-State: AOAM530ejkQ2y/5/8j9234yxlGOUttzeSRjd7EyBfcvfSdHpr9IGx29m mDaZEgZS8CTusrDij907HTKVJCz+2cNAJQ== X-Google-Smtp-Source: ABdhPJwQOBqVYhIZzYyiALfB9gFtpNcx8wI4feDNJpVXCwAXvAmL1lfOLvTFsKPvUeyAAC7Dk1+KOA== X-Received: by 2002:a17:902:e84d:b029:12b:b2aa:5266 with SMTP id t13-20020a170902e84db029012bb2aa5266mr12445734plg.65.1627263816767; Sun, 25 Jul 2021 18:43:36 -0700 (PDT) Received: from localhost (220-244-190-123.tpgi.com.au. [220.244.190.123]) by smtp.gmail.com with ESMTPSA id me1sm14850pjb.38.2021.07.25.18.43.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Jul 2021 18:43:36 -0700 (PDT) Date: Mon, 26 Jul 2021 11:43:30 +1000 From: Nicholas Piggin Subject: Re: [PATCH] mm/migrate: fix page state accounting type conversion underflow To: Andrew Morton , David Hildenbrand Cc: Alexey Kardashevskiy , linux-mm@kvack.org, Mel Gorman , Yang Shi References: <20210722054840.501423-1-npiggin@gmail.com> <1bc9f24a-c6ff-902e-bce0-165c235bb643@redhat.com> In-Reply-To: <1bc9f24a-c6ff-902e-bce0-165c235bb643@redhat.com> MIME-Version: 1.0 Message-Id: <1627263259.nzhjhfeuv9.astroid@bobo.none> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: AAD67300D2F9 Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20161025 header.b="Ou/J2PKO"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf09.hostedemail.com: domain of npiggin@gmail.com designates 209.85.216.49 as permitted sender) smtp.mailfrom=npiggin@gmail.com X-Stat-Signature: pzp3a9o9w6xm9nhtchmx5mnz6zpkk5q5 X-HE-Tag: 1627263817-853363 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: Excerpts from David Hildenbrand's message of July 22, 2021 5:27 pm: > On 22.07.21 07:48, Nicholas Piggin wrote: >> Similarly to commit 2da9f6305f306 ("mm/vmscan: fix NR_ISOLATED_FILE >> corruption on 64-bit"), fix -ve int -> unsigned int -> long bug. >>=20 >> Reported-by: Alexey Kardashevskiy >> Fixes: c5fc5c3ae0c84 ("mm: migrate: account THP NUMA migration counters = correctly") >> Signed-off-by: Nicholas Piggin >> --- >> mm/migrate.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >>=20 >> diff --git a/mm/migrate.c b/mm/migrate.c >> index 34a9ad3e0a4f..7e240437e7d9 100644 >> --- a/mm/migrate.c >> +++ b/mm/migrate.c >> @@ -2068,7 +2068,7 @@ int migrate_misplaced_page(struct page *page, stru= ct vm_area_struct *vma, >> LIST_HEAD(migratepages); >> new_page_t *new; >> bool compound; >> - unsigned int nr_pages =3D thp_nr_pages(page); >> + int nr_pages =3D thp_nr_pages(page); >> =20 >> /* >> * PTE mapped THP or HugeTLB page can't reach here so the page could >>=20 >=20 > This is too fragile to silently break again IMHO. Should we similarly to=20 > 2da9f6305f306 handle the conversion explicitly inside the=20 > mod_node_page_state() call? Casting to signed still has the fragility that the variable is unsigned so negating it somewhere else would break. I was somewhat inconsistent=20 in the fixes, but there is less code that uses the variable here so it's simpler to change the type IMO. Negating an unsigned type always gives you a non-negative number.=20 Unfortunately types matter. Thanks, Nick