Re: [PATCH 14/35] autonuma: knuma_migrated per NUMA node queues

Peter Zijlstra
2012-05-29T13:51:45Z

On Fri, 2012-05-25 at 19:02 +0200, Andrea Arcangeli wrote:

> diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
> index 41aa49b..8e578e6 100644
> --- a/include/linux/mmzone.h
> +++ b/include/linux/mmzone.h
> @@ -666,6 +666,12 @@ typedef struct pglist_data {
> struct task_struct *kswapd;
> int kswapd_max_order;
> enum zone_type classzone_idx;
> +#ifdef CONFIG_AUTONUMA
> + spinlock_t autonuma_lock;
> + struct list_head autonuma_migrate_head[MAX_NUMNODES];
> + unsigned long autonuma_nr_migrate_pages;
> + wait_queue_head_t autonuma_knuma_migrated_wait;
> +#endif
> } pg_data_t;
>
> #define node_present_pages(nid) (NODE_DATA(nid)->node_present_pages)

O(nr_nodes^2) data.. ISTR people rewriting a certain slab allocator to
get rid of that :-)

Also, don't forget that MAX_NUMNODES is an unconditional 512 on distro
kernels, even when we only have 2.

Now the total wasted space isn't too bad since its only 16 bytes,
totaling a whole 2M for a 256 node system. But still, something like
that wants at least a mention somewhere.