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 27528C2D0CD for ; Mon, 19 May 2025 07:08:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BEF276B0085; Mon, 19 May 2025 03:08:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B77826B0088; Mon, 19 May 2025 03:08:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9F3416B0089; Mon, 19 May 2025 03:08:14 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 77F646B0085 for ; Mon, 19 May 2025 03:08:14 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id F27AB1A1491 for ; Mon, 19 May 2025 07:08:14 +0000 (UTC) X-FDA: 83458778508.01.0B831C8 Received: from mail-pj1-f44.google.com (mail-pj1-f44.google.com [209.85.216.44]) by imf11.hostedemail.com (Postfix) with ESMTP id 233E540002 for ; Mon, 19 May 2025 07:08:12 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=BfZ9jUj9; spf=pass (imf11.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.216.44 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747638493; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=8sWesAb8GctBh29etQ8vM8G+6YOZQngZ5ZA5hsC5Ces=; b=Knd6uAakDZPXuhHAMKlBUGtczty5CQagkN5HgwIJpmS2iaKKlwLE3FOy5jMOFLklS+4EyO kmr+5pFfCw4tFYQkv0N2zZR/mrPocqTR0i4z1IFiax+yqcBXFhkQrnTNC1JFc4Ms7AoiyH FaJvavlPk9gatPxEUn+7wQH+ue21xWw= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=BfZ9jUj9; spf=pass (imf11.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.216.44 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747638493; a=rsa-sha256; cv=none; b=PwTRYmI2Ytft8G6iFW/pR060qTnTjWOQvUnztnagNZRZJ3NscD5VJStN03d91ct/2eM1RC fkPe8VN2esmgvu1ijSomaUHeXTIMkQZpDAgxPsez66By8RiU80t7tClaWG9cBjJMiPOLwv I7zT6+XspmwFHsiFYyyAQ76pMeMiky0= Received: by mail-pj1-f44.google.com with SMTP id 98e67ed59e1d1-30e8daea8c6so2014108a91.0 for ; Mon, 19 May 2025 00:08:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747638492; x=1748243292; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=8sWesAb8GctBh29etQ8vM8G+6YOZQngZ5ZA5hsC5Ces=; b=BfZ9jUj9Ttd5tL9A2AiBHV1N07jOwD5Wgt3RNV32g7Ed9DzPcM3Wfjm6n5wHkrDRL1 Eww7gPEHk8UoHhGR95cJIWGGcXQl+LGut4FJdmo++iDHqR1GXHz+5SIMXbm554p0g5nA vvW6k8whNuSOdXnMwXDJhaM6vCW070gqS6oUmFAMPizuH9iLzO6/PggMqedU0TTb7oLH 5tcCkN8DMUVx3fIBm4TW+K1Z11PfMALYWPaURYVE7xvba+beYwuhOT1lpEc4UaGFvifn Dy22ScXcB2h+dDMdIBuM2WhDWc/jOwyjFogIb38/IHshqIvrzokK5xYRbHpnDg6YF4Ja u+Ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747638492; x=1748243292; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8sWesAb8GctBh29etQ8vM8G+6YOZQngZ5ZA5hsC5Ces=; b=IjCkq7HDIcx43iNasiIxfXzbI/6XW4xVwgjK9ay+ktzHO602fpNu4ddbGkQdF7EwjE k5niyPyTzyCH0+73hGAV+P0pGOoM7nizbSmgGiaNlFgBzPf32JEi222ALeltiv2Sx5yC u4rtJNdOWD/JqSI1GNqrEaTVcFNVzHFu6/bPtNJMwwwA4Ba9rFn7nTJHep6KYAWQ0hYI ReNObEsRhIHSPtUTWsgdpRIS65XNB/TcKIUdVQ8uz1RWCGWe6Hk8ZpTxiSI2NCAILBKt R9XFv+rAbnTWdKve70WHzzdD1yGDDwDpKLukan0SKOL482wfPXE+3/HGfhUiryAyro5V Z7XQ== X-Forwarded-Encrypted: i=1; AJvYcCWpGqQSWdMH7+3Rztim52095vDMAIRWwbgy5sVwNSNiCqCDE5u7Equ4aca1SZ1nihWSaiL4WlXrbA==@kvack.org X-Gm-Message-State: AOJu0Yw/vSvS0jqDLoZLjRS3Vk39uW4WXoks0u30A3H2xpF2AzhjtJoV jPm1WnjZpMfDc3IPcEL7uls18Q5ijKLlUfulYu4TgER5xs3vdbtWH2va X-Gm-Gg: ASbGncv51Dw8Xj8+WzVIMMEo1eUu6mhdp7LLsVV4Paz0nBtd5zwEy6SnOz1e8SCUPc5 hn8xC8lwNDt07I36iCL6XYEx6hoGjZjaRewuiSvSE7d0MnpW60/oLM5ioCQY46iGkj/Br7AbvMQ ApCjMR8LvwXguCOej8iEySpGrmUnlne1nTiJr8dUiTX83dV8n9k4chk+dN4MAHQCEV7J0wKs9UB aVQRWSBBXUD8XrTMdJoGpjIUGPNtQXqunOluooQn6xAjwVsu07cNTkHkPJtTLdO3xg+i7JxEySx htXsFWUVinMj23gDgT1BwbkemPOx2pWLujOKQwnfZKxTWciWttxjV3dYCEH1JPH1zAIACA== X-Google-Smtp-Source: AGHT+IGqbYDQNVakoHdggMT98Fn1F+E21285CGJezIFSeBUKgUkfyMh775fMoUPoeCPtwgYke5SWjQ== X-Received: by 2002:a17:90b:574c:b0:2f1:2fa5:1924 with SMTP id 98e67ed59e1d1-30e7d5b6f64mr16025077a91.26.1747638491891; Mon, 19 May 2025 00:08:11 -0700 (PDT) Received: from Barrys-MBP.hub ([118.92.138.162]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-30e7b2dc8ebsm6009284a91.43.2025.05.19.00.08.04 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 19 May 2025 00:08:11 -0700 (PDT) From: Barry Song <21cnbao@gmail.com> To: ryncsn@gmail.com Cc: akpm@linux-foundation.org, baohua@kernel.org, baolin.wang@linux.alibaba.com, bhe@redhat.com, chrisl@kernel.org, david@redhat.com, hannes@cmpxchg.org, hughd@google.com, kaleshsingh@google.com, kasong@tencent.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, nphamcs@gmail.com, ryan.roberts@arm.com, shikemeng@huaweicloud.com, tim.c.chen@linux.intel.com, willy@infradead.org, ying.huang@linux.alibaba.com, yosryahmed@google.com Subject: Re: [PATCH 11/28] mm, swap: clean up and consolidate helper for mTHP swapin check Date: Mon, 19 May 2025 19:08:01 +1200 Message-Id: <20250519070801.2588-1-21cnbao@gmail.com> X-Mailer: git-send-email 2.39.3 (Apple Git-146) In-Reply-To: <20250514201729.48420-12-ryncsn@gmail.com> References: <20250514201729.48420-12-ryncsn@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: 233E540002 X-Rspamd-Server: rspam09 X-Stat-Signature: fhxndn9pokrqk8cq3h7pc9x8sh571coh X-HE-Tag: 1747638492-380423 X-HE-Meta: U2FsdGVkX18fcO/QyTh/5+R2O9fxLBW2VqNn9zL2kWSoPbxtFdP5oGeMBWJObRrfJSYcsTeVc+YHaXBvi71m+gd0T3mr8XjP7bxaIZAbyjEl8aYhTb/LCHT9KiP/Yjdtj/HZ5cZvTh+XMQYHMOlRq8EvzRN36TZseagyG4v67GG6Fd4vr1fsgGfsnbHX3pWCl7GM3EUraQjyVeBRwab0fhYh5289Yy8nUffhYZ/T5Uzw6/jPrhMgmXHxSTXNjbvcEW0f9zSo60UafsubY/hNLowPXQZDDiu2Gi/Wh8thVJE0KRPArSBCcDnPSBQriWKIi6fSvRCad7D0mcxf89PD06UK23yAyD/1EhIWWqv4R4xd92wKaIZOXqCYNRNQORzZNx7bPBUmh8R92JJsNpvyBbrKZ+6W6fOZsW6pgxPOgjcfPreNvSyFsIyP/4rlzJhnM7yTlmuZVBKupOii16+A7848eMpGhWafZyvlqXMC1FRSV9HbZKy4VuCydOFrM+26AOQkVuCNg44z4T4smz4Guyr+P2gYqeA7TfZoMBdTc8QRkVtm+m2+y3DmDWlATEv/3s6CZTvK8lEdhIh2A4hHPVeO5+ZVyXUIxgBD3zGS2Zxd6FwiA/ZfZTWXXI0Kioz0TWaooff0VnL0bn1PEOxmDSwGPpeWBkGF7p2GeGAhXYFrqzrHVpc53xH+Cd1CFu45uUmy20WDdYsh0rIP3+4H65NQjYzhoSTEMw5ikWqJmul6v1oXIjWH2KANc+GnmCfNLFnF4Uo2A9CKAejrz1Glg+DWn6fsExl+pnDmyMYSfF83DypbEUAiPNAzCoy3LORI0T+vYdB6Nd0XhoJBp3ABYDkRRwkelXAZCD8mUBptdmzrxQhqSX1LvFMozEtVc61vdnfdC20xPH+JwZwEHCAY1WbegPBBplhK4uvwASrJJC0jLhi0DDW3rJsLwppxLKUvbEg/zkLDJI0/AXX704l Vq7yJIBf h5j9EawyfZkGLJ8BELtinQW44ZkVnAbnCNh9X89+08hsIAtKt3J4CNIjtvo8nY23r5PFtq+ML+E1l2+gDrQ1lpwjUl1w+U1eZnkfl/Hpnxbhp6/RNGmx8kPzCM2FUnUeauJbt8Po4ZSscJTmVZ8bOI/C50TwLuNEtspGXQEzAyIHvR4CzujQ1bIMJZzJjka1ZZ+kr0zwrw04PVgtoBL7UJtMdrRWzPdx593iNYem35Rul25BpYlLs5AGRyF8m1GweGbnLNq5U88kSf2nju2a722H7x9qpU5yl05r9nEvLT0KT38F82b+efI6uhv2JY8oShIY50kAzrd3M5cTLHXBzEu5CMPpcADiGlClwD+gWDnDhuwg34YVMidRv0g== 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: List-Subscribe: List-Unsubscribe: > From: Kairui Song > -static bool can_swapin_thp(struct vm_fault *vmf, pte_t *ptep, int nr_pages) > +static bool can_swapin_thp(struct vm_fault *vmf, pte_t *ptep, > + unsigned long addr, unsigned int nr_pages) > + if (unlikely(addr < max(addr & PMD_MASK, vmf->vma->vm_start) || > + addr_end > pmd_addr_end(addr, vmf->vma->vm_end))) > @@ -4731,27 +4732,18 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) > page_idx = 0; > address = vmf->address; > ptep = vmf->pte; > + > if (folio_test_large(folio) && folio_test_swapcache(folio)) { > - int nr = folio_nr_pages(folio); > + unsigned long nr = folio_nr_pages(folio); > unsigned long idx = folio_page_idx(folio, page); > - unsigned long folio_start = address - idx * PAGE_SIZE; > - unsigned long folio_end = folio_start + nr * PAGE_SIZE; > - pte_t *folio_ptep; > - pte_t folio_pte; > + unsigned long folio_address = address - idx * PAGE_SIZE; > + pte_t *folio_ptep = vmf->pte - idx; > > - if (unlikely(folio_start < max(address & PMD_MASK, vma->vm_start))) > - goto check_folio; We are handling a corner case a large folio is remapped to an unaligned address. For example, A 64KiB mTHP at address: XGB + 2MB +4KB, Its start address will be XGB + 2MB - 60KB which is another PMD. The previous code will return false; now your can_swapin_thp() will return true as you are using XGB + 2MB - 60KB as the argument "addr" in can_swapin_thp(). > - if (unlikely(folio_end > pmd_addr_end(address, vma->vm_end))) > - goto check_folio; > - > - folio_ptep = vmf->pte - idx; > - folio_pte = ptep_get(folio_ptep); > - if (!pte_same(folio_pte, pte_move_swp_offset(vmf->orig_pte, -idx)) || > - swap_pte_batch(folio_ptep, nr, folio_pte) != nr) > + if (!can_swapin_thp(vmf, folio_ptep, folio_address, nr)) Thanks Barry