Message ID | 20230113031921.64716-5-bhe@redhat.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm/vmalloc.c: allow vread() to read out vm_map_ram areas | expand |
On Fri, Jan 13, 2023 at 11:19:18AM +0800, Baoquan He wrote: > Now, by marking VMAP_RAM in vmap_area->flags for vm_map_ram, we can > clearly differentiate it with other vmalloc areas. So identify > vm_map_area area by checking VMAP_RAM of vmap_area->flags when shown > in /proc/vmcoreinfo. > > Meanwhile, the code comment above vm_map_ram area checking in s_show() > is not needed any more, remove it here. > > Signed-off-by: Baoquan He <bhe@redhat.com> > --- > mm/vmalloc.c | 6 +----- > 1 file changed, 1 insertion(+), 5 deletions(-) > > diff --git a/mm/vmalloc.c b/mm/vmalloc.c > index 13875bc41e27..4a10b3b692fa 100644 > --- a/mm/vmalloc.c > +++ b/mm/vmalloc.c > @@ -4225,11 +4225,7 @@ static int s_show(struct seq_file *m, void *p) > > va = list_entry(p, struct vmap_area, list); > > - /* > - * s_show can encounter race with remove_vm_area, !vm on behalf > - * of vmap area is being tear down or vm_map_ram allocation. > - */ > - if (!va->vm) { > + if (!va->vm && (va->flags & VMAP_RAM)) { > seq_printf(m, "0x%pK-0x%pK %7ld vm_map_ram\n", > (void *)va->va_start, (void *)va->va_end, > va->va_end - va->va_start); > -- > 2.34.1 > Reviewed-by: Uladzislau Rezki (Sony) <urezki@gmail.com> -- Uladzislau Rezki
On Fri, Jan 13, 2023 at 11:19:18AM +0800, Baoquan He wrote: > Now, by marking VMAP_RAM in vmap_area->flags for vm_map_ram, we can > clearly differentiate it with other vmalloc areas. So identify > vm_map_area area by checking VMAP_RAM of vmap_area->flags when shown > in /proc/vmcoreinfo. > > Meanwhile, the code comment above vm_map_ram area checking in s_show() > is not needed any more, remove it here. > > Signed-off-by: Baoquan He <bhe@redhat.com> > --- > mm/vmalloc.c | 6 +----- > 1 file changed, 1 insertion(+), 5 deletions(-) > > diff --git a/mm/vmalloc.c b/mm/vmalloc.c > index 13875bc41e27..4a10b3b692fa 100644 > --- a/mm/vmalloc.c > +++ b/mm/vmalloc.c > @@ -4225,11 +4225,7 @@ static int s_show(struct seq_file *m, void *p) > > va = list_entry(p, struct vmap_area, list); > > - /* > - * s_show can encounter race with remove_vm_area, !vm on behalf > - * of vmap area is being tear down or vm_map_ram allocation. > - */ > - if (!va->vm) { > + if (!va->vm && (va->flags & VMAP_RAM)) { > seq_printf(m, "0x%pK-0x%pK %7ld vm_map_ram\n", > (void *)va->va_start, (void *)va->va_end, > va->va_end - va->va_start); > -- > 2.34.1 > Reviewed-by: Lorenzo Stoakes <lstoakes@gmail.com>
diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 13875bc41e27..4a10b3b692fa 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -4225,11 +4225,7 @@ static int s_show(struct seq_file *m, void *p) va = list_entry(p, struct vmap_area, list); - /* - * s_show can encounter race with remove_vm_area, !vm on behalf - * of vmap area is being tear down or vm_map_ram allocation. - */ - if (!va->vm) { + if (!va->vm && (va->flags & VMAP_RAM)) { seq_printf(m, "0x%pK-0x%pK %7ld vm_map_ram\n", (void *)va->va_start, (void *)va->va_end, va->va_end - va->va_start);
Now, by marking VMAP_RAM in vmap_area->flags for vm_map_ram, we can clearly differentiate it with other vmalloc areas. So identify vm_map_area area by checking VMAP_RAM of vmap_area->flags when shown in /proc/vmcoreinfo. Meanwhile, the code comment above vm_map_ram area checking in s_show() is not needed any more, remove it here. Signed-off-by: Baoquan He <bhe@redhat.com> --- mm/vmalloc.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)