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()? > 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. > 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. Thanks. -- tejun