From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dmitry Osipenko Subject: Re: [PATCH 3/5] mm/mremap: use pmd_addr_end to calculate next in move_page_tables() Date: Wed, 29 Jan 2020 02:35:25 +0300 Message-ID: <27b70b0c-7945-cc85-8321-d9e4b6f17865@gmail.com> References: <20200117232254.2792-1-richardw.yang@linux.intel.com> <20200117232254.2792-4-richardw.yang@linux.intel.com> <7147774a-14e9-4ff3-1548-4565f0d214d5@gmail.com> <20200128004301.GD20624@richard> <20200128232907.GA11467@richard> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: In-Reply-To: <20200128232907.GA11467@richard> Content-Language: en-US Sender: linux-tegra-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Wei Yang Cc: Russell King - ARM Linux , akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org, dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, aneesh.kumar-tEXmvtCZX7AybS5Ee8rs3A@public.gmane.org, kirill-oKw7cIdHH8eLwutG50LtGA@public.gmane.org, yang.shi-KPsoFbNs7GizrGE5bRqYAgC/G2K4zDHf@public.gmane.org, thellstrom-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org, Thierry Reding , Jon Hunter , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, "linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org" List-Id: linux-tegra@vger.kernel.org 29.01.2020 02:29, Wei Yang пишет: > On Tue, Jan 28, 2020 at 06:59:48PM +0300, Dmitry Osipenko wrote: >> 28.01.2020 03:43, Wei Yang пишет: >>> On Sun, Jan 26, 2020 at 05:47:57PM +0300, Dmitry Osipenko wrote: >>>> 18.01.2020 02:22, Wei Yang пишет: >>>>> Use the general helper instead of do it by hand. >>>>> >>>>> Signed-off-by: Wei Yang >>>>> --- >>>>> mm/mremap.c | 7 ++----- >>>>> 1 file changed, 2 insertions(+), 5 deletions(-) >>>>> >>>>> diff --git a/mm/mremap.c b/mm/mremap.c >>>>> index c2af8ba4ba43..a258914f3ee1 100644 >>>>> --- a/mm/mremap.c >>>>> +++ b/mm/mremap.c >>>>> @@ -253,11 +253,8 @@ unsigned long move_page_tables(struct vm_area_struct *vma, >>>>> >>>>> for (; old_addr < old_end; old_addr += extent, new_addr += extent) { >>>>> cond_resched(); >>>>> - next = (old_addr + PMD_SIZE) & PMD_MASK; >>>>> - /* even if next overflowed, extent below will be ok */ >>>>> + next = pmd_addr_end(old_addr, old_end); >>>>> extent = next - old_addr; >>>>> - if (extent > old_end - old_addr) >>>>> - extent = old_end - old_addr; >>>>> old_pmd = get_old_pmd(vma->vm_mm, old_addr); >>>>> if (!old_pmd) >>>>> continue; >>>>> @@ -301,7 +298,7 @@ unsigned long move_page_tables(struct vm_area_struct *vma, >>>>> >>>>> if (pte_alloc(new_vma->vm_mm, new_pmd)) >>>>> break; >>>>> - next = (new_addr + PMD_SIZE) & PMD_MASK; >>>>> + next = pmd_addr_end(new_addr, new_addr + len); >>>>> if (extent > next - new_addr) >>>>> extent = next - new_addr; >>>>> move_ptes(vma, old_pmd, old_addr, old_addr + extent, new_vma, >>>>> >>>> >>>> Hello Wei, >>>> >>>> Starting with next-20200122, I'm seeing the following in KMSG on NVIDIA >>>> Tegra (ARM32): >>>> >>>> BUG: Bad rss-counter state mm:(ptrval) type:MM_ANONPAGES val:190 >>>> >>> >>> Thanks. >>> >>> Would you mind letting me know which case you are testing? >> >> Nothing special, systemd starts to fall apart during boot. >> >>> Or the special thing is 32-bit platform? >> I have a limited knowledge about mm/, so can't provide detailed explanation. >> >> Please take a look at this: >> >> [1] >> https://elixir.bootlin.com/linux/v5.5/source/arch/arm/include/asm/pgtable-2level.h#L210 >> >> [2] >> https://elixir.bootlin.com/linux/v5.5/source/include/asm-generic/pgtable.h#L549 >> >> [3] >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c0ba10b512eb2e2a3888b6e6cc0e089f5e7a191b > > Thanks, I see the difference here. > > If this is the case, we can't use pmd_addr_end() to simplify the calculation. > This changes the behavior. > > I would prepare another patch set to fix this. Would you mind helping me > verify on your platform? Sure, please feel free to CC me on that patch. 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=-10.5 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_DBL_ABUSE_MALW,USER_AGENT_SANE_1 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 D5B30C2D0DB for ; Tue, 28 Jan 2020 23:35:34 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9D3C3207FD for ; Tue, 28 Jan 2020 23:35:34 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="rKep0XC7"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="oyvyrcS7" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9D3C3207FD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date: Message-ID:From:References:To:Subject:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=t5VeOPTQ45ooNPBBJNFAfS1J/leEX+yS4CQoeJ3Kycc=; b=rKep0XC7V9A0dQ ZGkDeptgOUPDKWgWRCK//V9ZIsmMaSXUQRCne0fCcB+zP6s/0CYzoJonTcbuwnnGpH1E6uzG5LUey n7Lmvk8UflnrBh8vCMV/VoEpXExFnsMUjwltoN+EOz4a3G21SA4V1KZ0icEraPrbqnrJOyfmWzMBe UVRIrEEbiOg6C3IWoU4ID7yfg9GY8HO0/4M8eB8ilJtDE5I6AJu2sTP6p6hDaSr1Wpm7MJlJ07/nP B18IopmB4rBh/e6K40H1A3Ukx/U1B0EY4Kgc+NvI6NLvSJCzPwiiL49eTjT1XCBxin7XaP/pD9sSf 4tzHBX+M9YlEhdaFmH6w==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iwaOM-0007r2-63; Tue, 28 Jan 2020 23:35:34 +0000 Received: from mail-ed1-x541.google.com ([2a00:1450:4864:20::541]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iwaOI-0007qG-Kb for linux-arm-kernel@lists.infradead.org; Tue, 28 Jan 2020 23:35:32 +0000 Received: by mail-ed1-x541.google.com with SMTP id cy15so16650458edb.4 for ; Tue, 28 Jan 2020 15:35:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=WJl749Ktrk8S85EaE4Qv0/+OYozg0DKw8o/BXFCqayo=; b=oyvyrcS78HjtjQmDKpaDThrcuGlf0fqwFsD6HxqoHKnJnXNrd5nZxKTAdl0TWE4C83 lLrT/yI77BFyeOtgdQFsd48Lz3EXps+S/go9uw4hxW23rN5GIgMS3PrbJcQenAgf3QM9 YRe1kVeFummLhrJ4QvWeNmER02/HW8u8dpDKhMdUVXPz6GKMfrbF/cvFihtgdhmaWAgL Uh6QgLriwPVdVFzKSmdrZenu2wuUlaWnbh95FBAkRIzNJw9Rtan1/YS/hZKhaY58yN/S u2vTMhK5OiVetJkcQk+b6W9hXcIxwbB0j/CcUX2NpKG0SngxBMe/JM5NNOy9d8qw88h6 16qQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=WJl749Ktrk8S85EaE4Qv0/+OYozg0DKw8o/BXFCqayo=; b=kVeCMTxyz8171Odeu8mL1haK6mDAuB7f/iJmcbRd6QAdITNLyeBzwCH1uUq07yslzA gXzYHIjy2keWuB7CPGeyPf9XM4FV1rMfGMvweW84kgIt+e753n0m4KnLwlq8uMmICsd5 xkv8spzfAXmlqAsrhK/1qjYa5CvOjbHzCmH60X5jxqU4rjsokAwHdBdcC4nJOE5TL9AF gdqb5s8zGTTLlOFtiwvMCo+4rf1HVjR3rw9Ra+drZ/yTPz6AXjcbHbluzgVnUdGoBfnN jX36pDJyb89L1tI10GF2PCuPymfjtEZQpX8oJPCgmtU6lnzGu38wbLKy/k13WfbhmXeZ qR2Q== X-Gm-Message-State: APjAAAUwuPcI9cARBtmkglWQab2KcHiXTZb3Geq4NYTg/HGPwQDjYph4 D6b3ouyBK1pff/MuTn9HFA3wa7kN X-Google-Smtp-Source: APXvYqyzJ/A9McA/lzlD3WUmlibA7APyGQQRW4NKrVlKhvSpYUSsflSjZ2Ao/0KluhOT9LfQBbRazg== X-Received: by 2002:a50:d849:: with SMTP id v9mr5816511edj.105.1580254528357; Tue, 28 Jan 2020 15:35:28 -0800 (PST) Received: from [192.168.2.145] (79-139-233-37.dynamic.spd-mgts.ru. [79.139.233.37]) by smtp.googlemail.com with ESMTPSA id v8sm198edw.21.2020.01.28.15.35.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jan 2020 15:35:27 -0800 (PST) Subject: Re: [PATCH 3/5] mm/mremap: use pmd_addr_end to calculate next in move_page_tables() To: Wei Yang References: <20200117232254.2792-1-richardw.yang@linux.intel.com> <20200117232254.2792-4-richardw.yang@linux.intel.com> <7147774a-14e9-4ff3-1548-4565f0d214d5@gmail.com> <20200128004301.GD20624@richard> <20200128232907.GA11467@richard> From: Dmitry Osipenko Message-ID: <27b70b0c-7945-cc85-8321-d9e4b6f17865@gmail.com> Date: Wed, 29 Jan 2020 02:35:25 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.3.0 MIME-Version: 1.0 In-Reply-To: <20200128232907.GA11467@richard> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200128_153530_699292_7ABD119A X-CRM114-Status: GOOD ( 19.40 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: thellstrom@vmware.com, yang.shi@linux.alibaba.com, aneesh.kumar@linux.ibm.com, Russell King - ARM Linux , Jon Hunter , linux-mm@kvack.org, Thierry Reding , "linux-arm-kernel@lists.infradead.org" , "linux-tegra@vger.kernel.org" , kirill@shutemov.name, akpm@linux-foundation.org, dan.j.williams@intel.com, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org MjkuMDEuMjAyMCAwMjoyOSwgV2VpIFlhbmcg0L/QuNGI0LXRgjoKPiBPbiBUdWUsIEphbiAyOCwg MjAyMCBhdCAwNjo1OTo0OFBNICswMzAwLCBEbWl0cnkgT3NpcGVua28gd3JvdGU6Cj4+IDI4LjAx LjIwMjAgMDM6NDMsIFdlaSBZYW5nINC/0LjRiNC10YI6Cj4+PiBPbiBTdW4sIEphbiAyNiwgMjAy MCBhdCAwNTo0Nzo1N1BNICswMzAwLCBEbWl0cnkgT3NpcGVua28gd3JvdGU6Cj4+Pj4gMTguMDEu MjAyMCAwMjoyMiwgV2VpIFlhbmcg0L/QuNGI0LXRgjoKPj4+Pj4gVXNlIHRoZSBnZW5lcmFsIGhl bHBlciBpbnN0ZWFkIG9mIGRvIGl0IGJ5IGhhbmQuCj4+Pj4+Cj4+Pj4+IFNpZ25lZC1vZmYtYnk6 IFdlaSBZYW5nIDxyaWNoYXJkdy55YW5nQGxpbnV4LmludGVsLmNvbT4KPj4+Pj4gLS0tCj4+Pj4+ ICBtbS9tcmVtYXAuYyB8IDcgKystLS0tLQo+Pj4+PiAgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPj4+Pj4KPj4+Pj4gZGlmZiAtLWdpdCBhL21tL21yZW1h cC5jIGIvbW0vbXJlbWFwLmMKPj4+Pj4gaW5kZXggYzJhZjhiYTRiYTQzLi5hMjU4OTE0ZjNlZTEg MTAwNjQ0Cj4+Pj4+IC0tLSBhL21tL21yZW1hcC5jCj4+Pj4+ICsrKyBiL21tL21yZW1hcC5jCj4+ Pj4+IEBAIC0yNTMsMTEgKzI1Myw4IEBAIHVuc2lnbmVkIGxvbmcgbW92ZV9wYWdlX3RhYmxlcyhz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKPj4+Pj4gIAo+Pj4+PiAgCWZvciAoOyBvbGRfYWRk ciA8IG9sZF9lbmQ7IG9sZF9hZGRyICs9IGV4dGVudCwgbmV3X2FkZHIgKz0gZXh0ZW50KSB7Cj4+ Pj4+ICAJCWNvbmRfcmVzY2hlZCgpOwo+Pj4+PiAtCQluZXh0ID0gKG9sZF9hZGRyICsgUE1EX1NJ WkUpICYgUE1EX01BU0s7Cj4+Pj4+IC0JCS8qIGV2ZW4gaWYgbmV4dCBvdmVyZmxvd2VkLCBleHRl bnQgYmVsb3cgd2lsbCBiZSBvayAqLwo+Pj4+PiArCQluZXh0ID0gcG1kX2FkZHJfZW5kKG9sZF9h ZGRyLCBvbGRfZW5kKTsKPj4+Pj4gIAkJZXh0ZW50ID0gbmV4dCAtIG9sZF9hZGRyOwo+Pj4+PiAt CQlpZiAoZXh0ZW50ID4gb2xkX2VuZCAtIG9sZF9hZGRyKQo+Pj4+PiAtCQkJZXh0ZW50ID0gb2xk X2VuZCAtIG9sZF9hZGRyOwo+Pj4+PiAgCQlvbGRfcG1kID0gZ2V0X29sZF9wbWQodm1hLT52bV9t bSwgb2xkX2FkZHIpOwo+Pj4+PiAgCQlpZiAoIW9sZF9wbWQpCj4+Pj4+ICAJCQljb250aW51ZTsK Pj4+Pj4gQEAgLTMwMSw3ICsyOTgsNyBAQCB1bnNpZ25lZCBsb25nIG1vdmVfcGFnZV90YWJsZXMo c3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCj4+Pj4+ICAKPj4+Pj4gIAkJaWYgKHB0ZV9hbGxv YyhuZXdfdm1hLT52bV9tbSwgbmV3X3BtZCkpCj4+Pj4+ICAJCQlicmVhazsKPj4+Pj4gLQkJbmV4 dCA9IChuZXdfYWRkciArIFBNRF9TSVpFKSAmIFBNRF9NQVNLOwo+Pj4+PiArCQluZXh0ID0gcG1k X2FkZHJfZW5kKG5ld19hZGRyLCBuZXdfYWRkciArIGxlbik7Cj4+Pj4+ICAJCWlmIChleHRlbnQg PiBuZXh0IC0gbmV3X2FkZHIpCj4+Pj4+ICAJCQlleHRlbnQgPSBuZXh0IC0gbmV3X2FkZHI7Cj4+ Pj4+ICAJCW1vdmVfcHRlcyh2bWEsIG9sZF9wbWQsIG9sZF9hZGRyLCBvbGRfYWRkciArIGV4dGVu dCwgbmV3X3ZtYSwKPj4+Pj4KPj4+Pgo+Pj4+IEhlbGxvIFdlaSwKPj4+Pgo+Pj4+IFN0YXJ0aW5n IHdpdGggbmV4dC0yMDIwMDEyMiwgSSdtIHNlZWluZyB0aGUgZm9sbG93aW5nIGluIEtNU0cgb24g TlZJRElBCj4+Pj4gVGVncmEgKEFSTTMyKToKPj4+Pgo+Pj4+ICBCVUc6IEJhZCByc3MtY291bnRl ciBzdGF0ZSBtbToocHRydmFsKSB0eXBlOk1NX0FOT05QQUdFUyB2YWw6MTkwCj4+Pj4KPj4+Cj4+ PiBUaGFua3MuCj4+Pgo+Pj4gV291bGQgeW91IG1pbmQgbGV0dGluZyBtZSBrbm93IHdoaWNoIGNh c2UgeW91IGFyZSB0ZXN0aW5nPwo+Pgo+PiBOb3RoaW5nIHNwZWNpYWwsIHN5c3RlbWQgc3RhcnRz IHRvIGZhbGwgYXBhcnQgZHVyaW5nIGJvb3QuCj4+Cj4+PiBPciB0aGUgc3BlY2lhbCB0aGluZyBp cyAzMi1iaXQgcGxhdGZvcm0/Cj4+IEkgaGF2ZSBhIGxpbWl0ZWQga25vd2xlZGdlIGFib3V0IG1t Lywgc28gY2FuJ3QgcHJvdmlkZSBkZXRhaWxlZCBleHBsYW5hdGlvbi4KPj4KPj4gUGxlYXNlIHRh a2UgYSBsb29rIGF0IHRoaXM6Cj4+Cj4+IFsxXQo+PiBodHRwczovL2VsaXhpci5ib290bGluLmNv bS9saW51eC92NS41L3NvdXJjZS9hcmNoL2FybS9pbmNsdWRlL2FzbS9wZ3RhYmxlLTJsZXZlbC5o I0wyMTAKPj4KPj4gWzJdCj4+IGh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2xpbnV4L3Y1LjUv c291cmNlL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS5oI0w1NDkKPj4KPj4gWzNdCj4+IGh0 dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRzL2xp bnV4LmdpdC9jb21taXQvP2lkPWMwYmExMGI1MTJlYjJlMmEzODg4YjZlNmNjMGUwODlmNWU3YTE5 MWIKPiAKPiBUaGFua3MsIEkgc2VlIHRoZSBkaWZmZXJlbmNlIGhlcmUuCj4gCj4gSWYgdGhpcyBp cyB0aGUgY2FzZSwgd2UgY2FuJ3QgdXNlIHBtZF9hZGRyX2VuZCgpIHRvIHNpbXBsaWZ5IHRoZSBj YWxjdWxhdGlvbi4KPiBUaGlzIGNoYW5nZXMgdGhlIGJlaGF2aW9yLgo+IAo+IEkgd291bGQgcHJl cGFyZSBhbm90aGVyIHBhdGNoIHNldCB0byBmaXggdGhpcy4gV291bGQgeW91IG1pbmQgaGVscGlu ZyBtZQo+IHZlcmlmeSBvbiB5b3VyIHBsYXRmb3JtPwoKU3VyZSwgcGxlYXNlIGZlZWwgZnJlZSB0 byBDQyBtZSBvbiB0aGF0IHBhdGNoLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtl cm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxt YW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= 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.8 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 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 894C3C2D0DB for ; Tue, 28 Jan 2020 23:35:31 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 3BABC207FD for ; Tue, 28 Jan 2020 23:35:31 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="oyvyrcS7" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3BABC207FD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id D81BB6B0003; Tue, 28 Jan 2020 18:35:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D32026B0005; Tue, 28 Jan 2020 18:35:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C497B6B0006; Tue, 28 Jan 2020 18:35:30 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0025.hostedemail.com [216.40.44.25]) by kanga.kvack.org (Postfix) with ESMTP id AF9ED6B0003 for ; Tue, 28 Jan 2020 18:35:30 -0500 (EST) Received: from smtpin12.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 611D3181AC9CC for ; Tue, 28 Jan 2020 23:35:30 +0000 (UTC) X-FDA: 76428652020.12.ring05_4d1952d74ce1b X-HE-Tag: ring05_4d1952d74ce1b X-Filterd-Recvd-Size: 6605 Received: from mail-ed1-f68.google.com (mail-ed1-f68.google.com [209.85.208.68]) by imf12.hostedemail.com (Postfix) with ESMTP for ; Tue, 28 Jan 2020 23:35:29 +0000 (UTC) Received: by mail-ed1-f68.google.com with SMTP id r18so16646274edl.1 for ; Tue, 28 Jan 2020 15:35:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=WJl749Ktrk8S85EaE4Qv0/+OYozg0DKw8o/BXFCqayo=; b=oyvyrcS78HjtjQmDKpaDThrcuGlf0fqwFsD6HxqoHKnJnXNrd5nZxKTAdl0TWE4C83 lLrT/yI77BFyeOtgdQFsd48Lz3EXps+S/go9uw4hxW23rN5GIgMS3PrbJcQenAgf3QM9 YRe1kVeFummLhrJ4QvWeNmER02/HW8u8dpDKhMdUVXPz6GKMfrbF/cvFihtgdhmaWAgL Uh6QgLriwPVdVFzKSmdrZenu2wuUlaWnbh95FBAkRIzNJw9Rtan1/YS/hZKhaY58yN/S u2vTMhK5OiVetJkcQk+b6W9hXcIxwbB0j/CcUX2NpKG0SngxBMe/JM5NNOy9d8qw88h6 16qQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=WJl749Ktrk8S85EaE4Qv0/+OYozg0DKw8o/BXFCqayo=; b=sfj/56jcr0k530EIG8blGBunNQ6/phT9r9BUygLBCNaUvt6OdeqZ3A5mhnkvnslprh 76VKTexeypRCda8e2P88VKfC8BeNFWqZU06zjq2LymOcwjXZ+zlgrP56hoGAJLaKTd1W 59VrHnEjf7TUGMpDwWJ+U4tL/lGp71HwbDC9FRQHOf+D5iGdu6hmcLIk+mR7XYXNo7xx OCH/e6q8ZbhdwaHjBS/zuBFdDG8MWe4w/jMH3LYPwLZlp+1ygSUSyxCcdLeQe06+mHTl Oquk6YMbXC1MqnUenIeyZyghjZtv0BGOfXhtC7dUcVW+t1ZlrHds59lR+0BUP6aVGNRm 7i8Q== X-Gm-Message-State: APjAAAUnqmAgDDfs29DZ/c62WfsAlb0j8s0eCXN+ck3oUDMck/hy/iDG sFF0DoWngx0nYMY47YIEOsM= X-Google-Smtp-Source: APXvYqyzJ/A9McA/lzlD3WUmlibA7APyGQQRW4NKrVlKhvSpYUSsflSjZ2Ao/0KluhOT9LfQBbRazg== X-Received: by 2002:a50:d849:: with SMTP id v9mr5816511edj.105.1580254528357; Tue, 28 Jan 2020 15:35:28 -0800 (PST) Received: from [192.168.2.145] (79-139-233-37.dynamic.spd-mgts.ru. [79.139.233.37]) by smtp.googlemail.com with ESMTPSA id v8sm198edw.21.2020.01.28.15.35.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jan 2020 15:35:27 -0800 (PST) Subject: Re: [PATCH 3/5] mm/mremap: use pmd_addr_end to calculate next in move_page_tables() To: Wei Yang Cc: Russell King - ARM Linux , akpm@linux-foundation.org, dan.j.williams@intel.com, aneesh.kumar@linux.ibm.com, kirill@shutemov.name, yang.shi@linux.alibaba.com, thellstrom@vmware.com, Thierry Reding , Jon Hunter , linux-kernel@vger.kernel.org, linux-mm@kvack.org, "linux-tegra@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" References: <20200117232254.2792-1-richardw.yang@linux.intel.com> <20200117232254.2792-4-richardw.yang@linux.intel.com> <7147774a-14e9-4ff3-1548-4565f0d214d5@gmail.com> <20200128004301.GD20624@richard> <20200128232907.GA11467@richard> From: Dmitry Osipenko Message-ID: <27b70b0c-7945-cc85-8321-d9e4b6f17865@gmail.com> Date: Wed, 29 Jan 2020 02:35:25 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.3.0 MIME-Version: 1.0 In-Reply-To: <20200128232907.GA11467@richard> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable 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: 29.01.2020 02:29, Wei Yang =D0=BF=D0=B8=D1=88=D0=B5=D1=82: > On Tue, Jan 28, 2020 at 06:59:48PM +0300, Dmitry Osipenko wrote: >> 28.01.2020 03:43, Wei Yang =D0=BF=D0=B8=D1=88=D0=B5=D1=82: >>> On Sun, Jan 26, 2020 at 05:47:57PM +0300, Dmitry Osipenko wrote: >>>> 18.01.2020 02:22, Wei Yang =D0=BF=D0=B8=D1=88=D0=B5=D1=82: >>>>> Use the general helper instead of do it by hand. >>>>> >>>>> Signed-off-by: Wei Yang >>>>> --- >>>>> mm/mremap.c | 7 ++----- >>>>> 1 file changed, 2 insertions(+), 5 deletions(-) >>>>> >>>>> diff --git a/mm/mremap.c b/mm/mremap.c >>>>> index c2af8ba4ba43..a258914f3ee1 100644 >>>>> --- a/mm/mremap.c >>>>> +++ b/mm/mremap.c >>>>> @@ -253,11 +253,8 @@ unsigned long move_page_tables(struct vm_area_= struct *vma, >>>>> =20 >>>>> for (; old_addr < old_end; old_addr +=3D extent, new_addr +=3D ex= tent) { >>>>> cond_resched(); >>>>> - next =3D (old_addr + PMD_SIZE) & PMD_MASK; >>>>> - /* even if next overflowed, extent below will be ok */ >>>>> + next =3D pmd_addr_end(old_addr, old_end); >>>>> extent =3D next - old_addr; >>>>> - if (extent > old_end - old_addr) >>>>> - extent =3D old_end - old_addr; >>>>> old_pmd =3D get_old_pmd(vma->vm_mm, old_addr); >>>>> if (!old_pmd) >>>>> continue; >>>>> @@ -301,7 +298,7 @@ unsigned long move_page_tables(struct vm_area_s= truct *vma, >>>>> =20 >>>>> if (pte_alloc(new_vma->vm_mm, new_pmd)) >>>>> break; >>>>> - next =3D (new_addr + PMD_SIZE) & PMD_MASK; >>>>> + next =3D pmd_addr_end(new_addr, new_addr + len); >>>>> if (extent > next - new_addr) >>>>> extent =3D next - new_addr; >>>>> move_ptes(vma, old_pmd, old_addr, old_addr + extent, new_vma, >>>>> >>>> >>>> Hello Wei, >>>> >>>> Starting with next-20200122, I'm seeing the following in KMSG on NVI= DIA >>>> Tegra (ARM32): >>>> >>>> BUG: Bad rss-counter state mm:(ptrval) type:MM_ANONPAGES val:190 >>>> >>> >>> Thanks. >>> >>> Would you mind letting me know which case you are testing? >> >> Nothing special, systemd starts to fall apart during boot. >> >>> Or the special thing is 32-bit platform? >> I have a limited knowledge about mm/, so can't provide detailed explan= ation. >> >> Please take a look at this: >> >> [1] >> https://elixir.bootlin.com/linux/v5.5/source/arch/arm/include/asm/pgta= ble-2level.h#L210 >> >> [2] >> https://elixir.bootlin.com/linux/v5.5/source/include/asm-generic/pgtab= le.h#L549 >> >> [3] >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/com= mit/?id=3Dc0ba10b512eb2e2a3888b6e6cc0e089f5e7a191b >=20 > Thanks, I see the difference here. >=20 > If this is the case, we can't use pmd_addr_end() to simplify the calcul= ation. > This changes the behavior. >=20 > I would prepare another patch set to fix this. Would you mind helping m= e > verify on your platform? Sure, please feel free to CC me on that patch.