Flamegraphing kernel stacks
This commit is contained in:
parent
1fbbd8dea7
commit
06e2aad88d
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,6 +1,7 @@
|
|||||||
.vagrant
|
.vagrant
|
||||||
Vagrantfile
|
Vagrantfile
|
||||||
*.json
|
*.json
|
||||||
|
*.svg
|
||||||
opack_installer_latest
|
opack_installer_latest
|
||||||
results
|
results
|
||||||
ssh-config
|
ssh-config
|
||||||
|
22
Makefile
22
Makefile
@ -25,10 +25,10 @@ SPEC2006_SRC= ../spec2006-openbsd
|
|||||||
$(INSTALL_ISO):
|
$(INSTALL_ISO):
|
||||||
make -C ../skzbsd-build/ all
|
make -C ../skzbsd-build/ all
|
||||||
|
|
||||||
ssh-config: opack
|
ssh-config: | opack
|
||||||
(echo Host $(OPACK_TARGET) && (vagrant ssh-config | sed '1d')) > $@
|
(echo Host $(OPACK_TARGET) && (vagrant ssh-config | sed '1d')) > $@
|
||||||
|
|
||||||
all: $(INSTALL_ISO) ssh-config
|
results/rate.kprofile results/speed.kprofile: $(INSTALL_ISO) ssh-config
|
||||||
scp -F ssh-config -q -r src root@$(OPACK_TARGET):/root/run
|
scp -F ssh-config -q -r src root@$(OPACK_TARGET):/root/run
|
||||||
scp -F ssh-config -q -r $(SPEC2006_SRC) root@$(OPACK_TARGET):/var/spec2006
|
scp -F ssh-config -q -r $(SPEC2006_SRC) root@$(OPACK_TARGET):/var/spec2006
|
||||||
vagrant ssh -c "make -C run bootstrap"
|
vagrant ssh -c "make -C run bootstrap"
|
||||||
@ -37,6 +37,24 @@ all: $(INSTALL_ISO) ssh-config
|
|||||||
mkdir -p results
|
mkdir -p results
|
||||||
scp -F ssh-config -q -r $(OPACK_TARGET):/var/spec2006/result/* results
|
scp -F ssh-config -q -r $(OPACK_TARGET):/var/spec2006/result/* results
|
||||||
|
|
||||||
|
rate.svg: | results/rate.kprofile
|
||||||
|
stackcollapse-bpftrace.pl $^ | flamegraph.pl \
|
||||||
|
--title "SPECINT2006 RATE - Kernel stacks - $(OPACK_SYS_CPU) threads" \
|
||||||
|
--subtitle "$(shell vagrant ssh -c "sysctl -n kern.version" | head -n1)" \
|
||||||
|
--fonttype "IBM Plex Mono" \
|
||||||
|
--hash \
|
||||||
|
--inverted > $@
|
||||||
|
|
||||||
|
speed.svg: | results/speed.kprofile
|
||||||
|
stackcollapse-bpftrace.pl $^ | flamegraph.pl \
|
||||||
|
--title "SPECINT2006 SPEED - Kernel stacks - Single thread" \
|
||||||
|
--subtitle "$(shell vagrant ssh -c "sysctl -n kern.version" | head -n1)" \
|
||||||
|
--fonttype "IBM Plex Mono" \
|
||||||
|
--hash \
|
||||||
|
--inverted > $@
|
||||||
|
|
||||||
|
all: rate.svg speed.svg
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf results ssh-config
|
rm -rf results ssh-config
|
||||||
$(MAKE) opack-clean
|
$(MAKE) opack-clean
|
||||||
|
24
src/Makefile
24
src/Makefile
@ -1,6 +1,6 @@
|
|||||||
# SPEC2006 options
|
# SPEC2006 options
|
||||||
SIZE?="ref"
|
SIZE?=ref
|
||||||
ITERATIONS?="1"
|
ITERATIONS?=1
|
||||||
|
|
||||||
OCTOPUS_URL=https://git.sk4.nz/sk4nz/octopus.git
|
OCTOPUS_URL=https://git.sk4.nz/sk4nz/octopus.git
|
||||||
SPEC2006_URL=https://git.sk4.nz/sk4nz/spec2006-openbsd.git
|
SPEC2006_URL=https://git.sk4.nz/sk4nz/spec2006-openbsd.git
|
||||||
@ -29,36 +29,40 @@ RUNOPTS=-I --noreportable --verbose 5\
|
|||||||
.PHONY: bootstrap
|
.PHONY: bootstrap
|
||||||
|
|
||||||
bootstrap:
|
bootstrap:
|
||||||
@echo $$(date) - Bootstrapping SPEC
|
@echo ▒ $$(date "+%H:%M:%S") Bootstrapping SPEC
|
||||||
@mkdir -p /spec
|
@mkdir -p /spec
|
||||||
@ln -s /var/spec2006 /spec/cpu2006
|
@ln -s /var/spec2006 /spec/cpu2006
|
||||||
@cd /var/spec2006/tools/src && CFLAGS='-fPIC' CONFIGFLAGS='--build=x86_64-unknown-openbsd' sh ./buildtools > build.log 2>&1
|
@cd /var/spec2006/tools/src && CFLAGS='-fPIC' CONFIGFLAGS='--build=x86_64-unknown-openbsd' sh ./buildtools > build.log 2>&1
|
||||||
@cd /var/spec2006 && . ./shrc && ./bin/scripts.misc/genmanifest.sh > manifest.out.log 2>&1 && ./bin/packagetools OpenBSD > package.OpenBSD.out 2>&1
|
@cd /var/spec2006 && . ./shrc && ./bin/scripts.misc/genmanifest.sh > manifest.out.log 2>&1 && ./bin/packagetools OpenBSD > package.OpenBSD.out 2>&1
|
||||||
@echo 'cd /var/spec2006 && . ./shrc && cd /root' >> /root/.profile
|
@echo 'cd /var/spec2006 && . ./shrc && cd /root' >> /root/.profile
|
||||||
|
@cd /var/spec2006 && . ./shrc && runspec --action=build -c int_speed_openbsd -T all -I -i $(SIZE) int > buildtests.log
|
||||||
|
@cd /var/spec2006 && . ./shrc && runspec --action=build -c int_rate_openbsd -T all -I -i $(SIZE) int >> buildtests.log
|
||||||
@-pkg_add -I lscpu > /dev/null 2>&1 || pkg_add -I -D snap lscpu > /dev/null 2>&1
|
@-pkg_add -I lscpu > /dev/null 2>&1 || pkg_add -I -D snap lscpu > /dev/null 2>&1
|
||||||
@echo sysctl kern.securelevel=-1 > /etc/rc.securelevel
|
@echo sysctl kern.securelevel=-1 > /etc/rc.securelevel
|
||||||
@echo kern.allowdt=1 >> /etc/sysctl.conf
|
@echo kern.allowdt=1 >> /etc/sysctl.conf
|
||||||
@echo kern.allowkmem=1 >> /etc/sysctl.conf
|
@echo kern.allowkmem=1 >> /etc/sysctl.conf
|
||||||
@-sync
|
@-sync
|
||||||
@echo $$(date) - SPEC bootstrapping complete
|
@echo ▒ $$(date "+%H:%M:%S") SPEC bootstrapping complete | tee $@
|
||||||
|
|
||||||
rate:
|
rate:
|
||||||
@echo $$(date) - Run SPECINT2006 Rate. $(SIZE) size - $(ITERATIONS) iterations - $$(sysctl -n hw.ncpufound) workloads
|
@echo ▒ $$(date "+%H:%M:%S") Run SPECINT2006 Rate. $(SIZE) size - $(ITERATIONS) iterations - $$(sysctl -n hw.ncpufound) workloads
|
||||||
@btrace /usr/share/btrace/kprofile.bt > /var/spec2006/result/rate.kprofile & cd /var/spec2006 && . ./shrc && \
|
@btrace /usr/share/btrace/kprofile.bt > /var/spec2006/result/rate.kprofile & cd /var/spec2006 && . ./shrc && \
|
||||||
runspec -c int_rate_openbsd \
|
runspec -c int_rate_openbsd \
|
||||||
-n $(ITERATIONS) \
|
-n $(ITERATIONS) \
|
||||||
--rate=$$(sysctl -n hw.ncpufound) \
|
--rate=$$(sysctl -n hw.ncpufound) \
|
||||||
$(RUNOPTS) \
|
$(RUNOPTS) \
|
||||||
--size=$(SIZE) \
|
--size=$(SIZE) \
|
||||||
int > /var/spec2006/result/rate.log; kill -2 $$(ps aux | grep btrace | grep -v grep | awk '{print $$2}')
|
int > /var/spec2006/result/rate.log; kill -2 $$(pgrep btrace) || true
|
||||||
|
|
||||||
speed:
|
speed:
|
||||||
@echo $$(date) - Run SPECINT2006 Speed. $(SIZE) size - $(ITERATIONS) iterations
|
@echo ▒ $$(date "+%H:%M:%S") Run SPECINT2006 Speed. $(SIZE) size - $(ITERATIONS) iterations
|
||||||
@btrace /usr/share/btrace/kprofile.bt > /var/spec2006/result/speed.kprofile && cd /var/spec2006 && . ./shrc && \
|
@btrace /usr/share/btrace/kprofile.bt > /var/spec2006/result/speed.kprofile & cd /var/spec2006 && . ./shrc && \
|
||||||
runspec -c int_speed_openbsd \
|
runspec -c int_speed_openbsd \
|
||||||
-n $(ITERATIONS) \
|
-n $(ITERATIONS) \
|
||||||
$(RUNOPTS) \
|
$(RUNOPTS) \
|
||||||
--size=$(SIZE) \
|
--size=$(SIZE) \
|
||||||
int > /var/spec2006/result/speed.log; kill -2 $$(ps aux | grep btrace | grep -v grep | awk '{print $$2}')
|
int > /var/spec2006/result/speed.log; kill -2 $$(pgrep btrace) || true
|
||||||
|
@btrace /usr/share/btrace/kprofile.bt > /tmp/dummy & sleep 2 && kill -2 $$(pgrep btrace) || true
|
||||||
|
|
||||||
all: rate
|
all: rate speed
|
||||||
|
@echo ▒ $$(date "+%H:%M:%S") SPECINT2006 complete
|
||||||
|
Loading…
Reference in New Issue
Block a user