[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <57C9024A16AD2D4C97DC78E552063EA36121A4D5@orsmsx505.amr.corp.intel.com>
Date: Fri, 6 Feb 2009 11:06:41 -0800
From: "Luck, Tony" <tony.luck@...el.com>
To: Brian Gerst <brgerst@...il.com>
CC: Tejun Heo <tj@...nel.org>, Ingo Molnar <mingo@...e.hu>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH 2/5] percpu: Refactor percpu.h
> Why does IA64 still have a special percpu section on UP? Is there a
> particular reason why it can't degenerate to regular .data like every
> other arch?
There are a few per-cpu variables that are accessed in the machine
check handlers with MMU turned off[1], so access is in physical mode.
We handle this with the GET_THIS_PADDR() macro which computes the
address of percpu objects based on offsets from a special register
(ar.k3) that has the base physical address of the .data.percpu
section for this processor. The addressing mode used here has
a limited offset, so if percpu variables are scattered throughout
.data we get link errors.
-Tony
[1] The MMU may have been the cause of the machine check.
Powered by blists - more mailing lists