lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAJuCfpH5pDetC7wz25YC9PptLm1T0r09F+QP616BJ+4VNaNv-A@mail.gmail.com>
Date:   Fri, 4 Aug 2023 19:04:32 -0700
From:   Suren Baghdasaryan <surenb@...gle.com>
To:     Mateusz Guzik <mjguzik@...il.com>
Cc:     linux-mm@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] mm: move dummy_vm_ops out of a header

On Fri, Aug 4, 2023 at 6:41 PM Mateusz Guzik <mjguzik@...il.com> wrote:
>
> Otherwise the kernel ends up with multiple copies:
> $ nm vmlinux | grep dummy_vm_ops
> ffffffff81e4ea00 d dummy_vm_ops.2
> ffffffff81e11760 d dummy_vm_ops.254
> ffffffff81e406e0 d dummy_vm_ops.4
> ffffffff81e3c780 d dummy_vm_ops.7
>
> [if someone has better ideas where to put it, please move it]
>
> Signed-off-by: Mateusz Guzik <mjguzik@...il.com>

Thanks for the patch and it looks fine to me but why is it sent to me
and not to the mm maintainer? Also nobody else is CC'ed...
AFAIKT this code has been there long before per-vma locks got
introduced. Did my patchset somehow cause additional side-effects?

> ---
>  include/linux/mm.h | 6 +++---
>  mm/init-mm.c       | 2 ++
>  2 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index 406ab9ea818f..14898e76bbf1 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -756,17 +756,17 @@ static inline void vma_mark_detached(struct vm_area_struct *vma,
>
>  #endif /* CONFIG_PER_VMA_LOCK */
>
> +extern const struct vm_operations_struct vma_dummy_vm_ops;
> +
>  /*
>   * WARNING: vma_init does not initialize vma->vm_lock.
>   * Use vm_area_alloc()/vm_area_free() if vma needs locking.
>   */
>  static inline void vma_init(struct vm_area_struct *vma, struct mm_struct *mm)
>  {
> -       static const struct vm_operations_struct dummy_vm_ops = {};
> -
>         memset(vma, 0, sizeof(*vma));
>         vma->vm_mm = mm;
> -       vma->vm_ops = &dummy_vm_ops;
> +       vma->vm_ops = &vma_dummy_vm_ops;
>         INIT_LIST_HEAD(&vma->anon_vma_chain);
>         vma_mark_detached(vma, false);
>         vma_numab_state_init(vma);
> diff --git a/mm/init-mm.c b/mm/init-mm.c
> index efa97b57acfd..cfd367822cdd 100644
> --- a/mm/init-mm.c
> +++ b/mm/init-mm.c
> @@ -17,6 +17,8 @@
>  #define INIT_MM_CONTEXT(name)
>  #endif
>
> +const struct vm_operations_struct vma_dummy_vm_ops;
> +
>  /*
>   * For dynamically allocated mm_structs, there is a dynamically sized cpumask
>   * at the end of the structure, the size of which depends on the maximum CPU
> --
> 2.39.2
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