Re: [PATCH v1 1/2] mm/ksm: support fork/exec for prctl

From: Carl Klemm
Date: Wed Sep 20 2023 - 06:16:09 EST


On Tue, 2023-09-19 at 13:51 -0700, Stefan Roesch wrote:
> A process can enable KSM with the prctl system call. When the process
> is
> forked the KSM flag is inherited by the child process. However if the
> process is executing an exec system call directly after the fork, the
> KSM setting is cleared. This patch addresses this problem.
>
> Signed-off-by: Stefan Roesch <shr@xxxxxxxxxxxx>
> Reported-by: Carl Klemm <carl@xxxxxxxx>
> ---
>  include/linux/sched/coredump.h | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/include/linux/sched/coredump.h
> b/include/linux/sched/coredump.h
> index 0ee96ea7a0e9..205aa9917394 100644
> --- a/include/linux/sched/coredump.h
> +++ b/include/linux/sched/coredump.h
> @@ -87,8 +87,11 @@ static inline int get_dumpable(struct mm_struct
> *mm)
>  
>  #define MMF_DISABLE_THP_MASK   (1 << MMF_DISABLE_THP)
>  
> +#define MMF_VM_MERGE_ANY       29
> +#define MMF_VM_MERGE_ANY_MASK  (1 << MMF_VM_MERGE_ANY)
> +
>  #define MMF_INIT_MASK          (MMF_DUMPABLE_MASK |
> MMF_DUMP_FILTER_MASK |\
> -                                MMF_DISABLE_THP_MASK |
> MMF_HAS_MDWE_MASK)
> +                                MMF_DISABLE_THP_MASK |
> MMF_HAS_MDWE_MASK |\
> +                                MMF_VM_MERGE_ANY_MASK)
>  
> -#define MMF_VM_MERGE_ANY       29
>  #endif /* _LINUX_SCHED_COREDUMP_H */

I can confirm that this patch works as intended for my usecase, you can
have my:

Tested-by: Carl Klemm <carl@xxxxxxxx>