On Thu, Mar 18, 2010 at 12:47 AM, Peter Zijlstra <pet...@infradead.org> wrote: > On Wed, 2010-03-17 at 10:40 +0200, Stephane Eranian wrote: >> On AMD processors, we need to allocate a data structure per Northbridge >> to handle certain events. >> >> On CPU initialization, we need to query the Northbridge id and check >> whether the structure is already allocated or not. We use the >> amd_get_nb_id() function to request the Northbridge identification. >> >> The recent cleanup of the CPU online/offline initialization introduced >> a bug. AMD cpu initialization is invoked on CPU_UP_PREPARE callback. >> This is before the CPU Northbridge id is calculated. Therefore no >> processor had a Northbridge structure allocated except the boot >> processor. That was causing bogus NB event scheduling. >> >> This patch uses the CPU_ONLINE callback to initialize the AMD >> Northbridge structure. This way amd_get_nb_id() returns valid >> information. >> >> The x86_cpu_up() callback was added. Could not call it cpu_online >> because of existing macro. >> >> Signed-off-by: Stephane Eranian <eran...@google.com> > > > No, ONLINE is not exposed for a good reason, its always wrong. > > Use prepare to allocate data, and starting to initialize stuff on the > cpu proper once its up. Online is after the cpu is up and running and we > are already scheduling stuff on it so its too late to initialize things. > > I can't because amd_get_nb_id() returns garbage for the CPU when you call from CPU_STARTING. So looks like initialization of cpu_llc_id needs to be moved way earlier. I don't want to have to duplicate that code.
------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ perfmon2-devel mailing list perfmon2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/perfmon2-devel