On Wed, Oct 23, 2019 at 03:38:40PM +0200, Thomas Gleixner wrote: > > > > > > [0,2,4,5,6,8,10,12] are guard pages so 0 is not that crappy at all > > > > Wait, Thomas, I might be wrong, but per-cpu is initialized to the pointer, > > the memory for this estack_pages has not yet been allocated, no? > > static const > struct estack_pages estack_pages[CEA_ESTACK_PAGES] ____cacheline_aligned = { > EPAGERANGE(DF), > EPAGERANGE(NMI), > EPAGERANGE(DB1), > EPAGERANGE(DB), > EPAGERANGE(MCE), > }; > > It's statically allocated. So it's available from the very beginning. Indeed, thanks! I happened to overlooked this moment. ... > And as I explained to you properly decoded the values _ARE_ correct and > make sense. Yes, just posted the diff itself to be sure. Thanks a huge for explanation, Thomas!