On Wed, Jul 22, 2015 at 01:28:19AM +0200, Jesper Dangaard Brouer wrote: > On Tue, 21 Jul 2015 08:50:36 -0500 (CDT) > Christoph Lameter <cl@xxxxxxxxx> wrote: > > > On Mon, 20 Jul 2015, Jesper Dangaard Brouer wrote: > > > > > Yes, I think it is merged... how do I turn off merging? > > > > linux/Documentation/kernel-parameters.txt > > > > slab_nomerge [MM] > > Disable merging of slabs with similar size. May be > > necessary if there is some reason to distinguish > > allocs to different slabs. Debug options disable > > merging on their own. > > For more information see Documentation/vm/slub.txt. > > I was hoping I could define this per slub runtime. Any chance this > would be made possible? It's not possible to set/reset slab merge in runtime. Once merging happens, one slab could have objects from different kmem_caches so we can't separate it cleanly. Current best approach is to prevent merging when creating new kmem_cache by introducing new slab flag like as SLAB_NO_MERGE. > > Setting boot param "slab_nomerge" made my benchmarking VERY stable > between runs (obj size 256). > > > Run01: slab_nomerge > 1 - 63 cycles(tsc) 15.927 ns - 46 cycles(tsc) 11.707 ns > 2 - 56 cycles(tsc) 14.185 ns - 28 cycles(tsc) 7.129 ns > 3 - 54 cycles(tsc) 13.588 ns - 23 cycles(tsc) 5.762 ns > 4 - 53 cycles(tsc) 13.291 ns - 20 cycles(tsc) 5.085 ns > 8 - 51 cycles(tsc) 12.918 ns - 19 cycles(tsc) 4.886 ns > 16 - 50 cycles(tsc) 12.607 ns - 19 cycles(tsc) 4.858 ns > 30 - 51 cycles(tsc) 12.759 ns - 19 cycles(tsc) 4.980 ns > 32 - 51 cycles(tsc) 12.930 ns - 19 cycles(tsc) 4.975 ns > 34 - 93 cycles(tsc) 23.410 ns - 27 cycles(tsc) 6.924 ns > 48 - 80 cycles(tsc) 20.193 ns - 25 cycles(tsc) 6.279 ns > 64 - 73 cycles(tsc) 18.322 ns - 23 cycles(tsc) 5.939 ns > 128 - 88 cycles(tsc) 22.083 ns - 29 cycles(tsc) 7.413 ns > 158 - 97 cycles(tsc) 24.274 ns - 34 cycles(tsc) 8.696 ns > 250 - 102 cycles(tsc) 25.556 ns - 40 cycles(tsc) 10.100 ns > > Run02: slab_nomerge > 1 - 63 cycles(tsc) 15.879 ns - 46 cycles(tsc) 11.701 ns > 2 - 56 cycles(tsc) 14.222 ns - 28 cycles(tsc) 7.140 ns > 3 - 54 cycles(tsc) 13.586 ns - 23 cycles(tsc) 5.783 ns > 4 - 53 cycles(tsc) 13.339 ns - 20 cycles(tsc) 5.095 ns > 8 - 51 cycles(tsc) 12.899 ns - 19 cycles(tsc) 4.905 ns > 16 - 50 cycles(tsc) 12.624 ns - 19 cycles(tsc) 4.853 ns > 30 - 51 cycles(tsc) 12.781 ns - 19 cycles(tsc) 4.984 ns > 32 - 51 cycles(tsc) 12.933 ns - 19 cycles(tsc) 4.997 ns > 34 - 93 cycles(tsc) 23.421 ns - 27 cycles(tsc) 6.909 ns > 48 - 80 cycles(tsc) 20.241 ns - 25 cycles(tsc) 6.267 ns > 64 - 73 cycles(tsc) 18.346 ns - 23 cycles(tsc) 5.947 ns > 128 - 88 cycles(tsc) 22.192 ns - 29 cycles(tsc) 7.415 ns > 158 - 97 cycles(tsc) 24.358 ns - 34 cycles(tsc) 8.693 ns > 250 - 102 cycles(tsc) 25.597 ns - 40 cycles(tsc) 10.144 ns > > Run03: slab_nomerge > 1 - 63 cycles(tsc) 15.897 ns - 46 cycles(tsc) 11.685 ns > 2 - 56 cycles(tsc) 14.178 ns - 28 cycles(tsc) 7.132 ns > 3 - 54 cycles(tsc) 13.590 ns - 23 cycles(tsc) 5.774 ns > 4 - 53 cycles(tsc) 13.314 ns - 20 cycles(tsc) 5.092 ns > 8 - 51 cycles(tsc) 12.872 ns - 19 cycles(tsc) 4.886 ns > 16 - 50 cycles(tsc) 12.603 ns - 19 cycles(tsc) 4.840 ns > 30 - 50 cycles(tsc) 12.750 ns - 19 cycles(tsc) 4.966 ns > 32 - 51 cycles(tsc) 12.910 ns - 19 cycles(tsc) 4.977 ns > 34 - 93 cycles(tsc) 23.372 ns - 27 cycles(tsc) 6.929 ns > 48 - 80 cycles(tsc) 20.205 ns - 25 cycles(tsc) 6.276 ns > 64 - 73 cycles(tsc) 18.292 ns - 23 cycles(tsc) 5.929 ns > 128 - 90 cycles(tsc) 22.516 ns - 29 cycles(tsc) 7.425 ns > 158 - 99 cycles(tsc) 24.825 ns - 34 cycles(tsc) 8.668 ns > 250 - 102 cycles(tsc) 25.652 ns - 40 cycles(tsc) 10.129 ns Really looks stable! Thanks. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>