object allocation benchmark
Subsystems (3)
I was wondering: Which benchmark would be considered the canonical one to demonstrate the speed of the slub/slab after changes? In particular, I have the kmem-memcg in mind
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Quoted 3 lines · Glauber Costa
I was wondering: Which benchmark would be considered the canonical one to demonstrate the speed of the slub/slab after changes? In particular, I have the kmem-memcg in mind
I have some in kernel benchmarking tools for page allocator and slab allocators. But they are not really clean patches.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Quoted 3 lines · Christoph Lameter
I have some in kernel benchmarking tools for page allocator and slab allocators. But they are not really clean patches.
This is the latest version of your tools that I have based on 3.3. Load the modules with insmod and it will produce an error to automatically unloaded (by design) and check dmesg for the results.
--- Makefile | 2 +- include/Kbuild | 1 + lib/Kconfig.debug | 1 + tests/Kconfig | 32 +++++ tests/Makefile | 3 + tests/pagealloc_test.c | 334 +++++++++++++++++++++++++++++++++++++++++++ tests/slab_test.c | 372 ++++++++++++++++++++++++++++++++++++++++++++++++ tests/vmstat_test.c | 96 +++++++++++++ 8 files changed, 840 insertions(+), 1 deletion(-) create mode 100644 tests/Kconfig create mode 100644 tests/Makefile create mode 100644 tests/pagealloc_test.c create mode 100644 tests/slab_test.c create mode 100644 tests/vmstat_test.c
Makefile +1 -1
@@ -708,7 +708,7 @@ export mod_strip_cmd ifeq ($(KBUILD_EXTMOD),) -core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/ +core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/ tests/ vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \ $(core-y) $(core-m) $(drivers-y) $(drivers-m) \
include/Kbuild +1 -0
@@ -10,3 +10,4 @@ header-y += video/ header-y += drm/ header-y += xen/ header-y += scsi/ +header-y += tests/
lib/Kconfig.debug +1 -0
@@ -1123,6 +1123,7 @@ config SYSCTL_SYSCALL_CHECK source mm/Kconfig.debug source kernel/trace/Kconfig +source tests/Kconfig config PROVIDE_OHCI1394_DMA_INIT bool "Remote debugging over FireWire early on boot"
tests/Kconfig new file +32 -0
@@ -0,0 +1,32 @@ +menuconfig BENCHMARKS + bool "In kernel benchmarks" + def_bool n + help + Includes in kernel benchmark modules in the build. These modules can + be loaded later to trigger benchmarking kernel subsystems. + Output will be generated in the system log. + +if BENCHMARKS + +config BENCHMARK_SLAB + tristate "Slab allocator Benchmark" + depends on m + default m + help + A benchmark that measures slab allocator performance. + +config BENCHMARK_VMSTAT + tristate "VM statistics Benchmark" + depends on m + default m + help + A benchmark measuring the performance of vm statistics. + +config BENCHMARK_PAGEALLOC + tristate "Page Allocator Benchmark" + depends on m + default m + help + A benchmark measuring the performance of the page allocator. + +endif # BENCHMARKS
tests/Makefile new file +3 -0
@@ -0,0 +1,3 @@ +obj-$(CONFIG_BENCHMARK_SLAB) += slab_test.o +obj-$(CONFIG_BENCHMARK_VMSTAT) += vmstat_test.o +obj-$(CONFIG_BENCHMARK_PAGEALLOC) += pagealloc_test.o
tests/pagealloc_test.c new file +334 -0
334 lines not on this page · raw message
tests/slab_test.c new file +372 -0
372 lines not on this page · raw message
tests/vmstat_test.c new file +96 -0
96 lines not on this page · raw message
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Quoted 9 lines · David Rientjes
Quoted 3 lines · Christoph Lameter
I have some in kernel benchmarking tools for page allocator and slab allocators. But they are not really clean patches.
This is the latest version of your tools that I have based on 3.3. Load the modules with insmod and it will produce an error to automatically unloaded (by design) and check dmesg for the results.
Anyone interested in pushing the benchmark to mainline?
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Quoted 10 lines · Pekka Enberg
Quoted 7 lines
Quoted 3 lines
I have some in kernel benchmarking tools for page allocator and slab allocators. But they are not really clean patches.
This is the latest version of your tools that I have based on 3.3. Load the modules with insmod and it will produce an error to automatically unloaded (by design) and check dmesg for the results.
Anyone interested in pushing the benchmark to mainline?
It's a pretty atypical type of a benchmark that must be compiled and loaded as a benchmark for the most accurate results, I'm not sure if we want to carry it in the kernel or not. I got these from when Christoph initially sent them for your tree. If there's a renewed interest, let me know and I'll send you the ported changes (pagealloc_test.c, slab_test.c, and vmstat_test.c).
Quoted 10 lines · Christoph Lameter
Quoted 3 lines · Glauber Costa
I was wondering: Which benchmark would be considered the canonical one to demonstrate the speed of the slub/slab after changes? In particular, I have the kmem-memcg in mind
I have some in kernel benchmarking tools for page allocator and slab allocators. But they are not really clean patches.
I'd given it a try.
So in general, Suleiman patches perform fine against bare slab, the differences being in the order of ~ 1%. There are some spikes a little bit above that, that would deserve more analysis.
However, reason I decided to report early, is this test:
"1 alloc N free test". It is quite erratic. memcg+kmem sometimes performs 15 % worse, sometimes 30 % better... Always right after a cold boot.
I was wondering if you usually see such behavior for this test, and has some tips on the setup in case I'm doing anything wrong ?
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Quoted 18 lines · Glauber Costa
Quoted 11 lines · Christoph Lameter
Quoted 4 lines · Glauber Costa
I was wondering: Which benchmark would be considered the canonical one to demonstrate the speed of the slub/slab after changes? In particular, I have
the kmem-memcg in mindI have some in kernel benchmarking tools for page allocator and slab allocators. But they are not really clean patches.
I'd given it a try.
So in general, Suleiman patches perform fine against bare slab, the differences being in the order of ~ 1%. There are some spikes a little bit above that, that would deserve more analysis.
Quoted 6 lines
However, reason I decided to report early, is this test:
"1 alloc N free test". It is quite erratic. memcg+kmem sometimes performs 15 % worse, sometimes 30 % better... Always right after a cold boot.I was wondering if you usually see such behavior for this test, and has some tips on the setup in case I'm doing anything wrong ?
Well some of these tests are sensitive to memory fragmentation in the page allocator and slab allocator. One approach is to do these tests immediately after boot with minimal user space bringup.
The other is to run a stress tests for an predefined period to get memory into a sufficiently fragmented state and then run the test.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>