On 11/17/2011 12:34 PM, Tejun Heo wrote: > Hello, > > On Wed, Nov 16, 2011 at 7:30 PM, Dave Young <dyoung at redhat.com> wrote: >> This addr is converted to an invalid phys address, > > I'm a bit lost on the context here. Who's calling per_cpu_ptr_to_phys()? It's drivers/base/cpu.c : show_crash_notes() > >> looking the code below: >> if (in_first_chunk) { >> if (!is_vmalloc_addr(addr)) >> return __pa(addr); >> else >> return page_to_phys(vmalloc_to_page(addr)); >> } else >> return page_to_phys(pcpu_addr_to_page(addr)); >> >> I dont understand per cpu allocation well, if addr is not in first chunk >> then it should be in vmalloc area? > > Yes, it is. First chunk can be embedded in the kernel linear address > space but from the second one, it's always set up from the top of the > vmalloc area with the same offset layout as the first chunk. in this case ffff880667c19ad0 fall out of vmalloc area and it's not in first chunk also. > >> Tejun, do you have any idea about this? > > Can you please tell me how to reproduce the problem? I'll try to find > out what's going on. make sure kernel support CRASH DUMP, then cat /sys/devices/system/cpu/cpu[x]/crash_notes Tim Hartrick <tim at edgecast.com> reported the problem when test kdump. But I can not reproduce this. I think tim can help to test > > Thanks. > -- Thanks Dave