Re: [PATCH v2 2/2] s390/mm: re-enable the shared zeropage for !PV and !skeys KVM guests

From: Alexander Gordeev
Date: Thu Apr 11 2024 - 08:34:13 EST


On Wed, Mar 27, 2024 at 06:17:37PM +0100, David Hildenbrand wrote:
> index 60950e7a25f5..1a71cb19c089 100644
> --- a/arch/s390/include/asm/pgtable.h
> +++ b/arch/s390/include/asm/pgtable.h
> @@ -566,10 +566,19 @@ static inline pud_t set_pud_bit(pud_t pud, pgprot_t prot)
> }
>
> /*
> - * In the case that a guest uses storage keys
> - * faults should no longer be backed by zero pages
> + * As soon as the guest uses storage keys or enables PV, we deduplicate all
> + * mapped shared zeropages and prevent new shared zeropages from getting
> + * mapped.
> */
> -#define mm_forbids_zeropage mm_has_pgste

Should it be the below insted?

#define mm_forbids_zeropage mm_forbids_zeropage

Once I add it, it fails to compile, due to the issue in patch #1.

But then I guess this series was tested with the generic
mm_forbids_zeropage() which always returns 0:

#define mm_forbids_zeropage(X) (0)

> +static inline int mm_forbids_zeropage(struct mm_struct *mm)
> +{
> +#ifdef CONFIG_PGSTE
> + if (!mm->context.allow_cow_sharing)
> + return 1;
> +#endif
> + return 0;
> +}
> +

Thanks!