Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp3864896pxb; Wed, 13 Oct 2021 14:49:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzLCvIEOVyxYkUy9VzabU7KTH8kcp+OF0Jcx6haMqh/4lReLU6X+/vD3k89hAfku1af+3GM X-Received: by 2002:a17:907:7691:: with SMTP id jv17mr1971286ejc.378.1634161785011; Wed, 13 Oct 2021 14:49:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1634161785; cv=none; d=google.com; s=arc-20160816; b=mm3B3dKQr+ikC90dQwqOCY30ZOCLBt6BPVgWsXi9I16sl6iuxDLAx+/fECjjhEgqxL Kl0vhqUBrzfSiGTOY/wCkYA1AfDrGtKfLvKv3JGu2phdp/KJ/juyCLO41SyNG5slyfwe qPsRB5tFWw0NAKEAZ9aiMcPuAK7cf3+zEkx/Lz1nT0U5sth5Ca9hNT+2eIZ7MRj8zA1x qiai6KM+BwOaOYKv7t3kluhwBsynR49v7q5mvyR+aCMpzHR4XrdPtX6OJO+W6l9YCFjO MANxjYFt1UhIF0G+lbudFHAaPndM37YCAs26hEM8IOHPms9B92cBcWa1IoE+1DIyFzN/ Y0kA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=tk8GKkcOqsh8NbVVxDMP6EmYX30y4RorCwUqRpcQJZw=; b=s5f5X9C8lVSINBEoZ7jzP6TintQfLMi5r8FZmQwLASuBS+SdtOokl6Scz0bso5lE4Z zyE4eeLsM/MQfRflDD5OijHCD1VXWsYilpxtL2RVZ4+Sc8LePYEMjUGXivIXfrX+XDZi 4IDU6s5RJC+2PJahY2g5X+yRw8Zv0nRB8hSzxUnepmzQr/8zR/DzLWBtRX7qkjtU/7aV wgLQ8dIBUQ4o01ullEIP4AuHR7fZcVYKTA9qgBdgon6hEL1G+mxfWvx/cgPMhal6th1F Pp5+G75FRISNDVQdA+fHBv0ydpCI5EkGfwH4192eRh4Q1qZZzT4fPYIjVtlziHzhji59 rFoQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=jGNy5AfF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s5si1205710ejs.270.2021.10.13.14.49.07; Wed, 13 Oct 2021 14:49:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=jGNy5AfF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229711AbhJMVqn (ORCPT + 99 others); Wed, 13 Oct 2021 17:46:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38154 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229588AbhJMVqm (ORCPT ); Wed, 13 Oct 2021 17:46:42 -0400 Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com [IPv6:2a00:1450:4864:20::52f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BFE4EC061570 for ; Wed, 13 Oct 2021 14:44:38 -0700 (PDT) Received: by mail-ed1-x52f.google.com with SMTP id a25so15895226edx.8 for ; Wed, 13 Oct 2021 14:44:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=tk8GKkcOqsh8NbVVxDMP6EmYX30y4RorCwUqRpcQJZw=; b=jGNy5AfFzluinxS/yvYE78vK+Bygmcpe8TdHgSVyd0+EuwnNnGz0RYDW5HoYBP6Qo7 pQblATlsYSOMLbFHsr0WqaR9x3CuYlmRd1gR9nQeUOW0aRhp5Nv35Jn7yOqA6j0ISNrB z4XeghKVlwIqnBIztpqOgz1aEfYZHoGELYL5+FQyV1Fd5KYK1XjnqOQBgemmb5SlejEZ 0snlhhbgJGGXWaVn3eN1wDvmHyeEGiyqodIZpcVT3EXVkdm5OczwxpfJrRXV1NW7t/aN pQ0gl1BU+AKLFz4e9NU+Nvf6kx7vGgHkoj9WSXgh68cvmfbL/tP0164WHltLyAd5Jqdn xvBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=tk8GKkcOqsh8NbVVxDMP6EmYX30y4RorCwUqRpcQJZw=; b=Ke70lqGY/u34HidwxX/A2JJPKofY7UOw5W7DzMz5KVm0l0b0sJledJY5w4MO/rABAo TDZDtcCI+16vC6SF3hzCK7sWgxlB2pm0pHKI/pORjBJVymo122jDDmsU5QMDJ+Ur1NfQ O7rmAdX7jm0NKL5CsFc6DJ/0eOZ2j7MNb+7aZdXqJrA4kBYnF67n+2enNTk370joCyNS 92noxPVVcKQFrnB6yTWusXNtClMqbyD8RmvJ4u2Bb7N5xk3dwZIhwkS/D+FHv4d9hx+k EkY9SVMgJ3CNlo+pPEgKJsfWW07iFhmjOChyiBB3wCBxJzU0rBtLh/EmGT7LHm5Ur15Z 4LqQ== X-Gm-Message-State: AOAM531DucQX1sUBPVrJmBekidfn+eKcko0RwYc9lOnDugi82yiQnlkk 3WFf/kTZVq+vkv9Ns8GPCMzic579BSzkB14djjY= X-Received: by 2002:a17:906:3f83:: with SMTP id b3mr2091456ejj.233.1634161477394; Wed, 13 Oct 2021 14:44:37 -0700 (PDT) MIME-Version: 1.0 References: <20211012120237.2600-1-m.szyprowski@samsung.com> In-Reply-To: <20211012120237.2600-1-m.szyprowski@samsung.com> From: Yang Shi Date: Wed, 13 Oct 2021 14:44:25 -0700 Message-ID: Subject: Re: [PATCH] mm/thp: decrease nr_thps in file's mapping on THP split To: Marek Szyprowski Cc: Linux MM , Linux Kernel Mailing List , Andrew Morton , =?UTF-8?B?6rmA7ISx7ZuI?= , Song Liu , Rik van Riel , "Kirill A . Shutemov" , Johannes Weiner , Hillf Danton , Hugh Dickins , William Kucharski , Oleg Nesterov , Yang Shi Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Oct 12, 2021 at 5:03 AM Marek Szyprowski wrote: > > Decrease nr_thps counter in file's mapping to ensure that the page cache > won't be dropped excessively on file write access if page has been > already splitted. > > Signed-off-by: Marek Szyprowski > Fixes: 09d91cda0e82 ("mm,thp: avoid writes to file with THP in pagecache") > Fixes: 06d3eff62d9d ("mm/thp: fix node page state in split_huge_page_to_list()") Reviewed-by: Yang Shi > --- > I've analyzed the code a few times but either I missed something or the > nr_thps counter is not decremented during the THP split on non-shmem file > pages. > --- > mm/huge_memory.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index ec2bb93f7431..a6c2ba59abcd 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -2709,10 +2709,12 @@ int split_huge_page_to_list(struct page *page, struct list_head *list) > } > spin_unlock(&ds_queue->split_queue_lock); > if (mapping) { > - if (PageSwapBacked(head)) > + if (PageSwapBacked(head)) { > __dec_node_page_state(head, NR_SHMEM_THPS); > - else > + } else { > __dec_node_page_state(head, NR_FILE_THPS); > + filemap_nr_thps_dec(mapping); > + } > } > > __split_huge_page(page, list, end, flags); > -- > 2.17.1 > >