All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Xu <peterx@redhat.com>
To: Mike Kravetz <mike.kravetz@oracle.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	linux-s390@vger.kernel.org, shu wang <malate_wangshu@hotmail.com>,
	Axel Rasmussen <axelrasmussen@google.com>,
	Andrea Arcangeli <aarcange@redhat.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Alexey Dobriyan <adobriyan@gmail.com>,
	Matthew Wilcox <willy@infradead.org>,
	Michel Lespinasse <walken@google.com>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [RFC PATCH 1/5] hugetlb: add hugetlb helpers for soft dirty support
Date: Wed, 17 Feb 2021 11:24:15 -0500	[thread overview]
Message-ID: <20210217162415.GA6519@xz-x1> (raw)
In-Reply-To: <20210211000322.159437-2-mike.kravetz@oracle.com>

On Wed, Feb 10, 2021 at 04:03:18PM -0800, Mike Kravetz wrote:
> Add interfaces to set and clear soft dirty in hugetlb ptes.  Make
> hugetlb interfaces needed for /proc clear_refs available outside
> hugetlb.c.
> 
> arch/s390 has it's own version of most routines in asm-generic/hugetlb.h,
> so add new routines there as well.
> 
> Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com>
> ---
>  arch/s390/include/asm/hugetlb.h | 30 ++++++++++++++++++++++++++++++
>  include/asm-generic/hugetlb.h   | 30 ++++++++++++++++++++++++++++++
>  include/linux/hugetlb.h         |  1 +
>  mm/hugetlb.c                    | 10 +---------
>  4 files changed, 62 insertions(+), 9 deletions(-)
> 
> diff --git a/arch/s390/include/asm/hugetlb.h b/arch/s390/include/asm/hugetlb.h
> index 60f9241e5e4a..b7d26248fb1c 100644
> --- a/arch/s390/include/asm/hugetlb.h
> +++ b/arch/s390/include/asm/hugetlb.h
> @@ -105,6 +105,11 @@ static inline pte_t huge_pte_mkdirty(pte_t pte)
>  	return pte_mkdirty(pte);
>  }
>  
> +static inline pte_t huge_pte_mkyoung(pte_t pte)
> +{
> +	return pte_mkyoung(pte);
> +}
> +
>  static inline pte_t huge_pte_wrprotect(pte_t pte)
>  {
>  	return pte_wrprotect(pte);
> @@ -115,9 +120,34 @@ static inline pte_t huge_pte_modify(pte_t pte, pgprot_t newprot)
>  	return pte_modify(pte, newprot);
>  }
>  
> +static inline bool huge_pte_soft_dirty(pte_t pte)
> +{
> +	return pte_soft_dirty(pte);
> +}
> +
> +static inline pte_t huge_pte_clear_soft_dirty(pte_t pte)
> +{
> +	return pte_clear_soft_dirty(pte);
> +}
> +
> +static inline pte_t huge_pte_swp_clear_soft_dirty(pte_t pte)
> +{
> +	return pte_swp_clear_soft_dirty(pte);
> +}
> +

Indeed asm/hugetlb.h of s390 didn't include asm-generic/hugetlb.h as what was
normally done by asm/hugetlb.h of other archs.  Do you know why it's special?
E.g. huge_pte_wrprotect() of s390 version is actually the same of the default
version.

When I looked at the huge_pte_wrprotect() I also see that there seems to have
no real user of __HAVE_ARCH_HUGE_PTE_WRPROTECT.  Not sure whether it can be
dropped.  My gut feeling is that s390 should also include asm-generic/hugetlb.h
but only redefine the helper only if necessary, since I see no point defining
the same helper multiple times.

>  static inline bool gigantic_page_runtime_supported(void)
>  {
>  	return true;
>  }
>  
> +#if !defined(__HAVE_ARCH_FLUSH_HUGETLB_TLB_RANGE) && !defined(MODULE)
> +#include <asm/tlbflush.h>
> +
> +static inline void flush_hugetlb_tlb_range(struct vm_area_struct *vma,
> +					unsigned long start, unsigned long end)
> +{
> +	flush_tlb_range(vma, start, end);
> +}
> +#endif

Similar question here, only ppc defined __HAVE_ARCH_FLUSH_HUGETLB_TLB_RANGE, so
IIUC it means s390 should simply use the default version, and it'll be great if
we don't need to redefine it here.

Thanks,

-- 
Peter Xu


  reply	other threads:[~2021-02-17 16:25 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-11  0:03 [RFC PATCH 0/5] Add hugetlb soft dirty support Mike Kravetz
2021-02-11  0:03 ` [RFC PATCH 1/5] hugetlb: add hugetlb helpers for " Mike Kravetz
2021-02-17 16:24   ` Peter Xu [this message]
2021-02-18 22:58     ` Mike Kravetz
2021-02-24 16:46     ` Gerald Schaefer
2021-02-24 16:55       ` Gerald Schaefer
2021-02-11  0:03 ` [RFC PATCH 2/5] hugetlb: enhance hugetlb fault processing to support soft dirty Mike Kravetz
2021-02-17 19:32   ` Peter Xu
2021-02-18 23:26     ` Mike Kravetz
2021-02-11  0:03 ` [RFC PATCH 3/5] mm proc/task_mmu.c: add soft dirty pte checks for hugetlb Mike Kravetz
2021-02-17 19:35   ` Peter Xu
2021-02-18 23:59     ` Mike Kravetz
2021-02-11  0:03 ` [RFC PATCH 4/5] hugetlb: don't permit pmd sharing if soft dirty in use Mike Kravetz
2021-02-17 19:44   ` Peter Xu
2021-02-11  0:03 ` [RFC PATCH 5/5] mm proc/task_mmu.c: add hugetlb specific routine for clear_refs Mike Kravetz
2021-02-17 20:25   ` Peter Xu
2021-02-19  0:14     ` Mike Kravetz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210217162415.GA6519@xz-x1 \
    --to=peterx@redhat.com \
    --cc=aarcange@redhat.com \
    --cc=adobriyan@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=axelrasmussen@google.com \
    --cc=hca@linux.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=malate_wangshu@hotmail.com \
    --cc=mike.kravetz@oracle.com \
    --cc=walken@google.com \
    --cc=willy@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.