Re: [RFC, PATCH] SLAB : [NUMA] keep nodeid in struct page instead of struct slab

From: Pekka Enberg
Date: Wed Mar 21 2007 - 08:21:40 EST


On 3/21/07, Eric Dumazet <dada1@xxxxxxxxxxxxx> wrote:
In order to avoid a cache miss in kmem_cache_free() on NUMA and reduce hot path
length, we could exploit the following common facts.

It would be nice if you could cc me for slab patches.

On 3/21/07, Eric Dumazet <dada1@xxxxxxxxxxxxx> wrote:
-static inline void page_set_cache(struct page *page, struct kmem_cache *cache)
+static inline void page_set_cache_slab_nodeid(struct page *page,
+ struct kmem_cache *cache, struct slab *slab, int nodeid)
{
+ page->lru.prev = (struct list_head *)slab;
+#ifdef KEEP_NODEID_IN_PAGE
+ page->lru.next = (struct list_head *)((long)cache + nodeid);
+#else
page->lru.next = (struct list_head *)cache;
+#endif
+#ifdef KEEP_NODEID_IN_SLAB
+ slab->nodeid = nodeid;
+#endif

Can we please have a slab_get_nid() and slab_set_nid() instead which
reduces the need for #ifdefs?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/