From 122090fb7e8c9dc016b8cb0cb8904d6be5cdb272 Mon Sep 17 00:00:00 2001 From: kmacy Date: Mon, 22 Mar 2010 22:39:32 +0000 Subject: - enable alignment on amd64 only - only align pcpu caches and the volatile portion of uma_zone --- sys/vm/uma_int.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'sys/vm/uma_int.h') diff --git a/sys/vm/uma_int.h b/sys/vm/uma_int.h index e04dd39..27396ea 100644 --- a/sys/vm/uma_int.h +++ b/sys/vm/uma_int.h @@ -162,7 +162,11 @@ struct uma_hash { /* * align field or structure to cache line */ +#if defined(__amd64__) +#define UMA_ALIGN __aligned(CACHE_LINE_SIZE) +#else #define UMA_ALIGN +#endif /* * Structures for per cpu queues. @@ -173,7 +177,7 @@ struct uma_bucket { int16_t ub_cnt; /* Count of free items. */ int16_t ub_entries; /* Max items. */ void *ub_bucket[]; /* actual allocation storage */ -} UMA_ALIGN; +}; typedef struct uma_bucket * uma_bucket_t; @@ -330,7 +334,7 @@ struct uma_zone { * This HAS to be the last item because we adjust the zone size * based on NCPU and then allocate the space for the zones. */ - struct uma_cache uz_cpu[1] UMA_ALIGN; /* Per cpu caches */ + struct uma_cache uz_cpu[1]; /* Per cpu caches */ }; /* -- cgit v1.1