svn commit: r193690 - user/kmacy/releng_7_2_fcs/sys/vm
Kip Macy
kmacy at FreeBSD.org
Mon Jun 8 06:12:47 UTC 2009
Author: kmacy
Date: Mon Jun 8 06:12:47 2009
New Revision: 193690
URL: http://svn.freebsd.org/changeset/base/193690
Log:
avoid false sharing by aligning sections
Modified:
user/kmacy/releng_7_2_fcs/sys/vm/uma_int.h
Modified: user/kmacy/releng_7_2_fcs/sys/vm/uma_int.h
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/vm/uma_int.h Mon Jun 8 06:11:36 2009 (r193689)
+++ user/kmacy/releng_7_2_fcs/sys/vm/uma_int.h Mon Jun 8 06:12:47 2009 (r193690)
@@ -177,7 +177,7 @@ struct uma_cache {
uma_bucket_t uc_allocbucket; /* Bucket to allocate from */
u_int64_t uc_allocs; /* Count of allocations */
u_int64_t uc_frees; /* Count of frees */
-};
+} __aligned(128);
typedef struct uma_cache * uma_cache_t;
@@ -280,11 +280,12 @@ struct uma_zone {
uma_dtor uz_dtor; /* Destructor */
uma_init uz_init; /* Initializer for each item */
uma_fini uz_fini; /* Discards memory */
+ /* separate uz_flags from stats keeping */
+ u_int32_t uz_flags;/* Flags inherited from kegs */
- u_int64_t uz_allocs; /* Total number of allocations */
+ u_int64_t uz_allocs __aligned(128); /* Total number of allocations */
u_int64_t uz_frees; /* Total number of frees */
u_int64_t uz_fails; /* Total number of alloc failures */
- u_int32_t uz_flags; /* Flags inherited from kegs */
u_int32_t uz_size; /* Size inherited from kegs */
uint16_t uz_fills; /* Outstanding bucket fills */
uint16_t uz_count; /* Highest value ub_ptr can have */
@@ -293,7 +294,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]; /* Per cpu caches */
+ struct uma_cache uz_cpu[1] __aligned(128); /* Per cpu caches */
};
/*
More information about the svn-src-user
mailing list