[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] x86/mm: correct PG_log_dirty definition again



On Wed, 21 Oct 2025, Jan Beulich wrote:
> The earlier change wasn't correct as far as shim-exclusive mode goes:
> Shadow mode is still to be enabled permitted there, yet the generic
> paging-log-dirty (and more generally domctl) part of the code still is
> unwanted (and cannot be used anyway, as domctl_lock_acquire() isn't
> available).
> 
> Fixes: 2ae8a68df21e ("x86/mm: correct PG_log_dirty definition")
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> ---
> While a backwards move, properly untangling this will need to be left for
> later, I expect.

I also had considered this set of changes as an alternative of the
SHADOW_PAGING kconfig change I made. I tested this patch together with
mine and everything looks good so far:
https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines

Tested-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>

I'll resend both patches together for simplicity.


> --- a/xen/arch/x86/include/asm/paging.h
> +++ b/xen/arch/x86/include/asm/paging.h
> @@ -55,7 +55,7 @@
>  #define PG_translate   0
>  #define PG_external    0
>  #endif
> -#ifdef CONFIG_PAGING
> +#if defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
>  /* Enable log dirty mode */
>  #define PG_log_dirty   (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)
>  #else
> --- a/xen/include/hypercall-defs.c
> +++ b/xen/include/hypercall-defs.c
> @@ -197,7 +197,7 @@ dm_op(domid_t domid, unsigned int nr_buf
>  #ifdef CONFIG_SYSCTL
>  sysctl(xen_sysctl_t *u_sysctl)
>  #endif
> -#if defined(CONFIG_X86) && defined(CONFIG_PAGING)
> +#if defined(CONFIG_X86) && defined(CONFIG_PAGING) && 
> !defined(CONFIG_PV_SHIM_EXCLUSIVE)
>  paging_domctl_cont(xen_domctl_t *u_domctl)
>  #endif
>  #ifndef CONFIG_PV_SHIM_EXCLUSIVE
> @@ -298,7 +298,7 @@ dm_op                              compa
>  hypfs_op                           do       do       do       do       do
>  #endif
>  mca                                do       do       -        -        -
> -#if defined(CONFIG_X86) && defined(CONFIG_PAGING)
> +#if defined(CONFIG_X86) && defined(CONFIG_PAGING) && 
> !defined(CONFIG_PV_SHIM_EXCLUSIVE)
>  paging_domctl_cont                 do       do       do       do       -
>  #endif
>  
> 



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.