SLUB should pack even small objects nicely into cachelines if that is what
has been asked for. Use the same algorithm as SLAB for this.
Signed-off-by: Nick Piggin <npiggin@suse.de>
---
Index: linux-2.6/mm/slub.c
===================================================================
--- linux-2.6.orig/mm/slub.c
+++ linux-2.6/mm/slub.c
@@ -1896,12 +1896,15 @@ static unsigned long calculate_alignment
* specified alignment though. If that is greater
* then use it.
*/
- if ((flags & SLAB_HWCACHE_ALIGN) &&
- size > cache_line_size() / 2)
- return max_t(unsigned long, align, cache_line_size());
+ if (flags & SLAB_HWCACHE_ALIGN) {
+ unsigned long ralign = cache_line_size();
+ while (size <= ralign / 2)
+ ralign /= 2;
+ align = max(align, ralign);
+ }
if (align < ARCH_SLAB_MINALIGN)
- return ARCH_SLAB_MINALIGN;
+ align = ARCH_SLAB_MINALIGN;
return ALIGN(align, sizeof(void *));
}
--
| Linus Torvalds | Linux 2.6.27-rc8 |
| Jeff Chua | 2.6.27rc1 cannot boot more than 8CPUs |
| Yinghai Lu | Re: [GIT *] Allow request_firmware() to be satisfied from in-kernel, use it in mor... |
| Russell King | Re: (hacky) [PATCH] silence MODPOST section mismatch warnings |
git: | |
| Steffen Prohaska | merge vs rebase: Is visualization in gitk the only problem? |
| Shawn O. Pearce | Re: clarify git clone --local --shared --reference |
| Wink Saville | Resolving conflicts |
| Linus Torvalds | People unaware of the importance of "git gc"? |
| Richard Stallman | Real men don't attack straw men |
| Kevin Neff | Patching a SSH 'Weakness' |
| Mayuresh Kathe | Re: What is our ultimate goal?? |
| Jonathan Thornburg | strlcat/strlcpy vs overlapping arguments |
| Stefan Richter | Re: [GIT]: Networking |
| adobriyan | [PATCH 10/38] netns ct: per-netns expectations |
| "G" | Implementing RSTP and MSTP in Linux Kernel |
| Arnaldo Carvalho de Melo | Re: [PATCH 2/6] Phonet: connected sockets glue |
