Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plumb in extra instrumentation mode iterations runners flags. #367

Merged
merged 1 commit into from
Feb 7, 2018

Conversation

vext01
Copy link
Member

@vext01 vext01 commented Jan 29, 2018

DO NOT MERGE.

This is the beginning of a fix for #366

We pass two extra flags to the iterations runners only if we are in instrumentation mode. Those flags are:

  • A benchmark key: e.g. nbody:PyPy:default-python.
  • The "key process execution exec index".

The plumbing on this one hurt my head. We will need to run some more tests, probably using the warmup experiment.

Before I go and update all of the other iterations runners, is this what we want?

@vext01
Copy link
Member Author

vext01 commented Jan 29, 2018

If this is what we want, I'll also add a test for: next_exec_key_index() in the manifest.

@snim2
Copy link
Collaborator

snim2 commented Jan 29, 2018

Before I read the diff, @vext01 I'm pretty sure that we don't have any Travis tests with instrumentation. Would it be prohibitively slow to add one?

@vext01
Copy link
Member Author

vext01 commented Jan 29, 2018

We could add one for the legacy instrumentation interface (not using these flags). Is that what you mean?

@snim2
Copy link
Collaborator

snim2 commented Jan 29, 2018

Yes, and then adapt it to the new API so we can check for problems.

@vext01
Copy link
Member Author

vext01 commented Jan 29, 2018

Perhaps eventually, but I don't want to port the legacy instrumentation over just yet, as I've got bigger fish to fry right now.

@snim2
Copy link
Collaborator

snim2 commented Jan 29, 2018

Sure, I'm just concerned that we're going to have a bunch of PRs that incrementally change or add to the instrumentation framework and we're not testing it at all.

# The new instrumentation switches are unused here, as the PyPy
# instrumentation code uses the legacy instrumentation framework. We
# still check the right number of args is passed.
if num_args != 8:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe make 8 and 6 variables here?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, it's hardly worth it in this case. Do you feel strongly?

counting for until we find the first outstanding (O) record.

Instead, this method does a pass over the manifest searching for
records whose key is `self.next_exec_key`.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this very clear explanation!

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. It took a while to get the wording right on this one!

