Hi KOSAKI, On Tue, Sep 17, 2013 at 01:44:04AM -0400, KOSAKI Motohiro wrote: >On Mon, Sep 16, 2013 at 8:18 PM, Wanpeng Li <liwanp@xxxxxxxxxxxxxxxxxx> wrote: >> Hi KOSAKI, >> On Mon, Sep 16, 2013 at 05:23:32PM -0400, KOSAKI Motohiro wrote: >>>On 9/14/2013 7:45 PM, Wanpeng Li wrote: >>>> Changelog: >>>> *v2 -> v3: revert commit d157a558 directly >>>> >>>> The VM_UNINITIALIZED/VM_UNLIST flag introduced by commit f5252e00(mm: avoid >>>> null pointer access in vm_struct via /proc/vmallocinfo) is used to avoid >>>> accessing the pages field with unallocated page when show_numa_info() is >>>> called. This patch move the check just before show_numa_info in order that >>>> some messages still can be dumped via /proc/vmallocinfo. This patch revert >>>> commit d157a558 (mm/vmalloc.c: check VM_UNINITIALIZED flag in s_show instead >>>> of show_numa_info); >>> >>>Both d157a558 and your patch don't explain why your one is better. Yes, some >>>messages _can_ be dumped. But why should we do so? >> >> More messages can be dumped and original commit f5252e00(mm: avoid null pointer >> access in vm_struct via /proc/vmallocinfo) do that. >> >>>And No. __get_vm_area_node() doesn't use __GFP_ZERO for allocating vm_area_struct. >>>dumped partial dump is not only partial, but also may be garbage. >> >> vm_struct is allocated by kzalloc_node. > >Oops, you are right. Then, your code _intentionally_ show amazing >zero. Heh, nice. >More message is pointless. zero is just zero. It doesn't have any information. > After PATCH 4/4 applied, there is a check: if (!(va->flags & VM_VM_AREA)) return 0; - show vm_struct information between insert_vmap_area and setup_vmalloc_vm. Nothing will be dumped since the check mentioned above. - show vm_struct information between setup_vmalloc_vm and vm_struct fully populated. The fields initialized in setup_vmalloc_vm will be dumped correctly and other uninitialized fields of vm_struct won't be dumped instead of dump zero as you mentioned since there is check like v->caller, v->nr_pages in s_show. Regards, Wanpeng Li > >>>I wonder why we need to call setup_vmalloc_vm() _after_ insert_vmap_area. >> >> I think it's another topic. > >Why? > > >> Fill vm_struct and set VM_VM_AREA flag. If I misunderstand your >> question? > >VM_VM_AREA doesn't help. we have race between insert_vmap_area and >setup_vmalloc_vm. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>