Messages in this thread | | | Date | Wed, 19 Jul 2023 10:18:02 +0200 | Subject | Re: [PATCH v2 1/4] mm: factor out VMA stack and heap checks | From | David Hildenbrand <> |
| |
On 19.07.23 09:51, Kefeng Wang wrote: > Factor out VMA stack and heap checks and name them > vma_is_initial_stack() and vma_is_initial_heap() for > general use. > > Cc: Christian Göttsche <cgzones@googlemail.com> > Cc: David Hildenbrand <david@redhat.com> > Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> > ---
[...]
> diff --git a/include/linux/mm.h b/include/linux/mm.h > index 2dd73e4f3d8e..51f8c573db74 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -822,6 +822,27 @@ static inline bool vma_is_anonymous(struct vm_area_struct *vma) > return !vma->vm_ops; > } >
Worth adding a similar comment like for vma_is_initial_stack() ?
> +static inline bool vma_is_initial_heap(const struct vm_area_struct *vma) > +{ > + return vma->vm_start <= vma->vm_mm->brk && > + vma->vm_end >= vma->vm_mm->start_brk; > +} > + > +/* > + * Indicate if the VMA is a stack for the given task; for > + * /proc/PID/maps that is the stack of the main task. > + */ > +static inline bool vma_is_initial_stack(const struct vm_area_struct *vma) > +{ > + /* > + * We make no effort to guess what a given thread considers to be > + * its "stack". It's not even well-defined for programs written > + * languages like Go. > + */ > + return vma->vm_start <= vma->vm_mm->start_stack && > + vma->vm_end >= vma->vm_mm->start_stack; > +} > + > static inline bool vma_is_temporary_stack(struct vm_area_struct *vma) > { > int maybe_stack = vma->vm_flags & (VM_GROWSDOWN | VM_GROWSUP);
Reviewed-by: David Hildenbrand <david@redhat.com>
-- Cheers,
David / dhildenb
| |