On Tue, Aug 15, 2006 at 10:08:23AM +0200, Andi Kleen (ak@suse.de) wrote:
Andrew Morton [off-list ref] writes:
quoted
There will be heaps of cacheline pingpong accessing these arrays. I'd have
though that
static struct whatever {
avl_t avl_node_id;
struct avl_node **avl_node_array;
struct list_head *avl_container_array;
struct avl_node *avl_root;
struct avl_free_list *avl_free_list_head;
spinlock_t avl_free_lock;
} __cacheline_aligned_in_smp whatevers[NR_CPUS];
would be better.
Or even better per cpu data. New global/static NR_CPUS arrays should be really discouraged.
I had a version with per-cpu data - it is not very convenient to use here with it's
per_cpu_ptr dereferencings....
-Andi
--
Evgeniy Polyakov