krun/vm_defs.py Outdated
@@ -222,10 +222,16 @@ def _run_exec(self, args, heap_lim_k, stack_lim_k, bench_env_changes=None,
# Tack on the instrumentation flag
# All runners accept this flag, even if instrumentation is not
# implemented for the VM in question.
#print(key)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Debug code still in here.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hah, oops.

@vext01
Copy link
Member Author

vext01 commented Jan 29, 2018

@fsfod Is this interface sufficient for you?

@fsfod
Copy link
Contributor

fsfod commented Jan 29, 2018

I'm in the process of adapting the my iterations_runner to test it it. I think it should be enough,

@vext01
Copy link
Member Author

vext01 commented Jan 29, 2018

OK, I'll wait to see the outcome before I carry on.

@fsfod
Copy link
Contributor

fsfod commented Jan 29, 2018

@vext01 I guess i also needed the instrumentation data directory path and the directory needs to be created before the first benchmark is run. I also had permission issues with the iterations_runner writing to the instr_data directory.

@vext01
Copy link
Member Author

vext01 commented Jan 30, 2018

Can you show me the invocation and the error please?

@fsfod
Copy link
Contributor

fsfod commented Jan 30, 2018

@vext01 Heres the start of the log with the 2 things i was talking about.

Click to expand log text
[2018-01-30 18:44:49: DEBUG] Attached log file: luajit.log
[2018-01-30 18:44:49: DEBUG] Krun invoked with arguments: ['../krun/krun.py', '--no-pstate-check', '--no-tickless-check', '--quick', '--debug', 'debug', 'luajit.krun']
[2018-01-30 18:44:49: DEBUG] Check virt-what is installed
[2018-01-30 18:44:49: DEBUG] libkrun is working with 0 cores for per-core counters
[2018-01-30 18:44:49: DEBUG] Detected temperature sensors: {'amdgpu:1:temp1_input': '/sys/class/hwmon/hwmon0/temp1_input', 'nct6776:7:temp8_input': '/sys/class/hwmon/hwmon2/temp8_input', 'coretemp:5:temp2_input': '/sys/class/hwmon/hwmon1/temp2_input', 'coretemp:5:temp1_input': '/sys/class/hwmon/hwmon1/temp1_input', 'nct6776:7:temp10_input': '/sys/class/hwmon/hwmon2/temp10_input', 'nct6776:7:temp2_input': '/sys/class/hwmon/hwmon2/temp2_input', 'nct6776:7:temp3_input': '/sys/class/hwmon/hwmon2/temp3_input', 'coretemp:5:temp4_input': '/sys/class/hwmon/hwmon1/temp4_input', 'nct6776:7:temp1_input': '/sys/class/hwmon/hwmon2/temp1_input', 'coretemp:5:temp3_input': '/sys/class/hwmon/hwmon1/temp3_input', 'coretemp:5:temp5_input': '/sys/class/hwmon/hwmon1/temp5_input', 'nct6776:7:temp7_input': '/sys/class/hwmon/hwmon2/temp7_input', 'nct6776:7:temp9_input': '/sys/class/hwmon/hwmon2/temp9_input'}
[2018-01-30 18:44:49: DEBUG] execute shell cmd: grep -c ^processor  /proc/cpuinfo
[2018-01-30 18:44:49: DEBUG] Loading kernel module: msr
[2018-01-30 18:44:49: DEBUG] execute shell cmd: /usr/bin/sudo -u root modprobe msr
[2018-01-30 18:44:49: DEBUG] Checking platform preliminaries
[2018-01-30 18:44:49: DEBUG] Check isolcpus not in use
[2018-01-30 18:44:49: DEBUG] create/check/remove cset shield
[2018-01-30 18:44:49: DEBUG] Checking CPU governor for CPU0
[2018-01-30 18:44:49: DEBUG] Checking CPU governor for CPU1
[2018-01-30 18:44:49: DEBUG] Checking CPU governor for CPU2
[2018-01-30 18:44:49: DEBUG] Checking CPU governor for CPU3
[2018-01-30 18:44:49: DEBUG] Checking CPU governor for CPU4
[2018-01-30 18:44:49: DEBUG] Checking CPU governor for CPU5
[2018-01-30 18:44:49: DEBUG] Checking CPU governor for CPU6
[2018-01-30 18:44:49: DEBUG] Checking CPU governor for CPU7
[2018-01-30 18:44:49: DEBUG] Checking CPU scaler for CPU0
[2018-01-30 18:44:49: WARNING] Ignoring enabled P-states (--no-pstate-check)
[2018-01-30 18:44:49: DEBUG] Checking ASLR is on
[2018-01-30 18:44:49: DEBUG] Checking if dmesg buffer is restricted
[2018-01-30 18:44:49: DEBUG] execute shell cmd: /usr/bin/sudo cat /proc/sys/kernel/dmesg_restrict
[2018-01-30 18:44:49: DEBUG] /proc/sys/kernel/dmesg_restrict: 0
[2018-01-30 18:44:49: DEBUG] execute shell cmd: /usr/bin/sudo -u root /usr/sbin/virt-what
[2018-01-30 18:44:49: DEBUG] detect-virt: 
[2018-01-30 18:44:49: DEBUG] execute shell cmd: uname -a
[2018-01-30 18:44:49: DEBUG] execute shell cmd: dmesg
[2018-01-30 18:44:49: DEBUG] execute shell cmd: sh -c 'cd /work/krun/krun && git rev-parse --verify HEAD'
[2018-01-30 18:44:49: DEBUG] execute shell cmd: cat /proc/cpuinfo
[2018-01-30 18:44:49: DEBUG] execute shell cmd: dpkg-query -l
[2018-01-30 18:44:49: DEBUG] execute shell cmd: cat /etc/debian_version
[2018-01-30 18:44:49: DEBUG] capnproto_decode:RaptorJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] jsonlua_encode:RaptorJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] series:RaptorJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] luacheck:RaptorJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] fannkuch_redux:RaptorJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] luacheck_parser:RaptorJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] richards:RaptorJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] fasta:RaptorJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] capnproto_encode:RaptorJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] md5:RaptorJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] luafun:RaptorJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] binarytrees:RaptorJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] jsonlua_decode:RaptorJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] nbody:RaptorJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] spectralnorm:RaptorJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] capnproto_decode:NoJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] jsonlua_encode:NoJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] series:NoJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] luacheck:NoJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] fannkuch_redux:NoJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] luacheck_parser:NoJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] richards:NoJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] fasta:NoJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] capnproto_encode:NoJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] md5:NoJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] luafun:NoJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] binarytrees:NoJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] jsonlua_decode:NoJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] nbody:NoJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] spectralnorm:NoJIT:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] capnproto_decode:GC64:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] jsonlua_encode:GC64:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] series:GC64:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] luacheck:GC64:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] fannkuch_redux:GC64:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] luacheck_parser:GC64:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] richards:GC64:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] fasta:GC64:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] capnproto_encode:GC64:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] md5:GC64:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] luafun:GC64:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] binarytrees:GC64:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] jsonlua_decode:GC64:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] nbody:GC64:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] spectralnorm:GC64:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] capnproto_decode:DualNum:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] jsonlua_encode:DualNum:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] series:DualNum:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] luacheck:DualNum:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] fannkuch_redux:DualNum:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] luacheck_parser:DualNum:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] richards:DualNum:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] fasta:DualNum:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] capnproto_encode:DualNum:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] md5:DualNum:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] luafun:DualNum:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] binarytrees:DualNum:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] jsonlua_decode:DualNum:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] nbody:DualNum:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] spectralnorm:DualNum:default-lua is in skip list. Not scheduling.
[2018-01-30 18:44:49: DEBUG] Writing manifest to luajit.manifest
[2018-01-30 18:44:49: DEBUG] Reading status cookie from luajit.manifest
[2018-01-30 18:44:49: INFO] Wait 60 secs to allow system to cool prior to collecting initial temperature readings
[2018-01-30 18:44:49: WARNING] SIMULATED: `time.sleep(60)` (--quick)
[2018-01-30 18:44:49: DEBUG] Taking fresh initial temperature readings
[2018-01-30 18:44:49: DEBUG] Set start temperatures: {'amdgpu:1:temp1_input': 19.0, 'nct6776:7:temp8_input': 0.0, 'coretemp:5:temp2_input': 33.0, 'nct6776:7:temp10_input': 0.0, 'coretemp:5:temp1_input': 33.0, 'nct6776:7:temp3_input': 26.0, 'coretemp:5:temp4_input': 26.0, 'nct6776:7:temp2_input': -60.0, 'coretemp:5:temp3_input': 29.0, 'coretemp:5:temp5_input': 22.0, 'nct6776:7:temp7_input': 23.0, 'nct6776:7:temp9_input': 0.0, 'nct6776:7:temp1_input': 27.0}
[2018-01-30 18:44:49: DEBUG] Reading status cookie from luajit.manifest
[2018-01-30 18:44:49: DEBUG] Writing results out to: luajit_results.json.bz2
[2018-01-30 18:44:49: DEBUG] Benchmarking started.
Logging to luajit.log
[2018-01-30 18:44:49: DEBUG] Increment reboot count in manifest
[2018-01-30 18:44:49: DEBUG] Reading status cookie from luajit.manifest
[2018-01-30 18:44:49: DEBUG] Reading status cookie from luajit.manifest
[2018-01-30 18:44:49: DEBUG] about to execute reboot: 1, expecting 30 in total.
[2018-01-30 18:44:49: WARNING] SIMULATED: reboot (--hardware-reboots is OFF)
[2018-01-30 18:44:49: DEBUG] Simulated reboot with args: ../krun/krun.py --no-pstate-check --no-tickless-check --quick --debug debug luajit.krun
[2018-01-30 18:44:49: DEBUG] close logging handler: <logging.StreamHandler object at 0x7f3caa4fc590>
[2018-01-30 18:44:49: DEBUG] close logging handler: <logging.FileHandler object at 0x7f3caa4eff90>
[2018-01-30 18:44:49: DEBUG] Attached log file: luajit.log
[2018-01-30 18:44:49: DEBUG] Krun invoked with arguments: ['../krun/krun.py', '--no-pstate-check', '--no-tickless-check', '--quick', '--debug', 'debug', 'luajit.krun']
[2018-01-30 18:44:49: DEBUG] Check virt-what is installed
[2018-01-30 18:44:50: DEBUG] libkrun is working with 0 cores for per-core counters
[2018-01-30 18:44:50: DEBUG] Detected temperature sensors: {'amdgpu:1:temp1_input': '/sys/class/hwmon/hwmon0/temp1_input', 'nct6776:7:temp8_input': '/sys/class/hwmon/hwmon2/temp8_input', 'coretemp:5:temp2_input': '/sys/class/hwmon/hwmon1/temp2_input', 'coretemp:5:temp1_input': '/sys/class/hwmon/hwmon1/temp1_input', 'nct6776:7:temp10_input': '/sys/class/hwmon/hwmon2/temp10_input', 'nct6776:7:temp2_input': '/sys/class/hwmon/hwmon2/temp2_input', 'nct6776:7:temp3_input': '/sys/class/hwmon/hwmon2/temp3_input', 'coretemp:5:temp4_input': '/sys/class/hwmon/hwmon1/temp4_input', 'nct6776:7:temp1_input': '/sys/class/hwmon/hwmon2/temp1_input', 'coretemp:5:temp3_input': '/sys/class/hwmon/hwmon1/temp3_input', 'coretemp:5:temp5_input': '/sys/class/hwmon/hwmon1/temp5_input', 'nct6776:7:temp7_input': '/sys/class/hwmon/hwmon2/temp7_input', 'nct6776:7:temp9_input': '/sys/class/hwmon/hwmon2/temp9_input'}
[2018-01-30 18:44:50: DEBUG] execute shell cmd: grep -c ^processor  /proc/cpuinfo
[2018-01-30 18:44:50: DEBUG] Loading kernel module: msr
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u root modprobe msr
[2018-01-30 18:44:50: DEBUG] Checking platform preliminaries
[2018-01-30 18:44:50: DEBUG] Check isolcpus not in use
[2018-01-30 18:44:50: DEBUG] create/check/remove cset shield
[2018-01-30 18:44:50: DEBUG] Checking CPU governor for CPU0
[2018-01-30 18:44:50: DEBUG] Checking CPU governor for CPU1
[2018-01-30 18:44:50: DEBUG] Checking CPU governor for CPU2
[2018-01-30 18:44:50: DEBUG] Checking CPU governor for CPU3
[2018-01-30 18:44:50: DEBUG] Checking CPU governor for CPU4
[2018-01-30 18:44:50: DEBUG] Checking CPU governor for CPU5
[2018-01-30 18:44:50: DEBUG] Checking CPU governor for CPU6
[2018-01-30 18:44:50: DEBUG] Checking CPU governor for CPU7
[2018-01-30 18:44:50: DEBUG] Checking CPU scaler for CPU0
[2018-01-30 18:44:50: WARNING] Ignoring enabled P-states (--no-pstate-check)
[2018-01-30 18:44:50: DEBUG] Checking ASLR is on
[2018-01-30 18:44:50: DEBUG] Checking if dmesg buffer is restricted
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo cat /proc/sys/kernel/dmesg_restrict
[2018-01-30 18:44:50: DEBUG] /proc/sys/kernel/dmesg_restrict: 0
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u root /usr/sbin/virt-what
[2018-01-30 18:44:50: DEBUG] detect-virt: 
[2018-01-30 18:44:50: DEBUG] execute shell cmd: uname -a
[2018-01-30 18:44:50: DEBUG] execute shell cmd: dmesg
[2018-01-30 18:44:50: DEBUG] execute shell cmd: sh -c 'cd /work/krun/krun && git rev-parse --verify HEAD'
[2018-01-30 18:44:50: DEBUG] execute shell cmd: cat /proc/cpuinfo
[2018-01-30 18:44:50: DEBUG] execute shell cmd: dpkg-query -l
[2018-01-30 18:44:50: DEBUG] execute shell cmd: cat /etc/debian_version
[2018-01-30 18:44:50: DEBUG] Using pre-recorded initial temperature readings
[2018-01-30 18:44:50: DEBUG] Reading status cookie from luajit.manifest
[2018-01-30 18:44:50: DEBUG] Set start temperatures: {'amdgpu:1:temp1_input': 19.0, 'nct6776:7:temp8_input': 0.0, 'coretemp:5:temp2_input': 33.0, 'nct6776:7:temp10_input': 0.0, 'coretemp:5:temp1_input': 33.0, 'nct6776:7:temp3_input': 26.0, 'coretemp:5:temp4_input': 26.0, 'nct6776:7:temp2_input': -60.0, 'coretemp:5:temp3_input': 29.0, 'coretemp:5:temp5_input': 22.0, 'nct6776:7:temp7_input': 23.0, 'nct6776:7:temp9_input': 0.0, 'nct6776:7:temp1_input': 27.0}
[2018-01-30 18:44:50: DEBUG] Running sanity checks
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'capnproto_decode:RaptorJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'capnproto_decode:NoJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'capnproto_decode:GC64:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'capnproto_decode:DualNum:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'capnproto_decode:Normal:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'jsonlua_encode:RaptorJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'jsonlua_encode:NoJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'jsonlua_encode:GC64:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'jsonlua_encode:DualNum:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'jsonlua_encode:Normal:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'series:RaptorJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'series:NoJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'series:GC64:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'series:DualNum:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'series:Normal:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'luacheck:RaptorJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'luacheck:NoJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'luacheck:GC64:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'luacheck:DualNum:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'luacheck:Normal:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'fannkuch_redux:RaptorJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'fannkuch_redux:NoJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'fannkuch_redux:GC64:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'fannkuch_redux:DualNum:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'fannkuch_redux:Normal:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'luacheck_parser:RaptorJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'luacheck_parser:NoJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'luacheck_parser:GC64:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'luacheck_parser:DualNum:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'luacheck_parser:Normal:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'richards:RaptorJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'richards:NoJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'richards:GC64:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'richards:DualNum:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'richards:Normal:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'fasta:RaptorJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'fasta:NoJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'fasta:GC64:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'fasta:DualNum:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'fasta:Normal:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'capnproto_encode:RaptorJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'capnproto_encode:NoJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'capnproto_encode:GC64:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'capnproto_encode:DualNum:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'capnproto_encode:Normal:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'md5:RaptorJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'md5:NoJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'md5:GC64:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'md5:DualNum:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'md5:Normal:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'luafun:RaptorJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'luafun:NoJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'luafun:GC64:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'luafun:DualNum:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'luafun:Normal:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'binarytrees:RaptorJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'binarytrees:NoJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'binarytrees:GC64:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'binarytrees:DualNum:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'binarytrees:Normal:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'jsonlua_decode:RaptorJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'jsonlua_decode:NoJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'jsonlua_decode:GC64:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'jsonlua_decode:DualNum:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'jsonlua_decode:Normal:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'nbody:RaptorJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'nbody:NoJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'nbody:GC64:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'nbody:DualNum:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'nbody:Normal:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'spectralnorm:RaptorJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'spectralnorm:NoJIT:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'spectralnorm:GC64:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'spectralnorm:DualNum:default-lua'
[2018-01-30 18:44:50: DEBUG] Sanity check files for 'spectralnorm:Normal:default-lua'
[2018-01-30 18:44:50: DEBUG] VM 'RaptorJIT' is not used, not sanity checking.
[2018-01-30 18:44:50: DEBUG] VM 'NoJIT' is not used, not sanity checking.
[2018-01-30 18:44:50: DEBUG] VM 'GC64' is not used, not sanity checking.
[2018-01-30 18:44:50: DEBUG] VM 'DualNum' is not used, not sanity checking.
[2018-01-30 18:44:50: DEBUG] Running VM sanity check for 'Normal'
[2018-01-30 18:44:50: DEBUG] Running platform sanity checks
[2018-01-30 18:44:50: DEBUG] running 'UNIX user change' sanity check
[2018-01-30 18:44:50: DEBUG] Delete krun user
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u root userdel -r -f krun
[2018-01-30 18:44:50: DEBUG] Create krun user
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u root useradd -m krun
[2018-01-30 18:44:50: DEBUG] Writing out wrapper script to /tmp/krunwrapper-aP5raN.dash
[2018-01-30 18:44:50: DEBUG] Wrapper script:
#!/bin/dash
ENVLOG=`env`
ulimit -d 1048576 || exit $?
ulimit -s 8192 || exit $?
env PATH=/bin:/usr/bin LD_LIBRARY_PATH=/work/krun/krun/../libkrun /usr/bin/python2.7 /work/krun/iterations_runners/iterations_runner.py /work/krun/krun/../platform_sanity_checks/check_user_change.py 1 666 1 0
echo "${ENVLOG}" > /tmp/envlog-SbIxBI.env
exit $?
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u root chown krun /tmp/envlog-SbIxBI.env
[2018-01-30 18:44:50: DEBUG] Execute wrapper: /usr/bin/sudo -u root /usr/bin/nice -n -20 /usr/bin/sudo -u krun /bin/dash /tmp/krunwrapper-aP5raN.dash
[2018-01-30 18:44:50: INFO] stderr: [iterations_runner.py] iteration 1/1
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u krun rm /tmp/envlog-SbIxBI.env
[2018-01-30 18:44:50: DEBUG] running 'Process priority' sanity check
[2018-01-30 18:44:50: DEBUG] Delete krun user
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u root userdel -r -f krun
[2018-01-30 18:44:50: DEBUG] Create krun user
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u root useradd -m krun
[2018-01-30 18:44:50: DEBUG] Writing out wrapper script to /tmp/krunwrapper-vGybe9.dash
[2018-01-30 18:44:50: DEBUG] Wrapper script:
#!/bin/dash
ENVLOG=`env`
ulimit -d 1048576 || exit $?
ulimit -s 8192 || exit $?
env PATH=/bin:/usr/bin LD_LIBRARY_PATH=/work/krun/krun/../libkrun /work/krun/iterations_runners/iterations_runner_c /work/krun/krun/../platform_sanity_checks/check_nice_priority.so 1 666 1 0
echo "${ENVLOG}" > /tmp/envlog-ocaE_B.env
exit $?
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u root chown krun /tmp/envlog-ocaE_B.env
[2018-01-30 18:44:50: DEBUG] Execute wrapper: /usr/bin/sudo -u root /usr/bin/nice -n -20 /usr/bin/sudo -u krun /bin/dash /tmp/krunwrapper-vGybe9.dash
[2018-01-30 18:44:50: INFO] stderr: [iterations_runner.c] iteration 1/1
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u krun rm /tmp/envlog-ocaE_B.env
[2018-01-30 18:44:50: DEBUG] running 'CPU affinity' sanity check
[2018-01-30 18:44:50: DEBUG] Delete krun user
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u root userdel -r -f krun
[2018-01-30 18:44:50: DEBUG] Create krun user
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u root useradd -m krun
[2018-01-30 18:44:50: DEBUG] Writing out wrapper script to /tmp/krunwrapper-Ikmxzf.dash
[2018-01-30 18:44:50: DEBUG] Wrapper script:
#!/bin/dash
ENVLOG=`env`
ulimit -d 1048576 || exit $?
ulimit -s 8192 || exit $?
env PATH=/bin:/usr/bin LD_LIBRARY_PATH=/work/krun/krun/../libkrun /work/krun/iterations_runners/iterations_runner_c /work/krun/krun/../platform_sanity_checks/check_linux_cpu_affinity_not_pinned.so 1 666 1 0
echo "${ENVLOG}" > /tmp/envlog-YA6N5W.env
exit $?
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u root chown krun /tmp/envlog-YA6N5W.env
[2018-01-30 18:44:50: DEBUG] Execute wrapper: /usr/bin/sudo -u root /usr/bin/nice -n -20 /usr/bin/sudo -u krun /bin/dash /tmp/krunwrapper-Ikmxzf.dash
[2018-01-30 18:44:50: INFO] stderr: [iterations_runner.c] iteration 1/1
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u krun rm /tmp/envlog-YA6N5W.env
[2018-01-30 18:44:50: DEBUG] running 'Scheduler' sanity check
[2018-01-30 18:44:50: DEBUG] Delete krun user
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u root userdel -r -f krun
[2018-01-30 18:44:50: DEBUG] Create krun user
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u root useradd -m krun
[2018-01-30 18:44:50: DEBUG] Writing out wrapper script to /tmp/krunwrapper-6yXfG2.dash
[2018-01-30 18:44:50: DEBUG] Wrapper script:
#!/bin/dash
ENVLOG=`env`
ulimit -d 1048576 || exit $?
ulimit -s 8192 || exit $?
env PATH=/bin:/usr/bin LD_LIBRARY_PATH=/work/krun/krun/../libkrun /work/krun/iterations_runners/iterations_runner_c /work/krun/krun/../platform_sanity_checks/check_linux_scheduler.so 1 666 1 0
echo "${ENVLOG}" > /tmp/envlog-WbSxd3.env
exit $?
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u root chown krun /tmp/envlog-WbSxd3.env
[2018-01-30 18:44:50: DEBUG] Execute wrapper: /usr/bin/sudo -u root /usr/bin/nice -n -20 /usr/bin/sudo -u krun /bin/dash /tmp/krunwrapper-6yXfG2.dash
[2018-01-30 18:44:50: INFO] stderr: [iterations_runner.c] iteration 1/1
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u krun rm /tmp/envlog-WbSxd3.env
[2018-01-30 18:44:50: DEBUG] Reading status cookie from luajit.manifest
[2018-01-30 18:44:50: DEBUG] execute shell cmd: dmesg
[2018-01-30 18:44:50: WARNING] Not waiting for temperature sensors (--quick)
[2018-01-30 18:44:50: DEBUG] Reading status cookie from luajit.manifest
[2018-01-30 18:44:50: DEBUG] Delete krun user
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u root userdel -r -f krun
[2018-01-30 18:44:50: DEBUG] Create krun user
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u root useradd -m krun
[2018-01-30 18:44:50: DEBUG] Writing out wrapper script to /tmp/krunwrapper-bLJ4II.dash
[2018-01-30 18:44:50: DEBUG] Wrapper script:
#!/bin/dash
ENVLOG=`env`
ulimit -d 2097152 || exit $?
ulimit -s 8192 || exit $?
env PATH=/bin:/usr/bin LUA_PATH="/work/lua_benchmarking/lualibs/?/init.lua;/work/lua_benchmarking/lualibs/?.lua;/work/lua_benchmarking/lualibs/?/?.lua;""/work/lua_benchmarking/builds/normal/?/init.lua;/work/lua_benchmarking/builds/normal/?.lua;/work/lua_benchmarking/builds/normal/?/?.lua;" LD_LIBRARY_PATH=/work/krun/krun/../libkrun builds/normal/luajit iterations_runner.lua /work/lua_benchmarking/benchmarks/capnproto_decode/bench.lua 10 400 1 1 capnproto_decode:Normal:default-lua 0
echo "${ENVLOG}" > /tmp/envlog-_3f83J.env
exit $?
[2018-01-30 18:44:50: DEBUG] execute shell cmd: /usr/bin/sudo -u root chown krun /tmp/envlog-_3f83J.env
[2018-01-30 18:44:50: DEBUG] Execute wrapper: /usr/bin/sudo -u root /usr/bin/nice -n -20 /usr/bin/sudo -u krun /bin/dash /tmp/krunwrapper-bLJ4II.dash
[2018-01-30 18:44:50: DEBUG] sync disks...
[2018-01-30 18:44:50: WARNING] SIMULATED: `time.sleep(30)` (--quick)
[2018-01-30 18:44:52: ERROR] Benchmark returned non-zero or emitted invalid JSON.
Exception string: No JSON object could be decoded
return code: 0
stdout:
--------------------------------------------------

