From 319d2be1af40c7b8d925377ab5e6893b4123dfa7 Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Thu, 12 Mar 2020 11:38:40 +0100 Subject: [PATCH] seoul: add vm_stress script version Issue #3683 --- repos/ports/run/seoul-auto.run | 3 + repos/ports/run/seoul-disc.run | 3 + repos/ports/run/seoul-fancy.run | 3 + repos/ports/run/seoul-genode.run | 3 + repos/ports/run/seoul-kernelbuild.run | 3 + repos/ports/run/seoul-net.run | 3 + repos/ports/run/seoul.inc | 93 ++++++++++++- repos/ports/run/vm_stress_seoul-debian32.run | 138 +++++++++++++++++++ repos/ports/run/vmm_vm_stress.inc | 2 +- tool/autopilot.list | 1 + 10 files changed, 246 insertions(+), 6 deletions(-) create mode 100644 repos/ports/run/vm_stress_seoul-debian32.run diff --git a/repos/ports/run/seoul-auto.run b/repos/ports/run/seoul-auto.run index bb7ecb314..0303ed77f 100644 --- a/repos/ports/run/seoul-auto.run +++ b/repos/ports/run/seoul-auto.run @@ -25,9 +25,12 @@ set use_genode_iso 0 set use_model_ahci 0 set use_model_ide 0 +set use_block_vdi 0 set use_block_ram 0 set use_block_sata 0 +set use_part_block 0 + set use_nic_session 1 set use_nic_bridge 0 diff --git a/repos/ports/run/seoul-disc.run b/repos/ports/run/seoul-disc.run index 8448b55c4..9b38aec3b 100644 --- a/repos/ports/run/seoul-disc.run +++ b/repos/ports/run/seoul-disc.run @@ -12,9 +12,12 @@ set use_genode_iso 0 set use_model_ahci 1 set use_model_ide 0 +set use_block_vdi 0 set use_block_ram 1 set use_block_sata 0 +set use_part_block 0 + set use_nic_session 1 set use_nic_bridge 0 diff --git a/repos/ports/run/seoul-fancy.run b/repos/ports/run/seoul-fancy.run index e757b763e..10a83aef6 100644 --- a/repos/ports/run/seoul-fancy.run +++ b/repos/ports/run/seoul-fancy.run @@ -15,9 +15,12 @@ set use_genode_iso 0 set use_model_ahci 0 set use_model_ide 0 +set use_block_vdi 0 set use_block_ram 0 set use_block_sata 0 +set use_part_block 0 + set use_nic_session 1 set use_nic_bridge 1 diff --git a/repos/ports/run/seoul-genode.run b/repos/ports/run/seoul-genode.run index 746ac00ae..e66abd22e 100644 --- a/repos/ports/run/seoul-genode.run +++ b/repos/ports/run/seoul-genode.run @@ -13,9 +13,12 @@ set use_genode_iso 1 set use_model_ahci 1 set use_model_ide 0 +set use_block_vdi 0 set use_block_ram 0 set use_block_sata 0 +set use_part_block 0 + set use_nic_session 1 set use_nic_bridge 0 diff --git a/repos/ports/run/seoul-kernelbuild.run b/repos/ports/run/seoul-kernelbuild.run index 5168d7796..e91f5a4c8 100644 --- a/repos/ports/run/seoul-kernelbuild.run +++ b/repos/ports/run/seoul-kernelbuild.run @@ -19,9 +19,12 @@ set use_genode_iso 0 set use_model_ahci 0 set use_model_ide 0 +set use_block_vdi 0 set use_block_ram 0 set use_block_sata 0 +set use_part_block 0 + set use_nic_session 0 set use_nic_bridge 0 diff --git a/repos/ports/run/seoul-net.run b/repos/ports/run/seoul-net.run index 74cd0c96a..4973ce55a 100644 --- a/repos/ports/run/seoul-net.run +++ b/repos/ports/run/seoul-net.run @@ -12,9 +12,12 @@ set use_genode_iso 0 set use_model_ahci 0 set use_model_ide 0 +set use_block_vdi 0 set use_block_ram 0 set use_block_sata 0 +set use_part_block 0 + set use_nic_session 1 set use_nic_bridge 0 diff --git a/repos/ports/run/seoul.inc b/repos/ports/run/seoul.inc index 1c7b51192..7bd04d211 100644 --- a/repos/ports/run/seoul.inc +++ b/repos/ports/run/seoul.inc @@ -5,11 +5,24 @@ # \author Alexander Boettcher # \date 2011-11-21 +set use_fs_rump $use_block_vdi +set use_drv_ahci [expr $use_block_vdi || $use_block_sata] + create_boot_directory import_from_depot [depot_user]/src/[base_src] \ [depot_user]/src/init \ [depot_user]/src/nitpicker + +if {$use_fs_rump} { + import_from_depot [depot_user]/src/vfs \ + [depot_user]/src/rump +} + +if {$use_part_block} { + import_from_depot [depot_user]/src/part_block +} + # # Build # @@ -54,9 +67,10 @@ set build_components { if {$use_fancy_stuff} { set use_framebuffer 1 } +lappend_if $use_block_vdi build_components server/vdi_block lappend_if $use_usb build_components drivers/usb lappend_if $use_block_ram build_components server/ram_block -lappend_if $use_block_sata build_components drivers/ahci +lappend_if $use_drv_ahci build_components drivers/ahci lappend_if $use_nic_session build_components drivers/nic lappend_if $use_nic_bridge build_components server/nic_bridge lappend_if $use_framebuffer build_components drivers/framebuffer @@ -162,7 +176,7 @@ close $vm_cfg_fd # Generate Genode config # -append config { +set config { @@ -202,12 +216,38 @@ append_if [expr !$use_usb] config { } -append_if $use_block_sata config { +append_if $use_drv_ahci config { + } + +append_if [expr $use_block_sata && !$use_part_block] config { + } + +append_if [expr $use_block_vdi && !$use_part_block] config { + } + +append_if [expr $use_block_vdi && $use_part_block] config { + } + +append_if [expr $use_block_sata && $use_part_block] config { + } + +append_if $use_drv_ahci config { + + } + +append_if $use_part_block config { + + + + + + - + + } @@ -218,6 +258,44 @@ append_if $use_block_ram config { } +append_if $use_fs_rump config { + + + + + + + + + + + + } + +append_if [expr $use_fs_rump && $use_part_block] config { + } +append_if [expr $use_fs_rump && !$use_part_block] config { + } + +append_if $use_fs_rump config { + + + } + +append_if $use_block_vdi config { + + + + + + + + + + + + } + append_if $use_genode_iso config { @@ -292,6 +370,10 @@ append_if $use_genode_iso config { } +append_if $use_block_vdi config { + } +append_if [expr $use_block_sata && $use_part_block] config { + } append config { @@ -437,10 +519,11 @@ set boot_modules { vm_seoul.cfg } +lappend_if $use_block_vdi boot_modules vdi_block lappend_if [expr !$use_usb] boot_modules ps2_drv lappend_if $use_usb boot_modules usb_drv lappend_if $use_block_ram boot_modules ram_block -lappend_if $use_block_sata boot_modules ahci_drv +lappend_if $use_drv_ahci boot_modules ahci_drv lappend_if $use_nic_session boot_modules ipxe_nic_drv lappend_if $use_nic_bridge boot_modules nic_bridge lappend_if $use_framebuffer boot_modules vesa_fb_drv diff --git a/repos/ports/run/vm_stress_seoul-debian32.run b/repos/ports/run/vm_stress_seoul-debian32.run new file mode 100644 index 000000000..a74b276b5 --- /dev/null +++ b/repos/ports/run/vm_stress_seoul-debian32.run @@ -0,0 +1,138 @@ +# +# \brief Seoul on Genode - boot from a vdi or raw +# \author Alexander Boettcher +# \date 2020-03-12 +# + +assert_spec x86 + +if { [get_cmd_switch --autopilot] && [have_spec x86_32] } { + puts "Run script does not support autopilot mode on 32 bit" + exit 0 +} + +if { [get_cmd_switch --autopilot] && [have_include power_on/qemu] } { + puts "\n Run script is not supported on this platform. \n"; + exit 0 +} + +#if {[have_spec foc] || [have_spec sel4] || [have_spec nova]} { +if {[have_spec nova]} { +} else { + puts "\n Run script is not supported on this platform. \n"; + exit 0 +} + +set use_multiboot 0 +set use_genode_iso 0 +set use_model_ahci 1 +set use_model_ide 0 + +set use_block_vdi 0 +set use_block_ram 0 +set use_block_sata 1 + +set use_part_block [expr ![have_include power_on/qemu]] + +set use_nic_session 1 +set use_nic_bridge 0 + +set use_usb 0 + +set use_framebuffer 1 +set use_fancy_stuff 0 +set use_top 0 + +set memory_vmm_vm "512M" + +set vcpus_to_be_used 2 + +if {[have_include power_on/qemu]} { + + if {![file exists bin/seoul-disc.raw]} { + if {![file exists bin/seoul_stress32.vdi]} { + puts "Please provide a disk image file to bin/seoul_stress32.vdi" + exit 1 + } + +# if {![file exists bin/seoul_stress32.raw]} { +# puts "Please provide a disk image file to bin/seoul_stress32.raw" +# exit 1 +# } + + set mke2fs [installed_command mke2fs] + set dd [installed_command dd] + +# catch { exec $dd if=/dev/zero of=bin/seoul-disc.raw bs=1M count=12000 } + catch { exec $dd if=/dev/zero of=bin/seoul-disc.raw bs=1M count=6000 } + catch { exec $mke2fs -F bin/seoul-disc.raw } + + exec [installed_command e2cp] bin/seoul_stress32.vdi bin/seoul-disc.raw:seoul_stress32.vdi +# exec [installed_command e2cp] bin/seoul_stress32.raw bin/seoul-disc.raw:seoul_stress32.raw + } + + append qemu_args " -m 2536 " + append qemu_args " -cpu phenom" + + append qemu_args " -drive id=disk,file=bin/seoul-disc.raw,format=raw,if=none" + append qemu_args " -device ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0" + + run_genode_until forever + exit +} + +set match_guest_log "\[init -\> seoul\].*VMM: #" +set match_guest_down "\[init -\> seoul\].*VMM: STANDBY IMMEDIATE" +set match_boot_string "--- Seoul VMM starting ---" +set vmm_name "seoul" + +set vcpus_to_be_used 1 +set use_vcpus $vcpus_to_be_used +lappend results_expected 1 10 35 76 +lappend boottime_expected 54 +source ${genode_dir}/repos/ports/run/seoul.inc +source ${genode_dir}/repos/ports/run/vmm_vm_stress.inc +run_genode_until $match_guest_down 20 [output_spawn_id] +kill_spawned [output_spawn_id] + +set vcpus_to_be_used 2 +set use_vcpus $vcpus_to_be_used +lappend results_expected 2 10 38 47 +lappend boottime_expected 54 +source ${genode_dir}/repos/ports/run/seoul.inc +source ${genode_dir}/repos/ports/run/vmm_vm_stress.inc +run_genode_until $match_guest_down 20 [output_spawn_id] +kill_spawned [output_spawn_id] + +set vcpus_to_be_used 3 +set use_vcpus $vcpus_to_be_used +lappend results_expected 3 10 39 38 +lappend boottime_expected 54 +source ${genode_dir}/repos/ports/run/seoul.inc +source ${genode_dir}/repos/ports/run/vmm_vm_stress.inc +run_genode_until $match_guest_down 20 [output_spawn_id] +kill_spawned [output_spawn_id] + +set vcpus_to_be_used 4 +set use_vcpus $vcpus_to_be_used +lappend results_expected 4 10 36 34 +lappend boottime_expected 54 +source ${genode_dir}/repos/ports/run/seoul.inc +source ${genode_dir}/repos/ports/run/vmm_vm_stress.inc +run_genode_until $match_guest_down 20 [output_spawn_id] +kill_spawned [output_spawn_id] + +# +# Dump aggregated output of the several runs above +# +grep_output "$match_guest_log.*cpus=" + +puts $output + +set merge_host_output [split $output_host "\n"] +set merge_host_extra [split $output_host_extra "\n"] +for { set i 0 } { $i < [llength $merge_host_output] } { incr i} { + puts "[lindex $merge_host_output $i] [lindex $merge_host_extra $i]" +} + +evaluate_stress diff --git a/repos/ports/run/vmm_vm_stress.inc b/repos/ports/run/vmm_vm_stress.inc index 0f5b316dc..b405733a5 100644 --- a/repos/ports/run/vmm_vm_stress.inc +++ b/repos/ports/run/vmm_vm_stress.inc @@ -9,7 +9,7 @@ if {[get_cmd_switch --autopilot] && $current_date != "Sat" && $current_date != " run_genode_until $match_boot_string 40 set t_vm_boot_start [clock seconds] -run_genode_until "$match_guest_log.*git clone" 70 [output_spawn_id] +run_genode_until "$match_guest_log.*git clone" 90 [output_spawn_id] set t_vm_git_clone [clock seconds] run_genode_until "$match_guest_log.*prepare ports" 70 [output_spawn_id] set t_vm_prepare_ports [clock seconds] diff --git a/tool/autopilot.list b/tool/autopilot.list index cf25885ff..836291ef9 100644 --- a/tool/autopilot.list +++ b/tool/autopilot.list @@ -80,6 +80,7 @@ vbox5_win7_64_raw vbox5_win7_64_share vm_stress_vbox5-debian32 vm_stress_vbox5-debian64 +vm_stress_seoul-debian32 verify vfs_import vmm_arm