Subversion Repositories HelenOS-historic

Rev

Rev 1702 | Rev 1760 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1702 Rev 1757
Line 81... Line 81...
81
 * releases slabs from cpu-shared magazine-list, until at least 1 slab
81
 * releases slabs from cpu-shared magazine-list, until at least 1 slab
82
 * is deallocated in each cache (this algorithm should probably change).
82
 * is deallocated in each cache (this algorithm should probably change).
83
 * The brutal reclaim removes all cached objects, even from CPU-bound
83
 * The brutal reclaim removes all cached objects, even from CPU-bound
84
 * magazines.
84
 * magazines.
85
 *
85
 *
86
 * TODO:@n
86
 * @todo
87
 * For better CPU-scaling the magazine allocation strategy should
87
 * For better CPU-scaling the magazine allocation strategy should
88
 * be extended. Currently, if the cache does not have magazine, it asks
88
 * be extended. Currently, if the cache does not have magazine, it asks
89
 * for non-cpu cached magazine cache to provide one. It might be feasible
89
 * for non-cpu cached magazine cache to provide one. It might be feasible
90
 * to add cpu-cached magazine cache (which would allocate it's magazines
90
 * to add cpu-cached magazine cache (which would allocate it's magazines
91
 * from non-cpu-cached mag. cache). This would provide a nice per-cpu
91
 * from non-cpu-cached mag. cache). This would provide a nice per-cpu
92
 * buffer. The other possibility is to use the per-cache
92
 * buffer. The other possibility is to use the per-cache
93
 * 'empty-magazine-list', which decreases competing for 1 per-system
93
 * 'empty-magazine-list', which decreases competing for 1 per-system
94
 * magazine cache.
94
 * magazine cache.
95
 *
95
 *
-
 
96
 * @todo
96
 * @li it might be good to add granularity of locks even to slab level,
97
 * it might be good to add granularity of locks even to slab level,
97
 *     we could then try_spinlock over all partial slabs and thus improve
98
 * we could then try_spinlock over all partial slabs and thus improve
98
 *     scalability even on slab level
99
 * scalability even on slab level
99
 */
100
 */
100
 
101
 
101
#include <synch/spinlock.h>
102
#include <synch/spinlock.h>
Line 907... Line 908...
907
    _slab_free(slab->cache, obj, slab);
908
    _slab_free(slab->cache, obj, slab);
908
}
909
}
909
 
910
 
910
 /** @}
911
/** @}
911
 */
912
 */
912
 
-