--------------------------------------------------

stderr:
--------------------------------------------------
[iterations_runner.lua] iteration 1/10
[iterations_runner.lua] iteration 2/10
[iterations_runner.lua] iteration 3/10
[iterations_runner.lua] iteration 4/10
[iterations_runner.lua] iteration 5/10
[iterations_runner.lua] iteration 6/10
[iterations_runner.lua] iteration 7/10
[iterations_runner.lua] iteration 8/10
[iterations_runner.lua] iteration 9/10
[iterations_runner.lua] iteration 10/10
JITLog pathcapnproto_decode_Normal_default-lua_0.jlog
builds/normal/luajit: iterations_runner.lua:185: Failed to save JITLog. last error -2
stack traceback:
	[C]: in function 'save'
	iterations_runner.lua:185: in main chunk
	[C]: at 0x563ac2ef4f00

--------------------------------------------------

[2018-01-30 18:44:52: INFO] Finished 'capnproto_decode(400)' (default-lua variant) under 'Normal'
[2018-01-30 18:44:52: DEBUG] execute shell cmd: /usr/bin/sudo -u krun rm /tmp/envlog-_3f83J.env
[2018-01-30 18:44:52: DEBUG] Update manifest flag: E
[2018-01-30 18:44:52: DEBUG] Reading status cookie from luajit.manifest
[2018-01-30 18:44:52: DEBUG] Reading status cookie from luajit.manifest
[2018-01-30 18:44:52: DEBUG] execute shell cmd: dmesg
[2018-01-30 18:44:52: DEBUG] Writing results out to: luajit_results.json.bz2
[2018-01-30 18:44:52: INFO] Estimated completion (whole session): ????-??-?? ??:??:?? (?:??:?? from now)
[2018-01-30 18:44:52: INFO] 29 executions left in scheduler queue
[2018-01-30 18:44:52: INFO] Executions until ETA known: 74
[2018-01-30 18:44:52: INFO] Next execution is 'jsonlua_encode(10)' (default-lua variant) under 'Normal'
[2018-01-30 18:44:52: INFO] Estimated completion (next execution): 2018-01-30 18:44:54 (0:00:01 from now)
[2018-01-30 18:44:52: INFO] Reboot in preparation for next execution
[2018-01-30 18:44:52: DEBUG] Increment reboot count in manifest
[2018-01-30 18:44:52: DEBUG] Reading status cookie from luajit.manifest
[2018-01-30 18:44:52: DEBUG] Reading status cookie from luajit.manifest
[2018-01-30 18:44:52: DEBUG] about to execute reboot: 2, expecting 30 in total.
[2018-01-30 18:44:52: WARNING] SIMULATED: reboot (--hardware-reboots is OFF)
[2018-01-30 18:44:52: DEBUG] Simulated reboot with args: ../krun/krun.py --no-pstate-check --no-tickless-check --quick --debug debug luajit.krun
[2018-01-30 18:44:52: DEBUG] close logging handler: <logging.StreamHandler object at 0x7f835b26b590>
[2018-01-30 18:44:52: DEBUG] close logging handler: <logging.FileHandler object at 0x7f835b25ef90>
[2018-01-30 18:44:52: DEBUG] Attached log file: luajit.log
[2018-01-30 18:44:52: DEBUG] Krun invoked with arguments: ['../krun/krun.py', '--no-pstate-check', '--no-tickless-check', '--quick', '--debug', 'debug', 'luajit.krun']
[2018-01-30 18:44:52: DEBUG] Check virt-what is installed
[2018-01-30 18:44:52: DEBUG] libkrun is working with 0 cores for per-core counters
[2018-01-30 18:44:52: DEBUG] Detected temperature sensors: {'amdgpu:1:temp1_input': '/sys/class/hwmon/hwmon0/temp1_input', 'nct6776:7:temp8_input': '/sys/class/hwmon/hwmon2/temp8_input', 'coretemp:5:temp2_input': '/sys/class/hwmon/hwmon1/temp2_input', 'coretemp:5:temp1_input': '/sys/class/hwmon/hwmon1/temp1_input', 'nct6776:7:temp10_input': '/sys/class/hwmon/hwmon2/temp10_input', 'nct6776:7:temp2_input': '/sys/class/hwmon/hwmon2/temp2_input', 'nct6776:7:temp3_input': '/sys/class/hwmon/hwmon2/temp3_input', 'coretemp:5:temp4_input': '/sys/class/hwmon/hwmon1/temp4_input', 'nct6776:7:temp1_input': '/sys/class/hwmon/hwmon2/temp1_input', 'coretemp:5:temp3_input': '/sys/class/hwmon/hwmon1/temp3_input', 'coretemp:5:temp5_input': '/sys/class/hwmon/hwmon1/temp5_input', 'nct6776:7:temp7_input': '/sys/class/hwmon/hwmon2/temp7_input', 'nct6776:7:temp9_input': '/sys/class/hwmon/hwmon2/temp9_input'}
[2018-01-30 18:44:52: DEBUG] execute shell cmd: grep -c ^processor  /proc/cpuinfo
[2018-01-30 18:44:52: DEBUG] Loading kernel module: msr
[2018-01-30 18:44:52: DEBUG] execute shell cmd: /usr/bin/sudo -u root modprobe msr
[2018-01-30 18:44:52: DEBUG] Checking platform preliminaries
[2018-01-30 18:44:52: DEBUG] Check isolcpus not in use
[2018-01-30 18:44:52: DEBUG] create/check/remove cset shield
[2018-01-30 18:44:52: DEBUG] Checking CPU governor for CPU0
[2018-01-30 18:44:52: DEBUG] Checking CPU governor for CPU1
[2018-01-30 18:44:52: DEBUG] Checking CPU governor for CPU2
[2018-01-30 18:44:52: DEBUG] Checking CPU governor for CPU3
[2018-01-30 18:44:52: DEBUG] Checking CPU governor for CPU4
[2018-01-30 18:44:52: DEBUG] Checking CPU governor for CPU5
[2018-01-30 18:44:52: DEBUG] Checking CPU governor for CPU6
[2018-01-30 18:44:52: DEBUG] Checking CPU governor for CPU7
[2018-01-30 18:44:52: DEBUG] Checking CPU scaler for CPU0
[2018-01-30 18:44:52: WARNING] Ignoring enabled P-states (--no-pstate-check)
[2018-01-30 18:44:52: DEBUG] Checking ASLR is on
[2018-01-30 18:44:52: DEBUG] Checking if dmesg buffer is restricted
[2018-01-30 18:44:52: DEBUG] execute shell cmd: /usr/bin/sudo cat /proc/sys/kernel/dmesg_restrict
[2018-01-30 18:44:52: DEBUG] /proc/sys/kernel/dmesg_restrict: 0
[2018-01-30 18:44:52: DEBUG] execute shell cmd: /usr/bin/sudo -u root /usr/sbin/virt-what
[2018-01-30 18:44:52: DEBUG] detect-virt: 
[2018-01-30 18:44:52: DEBUG] execute shell cmd: uname -a
[2018-01-30 18:44:52: DEBUG] execute shell cmd: dmesg
[2018-01-30 18:44:52: DEBUG] execute shell cmd: sh -c 'cd /work/krun/krun && git rev-parse --verify HEAD'
[2018-01-30 18:44:52: DEBUG] execute shell cmd: cat /proc/cpuinfo
[2018-01-30 18:44:52: DEBUG] execute shell cmd: dpkg-query -l
[2018-01-30 18:44:52: DEBUG] execute shell cmd: cat /etc/debian_version
[2018-01-30 18:44:52: DEBUG] Using pre-recorded initial temperature readings
[2018-01-30 18:44:52: DEBUG] Reading status cookie from luajit.manifest
[2018-01-30 18:44:52: DEBUG] Set start temperatures: {'amdgpu:1:temp1_input': 19.0, 'nct6776:7:temp8_input': 0.0, 'coretemp:5:temp2_input': 33.0, 'nct6776:7:temp10_input': 0.0, 'coretemp:5:temp1_input': 33.0, 'nct6776:7:temp3_input': 26.0, 'coretemp:5:temp4_input': 26.0, 'nct6776:7:temp2_input': -60.0, 'coretemp:5:temp3_input': 29.0, 'coretemp:5:temp5_input': 22.0, 'nct6776:7:temp7_input': 23.0, 'nct6776:7:temp9_input': 0.0, 'nct6776:7:temp1_input': 27.0}
[2018-01-30 18:44:52: DEBUG] Running sanity checks
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'capnproto_decode:RaptorJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'capnproto_decode:NoJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'capnproto_decode:GC64:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'capnproto_decode:DualNum:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'capnproto_decode:Normal:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'jsonlua_encode:RaptorJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'jsonlua_encode:NoJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'jsonlua_encode:GC64:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'jsonlua_encode:DualNum:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'jsonlua_encode:Normal:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'series:RaptorJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'series:NoJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'series:GC64:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'series:DualNum:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'series:Normal:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'luacheck:RaptorJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'luacheck:NoJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'luacheck:GC64:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'luacheck:DualNum:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'luacheck:Normal:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'fannkuch_redux:RaptorJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'fannkuch_redux:NoJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'fannkuch_redux:GC64:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'fannkuch_redux:DualNum:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'fannkuch_redux:Normal:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'luacheck_parser:RaptorJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'luacheck_parser:NoJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'luacheck_parser:GC64:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'luacheck_parser:DualNum:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'luacheck_parser:Normal:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'richards:RaptorJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'richards:NoJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'richards:GC64:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'richards:DualNum:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'richards:Normal:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'fasta:RaptorJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'fasta:NoJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'fasta:GC64:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'fasta:DualNum:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'fasta:Normal:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'capnproto_encode:RaptorJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'capnproto_encode:NoJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'capnproto_encode:GC64:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'capnproto_encode:DualNum:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'capnproto_encode:Normal:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'md5:RaptorJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'md5:NoJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'md5:GC64:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'md5:DualNum:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'md5:Normal:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'luafun:RaptorJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'luafun:NoJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'luafun:GC64:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'luafun:DualNum:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'luafun:Normal:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'binarytrees:RaptorJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'binarytrees:NoJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'binarytrees:GC64:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'binarytrees:DualNum:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'binarytrees:Normal:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'jsonlua_decode:RaptorJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'jsonlua_decode:NoJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'jsonlua_decode:GC64:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'jsonlua_decode:DualNum:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'jsonlua_decode:Normal:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'nbody:RaptorJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'nbody:NoJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'nbody:GC64:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'nbody:DualNum:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'nbody:Normal:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'spectralnorm:RaptorJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'spectralnorm:NoJIT:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'spectralnorm:GC64:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'spectralnorm:DualNum:default-lua'
[2018-01-30 18:44:52: DEBUG] Sanity check files for 'spectralnorm:Normal:default-lua'
[2018-01-30 18:44:52: DEBUG] VM 'RaptorJIT' is not used, not sanity checking.
[2018-01-30 18:44:52: DEBUG] VM 'NoJIT' is not used, not sanity checking.
[2018-01-30 18:44:52: DEBUG] VM 'GC64' is not used, not sanity checking.
[2018-01-30 18:44:52: DEBUG] VM 'DualNum' is not used, not sanity checking.
[2018-01-30 18:44:52: DEBUG] Running VM sanity check for 'Normal'
[2018-01-30 18:44:52: DEBUG] Running platform sanity checks
[2018-01-30 18:44:52: DEBUG] running 'UNIX user change' sanity check
[2018-01-30 18:44:52: DEBUG] Delete krun user
[2018-01-30 18:44:52: DEBUG] execute shell cmd: /usr/bin/sudo -u root userdel -r -f krun
[2018-01-30 18:44:52: DEBUG] Create krun user
[2018-01-30 18:44:52: DEBUG] execute shell cmd: /usr/bin/sudo -u root useradd -m krun
[2018-01-30 18:44:52: DEBUG] Writing out wrapper script to /tmp/krunwrapper-F3AYfR.dash
[2018-01-30 18:44:52: DEBUG] Wrapper script:
#!/bin/dash
ENVLOG=`env`
ulimit -d 1048576 || exit $?
ulimit -s 8192 || exit $?
env PATH=/bin:/usr/bin LD_LIBRARY_PATH=/work/krun/krun/../libkrun /usr/bin/python2.7 /work/krun/iterations_runners/iterations_runner.py /work/krun/krun/../platform_sanity_checks/check_user_change.py 1 666 1 0
echo "${ENVLOG}" > /tmp/envlog-vSclkO.env
exit $?
[2018-01-30 18:44:52: DEBUG] execute shell cmd: /usr/bin/sudo -u root chown krun /tmp/envlog-vSclkO.env
[2018-01-30 18:44:52: DEBUG] Execute wrapper: /usr/bin/sudo -u root /usr/bin/nice -n -20 /usr/bin/sudo -u krun /bin/dash /tmp/krunwrapper-F3AYfR.dash
[2018-01-30 18:44:52: INFO] stderr: [iterations_runner.py] iteration 1/1
[2018-01-30 18:44:52: DEBUG] execute shell cmd: /usr/bin/sudo -u krun rm /tmp/envlog-vSclkO.env
[2018-01-30 18:44:52: DEBUG] running 'Process priority' sanity check
[2018-01-30 18:44:52: DEBUG] Delete krun user
[2018-01-30 18:44:52: DEBUG] execute shell cmd: /usr/bin/sudo -u root userdel -r -f krun
[2018-01-30 18:44:52: DEBUG] Create krun user
[2018-01-30 18:44:52: DEBUG] execute shell cmd: /usr/bin/sudo -u root useradd -m krun
[2018-01-30 18:44:52: DEBUG] Writing out wrapper script to /tmp/krunwrapper-toXDQt.dash
[2018-01-30 18:44:52: DEBUG] Wrapper script:
#!/bin/dash
ENVLOG=`env`
ulimit -d 1048576 || exit $?
ulimit -s 8192 || exit $?
env PATH=/bin:/usr/bin LD_LIBRARY_PATH=/work/krun/krun/../libkrun /work/krun/iterations_runners/iterations_runner_c /work/krun/krun/../platform_sanity_checks/check_nice_priority.so 1 666 1 0
echo "${ENVLOG}" > /tmp/envlog-zW0as2.env
exit $?
[2018-01-30 18:44:52: DEBUG] execute shell cmd: /usr/bin/sudo -u root chown krun /tmp/envlog-zW0as2.env
[2018-01-30 18:44:52: DEBUG] Execute wrapper: /usr/bin/sudo -u root /usr/bin/nice -n -20 /usr/bin/sudo -u krun /bin/dash /tmp/krunwrapper-toXDQt.dash
[2018-01-30 18:44:52: INFO] stderr: [iterations_runner.c] iteration 1/1
[2018-01-30 18:44:52: DEBUG] execute shell cmd: /usr/bin/sudo -u krun rm /tmp/envlog-zW0as2.env
[2018-01-30 18:44:52: DEBUG] running 'CPU affinity' sanity check
[2018-01-30 18:44:52: DEBUG] Delete krun user
[2018-01-30 18:44:52: DEBUG] execute shell cmd: /usr/bin/sudo -u root userdel -r -f krun
[2018-01-30 18:44:52: DEBUG] Create krun user
[2018-01-30 18:44:52: DEBUG] execute shell cmd: /usr/bin/sudo -u root useradd -m krun
[2018-01-30 18:44:52: DEBUG] Writing out wrapper script to /tmp/krunwrapper-Oq8KgL.dash
[2018-01-30 18:44:52: DEBUG] Wrapper script:
#!/bin/dash
ENVLOG=`env`
ulimit -d 1048576 || exit $?
ulimit -s 8192 || exit $?
env PATH=/bin:/usr/bin LD_LIBRARY_PATH=/work/krun/krun/../libkrun /work/krun/iterations_runners/iterations_runner_c /work/krun/krun/../platform_sanity_checks/check_linux_cpu_affinity_not_pinned.so 1 666 1 0
echo "${ENVLOG}" > /tmp/envlog-eWSDUU.env
exit $?
[2018-01-30 18:44:52: DEBUG] execute shell cmd: /usr/bin/sudo -u root chown krun /tmp/envlog-eWSDUU.env
[2018-01-30 18:44:52: DEBUG] Execute wrapper: /usr/bin/sudo -u root /usr/bin/nice -n -20 /usr/bin/sudo -u krun /bin/dash /tmp/krunwrapper-Oq8KgL.dash
[2018-01-30 18:44:52: INFO] stderr: [iterations_runner.c] iteration 1/1
[2018-01-30 18:44:52: DEBUG] execute shell cmd: /usr/bin/sudo -u krun rm /tmp/envlog-eWSDUU.env
[2018-01-30 18:44:52: DEBUG] running 'Scheduler' sanity check
[2018-01-30 18:44:52: DEBUG] Delete krun user
[2018-01-30 18:44:52: DEBUG] execute shell cmd: /usr/bin/sudo -u root userdel -r -f krun
[2018-01-30 18:44:53: DEBUG] Create krun user
[2018-01-30 18:44:53: DEBUG] execute shell cmd: /usr/bin/sudo -u root useradd -m krun
[2018-01-30 18:44:53: DEBUG] Writing out wrapper script to /tmp/krunwrapper-Q0JqjG.dash
[2018-01-30 18:44:53: DEBUG] Wrapper script:
#!/bin/dash
ENVLOG=`env`
ulimit -d 1048576 || exit $?
ulimit -s 8192 || exit $?
env PATH=/bin:/usr/bin LD_LIBRARY_PATH=/work/krun/krun/../libkrun /work/krun/iterations_runners/iterations_runner_c /work/krun/krun/../platform_sanity_checks/check_linux_scheduler.so 1 666 1 0
echo "${ENVLOG}" > /tmp/envlog-GjG9mz.env
exit $?
[2018-01-30 18:44:53: DEBUG] execute shell cmd: /usr/bin/sudo -u root chown krun /tmp/envlog-GjG9mz.env
[2018-01-30 18:44:53: DEBUG] Execute wrapper: /usr/bin/sudo -u root /usr/bin/nice -n -20 /usr/bin/sudo -u krun /bin/dash /tmp/krunwrapper-Q0JqjG.dash
[2018-01-30 18:44:53: INFO] stderr: [iterations_runner.c] iteration 1/1
[2018-01-30 18:44:53: DEBUG] execute shell cmd: /usr/bin/sudo -u krun rm /tmp/envlog-GjG9mz.env
[2018-01-30 18:44:53: DEBUG] Reading status cookie from luajit.manifest
[2018-01-30 18:44:53: DEBUG] execute shell cmd: dmesg
[2018-01-30 18:44:53: WARNING] Not waiting for temperature sensors (--quick)
[2018-01-30 18:44:53: DEBUG] Reading status cookie from luajit.manifest
[2018-01-30 18:44:53: DEBUG] Delete krun user
[2018-01-30 18:44:53: DEBUG] execute shell cmd: /usr/bin/sudo -u root userdel -r -f krun
[2018-01-30 18:44:53: DEBUG] Create krun user
[2018-01-30 18:44:53: DEBUG] execute shell cmd: /usr/bin/sudo -u root useradd -m krun
[2018-01-30 18:44:53: DEBUG] Writing out wrapper script to /tmp/krunwrapper-BTkkVZ.dash
[2018-01-30 18:44:53: DEBUG] Wrapper script:
#!/bin/dash
ENVLOG=`env`
ulimit -d 2097152 || exit $?
ulimit -s 8192 || exit $?
env PATH=/bin:/usr/bin LUA_PATH="/work/lua_benchmarking/lualibs/?/init.lua;/work/lua_benchmarking/lualibs/?.lua;/work/lua_benchmarking/lualibs/?/?.lua;""/work/lua_benchmarking/builds/normal/?/init.lua;/work/lua_benchmarking/builds/normal/?.lua;/work/lua_benchmarking/builds/normal/?/?.lua;" LD_LIBRARY_PATH=/work/krun/krun/../libkrun builds/normal/luajit iterations_runner.lua /work/lua_benchmarking/benchmarks/jsonlua_encode/bench.lua 10 10 1 1 jsonlua_encode:Normal:default-lua 0
echo "${ENVLOG}" > /tmp/envlog-iXRkFf.env
exit $?
[2018-01-30 18:44:53: DEBUG] execute shell cmd: /usr/bin/sudo -u root chown krun /tmp/envlog-iXRkFf.env
[2018-01-30 18:44:53: DEBUG] Execute wrapper: /usr/bin/sudo -u root /usr/bin/nice -n -20 /usr/bin/sudo -u krun /bin/dash /tmp/krunwrapper-BTkkVZ.dash
[2018-01-30 18:44:53: DEBUG] sync disks...
[2018-01-30 18:44:53: WARNING] SIMULATED: `time.sleep(30)` (--quick)
[2018-01-30 18:44:54: ERROR] Benchmark returned non-zero or emitted invalid JSON.
Exception string: No JSON object could be decoded
return code: 0
stdout:
--------------------------------------------------

