mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-21 03:55:04 +00:00
parent
6359445a8e
commit
8be72b0be1
@ -16,6 +16,8 @@ set use_ram_fs 1
|
||||
# However read initial overlay from disk
|
||||
set use_overlay_from_disk 1
|
||||
|
||||
set use_serial 0
|
||||
|
||||
set use_usb 1
|
||||
set use_ps2 [have_spec ps2]
|
||||
|
||||
|
@ -16,6 +16,8 @@ set use_ram_fs 1
|
||||
# However read initial overlay from disk
|
||||
set use_overlay_from_disk 1
|
||||
|
||||
set use_serial 0
|
||||
|
||||
set use_usb 1
|
||||
set use_ps2 [have_spec ps2]
|
||||
|
||||
|
@ -16,6 +16,8 @@ set use_ram_fs 1
|
||||
# However read initial overlay from disk
|
||||
set use_overlay_from_disk 1
|
||||
|
||||
set use_serial 0
|
||||
|
||||
set use_usb 1
|
||||
set use_ps2 [have_spec ps2]
|
||||
|
||||
|
@ -16,6 +16,8 @@ set use_ram_fs 1
|
||||
# However read initial overlay from disk
|
||||
set use_overlay_from_disk 1
|
||||
|
||||
set use_serial 0
|
||||
|
||||
set use_usb 1
|
||||
set use_ps2 [have_spec ps2]
|
||||
|
||||
|
@ -24,6 +24,8 @@ set use_ram_fs 1
|
||||
# However read initial overlay from disk
|
||||
set use_overlay_from_disk 1
|
||||
|
||||
set use_serial 0
|
||||
|
||||
set use_usb 1
|
||||
set use_ps2 [have_spec ps2]
|
||||
|
||||
|
@ -16,6 +16,8 @@ set use_ram_fs 1
|
||||
# However read initial overlay from disk
|
||||
set use_overlay_from_disk 1
|
||||
|
||||
set use_serial 0
|
||||
|
||||
set use_usb 1
|
||||
set use_ps2 [have_spec ps2]
|
||||
|
||||
|
@ -16,6 +16,8 @@ set use_ram_fs 1
|
||||
# However read initial overlay from disk
|
||||
set use_overlay_from_disk 1
|
||||
|
||||
set use_serial 0
|
||||
|
||||
set use_usb 1
|
||||
set use_ps2 [have_spec ps2]
|
||||
|
||||
|
@ -16,6 +16,8 @@ set use_ram_fs 1
|
||||
# However read initial overlay from disk
|
||||
set use_overlay_from_disk 1
|
||||
|
||||
set use_serial 0
|
||||
|
||||
set use_usb 1
|
||||
set use_ps2 [have_spec ps2]
|
||||
|
||||
|
@ -16,6 +16,8 @@ set use_ram_fs 1
|
||||
# However read initial overlay from disk
|
||||
set use_overlay_from_disk 1
|
||||
|
||||
set use_serial 0
|
||||
|
||||
set use_usb 1
|
||||
set use_ps2 [have_spec ps2]
|
||||
|
||||
|
@ -16,6 +16,8 @@ set use_ram_fs 1
|
||||
# However read initial overlay from disk
|
||||
set use_overlay_from_disk 1
|
||||
|
||||
set use_serial 0
|
||||
|
||||
set use_usb 1
|
||||
set use_ps2 [have_spec ps2]
|
||||
|
||||
|
@ -16,6 +16,8 @@ set use_ram_fs 1
|
||||
# However read initial overlay from disk
|
||||
set use_overlay_from_disk 1
|
||||
|
||||
set use_serial 0
|
||||
|
||||
set use_usb 1
|
||||
set use_ps2 [have_spec ps2]
|
||||
|
||||
|
@ -16,6 +16,8 @@ set use_ram_fs 1
|
||||
# However read initial overlay from disk
|
||||
set use_overlay_from_disk 1
|
||||
|
||||
set use_serial 0
|
||||
|
||||
set use_usb 1
|
||||
set use_ps2 [have_spec ps2]
|
||||
|
||||
|
@ -27,6 +27,8 @@ set use_ram_fs 1
|
||||
# However read initial overlay from disk
|
||||
set use_overlay_from_disk 1
|
||||
|
||||
set use_serial 0
|
||||
|
||||
set use_usb 1
|
||||
set use_ps2 [have_spec ps2]
|
||||
|
||||
|
@ -15,6 +15,8 @@ set use_rumpfs 0
|
||||
set use_ram_fs 0
|
||||
set use_overlay_from_disk 0
|
||||
|
||||
set use_serial 0
|
||||
|
||||
set use_usb 1
|
||||
set use_ps2 [have_spec ps2]
|
||||
|
||||
|
@ -13,6 +13,8 @@ set use_overlay_from_disk 1
|
||||
set overlay_image "overlay_${flavor}.vdi"
|
||||
set use_rumpfs 1
|
||||
|
||||
set use_serial 0
|
||||
|
||||
set use_usb 1
|
||||
set use_ps2 [have_spec ps2]
|
||||
|
||||
|
@ -234,6 +234,8 @@ for { set i 1} { $i <= $use_vms } { incr i} {
|
||||
<dir name="dev">
|
||||
<log/> <rtc/>}
|
||||
|
||||
append_if [expr $use_serial] config_of_app { <terminal/> }
|
||||
|
||||
append_if [expr !$use_rumpfs] config_of_app {
|
||||
<block name="sda3" label="raw" block_buffer_count="128" />}
|
||||
append config_of_app {
|
||||
@ -280,6 +282,10 @@ source ${genode_dir}/repos/ports/run/virtualbox_auto.inc
|
||||
# copy vbox configuration to bin directory
|
||||
exec cp ${genode_dir}/repos/ports/run/${vbox_file} bin/.
|
||||
|
||||
if {[info exists use_vcpus]} {
|
||||
exec sed -i "s/CPU count=\".*\"/CPU count=\"${use_vcpus}\"/g" bin/${vbox_file}
|
||||
}
|
||||
|
||||
if {!$use_rumpfs} {
|
||||
exec cp ${genode_dir}/repos/ports/run/${raw_image} bin/.
|
||||
}
|
||||
@ -292,27 +298,29 @@ build_boot_image $boot_modules
|
||||
set wait_timeout 70
|
||||
if {[have_spec foc]} { set wait_timeout 120 }
|
||||
|
||||
run_genode_until {\[init -\> vbox.*].*Guest Additions capability report:.*seamless: no, hostWindowMapping: no, graphics: no} $wait_timeout
|
||||
if {!$use_serial} {
|
||||
run_genode_until {\[init -\> vbox.*].*Guest Additions capability report:.*seamless: no, hostWindowMapping: no, graphics: no} $wait_timeout
|
||||
|
||||
# run_genode_until forever 0 [output_spawn_id]
|
||||
# run_genode_until forever 0 [output_spawn_id]
|
||||
|
||||
if {$use_rumpfs} {
|
||||
set wait_timeout 170
|
||||
for { set i 1 } { $i <= $use_vms } { incr i } {
|
||||
if { [string match "ubuntu*" $flavor] || [string match "win10*" $flavor] } {
|
||||
run_genode_until {\[init -\> vbox.*].*Guest Additions capability report:.*seamless: yes, hostWindowMapping: no, graphics: no} $wait_timeout [output_spawn_id]
|
||||
} else {
|
||||
run_genode_until {\[init -\> vbox.*].*Guest Additions capability report:.*seamless: yes, hostWindowMapping: no, graphics: yes} $wait_timeout [output_spawn_id]
|
||||
if {$use_rumpfs} {
|
||||
set wait_timeout 170
|
||||
for { set i 1 } { $i <= $use_vms } { incr i } {
|
||||
if { [string match "ubuntu*" $flavor] || [string match "win10*" $flavor] } {
|
||||
run_genode_until {\[init -\> vbox.*].*Guest Additions capability report:.*seamless: yes, hostWindowMapping: no, graphics: no} $wait_timeout [output_spawn_id]
|
||||
} else {
|
||||
run_genode_until {\[init -\> vbox.*].*Guest Additions capability report:.*seamless: yes, hostWindowMapping: no, graphics: yes} $wait_timeout [output_spawn_id]
|
||||
}
|
||||
}
|
||||
} else {
|
||||
run_genode_until {\[init\] child "vbox1" exited with exit value 0} 60 [output_spawn_id]
|
||||
# give block driver bit time to write data to disk
|
||||
sleep 5
|
||||
}
|
||||
} else {
|
||||
run_genode_until {\[init\] child "vbox1" exited with exit value 0} 60 [output_spawn_id]
|
||||
# give block driver bit time to write data to disk
|
||||
sleep 5
|
||||
}
|
||||
|
||||
# cleanup bin directory - remove vbox file
|
||||
exec rm bin/${vbox_file}
|
||||
if {!$use_rumpfs} {
|
||||
exec rm bin/${raw_image}
|
||||
# cleanup bin directory - remove vbox file
|
||||
exec rm bin/${vbox_file}
|
||||
if {!$use_rumpfs} {
|
||||
exec rm bin/${raw_image}
|
||||
}
|
||||
}
|
||||
|
@ -36,6 +36,7 @@ append build_components {
|
||||
drivers/framebuffer
|
||||
}
|
||||
|
||||
lappend_if [expr $use_serial] build_components server/log_terminal
|
||||
lappend_if [expr $use_rumpfs] build_components lib/vfs/rump
|
||||
lappend_if [expr $use_rumpfs] build_components server/vfs
|
||||
lappend_if [expr $use_vbox5] build_components virtualbox5
|
||||
@ -57,6 +58,12 @@ append_platform_drv_build_components
|
||||
|
||||
build $build_components
|
||||
|
||||
if {$use_rumpfs && !$use_ram_fs} {
|
||||
set rump_writable true
|
||||
} else {
|
||||
set rump_writable false
|
||||
}
|
||||
|
||||
set config {
|
||||
<config verbose="yes" prio_levels="4">}
|
||||
|
||||
@ -142,7 +149,7 @@ append_if [expr $use_rumpfs] config {
|
||||
append_if [expr $use_rumpfs && $use_ram_fs && $use_overlay_from_disk] config {
|
||||
<policy label_prefix="overlay_from_disk" root="/ram" writeable="no"/>}
|
||||
append_if [expr $use_rumpfs] config {
|
||||
<default-policy root="/" writeable="no"/>
|
||||
<default-policy root="/" writeable="} $rump_writable {"/>
|
||||
</config>
|
||||
<route>
|
||||
<any-service><child name="part_block"/> <parent/><any-child/></any-service>
|
||||
@ -350,6 +357,14 @@ append_if [have_spec x86] config {
|
||||
</provides>
|
||||
</start>}
|
||||
|
||||
append_if [expr $use_serial] config {
|
||||
<start name="log_terminal" priority="-1">
|
||||
<resource name="RAM" quantum="2M"/>
|
||||
<provides>
|
||||
<service name="Terminal"/>
|
||||
</provides>
|
||||
</start>}
|
||||
|
||||
append config $config_of_app
|
||||
|
||||
append config {
|
||||
@ -370,6 +385,7 @@ lappend_if [expr $use_rumpfs] boot_modules rump.lib.so
|
||||
lappend_if [expr $use_rumpfs] boot_modules rump_fs.lib.so
|
||||
lappend_if [expr $use_rumpfs] boot_modules vfs_rump.lib.so
|
||||
lappend_if [expr $use_rumpfs] boot_modules vfs
|
||||
lappend_if [expr $use_serial] boot_modules log_terminal
|
||||
lappend_if [expr $use_vbox5] boot_modules $virtualbox5_binary
|
||||
lappend_if [expr $use_ram_fs || $use_usb] boot_modules ram_fs
|
||||
lappend_if [expr $use_ram_fs && !$use_overlay_from_disk] boot_modules $overlay_image
|
||||
|
99
repos/ports/run/vm_stress_32.vbox
Normal file
99
repos/ports/run/vm_stress_32.vbox
Normal file
@ -0,0 +1,99 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
** DO NOT EDIT THIS FILE.
|
||||
** If you make changes to this file while any VirtualBox related application
|
||||
** is running, your changes will be overwritten later, without taking effect.
|
||||
** Use VBoxManage or the VirtualBox Manager GUI to make changes.
|
||||
-->
|
||||
<VirtualBox xmlns="http://www.innotek.de/VirtualBox-settings" version="1.14-linux">
|
||||
<Machine uuid="{37ab43a5-38d8-4491-93f5-5b0b077f5c32}" name="ubuntu_14_04_32" OSType="Ubuntu" snapshotFolder="Snapshots" lastStateChange="2014-11-14T11:58:35Z">
|
||||
<MediaRegistry>
|
||||
<HardDisks>
|
||||
<HardDisk uuid="{3e7cd33b-a3b0-4497-a801-e9991efc671b}" location="/stress32.vdi" format="VDI" type="Immutable">
|
||||
<HardDisk uuid="{3602f4e9-9ae4-4da0-94e8-78e197e32297}" location="/ram/overlay_stress32.vdi" format="VDI" autoReset="true"/>
|
||||
</HardDisk>
|
||||
</HardDisks>
|
||||
<DVDImages/>
|
||||
<FloppyImages/>
|
||||
</MediaRegistry>
|
||||
<ExtraData/>
|
||||
<Hardware version="2">
|
||||
<CPU count="2" hotplug="false">
|
||||
<HardwareVirtEx enabled="true"/>
|
||||
<HardwareVirtExNestedPaging enabled="true"/>
|
||||
<HardwareVirtExVPID enabled="true"/>
|
||||
<HardwareVirtExUX enabled="true"/>
|
||||
<PAE enabled="true"/>
|
||||
<LongMode enabled="false"/>
|
||||
<HardwareVirtExLargePages enabled="false"/>
|
||||
<HardwareVirtForce enabled="false"/>
|
||||
</CPU>
|
||||
<Memory RAMSize="1024" PageFusion="false"/>
|
||||
<HID Pointing="PS2Mouse" Keyboard="PS2Keyboard"/>
|
||||
<HPET enabled="false"/>
|
||||
<Chipset type="PIIX3"/>
|
||||
<Boot>
|
||||
<Order position="1" device="Floppy"/>
|
||||
<Order position="2" device="DVD"/>
|
||||
<Order position="3" device="HardDisk"/>
|
||||
<Order position="4" device="None"/>
|
||||
</Boot>
|
||||
<Display VRAMSize="20" monitorCount="1" accelerate3D="false" accelerate2DVideo="false"/>
|
||||
<VideoCapture enabled="false" screens="18446744073709551615" horzRes="1024" vertRes="768" rate="512" fps="25"/>
|
||||
<RemoteDisplay enabled="false" authType="Null"/>
|
||||
<BIOS>
|
||||
<ACPI enabled="true"/>
|
||||
<IOAPIC enabled="true"/>
|
||||
<Logo fadeIn="true" fadeOut="true" displayTime="0"/>
|
||||
<BootMenu mode="MessageAndMenu"/>
|
||||
<TimeOffset value="0"/>
|
||||
<PXEDebug enabled="false"/>
|
||||
</BIOS>
|
||||
<USB>
|
||||
<Controllers>
|
||||
<Controller name="OHCI" type="OHCI"/>
|
||||
</Controllers>
|
||||
<DeviceFilters/>
|
||||
</USB>
|
||||
<Network>
|
||||
<Adapter slot="0" enabled="true" MACAddress="0800271D7901" cable="true" speed="0" type="82540EM">
|
||||
<HostInterface/>
|
||||
<DisabledModes/>
|
||||
</Adapter>
|
||||
</Network>
|
||||
<UART>
|
||||
<Port slot="0" enabled="true" IOBase="0x3f8" IRQ="4" path="/dev/terminal" hostMode="HostDevice"/>
|
||||
<Port slot="1" enabled="false" IOBase="0x2f8" IRQ="3" hostMode="Disconnected"/>
|
||||
</UART>
|
||||
<LPT>
|
||||
<Port slot="0" enabled="false" IOBase="0x378" IRQ="7"/>
|
||||
<Port slot="1" enabled="false" IOBase="0x378" IRQ="7"/>
|
||||
</LPT>
|
||||
<AudioAdapter controller="HDA" driver="Pulse" enabled="false"/>
|
||||
<RTC localOrUTC="UTC"/>
|
||||
<SharedFolders/>
|
||||
<Clipboard mode="Disabled"/>
|
||||
<DragAndDrop mode="Disabled"/>
|
||||
<IO>
|
||||
<IoCache enabled="true" size="5"/>
|
||||
<BandwidthGroups/>
|
||||
</IO>
|
||||
<HostPci>
|
||||
<Devices/>
|
||||
</HostPci>
|
||||
<EmulatedUSB>
|
||||
<CardReader enabled="false"/>
|
||||
</EmulatedUSB>
|
||||
<Guest memoryBalloonSize="0"/>
|
||||
<GuestProperties/>
|
||||
</Hardware>
|
||||
<StorageControllers>
|
||||
<StorageController name="SATA" type="AHCI" PortCount="2" useHostIOCache="true" Bootable="true">
|
||||
<AttachedDevice type="HardDisk" port="0" device="0">
|
||||
<Image uuid="{3602f4e9-9ae4-4da0-94e8-78e197e32297}"/>
|
||||
</AttachedDevice>
|
||||
<AttachedDevice passthrough="false" type="DVD" port="1" device="0"/>
|
||||
</StorageController>
|
||||
</StorageControllers>
|
||||
</Machine>
|
||||
</VirtualBox>
|
99
repos/ports/run/vm_stress_64.vbox
Normal file
99
repos/ports/run/vm_stress_64.vbox
Normal file
@ -0,0 +1,99 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
** DO NOT EDIT THIS FILE.
|
||||
** If you make changes to this file while any VirtualBox related application
|
||||
** is running, your changes will be overwritten later, without taking effect.
|
||||
** Use VBoxManage or the VirtualBox Manager GUI to make changes.
|
||||
-->
|
||||
<VirtualBox xmlns="http://www.innotek.de/VirtualBox-settings" version="1.14-linux">
|
||||
<Machine uuid="{37ab43a5-38d8-4491-93f5-5b0b077f5c32}" name="ubuntu_14_04_64" OSType="Ubuntu" snapshotFolder="Snapshots" lastStateChange="2014-11-14T11:58:35Z">
|
||||
<MediaRegistry>
|
||||
<HardDisks>
|
||||
<HardDisk uuid="{17a1f640-3b95-4618-8f98-9191ec9a3f06}" location="/stress64.vdi" format="VDI" type="Immutable">
|
||||
<HardDisk uuid="{a6fbbf79-9e47-4ee1-b171-1f2b7e50444d}" location="/ram/overlay_stress64.vdi" format="VDI" autoReset="true"/>
|
||||
</HardDisk>
|
||||
</HardDisks>
|
||||
<DVDImages/>
|
||||
<FloppyImages/>
|
||||
</MediaRegistry>
|
||||
<ExtraData/>
|
||||
<Hardware version="2">
|
||||
<CPU count="2" hotplug="false">
|
||||
<HardwareVirtEx enabled="true"/>
|
||||
<HardwareVirtExNestedPaging enabled="true"/>
|
||||
<HardwareVirtExVPID enabled="true"/>
|
||||
<HardwareVirtExUX enabled="true"/>
|
||||
<PAE enabled="true"/>
|
||||
<LongMode enabled="true"/>
|
||||
<HardwareVirtExLargePages enabled="false"/>
|
||||
<HardwareVirtForce enabled="false"/>
|
||||
</CPU>
|
||||
<Memory RAMSize="1024" PageFusion="false"/>
|
||||
<HID Pointing="PS2Mouse" Keyboard="PS2Keyboard"/>
|
||||
<HPET enabled="false"/>
|
||||
<Chipset type="PIIX3"/>
|
||||
<Boot>
|
||||
<Order position="1" device="Floppy"/>
|
||||
<Order position="2" device="DVD"/>
|
||||
<Order position="3" device="HardDisk"/>
|
||||
<Order position="4" device="None"/>
|
||||
</Boot>
|
||||
<Display VRAMSize="20" monitorCount="1" accelerate3D="false" accelerate2DVideo="false"/>
|
||||
<VideoCapture enabled="false" screens="18446744073709551615" horzRes="1024" vertRes="768" rate="512" fps="25"/>
|
||||
<RemoteDisplay enabled="false" authType="Null"/>
|
||||
<BIOS>
|
||||
<ACPI enabled="true"/>
|
||||
<IOAPIC enabled="true"/>
|
||||
<Logo fadeIn="true" fadeOut="true" displayTime="0"/>
|
||||
<BootMenu mode="MessageAndMenu"/>
|
||||
<TimeOffset value="0"/>
|
||||
<PXEDebug enabled="false"/>
|
||||
</BIOS>
|
||||
<USB>
|
||||
<Controllers>
|
||||
<Controller name="OHCI" type="OHCI"/>
|
||||
</Controllers>
|
||||
<DeviceFilters/>
|
||||
</USB>
|
||||
<Network>
|
||||
<Adapter slot="0" enabled="true" MACAddress="0800271D7901" cable="true" speed="0" type="82540EM">
|
||||
<HostInterface/>
|
||||
<DisabledModes/>
|
||||
</Adapter>
|
||||
</Network>
|
||||
<UART>
|
||||
<Port slot="0" enabled="true" IOBase="0x3f8" IRQ="4" path="/dev/terminal" hostMode="HostDevice"/>
|
||||
<Port slot="1" enabled="false" IOBase="0x2f8" IRQ="3" hostMode="Disconnected"/>
|
||||
</UART>
|
||||
<LPT>
|
||||
<Port slot="0" enabled="false" IOBase="0x378" IRQ="7"/>
|
||||
<Port slot="1" enabled="false" IOBase="0x378" IRQ="7"/>
|
||||
</LPT>
|
||||
<AudioAdapter controller="HDA" driver="Pulse" enabled="false"/>
|
||||
<RTC localOrUTC="UTC"/>
|
||||
<SharedFolders/>
|
||||
<Clipboard mode="Disabled"/>
|
||||
<DragAndDrop mode="Disabled"/>
|
||||
<IO>
|
||||
<IoCache enabled="true" size="5"/>
|
||||
<BandwidthGroups/>
|
||||
</IO>
|
||||
<HostPci>
|
||||
<Devices/>
|
||||
</HostPci>
|
||||
<EmulatedUSB>
|
||||
<CardReader enabled="false"/>
|
||||
</EmulatedUSB>
|
||||
<Guest memoryBalloonSize="0"/>
|
||||
<GuestProperties/>
|
||||
</Hardware>
|
||||
<StorageControllers>
|
||||
<StorageController name="SATA" type="AHCI" PortCount="2" useHostIOCache="true" Bootable="true">
|
||||
<AttachedDevice type="HardDisk" port="0" device="0">
|
||||
<Image uuid="{a6fbbf79-9e47-4ee1-b171-1f2b7e50444d}"/>
|
||||
</AttachedDevice>
|
||||
<AttachedDevice passthrough="false" type="DVD" port="1" device="0"/>
|
||||
</StorageController>
|
||||
</StorageControllers>
|
||||
</Machine>
|
||||
</VirtualBox>
|
99
repos/ports/run/vm_stress_vbox5-debian32.run
Normal file
99
repos/ports/run/vm_stress_vbox5-debian32.run
Normal file
@ -0,0 +1,99 @@
|
||||
#
|
||||
# Debian 32bit VM cloning Genode git sources, preparing and building pieces
|
||||
#
|
||||
|
||||
assert_spec x86
|
||||
assert_spec nova
|
||||
|
||||
set flavor "stress_32"
|
||||
set vm_ram "1280M"
|
||||
|
||||
set use_vbox5 1
|
||||
|
||||
set use_rumpfs 1
|
||||
set use_ram_fs 1
|
||||
set use_overlay_from_disk 1
|
||||
|
||||
set use_serial 1
|
||||
|
||||
set use_usb 0
|
||||
set use_ps2 [have_spec ps2]
|
||||
|
||||
set use_vms 1
|
||||
set use_cpu_load 0
|
||||
|
||||
set output_host ""
|
||||
set output_host_extra ""
|
||||
set results_expected { }
|
||||
set boottime_expected { }
|
||||
|
||||
set match_guest_log "\[init -\> log_terminal\]"
|
||||
set match_boot_string "\[init -\> vbox.*\].*Using VMX virtualization extension"
|
||||
#set match_guest_down
|
||||
|
||||
# use generic vbox5 VMM version
|
||||
set use_vbox5_nova 0
|
||||
set vmm_name "vbox5_gen"
|
||||
|
||||
set use_vcpus 1
|
||||
lappend results_expected 1 13 41 80
|
||||
lappend boottime_expected 21
|
||||
source ${genode_dir}/repos/ports/run/vbox_win.inc
|
||||
source ${genode_dir}/repos/ports/run/vmm_vm_stress.inc
|
||||
kill_spawned [output_spawn_id]
|
||||
|
||||
# set use_vcpus 2
|
||||
# lappend results_expected 2 10 42 50
|
||||
# lappend boottime_expected 21
|
||||
# source ${genode_dir}/repos/ports/run/vbox_win.inc
|
||||
# source ${genode_dir}/repos/ports/run/vmm_vm_stress.inc
|
||||
# kill_spawned [output_spawn_id]
|
||||
|
||||
if {[have_spec nova]} {
|
||||
# use non-generic vbox5 VMM version
|
||||
set use_vbox5_nova 1
|
||||
set vmm_name "vbox5_nova"
|
||||
|
||||
set use_vcpus 1
|
||||
lappend results_expected 1 13 36 78
|
||||
lappend boottime_expected 26
|
||||
source ${genode_dir}/repos/ports/run/vbox_win.inc
|
||||
source ${genode_dir}/repos/ports/run/vmm_vm_stress.inc
|
||||
kill_spawned [output_spawn_id]
|
||||
|
||||
set use_vcpus 2
|
||||
lappend results_expected 2 11 35 48
|
||||
lappend boottime_expected 25
|
||||
source ${genode_dir}/repos/ports/run/vbox_win.inc
|
||||
source ${genode_dir}/repos/ports/run/vmm_vm_stress.inc
|
||||
kill_spawned [output_spawn_id]
|
||||
|
||||
set use_vcpus 3
|
||||
lappend results_expected 3 9 39 39
|
||||
lappend boottime_expected 26
|
||||
source ${genode_dir}/repos/ports/run/vbox_win.inc
|
||||
source ${genode_dir}/repos/ports/run/vmm_vm_stress.inc
|
||||
kill_spawned [output_spawn_id]
|
||||
|
||||
set use_vcpus 4
|
||||
lappend results_expected 4 10 41 34
|
||||
lappend boottime_expected 27
|
||||
source ${genode_dir}/repos/ports/run/vbox_win.inc
|
||||
source ${genode_dir}/repos/ports/run/vmm_vm_stress.inc
|
||||
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
|
99
repos/ports/run/vm_stress_vbox5-debian64.run
Normal file
99
repos/ports/run/vm_stress_vbox5-debian64.run
Normal file
@ -0,0 +1,99 @@
|
||||
#
|
||||
# Debian 64bit VM cloning Genode git sources, preparing and building pieces
|
||||
#
|
||||
|
||||
assert_spec x86
|
||||
assert_spec nova
|
||||
|
||||
set flavor "stress_64"
|
||||
set vm_ram "1280M"
|
||||
|
||||
set use_vbox5 1
|
||||
|
||||
set use_rumpfs 1
|
||||
set use_ram_fs 1
|
||||
set use_overlay_from_disk 1
|
||||
|
||||
set use_serial 1
|
||||
|
||||
set use_usb 0
|
||||
set use_ps2 [have_spec ps2]
|
||||
|
||||
set use_vms 1
|
||||
set use_cpu_load 0
|
||||
|
||||
set output_host ""
|
||||
set output_host_extra ""
|
||||
set results_expected { }
|
||||
set boottime_expected { }
|
||||
|
||||
set match_guest_log "\[init -\> log_terminal\]"
|
||||
set match_boot_string "\[init -\> vbox.*\].*Using VMX virtualization extension"
|
||||
#set match_guest_down
|
||||
|
||||
# use generic vbox5 VMM version
|
||||
set use_vbox5_nova 0
|
||||
set vmm_name "vbox5_gen"
|
||||
|
||||
set use_vcpus 1
|
||||
lappend results_expected 1 12 50 79
|
||||
lappend boottime_expected 21
|
||||
source ${genode_dir}/repos/ports/run/vbox_win.inc
|
||||
source ${genode_dir}/repos/ports/run/vmm_vm_stress.inc
|
||||
kill_spawned [output_spawn_id]
|
||||
|
||||
# set use_vcpus 2
|
||||
# lappend results_expected 0 0 0 0
|
||||
# lappend boottime_expected 35
|
||||
# source ${genode_dir}/repos/ports/run/vbox_win.inc
|
||||
# source ${genode_dir}/repos/ports/run/vmm_vm_stress.inc
|
||||
# kill_spawned [output_spawn_id]
|
||||
|
||||
if {[have_spec nova]} {
|
||||
# use non-generic vbox5 VMM version
|
||||
set use_vbox5_nova 1
|
||||
set vmm_name "vbox5_nova"
|
||||
|
||||
set use_vcpus 1
|
||||
lappend results_expected 1 13 42 76
|
||||
lappend boottime_expected 25
|
||||
source ${genode_dir}/repos/ports/run/vbox_win.inc
|
||||
source ${genode_dir}/repos/ports/run/vmm_vm_stress.inc
|
||||
kill_spawned [output_spawn_id]
|
||||
|
||||
set use_vcpus 2
|
||||
lappend results_expected 2 10 37 47
|
||||
lappend boottime_expected 25
|
||||
source ${genode_dir}/repos/ports/run/vbox_win.inc
|
||||
source ${genode_dir}/repos/ports/run/vmm_vm_stress.inc
|
||||
kill_spawned [output_spawn_id]
|
||||
|
||||
set use_vcpus 3
|
||||
lappend results_expected 3 10 36 40
|
||||
lappend boottime_expected 25
|
||||
source ${genode_dir}/repos/ports/run/vbox_win.inc
|
||||
source ${genode_dir}/repos/ports/run/vmm_vm_stress.inc
|
||||
kill_spawned [output_spawn_id]
|
||||
|
||||
set use_vcpus 4
|
||||
lappend results_expected 4 10 38 35
|
||||
lappend boottime_expected 26
|
||||
source ${genode_dir}/repos/ports/run/vbox_win.inc
|
||||
source ${genode_dir}/repos/ports/run/vmm_vm_stress.inc
|
||||
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
|
119
repos/ports/run/vmm_vm_stress.inc
Normal file
119
repos/ports/run/vmm_vm_stress.inc
Normal file
@ -0,0 +1,119 @@
|
||||
#!/usr/bin/expect
|
||||
|
||||
set current_date [clock format [clock seconds] -format %a]
|
||||
if {[get_cmd_switch --autopilot] && $current_date != "Sat" && $current_date != "Sun" } {
|
||||
puts "\n Run script is not supported today on this platform. \n";
|
||||
exit 0
|
||||
}
|
||||
|
||||
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]
|
||||
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]
|
||||
run_genode_until "$match_guest_log.*make -j" 200 [output_spawn_id]
|
||||
set t_vm_make_j [clock seconds]
|
||||
run_genode_until "$match_guest_log.*make done" 500 [output_spawn_id]
|
||||
set t_vm_make_done [clock seconds]
|
||||
|
||||
run_genode_until "$match_guest_log.*cpus=" 20 [output_spawn_id]
|
||||
run_genode_until "$match_guest_log.*Done stress.sh" 10 [output_spawn_id]
|
||||
|
||||
set t_clone [expr $t_vm_prepare_ports - $t_vm_git_clone]
|
||||
set t_prepare_ports [expr $t_vm_make_j - $t_vm_prepare_ports]
|
||||
set t_make [expr $t_vm_make_done - $t_vm_make_j]
|
||||
|
||||
set results_end [llength $results_expected]
|
||||
set result_make [lindex $results_expected [expr $results_end - 1]]
|
||||
set result_prepare [lindex $results_expected [expr $results_end - 2]]
|
||||
set result_clone [lindex $results_expected [expr $results_end - 3]]
|
||||
|
||||
set output_result "(host-tcl) cpus=$use_vcpus - clone=$t_clone - prepare_port=$t_prepare_ports - make=$t_make"
|
||||
set output_result_ci "(host) cpus=$use_vcpus - clone=$t_clone,$result_clone - prepare_port=$t_prepare_ports,$result_prepare - make=$t_make,$result_make"
|
||||
|
||||
set output_extra "boottimeVM=[expr $t_vm_git_clone - $t_vm_boot_start]"
|
||||
|
||||
puts "\n$output_result_ci - $output_extra - $vmm_name\n"
|
||||
append output_host "$output_result\n"
|
||||
append output_host_extra "$output_extra\n"
|
||||
|
||||
|
||||
##
|
||||
# Evaluate results of stress test
|
||||
#
|
||||
proc evaluate_stress { } {
|
||||
|
||||
global output_host_extra
|
||||
global output_host
|
||||
global output
|
||||
global results_expected
|
||||
global boottime_expected
|
||||
|
||||
set results_boottime [regexp -all -inline {[0-9]+} $output_host_extra]
|
||||
set results_host [regexp -all -inline {[0-9]+} $output_host]
|
||||
set results_guest [regexp -all -inline {[0-9]+} $output]
|
||||
set results_len [llength $results_host]
|
||||
|
||||
puts "host results $results_host"
|
||||
puts "guest results $results_guest"
|
||||
puts "expected results $results_expected"
|
||||
puts "boottime host $results_boottime"
|
||||
puts "boottime expect $boottime_expected"
|
||||
|
||||
#
|
||||
# Sanity check
|
||||
#
|
||||
if {$results_len != [llength $results_expected] ||
|
||||
$results_len != [llength $results_guest] ||
|
||||
[llength $boottime_expected] != [llength $results_boottime]} {
|
||||
puts "Result length not as expected"
|
||||
exit -1
|
||||
}
|
||||
|
||||
set result_miss 0
|
||||
|
||||
for { set i 0 } { $i < $results_len } { incr i} {
|
||||
set res_h [lindex $results_host $i]
|
||||
set res_g [lindex $results_guest $i]
|
||||
set res_e [lindex $results_expected $i]
|
||||
if {$res_h != $res_e || $res_g != $res_e} {
|
||||
set diff_abs_h [expr abs($res_h - $res_e)]
|
||||
set diff_abs_g [expr abs($res_g - $res_e)]
|
||||
|
||||
switch [expr $i % 4] {
|
||||
0 {
|
||||
# the cpu number count must be identical
|
||||
incr result_miss
|
||||
}
|
||||
1 {
|
||||
# give clone numbers 5s diff
|
||||
if { $diff_abs_h > 5 || $diff_abs_g > 5 } { incr result_miss }
|
||||
}
|
||||
2 {
|
||||
# give prepare ports 10s diff
|
||||
if { $diff_abs_h > 10 || $diff_abs_g > 10 } { incr result_miss }
|
||||
}
|
||||
3 {
|
||||
if { $diff_abs_h > 1 || $diff_abs_g > 1 } { incr result_miss }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for { set i 0} { $i < $results_len } { incr i} {
|
||||
set res_h [lindex $results_boottime $i]
|
||||
set res_e [lindex $boottime_expected $i]
|
||||
|
||||
if {$res_h != $res_e} {
|
||||
set diff_abs [expr abs($res_h - $res_e)]
|
||||
|
||||
if { $diff_abs > 1 } { incr result_miss }
|
||||
}
|
||||
}
|
||||
|
||||
if {$result_miss} {
|
||||
puts "$result_miss results deviate too much"
|
||||
}
|
||||
}
|
@ -78,6 +78,8 @@ vbox5_win7_64
|
||||
vbox5_win7_64_multiple
|
||||
vbox5_win7_64_raw
|
||||
vbox5_win7_64_share
|
||||
vm_stress_vbox5-debian32
|
||||
vm_stress_vbox5-debian64
|
||||
verify
|
||||
vfs_import
|
||||
vmm_arm
|
||||
|
Loading…
Reference in New Issue
Block a user