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=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 autolearn=unavailable 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 B1746C43214 for ; Fri, 30 Jul 2021 23:41:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8C8E4604D7 for ; Fri, 30 Jul 2021 23:41:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234188AbhG3XlO (ORCPT ); Fri, 30 Jul 2021 19:41:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39828 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231209AbhG3XlM (ORCPT ); Fri, 30 Jul 2021 19:41:12 -0400 Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com [IPv6:2a00:1450:4864:20::529]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 78C01C06175F; Fri, 30 Jul 2021 16:41:07 -0700 (PDT) Received: by mail-ed1-x529.google.com with SMTP id b7so15443986edu.3; Fri, 30 Jul 2021 16:41:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=jSLUnuuq5fV++9tMx9L7dLU+YzP6IguTmZ4Xmh+94Bg=; b=nJKDksbiCLIFAtUQDafEvw8Tzb1I9e/ExJonodW9mAQVo7IJwENFLNXkXhOxQeKsnF poz0zfkeaJomNjwwRAtTVImPZ92rp8E3H3CqyHF5VgrqRpilrelaFtxpKdggbwdknlCr +frMG9q5tu10/1KIxHyes8BTAmU+QlEfUuJ7sO5JvAx8phaVDZzW5wzyVupRCAacJXNr 8tyaFCL2nt6rxITYE0xsb5sZ+Hy2cz09YeQZxlkcM0wHwtYgFgMRZMbJKLv2Z6DzZe5m cDi/yh4U3O7fgoOk1CIomGbWhRk9XwpRqGI0XGnw7VcJq6oDOZAdFx31F6W6U9IWMDge aGRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=jSLUnuuq5fV++9tMx9L7dLU+YzP6IguTmZ4Xmh+94Bg=; b=s+uiL59t5wzD51UH+syFsE0X75ihfncp2mVPIPLknL/CgeTqYWuAfG6QqT7iVUhgMR 5SMsHEoxFRkalz5GNAWqJBulPS82iNQ3GhcrQHGdJTE6xTpA6WkU7hSwpJJ/LelM8gp6 WtPAvR0/uhW579GWQW6+zLC8YrudWJCylYQhaInfhRA2UsgufLqZMW3Sa2gwQGsOSJn6 05zV2cYPhwhJsXN5vz3jmAESpmrhnHXtdv0zYreiVbqZbC0zoHJMuCtdLVAXPSUiag0D APkfyzAsZhwEQQIRELUSZAxFxb1O2OITtBwpF4aiVgg90ImxwcKEs6swSvqcR8B/YeGJ xmfw== X-Gm-Message-State: AOAM530EbjgnbcuqB8z7J+XZ6uZXSnGu8MytyhLP1U3zASWmPG3qqMRO bUcCnYFDu+U91ZzC/TSqf0fv1yil5yxmqiGhSMA= X-Google-Smtp-Source: ABdhPJxfYN/q50PwtEt3EJiGj5Xb4PpKv5m7TrjWQ6Yme3cRMXL+6f6psAPwR3C5mFjRRECnBjMITxj+5Mu6oUPn4q4= X-Received: by 2002:a50:ce45:: with SMTP id k5mr6111555edj.168.1627688466110; Fri, 30 Jul 2021 16:41:06 -0700 (PDT) MIME-Version: 1.0 References: <2862852d-badd-7486-3a8e-c5ea9666d6fb@google.com> In-Reply-To: From: Yang Shi Date: Fri, 30 Jul 2021 16:40:54 -0700 Message-ID: Subject: Re: [PATCH 09/16] huge tmpfs: decide stat.st_blksize by shmem_is_huge() To: Hugh Dickins Cc: Andrew Morton , Shakeel Butt , "Kirill A. Shutemov" , Miaohe Lin , Mike Kravetz , Michal Hocko , Rik van Riel , Christoph Hellwig , Matthew Wilcox , "Eric W. Biederman" , Alexey Gladkov , Chris Wilson , Matthew Auld , Linux FS-devel Mailing List , Linux Kernel Mailing List , linux-api@vger.kernel.org, Linux MM Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jul 30, 2021 at 12:51 AM Hugh Dickins wrote: > > 4.18 commit 89fdcd262fd4 ("mm: shmem: make stat.st_blksize return huge > page size if THP is on") added is_huge_enabled() to decide st_blksize: > now that hugeness can be defined per file, that too needs to be replaced > by shmem_is_huge(). > > Unless they have been fcntl'ed F_HUGEPAGE, this does give a different > answer (No) for small files on a "huge=within_size" mount: but that can > be considered a minor bugfix. And a different answer (No) for unfcntl'ed > files on a "huge=advise" mount: I'm reluctant to complicate it, just to > reproduce the same debatable answer as before. > > Signed-off-by: Hugh Dickins Reviewed-by: Yang Shi > --- > mm/shmem.c | 12 +----------- > 1 file changed, 1 insertion(+), 11 deletions(-) > > diff --git a/mm/shmem.c b/mm/shmem.c > index 67a4b7a4849b..f50f2ede71da 100644 > --- a/mm/shmem.c > +++ b/mm/shmem.c > @@ -712,15 +712,6 @@ static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo, > } > #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ > > -static inline bool is_huge_enabled(struct shmem_sb_info *sbinfo) > -{ > - if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) && > - (shmem_huge == SHMEM_HUGE_FORCE || sbinfo->huge) && > - shmem_huge != SHMEM_HUGE_DENY) > - return true; > - return false; > -} > - > /* > * Like add_to_page_cache_locked, but error if expected item has gone. > */ > @@ -1101,7 +1092,6 @@ static int shmem_getattr(struct user_namespace *mnt_userns, > { > struct inode *inode = path->dentry->d_inode; > struct shmem_inode_info *info = SHMEM_I(inode); > - struct shmem_sb_info *sb_info = SHMEM_SB(inode->i_sb); > > if (info->alloced - info->swapped != inode->i_mapping->nrpages) { > spin_lock_irq(&info->lock); > @@ -1110,7 +1100,7 @@ static int shmem_getattr(struct user_namespace *mnt_userns, > } > generic_fillattr(&init_user_ns, inode, stat); > > - if (is_huge_enabled(sb_info)) > + if (shmem_is_huge(NULL, inode, 0)) > stat->blksize = HPAGE_PMD_SIZE; > > return 0; > -- > 2.26.2 > 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=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 autolearn=unavailable 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 C7872C432BE for ; Fri, 30 Jul 2021 23:41:09 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 49B5960F3A for ; Fri, 30 Jul 2021 23:41:09 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 49B5960F3A 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 8CE976B0033; Fri, 30 Jul 2021 19:41:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 856F38D0001; Fri, 30 Jul 2021 19:41:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6F7ED6B005D; Fri, 30 Jul 2021 19:41:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0248.hostedemail.com [216.40.44.248]) by kanga.kvack.org (Postfix) with ESMTP id 52D3D6B0033 for ; Fri, 30 Jul 2021 19:41:08 -0400 (EDT) Received: from smtpin16.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id E873F8249980 for ; Fri, 30 Jul 2021 23:41:07 +0000 (UTC) X-FDA: 78420877374.16.159C5FF Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) by imf29.hostedemail.com (Postfix) with ESMTP id 9D7DA901E5B9 for ; Fri, 30 Jul 2021 23:41:07 +0000 (UTC) Received: by mail-ed1-f43.google.com with SMTP id h8so15420138ede.4 for ; Fri, 30 Jul 2021 16:41:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=jSLUnuuq5fV++9tMx9L7dLU+YzP6IguTmZ4Xmh+94Bg=; b=nJKDksbiCLIFAtUQDafEvw8Tzb1I9e/ExJonodW9mAQVo7IJwENFLNXkXhOxQeKsnF poz0zfkeaJomNjwwRAtTVImPZ92rp8E3H3CqyHF5VgrqRpilrelaFtxpKdggbwdknlCr +frMG9q5tu10/1KIxHyes8BTAmU+QlEfUuJ7sO5JvAx8phaVDZzW5wzyVupRCAacJXNr 8tyaFCL2nt6rxITYE0xsb5sZ+Hy2cz09YeQZxlkcM0wHwtYgFgMRZMbJKLv2Z6DzZe5m cDi/yh4U3O7fgoOk1CIomGbWhRk9XwpRqGI0XGnw7VcJq6oDOZAdFx31F6W6U9IWMDge aGRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=jSLUnuuq5fV++9tMx9L7dLU+YzP6IguTmZ4Xmh+94Bg=; b=LvQGd0SVMPrEkHtuJVhJ4gJW7zfnIwXwFXQfdor+JxeyCrOw8oV5GUxDn0gUXWB+FR oM2ywEop/jt23PBUUAM7qpm8fNeCTASZsRBXy4p/6C19oXEQsL+GHTxLb/H0O4FzUoG6 EN8ZL4QpG2EKC7xtPvfVAN0SRi4BgTEVijVsFNlOPqD4tu9ioT7HrmY/CytWiDN2zPek If3qT01c3eHiRD36lJSnWHOJ0sEL28T/BIjYq7t+HO7MENyzXfd+XHH4oCyV4hFrM56E GZARr8yLEaJdya2Bax5mrvdbCviQy0H4VeufYv2p+4TTgnYrryMcLAmHGz0kpGy94AqZ zIbQ== X-Gm-Message-State: AOAM532ZC0baD1AC528iR6zzaDF7iLLgaDHbzsG381BXLNvsGW0h0zB9 TlxshZR9pTaA3m57A/skm9gtpJOPUTyGAAqGPUQ= X-Google-Smtp-Source: ABdhPJxfYN/q50PwtEt3EJiGj5Xb4PpKv5m7TrjWQ6Yme3cRMXL+6f6psAPwR3C5mFjRRECnBjMITxj+5Mu6oUPn4q4= X-Received: by 2002:a50:ce45:: with SMTP id k5mr6111555edj.168.1627688466110; Fri, 30 Jul 2021 16:41:06 -0700 (PDT) MIME-Version: 1.0 References: <2862852d-badd-7486-3a8e-c5ea9666d6fb@google.com> In-Reply-To: From: Yang Shi Date: Fri, 30 Jul 2021 16:40:54 -0700 Message-ID: Subject: Re: [PATCH 09/16] huge tmpfs: decide stat.st_blksize by shmem_is_huge() To: Hugh Dickins Cc: Andrew Morton , Shakeel Butt , "Kirill A. Shutemov" , Miaohe Lin , Mike Kravetz , Michal Hocko , Rik van Riel , Christoph Hellwig , Matthew Wilcox , "Eric W. Biederman" , Alexey Gladkov , Chris Wilson , Matthew Auld , Linux FS-devel Mailing List , Linux Kernel Mailing List , linux-api@vger.kernel.org, Linux MM Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 9D7DA901E5B9 Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20161025 header.b=nJKDksbi; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf29.hostedemail.com: domain of shy828301@gmail.com designates 209.85.208.43 as permitted sender) smtp.mailfrom=shy828301@gmail.com X-Stat-Signature: 9such19cj3pr7ijopf7ruqxky38jyrdx X-HE-Tag: 1627688467-299545 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 Fri, Jul 30, 2021 at 12:51 AM Hugh Dickins wrote: > > 4.18 commit 89fdcd262fd4 ("mm: shmem: make stat.st_blksize return huge > page size if THP is on") added is_huge_enabled() to decide st_blksize: > now that hugeness can be defined per file, that too needs to be replaced > by shmem_is_huge(). > > Unless they have been fcntl'ed F_HUGEPAGE, this does give a different > answer (No) for small files on a "huge=within_size" mount: but that can > be considered a minor bugfix. And a different answer (No) for unfcntl'ed > files on a "huge=advise" mount: I'm reluctant to complicate it, just to > reproduce the same debatable answer as before. > > Signed-off-by: Hugh Dickins Reviewed-by: Yang Shi > --- > mm/shmem.c | 12 +----------- > 1 file changed, 1 insertion(+), 11 deletions(-) > > diff --git a/mm/shmem.c b/mm/shmem.c > index 67a4b7a4849b..f50f2ede71da 100644 > --- a/mm/shmem.c > +++ b/mm/shmem.c > @@ -712,15 +712,6 @@ static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo, > } > #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ > > -static inline bool is_huge_enabled(struct shmem_sb_info *sbinfo) > -{ > - if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) && > - (shmem_huge == SHMEM_HUGE_FORCE || sbinfo->huge) && > - shmem_huge != SHMEM_HUGE_DENY) > - return true; > - return false; > -} > - > /* > * Like add_to_page_cache_locked, but error if expected item has gone. > */ > @@ -1101,7 +1092,6 @@ static int shmem_getattr(struct user_namespace *mnt_userns, > { > struct inode *inode = path->dentry->d_inode; > struct shmem_inode_info *info = SHMEM_I(inode); > - struct shmem_sb_info *sb_info = SHMEM_SB(inode->i_sb); > > if (info->alloced - info->swapped != inode->i_mapping->nrpages) { > spin_lock_irq(&info->lock); > @@ -1110,7 +1100,7 @@ static int shmem_getattr(struct user_namespace *mnt_userns, > } > generic_fillattr(&init_user_ns, inode, stat); > > - if (is_huge_enabled(sb_info)) > + if (shmem_is_huge(NULL, inode, 0)) > stat->blksize = HPAGE_PMD_SIZE; > > return 0; > -- > 2.26.2 >