--------------------------------------------------

stderr:
--------------------------------------------------
[iterations_runner.lua] iteration 1/10
[iterations_runner.lua] iteration 2/10
[iterations_runner.lua] iteration 3/10
[iterations_runner.lua] iteration 4/10
[iterations_runner.lua] iteration 5/10
[iterations_runner.lua] iteration 6/10
[iterations_runner.lua] iteration 7/10
[iterations_runner.lua] iteration 8/10
[iterations_runner.lua] iteration 9/10
[iterations_runner.lua] iteration 10/10
JITLog pathjsonlua_encode_Normal_default-lua_0.jlog
builds/normal/luajit: iterations_runner.lua:185: Failed to save JITLog. last error -13
stack traceback:
	[C]: in function 'save'
	iterations_runner.lua:185: in main chunk
	[C]: at 0x5590d50abf00

--------------------------------------------------

[2018-01-30 18:44:54: INFO] Finished 'jsonlua_encode(10)' (default-lua variant) under 'Normal'

@vext01
Copy link
Member Author

vext01 commented Feb 1, 2018

builds/normal/luajit: iterations_runner.lua:185: Failed to save JITLog. last error -2
stack traceback:
	[C]: in function 'save'
	iterations_runner.lua:185: in main chunk
	[C]: at 0x563ac2ef4f00

