On Wed, 19 Nov 2014, Frederic Weisbecker wrote: > On Wed, Nov 19, 2014 at 10:56:26PM +0100, Thomas Gleixner wrote: > > On Wed, 19 Nov 2014, Frederic Weisbecker wrote: > > > I got a report lately involving context tracking. Not sure if it's > > > the same here but the issue was that context tracking uses per cpu data > > > and per cpu allocation use vmalloc and vmalloc'ed area can fault due to > > > lazy paging. > > > > This is complete nonsense. pcpu allocations are populated right > > away. Otherwise no single line of kernel code which uses dynamically > > allocated per cpu storage would be safe. > > Note this isn't faulting because part of the allocation is > swapped. No it's all reserved in the physical memory, but it's a > lazy allocation. Part of it isn't yet addressed in the > P[UGM?]D. That's what vmalloc_fault() is for.
Sorry, I can't follow your argumentation here. pcpu_alloc() .... area_found: .... /* clear the areas and return address relative to base address */ for_each_possible_cpu(cpu) memset((void *)pcpu_chunk_addr(chunk, cpu, 0) + off, 0, size); How would that memset fail to establish the mapping, which is btw. already established via: pcpu_populate_chunk() already before that memset? Are we talking about different per cpu allocators here or am I missing something completely non obvious? Thanks, tglx -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/