OK, I think I know what is happening here. Bear with me, I have a couple of other PRs to look at, then I'll be back onto this.

@vext01
Copy link
Member Author

vext01 commented Feb 1, 2018

The problem is in this code:

krun/krun/util.py

Lines 441 to 457 in 30d9c6b

def dump_instr_json(key, exec_num, config, instr_data):
"""Write per-execution instrumentation data to a separate JSON file"""
instr_json_dir = get_instr_json_dir(config)
if not os.path.exists(instr_json_dir):
os.mkdir(instr_json_dir)
filename = "%s__%s.json.bz2" % (key.replace(":", "__"), exec_num)
path = os.path.join(instr_json_dir, filename)
# The directory was checked to be non-existant when the benchmark session
# started, so it follows that the instrumentation JSON file (each of which
# is written at most once) should not exist either. If it does, the user
# did something strange.
assert not os.path.exists(path)
with BZ2File(path, "w") as fh:
fh.write(json.dumps(instr_data))

Krun is running as a different user to the iterations runners, so the directory doesn't have the right permissions.

We can either:

  • Have it create the directory with looser permissions.
  • Have your iterations runners log into somewhere in /tmp and have krun copy it in later.

The former is simpler, so I think we should try this first. Any thoughts @fsfod ?

@vext01
Copy link
Member Author

vext01 commented Feb 1, 2018

The last commit shows how that would work.

Also killed the debug code.

@fsfod
Copy link
Contributor

fsfod commented Feb 1, 2018

I'm not really a fan of the copy method but at least the first two errors are fixed now. I still need to somehow get the instrumentation directory path in the runner. I can't keep it hard coded because its based on the krun file name

@vext01
Copy link
Member Author

vext01 commented Feb 1, 2018

Yes, I was thinking about his too. I recommenced we replace the 0/1 instrumentation flag with a path. Would that work?

@vext01
Copy link
Member Author

vext01 commented Feb 1, 2018

[Also I need to fix the tests]

@fsfod
Copy link
Contributor

fsfod commented Feb 1, 2018

That could work for me would it be an empty string otherwise?

@vext01
Copy link
Member Author

vext01 commented Feb 1, 2018

If we put all of the instrumentation flags on the end, we can assume the existence of more flags to mean that instrumentation mode is on.

@vext01
Copy link
Member Author

vext01 commented Feb 1, 2018

Try this.

So the new switches format is like this:

usage: iterations_runner.py <benchmark> <# of iterations> <benchmark param>
<debug flag> [instrumentation dir] [key] [key pexec index]
Arguments in [] are supplied for instrumentation mode only. If an
"instrumentaion dir" is supplied, then instrumentation mode is assumed.

Makes sense?

If it looks good, I'll implement the same for the other runners.

@fsfod
Copy link
Contributor

fsfod commented Feb 1, 2018

yes, I have it all working correctly now with the latest changes, but krun is also still producing empty json files in the instrumentation directory

@vext01
Copy link
Member Author

vext01 commented Feb 1, 2018

Yeah, it will do for now.

Once we port the PyPy and JVM instrumentation across(#359), we can kill that.

@vext01
Copy link
Member Author

vext01 commented Feb 2, 2018

I'm going to implement the new switch structure for the other runners today.

@vext01
Copy link
Member Author

vext01 commented Feb 2, 2018

This is almost ready to go, but I'd like to run it under "production" conditions, i.e. using the warmup experiment.

I don't have a free Debian 8 machine to hand, so I may have to set up a VM or an old laptop or something.

@vext01
Copy link
Member Author

vext01 commented Feb 2, 2018

I may be able to test on Debian 9 without MSR support using the VMs in the apt repo...

@vext01
Copy link
Member Author

vext01 commented Feb 5, 2018

I'm going to test this in a debian 8 VM today.

@vext01
Copy link
Member Author

vext01 commented Feb 7, 2018

And finally tested. Found some bugs in the JS runner.

Looks good? OK to squash?

int
main(int argc, char **argv)
{
char *krun_benchmark = 0;
int krun_total_iters = 0, krun_param = 0, krun_iter_num = 0;
int krun_debug = 0, krun_num_cores = 0, krun_core;
int krun_debug = 0, krun_num_cores = 0, krun_core, krun_instrument = 0;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason behind not initialising krun_core?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can do, although it will be initialised before its first use in the loop header:

for (krun_core = 0; krun_core < krun_num_cores; krun_core++) {

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, it just seems weird to be the odd one out on that line.

def usage():
print(__doc__)
sys.exit(1)

# main
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this comment necessary?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

probably not :P

@snim2
Copy link
Collaborator

snim2 commented Feb 7, 2018

OK, a couple of extremely minor things. It warms my heart to see some new tests.

@vext01
Copy link
Member Author

vext01 commented Feb 7, 2018

I don't think I made any new tests, but we could test next_exec_key_index() actually.

@snim2
Copy link
Collaborator

snim2 commented Feb 7, 2018

That sounds like a good idea.

@vext01
Copy link
Member Author

vext01 commented Feb 7, 2018

Here we are. Found a documentation bug in doing so.

Ready for squash?

@snim2
Copy link
Collaborator

snim2 commented Feb 7, 2018

If there's nothing else we can sensibly test then yes, please squash!

@vext01
Copy link
Member Author

vext01 commented Feb 7, 2018

I think when we come to re-write the existing instrumentation we can write some more tests, but not at this moment.

Passes extra arguments to the iterations runner which is then expected
to write directly into the instrumentation directory.

Before Krun would scrape stderr from the pipe it opens to the iterations
runner, before dumping it into a file on behalf of the runner. That code
still exists as we have instrumentation using it, however, this should
be ported to the new API soon.
@vext01 vext01 force-pushed the runners-more-info branch from f38d6b2 to 7d4e626 Compare February 7, 2018 16:13
@vext01
Copy link
Member Author

vext01 commented Feb 7, 2018

Splat.

@snim2 snim2 merged commit 2e69fd4 into master Feb 7, 2018
@snim2 snim2 deleted the runners-more-info branch February 7, 2018 16:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants