mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-21 14:37:50 +00:00
d8a71e5978
* Make command pool a proper module * The command pool used to be kind of a module but it was driven via custom tresor-tester specific code. Now, it becomes a proper module that is driven by the module framework instead. * Move the code for creating and handling the module-execution progress flag into Module_composition::execute_modules as the function is always used with this code surrounding it. * Reorganize files, remove deprecated files * A new class Module_channel is introduced in the module framework and all channel classes inherit from it. With that class in place, the formerly module-specific implementations of the following methods are replaced by new generic implementations in the Module framework: * ready_to_submit_request * submit_request * _peek_completed_request * _drop_completed_request * _peek_generated_request * _drop_generated_request * generated_request_complete * Module requests are now held for the duration of their lifetime at the module they originate from and not, like before, at their target module. As a result, modules can generate new requests inline (without having to wait for the target module), making code much simpler to read, reducing the amount of channel state, and allowing for non-copyable request types. * Introduce a sub-state-machine for securing a superblock in the superblock_control module in order to reduce redundancy. * Some modules, like free_tree, were completely re-designed in order to make them more readable. * Replace all conditional exceptions by using the macros in tresor/assertion.h . * Move methods that are used in multiple modules but that were implemented redundantly in each module to tresor/types.h. * Remove verbosity node and all that was related to it from tresor tester config as the targeted verbosity can be achieved with the VERBOSE_MODULE_COMMUNICATION flag in tresor/verbosity.h . * Extract the aspect of translating the byte-granular I/O-requests to tresor-block requests from the tresor VFS-plugin and move it to a new module called splitter. * Rename the files and interface of the hashing back-end to not reflect the used hashing algorithm/config anymore, while at the same time making the hashing interface strict regarding the used types. * Introduce the NONCOPYABLE macro that makes marking a class noncopyable short and clear. * Replace the former tresor/vfs_utilities.h/.cc with a new tresor/file.h that contains the classes Read_write_file and Write_only_file. These classes significantly simplify the modules crypto, block_io, and trust_anchor by moving the details of file access to a sub-state machine. * The former, rather trivial block allocator module is replaced by a normal object of type Pba_allocator that must be provided by the client of the Sb_initializer (reference in the Sb_initializer_request). Ref #5062 tresor: read uninitialized vbas as all zeroes Virtual addresses in a Tresor container that were not yet written by the user should always return a data block that is all-zeroes. This was the concept right from the beginning of the project. However, somehow this aspect either never got implement or got lost along the way. Some context for understanding the commit: The Tresor doesn't initialize the payload data blocks of a container when creating a new container as this would be rather expensive. Instead, it marks the leaf metadata nodes of the virtual-block-device tree (those that reference the payload data blocks in physical address space) with generation 0. Now, this commit ensures that, whenever the virtual-block-device module reads such a generation-0 leaf, instead of asking the block_io and crypto to deliver data from disc, it directly provides the user with 4K of zeroes. Ref #5062
1135 lines
52 KiB
Plaintext
1135 lines
52 KiB
Plaintext
# riscv lacks jitterentropy support currently
|
|
if {[get_cmd_switch --autopilot] && [have_board virt_qemu_riscv]} {
|
|
puts "Autopilot mode is not supported on this platform."
|
|
exit 0
|
|
}
|
|
|
|
set dd [installed_command dd]
|
|
|
|
proc tresor_image_name { } {
|
|
return "tresor_block.img"
|
|
}
|
|
|
|
proc lx_local_tresor_image { } {
|
|
return bin/[tresor_image_name]
|
|
}
|
|
|
|
proc lx_autopilot_tresor_image { } {
|
|
return /tmp/[tresor_image_name].[exec id -un]
|
|
}
|
|
|
|
proc lx_tresor_image_size_mb { } {
|
|
return 400
|
|
}
|
|
|
|
proc benchmark_blk_count { } {
|
|
|
|
if {[have_board linux]} {
|
|
|
|
# benchmarks over 50 mebibyte
|
|
return 12800
|
|
}
|
|
if {[have_board virt_qemu_arm_v8a]} {
|
|
|
|
# benchmarks over 25 mebibyte
|
|
return 6400
|
|
}
|
|
# benchmarks turned off
|
|
return 0
|
|
}
|
|
|
|
proc block_io_vfs_ram_mb { } {
|
|
|
|
if {[benchmark_blk_count] > 0} {
|
|
|
|
# when benchmarks turned on
|
|
set bench_mb [expr (([benchmark_blk_count] * 4096) / 1024 / 1024)]
|
|
return [expr 8 * $bench_mb]
|
|
}
|
|
# when benchmarks turned off
|
|
return 10
|
|
}
|
|
|
|
proc jent_avail { } {
|
|
|
|
if {[have_board pbxa9]} { return 0 }
|
|
if {[have_board zynq_qemu]} { return 0 }
|
|
return 1
|
|
}
|
|
|
|
append build_components {
|
|
core lib/ld init timer
|
|
server/vfs lib/vfs lib/libc lib/libcrypto
|
|
app/tresor_tester
|
|
server/log_terminal
|
|
server/report_rom
|
|
lib/vfs_tresor_crypto_aes_cbc
|
|
lib/vfs_tresor_trust_anchor
|
|
lib/vfs_import
|
|
}
|
|
|
|
append_if [jent_avail] build_components { lib/vfs_jitterentropy }
|
|
|
|
append_if [have_board linux] build_components { server/lx_fs }
|
|
append_if [have_board linux] build_components { server/lx_block }
|
|
|
|
build $build_components
|
|
|
|
create_boot_directory
|
|
|
|
append config {
|
|
|
|
<config verbose="yes">
|
|
|
|
<parent-provides>
|
|
<service name="ROM"/>
|
|
<service name="IRQ"/>
|
|
<service name="IO_MEM"/>
|
|
<service name="IO_PORT"/>
|
|
<service name="PD"/>
|
|
<service name="RM"/>
|
|
<service name="CPU"/>
|
|
<service name="LOG"/>
|
|
</parent-provides>
|
|
|
|
<start name="timer" caps="100">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides><service name="Timer"/></provides>
|
|
<route>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="IO_PORT"> <parent/> </service>
|
|
<service name="IO_MEM"> <parent/> </service>
|
|
<service name="IRQ"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="report_rom" caps="100">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides> <service name="Report"/> <service name="ROM"/> </provides>
|
|
<config verbose="yes"/>
|
|
<route>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="log_terminal" caps="100">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides><service name="Terminal"/></provides>
|
|
<route>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
}
|
|
if {[have_board linux]} {
|
|
|
|
append config {
|
|
|
|
<start name="block_io_fs" caps="100" ld="no">
|
|
<binary name="lx_fs"/>
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides> <service name="File_system"/> </provides>
|
|
<config>
|
|
<default-policy root="/" writeable="yes"/>
|
|
</config>
|
|
<route>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
}
|
|
|
|
} else {
|
|
|
|
append config {
|
|
|
|
<start name="block_io_fs" caps="100">
|
|
<binary name="vfs"/>
|
|
<resource name="RAM" quantum="} [block_io_vfs_ram_mb] {M"/>
|
|
<provides><service name="File_system"/></provides>
|
|
<config>
|
|
<vfs>
|
|
<dir name="block_io">
|
|
<ram/>
|
|
</dir>
|
|
<import>
|
|
<dir name="block_io">
|
|
<inline name="} [tresor_image_name] {"></inline>
|
|
</dir>
|
|
</import>
|
|
</vfs>
|
|
<default-policy root="/block_io" writeable="yes"/>
|
|
</config>
|
|
<route>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
}
|
|
}
|
|
append config {
|
|
|
|
<start name="trust_anchor_fs" caps="200">
|
|
<binary name="vfs"/>
|
|
<resource name="RAM" quantum="10M"/>
|
|
<provides><service name="File_system"/></provides>
|
|
<config>
|
|
<vfs>
|
|
<dir name="storage">
|
|
<ram/>
|
|
</dir>
|
|
|
|
<dir name="dev"> }
|
|
|
|
append_if [jent_avail] config {
|
|
|
|
<jitterentropy name="jitterentropy"/> }
|
|
|
|
append_if [expr ![jent_avail]] config {
|
|
|
|
<inline name="jitterentropy">0123456789abcdefghijklmnopqrstuv</inline> }
|
|
|
|
append config {
|
|
<tresor_trust_anchor name="tresor_trust_anchor" storage_dir="/storage"/>
|
|
</dir>
|
|
</vfs>
|
|
|
|
<default-policy root="/dev/tresor_trust_anchor" writeable="yes"/>
|
|
</config>
|
|
<route>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="test" caps="200">
|
|
|
|
<binary name="tresor_tester"/>
|
|
<resource name="RAM" quantum="10M"/>
|
|
<config ld_verbose="yes">
|
|
|
|
<block-io type="vfs" path="/} [tresor_image_name] {"/>
|
|
<crypto path="/crypto"/>
|
|
<trust-anchor path="/trust_anchor"/>
|
|
|
|
<vfs>
|
|
<fs buffer_size="1M"/>
|
|
<tresor_crypto_aes_cbc name="crypto"/>
|
|
<dir name="trust_anchor">
|
|
<fs label="trust_anchor"/>
|
|
</dir>
|
|
</vfs>
|
|
|
|
<commands>
|
|
|
|
<log string="Step 1: Initialize Trust Anchor and Tresor device, start Tresor library"/>
|
|
|
|
<trust-anchor op="initialize" passphrase="foobar"/>
|
|
<initialize>
|
|
|
|
<virtual-block-device
|
|
nr_of_levels="3"
|
|
nr_of_children="8"
|
|
nr_of_leafs="64" />
|
|
|
|
<free-tree
|
|
nr_of_levels="4"
|
|
nr_of_children="8"
|
|
nr_of_leafs="100" />
|
|
|
|
</initialize>
|
|
<check/>
|
|
<construct/>
|
|
|
|
<log string="Step 2: test synchronous write, read"/>
|
|
|
|
<request op="write" vba="1" count="1" sync="yes" salt="1234"/>
|
|
<request op="read" vba="1" count="1" sync="yes" salt="1234"/>
|
|
<request op="write" vba="12" count="10" sync="yes"/>
|
|
<request op="read" vba="12" count="10" sync="yes"/>
|
|
<request op="write" vba="24" count="40" sync="yes"/>
|
|
<request op="read" vba="24" count="40" sync="yes"/>
|
|
|
|
<log string="Step 3: test synchronous write, read, compare"/>
|
|
|
|
<request op="write" vba="9" count="1" sync="yes" salt="4321"/>
|
|
<request op="read" vba="9" count="1" sync="yes" salt="4321"/>
|
|
<request op="write" vba="41" count="3" sync="yes" salt="8765"/>
|
|
<request op="read" vba="41" count="3" sync="yes" salt="8765"/>
|
|
<request op="write" vba="9" count="1" sync="yes" salt="1234"/>
|
|
<request op="write" vba="41" count="19" sync="yes" salt="5678"/>
|
|
<request op="read" vba="9" count="1" sync="yes" salt="1234"/>
|
|
<request op="read" vba="41" count="19" sync="yes" salt="5678"/>
|
|
|
|
<log string="Step 4: test asynchronous write, read"/>
|
|
|
|
<request op="write" vba="20" count="3" sync="no"/>
|
|
<request op="write" vba="15" count="10" sync="no"/>
|
|
<request op="read" vba="34" count="2" sync="no"/>
|
|
<request op="read" vba="21" count="5" sync="no"/>
|
|
<request op="write" vba="12" count="12" sync="no"/>
|
|
<request op="read" vba="32" count="8" sync="no"/>
|
|
<request op="write" vba="17" count="7" sync="no"/>
|
|
<request op="write" vba="29" count="9" sync="no"/>
|
|
<request op="read" vba="14" count="18" sync="no"/>
|
|
|
|
<log string="Step 5: test asynchronous write, read, compare"/>
|
|
|
|
<request op="write" vba="20" count="3" sync="no" salt="7373"/>
|
|
<request op="read" vba="21" count="1" sync="no" salt="7373"/>
|
|
<request op="write" vba="15" count="10" sync="no" salt="1515"/>
|
|
<request op="write" vba="15" count="4" sync="no" salt="6001"/>
|
|
<request op="read" vba="21" count="3" sync="no" salt="1515"/>
|
|
<request op="read" vba="19" count="3" sync="no" salt="1515"/>
|
|
<request op="write" vba="17" count="5" sync="no" salt="9689"/>
|
|
<request op="read" vba="22" count="3" sync="no" salt="1515"/>
|
|
<request op="read" vba="15" count="2" sync="no" salt="6001"/>
|
|
<request op="write" vba="11" count="6" sync="no" salt="0987"/>
|
|
<request op="read" vba="17" count="5" sync="no" salt="9689"/>
|
|
<request op="write" vba="22" count="2" sync="no" salt="6543"/>
|
|
<request op="write" vba="25" count="11" sync="no" salt="5432"/>
|
|
<request op="read" vba="24" count="1" sync="no" salt="1515"/>
|
|
<request op="write" vba="10" count="5" sync="no" salt="4221"/>
|
|
<request op="write" vba="21" count="2" sync="no" salt="1001"/>
|
|
<request op="write" vba="12" count="10" sync="no" salt="3366"/>
|
|
<request op="write" vba="26" count="4" sync="no" salt="7271"/>
|
|
<request op="write" vba="15" count="7" sync="no" salt="1331"/>
|
|
<request op="read" vba="23" count="1" sync="no" salt="6543"/>
|
|
<request op="read" vba="25" count="1" sync="no" salt="5432"/>
|
|
<request op="read" vba="28" count="2" sync="no" salt="7271"/>
|
|
<request op="read" vba="24" count="1" sync="no" salt="1515"/>
|
|
<request op="read" vba="12" count="3" sync="no" salt="3366"/>
|
|
<request op="read" vba="19" count="3" sync="no" salt="1331"/>
|
|
<request op="read" vba="10" count="2" sync="no" salt="4221"/>
|
|
|
|
<log string="Step 6: shut down Tresor library, check Tresor integrity, restart Tresor library"/>
|
|
|
|
<request op="deinitialize" sync="no"/>
|
|
<destruct/>
|
|
<check/>
|
|
<construct/>
|
|
|
|
<log string="Step 7: test synchronous snapshot management"/>
|
|
|
|
<request op="write" vba="20" count="3" sync="yes" salt="7304"/>
|
|
<request op="create_snapshot" sync="yes" id="1"/>
|
|
<request op="read" vba="21" count="1" sync="yes" salt="7304"/>
|
|
<request op="write" vba="15" count="10" sync="yes" salt="9612"/>
|
|
<request op="write" vba="15" count="4" sync="yes" salt="6111"/>
|
|
<request op="read" vba="21" count="3" sync="yes" salt="9612"/>
|
|
<request op="read" vba="19" count="3" sync="yes" salt="9612"/>
|
|
<request op="write" vba="17" count="5" sync="yes" salt="5353"/>
|
|
<request op="create_snapshot" sync="yes" id="2"/>
|
|
<request op="create_snapshot" sync="yes" id="3"/>
|
|
<request op="read" vba="22" count="3" sync="yes" salt="9612"/>
|
|
<request op="read" vba="15" count="2" sync="yes" salt="6111"/>
|
|
<request op="write" vba="11" count="6" sync="yes" salt="5436"/>
|
|
<check-snapshots/>
|
|
<request op="discard_snapshot" sync="yes" id="1"/>
|
|
<request op="discard_snapshot" sync="yes" id="2"/>
|
|
<check-snapshots/>
|
|
<request op="sync" vba="0" count="256" sync="yes"/>
|
|
<check/>
|
|
|
|
<log string="Step 8: test asynchronous snapshot management"/>
|
|
|
|
<request op="write" vba="20" count="3" sync="no" salt="7384"/>
|
|
<request op="create_snapshot" sync="no" id="4"/>
|
|
<request op="create_snapshot" sync="no" id="5"/>
|
|
<request op="read" vba="21" count="1" sync="no" salt="7384"/>
|
|
<request op="write" vba="15" count="10" sync="no" salt="9602"/>
|
|
<request op="write" vba="15" count="4" sync="no" salt="6100"/>
|
|
<request op="read" vba="21" count="3" sync="no" salt="9602"/>
|
|
<request op="read" vba="19" count="3" sync="no" salt="9602"/>
|
|
<request op="write" vba="17" count="5" sync="no" salt="5555"/>
|
|
<request op="read" vba="22" count="3" sync="no" salt="9602"/>
|
|
<request op="read" vba="15" count="2" sync="no" salt="6100"/>
|
|
<request op="create_snapshot" sync="no" id="6"/>
|
|
<request op="write" vba="11" count="6" sync="no" salt="1436"/>
|
|
<request op="read" vba="17" count="5" sync="no" salt="5555"/>
|
|
<request op="write" vba="22" count="2" sync="no" salt="7463"/>
|
|
<request op="write" vba="25" count="11" sync="no" salt="4323"/>
|
|
<request op="read" vba="24" count="1" sync="no" salt="9602"/>
|
|
<request op="write" vba="10" count="5" sync="no" salt="3758"/>
|
|
<request op="create_snapshot" sync="no" id="7"/>
|
|
<request op="create_snapshot" sync="no" id="8"/>
|
|
<request op="write" vba="21" count="2" sync="no" salt="8094"/>
|
|
<request op="write" vba="12" count="10" sync="no" salt="4455"/>
|
|
<request op="write" vba="26" count="4" sync="no" salt="7574"/>
|
|
<request op="write" vba="15" count="7" sync="no" salt="1931"/>
|
|
<request op="read" vba="23" count="1" sync="no" salt="7463"/>
|
|
<request op="read" vba="25" count="1" sync="no" salt="4323"/>
|
|
<request op="read" vba="28" count="2" sync="no" salt="7574"/>
|
|
<request op="create_snapshot" sync="no" id="9"/>
|
|
<request op="read" vba="24" count="1" sync="no" salt="9602"/>
|
|
<request op="read" vba="12" count="3" sync="no" salt="4455"/>
|
|
<request op="read" vba="19" count="3" sync="no" salt="1931"/>
|
|
<request op="read" vba="10" count="2" sync="no" salt="3758"/>
|
|
<check-snapshots/>
|
|
<request op="discard_snapshot" sync="no" id="4"/>
|
|
<request op="sync" vba="0" count="256" sync="yes"/>
|
|
<check/>
|
|
|
|
<log string="Step 9: reinitialize Tresor device"/>
|
|
|
|
<request op="deinitialize" sync="no"/>
|
|
<destruct/>
|
|
<initialize>
|
|
|
|
<virtual-block-device
|
|
nr_of_levels="4"
|
|
nr_of_children="8"
|
|
nr_of_leafs="100" />
|
|
|
|
<free-tree
|
|
nr_of_levels="4"
|
|
nr_of_children="8"
|
|
nr_of_leafs="100" />
|
|
|
|
</initialize>
|
|
<construct/>
|
|
|
|
<log string="Step 10: test synchronous rekeying"/>
|
|
|
|
<request op="write" vba="0" count="1" sync="yes" salt="4359"/>
|
|
<request op="rekey" sync="yes"/>
|
|
<request op="read" vba="0" count="1" sync="yes" salt="4359"/>
|
|
<request op="write" vba="15" count="7" sync="yes" salt="1742"/>
|
|
<request op="write" vba="20" count="13" sync="yes" salt="8471"/>
|
|
<request op="create_snapshot" sync="yes" id="10"/>
|
|
<request op="write" vba="33" count="5" sync="yes" salt="7831"/>
|
|
<request op="rekey" sync="yes"/>
|
|
<request op="read" vba="17" count="3" sync="yes" salt="1742"/>
|
|
<request op="write" vba="51" count="8" sync="yes" salt="8384"/>
|
|
<request op="read" vba="25" count="1" sync="yes" salt="8471"/>
|
|
<request op="write" vba="30" count="5" sync="yes" salt="2837"/>
|
|
<request op="create_snapshot" sync="yes" id="11"/>
|
|
<request op="rekey" sync="yes"/>
|
|
<request op="read" vba="35" count="2" sync="yes" salt="7831"/>
|
|
<request op="read" vba="31" count="4" sync="yes" salt="2837"/>
|
|
<request op="read" vba="51" count="8" sync="yes" salt="8384"/>
|
|
<request op="sync" vba="0" count="256" sync="yes"/>
|
|
<check/>
|
|
|
|
<log string="Step 11: test asynchronous rekeying (SKIPPED BECAUSE OF KNOWN BUG)"/>
|
|
|
|
<!-- FIXME: this step would yet trigger a hash mismatch in the
|
|
VBD rekeying module
|
|
|
|
<request op="write" vba="20" count="3" sync="no" salt="7384"/>
|
|
<request op="rekey" sync="no"/>
|
|
<request op="read" vba="21" count="1" sync="no" salt="7384"/>
|
|
<request op="write" vba="15" count="10" sync="no" salt="9602"/>
|
|
<request op="write" vba="15" count="4" sync="no" salt="6100"/>
|
|
<request op="read" vba="21" count="3" sync="no" salt="9602"/>
|
|
<request op="read" vba="19" count="3" sync="no" salt="9602"/>
|
|
<request op="write" vba="17" count="5" sync="no" salt="5555"/>
|
|
<request op="read" vba="22" count="3" sync="no" salt="9602"/>
|
|
<request op="read" vba="15" count="2" sync="no" salt="6100"/>
|
|
<request op="write" vba="11" count="6" sync="no" salt="1436"/>
|
|
<request op="create_snapshot" sync="yes" id="12"/>
|
|
<request op="read" vba="17" count="5" sync="no" salt="5555"/>
|
|
<request op="write" vba="22" count="2" sync="no" salt="7463"/>
|
|
<request op="rekey" sync="no"/>
|
|
<request op="write" vba="25" count="11" sync="no" salt="4323"/>
|
|
<request op="read" vba="24" count="1" sync="no" salt="9602"/>
|
|
<request op="write" vba="10" count="5" sync="no" salt="3758"/>
|
|
<request op="write" vba="21" count="2" sync="no" salt="8094"/>
|
|
<request op="write" vba="12" count="10" sync="no" salt="4455"/>
|
|
<request op="write" vba="26" count="4" sync="no" salt="7574"/>
|
|
<request op="write" vba="15" count="7" sync="no" salt="1931"/>
|
|
<request op="read" vba="23" count="1" sync="no" salt="7463"/>
|
|
<request op="read" vba="25" count="1" sync="no" salt="4323"/>
|
|
<request op="read" vba="28" count="2" sync="no" salt="7574"/>
|
|
<request op="read" vba="24" count="1" sync="no" salt="9602"/>
|
|
<request op="read" vba="12" count="3" sync="no" salt="4455"/>
|
|
<request op="read" vba="19" count="3" sync="no" salt="1931"/>
|
|
<request op="read" vba="10" count="2" sync="no" salt="3758"/>
|
|
<request op="sync" vba="0" count="256" sync="yes"/>
|
|
<check/>
|
|
-->
|
|
|
|
<log string="Step 12: test synchronous free tree extension"/>
|
|
|
|
<request op="write" vba="20" count="3" sync="yes" salt="7304"/>
|
|
<request op="extend_ft" count="23" sync="yes"/>
|
|
<request op="read" vba="21" count="1" sync="yes" salt="7304"/>
|
|
<request op="extend_ft" count="6" sync="yes"/>
|
|
<request op="write" vba="15" count="10" sync="yes" salt="9612"/>
|
|
<request op="write" vba="15" count="4" sync="yes" salt="6111"/>
|
|
<request op="extend_ft" count="10" sync="yes"/>
|
|
<request op="read" vba="21" count="3" sync="yes" salt="9612"/>
|
|
<request op="read" vba="19" count="3" sync="yes" salt="9612"/>
|
|
<request op="write" vba="17" count="5" sync="yes" salt="5353"/>
|
|
<request op="extend_ft" count="2" sync="yes"/>
|
|
<request op="extend_ft" count="2" sync="yes"/>
|
|
<request op="extend_ft" count="2" sync="yes"/>
|
|
<request op="read" vba="22" count="3" sync="yes" salt="9612"/>
|
|
<request op="extend_ft" count="1" sync="yes"/>
|
|
<request op="read" vba="15" count="2" sync="yes" salt="6111"/>
|
|
<request op="write" vba="11" count="6" sync="yes" salt="5436"/>
|
|
<request op="sync" vba="0" count="256" sync="yes"/>
|
|
<check/>
|
|
|
|
<log string="Step 13: test asynchronous free tree extension"/>
|
|
|
|
<request op="write" vba="20" count="3" sync="no" salt="3874"/>
|
|
<request op="extend_ft" count="21" sync="no"/>
|
|
<request op="extend_ft" count="17" sync="no"/>
|
|
<request op="read" vba="21" count="1" sync="no" salt="3874"/>
|
|
<request op="write" vba="15" count="10" sync="no" salt="6092"/>
|
|
<request op="write" vba="15" count="4" sync="no" salt="1060"/>
|
|
<request op="read" vba="21" count="3" sync="no" salt="6092"/>
|
|
<request op="read" vba="19" count="3" sync="no" salt="6092"/>
|
|
<request op="write" vba="17" count="5" sync="no" salt="5555"/>
|
|
<request op="read" vba="22" count="3" sync="no" salt="6092"/>
|
|
<request op="read" vba="15" count="2" sync="no" salt="1060"/>
|
|
<request op="extend_ft" count="180" sync="no"/>
|
|
<request op="write" vba="11" count="6" sync="no" salt="4316"/>
|
|
<request op="read" vba="17" count="5" sync="no" salt="5555"/>
|
|
<request op="write" vba="22" count="2" sync="no" salt="4673"/>
|
|
<request op="write" vba="25" count="11" sync="no" salt="3243"/>
|
|
<request op="read" vba="24" count="1" sync="no" salt="6092"/>
|
|
<request op="write" vba="10" count="5" sync="no" salt="7538"/>
|
|
<request op="extend_ft" count="3" sync="no"/>
|
|
<request op="extend_ft" count="2" sync="no"/>
|
|
<request op="write" vba="21" count="2" sync="no" salt="0984"/>
|
|
<request op="write" vba="12" count="10" sync="no" salt="4545"/>
|
|
<request op="write" vba="26" count="4" sync="no" salt="5774"/>
|
|
<request op="write" vba="15" count="7" sync="no" salt="9311"/>
|
|
<request op="write" vba="65" count="7" sync="no" salt="4583"/>
|
|
<request op="read" vba="23" count="1" sync="no" salt="4673"/>
|
|
<request op="read" vba="25" count="1" sync="no" salt="3243"/>
|
|
<request op="read" vba="28" count="2" sync="no" salt="5774"/>
|
|
<request op="extend_ft" count="11" sync="no"/>
|
|
<request op="read" vba="24" count="1" sync="no" salt="6092"/>
|
|
<request op="read" vba="12" count="3" sync="no" salt="4545"/>
|
|
<request op="read" vba="19" count="3" sync="no" salt="9311"/>
|
|
<request op="read" vba="10" count="2" sync="no" salt="7538"/>
|
|
<request op="read" vba="65" count="7" sync="no" salt="4583"/>
|
|
<request op="write" vba="60" count="10" sync="no" salt="2725"/>
|
|
<request op="read" vba="63" count="7" sync="no" salt="2725"/>
|
|
<request op="read" vba="70" count="2" sync="no" salt="4583"/>
|
|
<request op="sync" vba="0" count="256" sync="yes"/>
|
|
<check/>
|
|
|
|
<log string="Step 14: test synchronous vbd extension"/>
|
|
|
|
<request op="write" vba="20" count="3" sync="yes" salt="0473"/>
|
|
<request op="extend_vbd" count="23" sync="yes"/>
|
|
<request op="read" vba="21" count="1" sync="yes" salt="0473"/>
|
|
<request op="extend_vbd" count="6" sync="yes"/>
|
|
<request op="write" vba="15" count="10" sync="yes" salt="1296"/>
|
|
<request op="write" vba="15" count="4" sync="yes" salt="1161"/>
|
|
<request op="extend_vbd" count="10" sync="yes"/>
|
|
<request op="read" vba="21" count="3" sync="yes" salt="1296"/>
|
|
<request op="read" vba="19" count="3" sync="yes" salt="1296"/>
|
|
<request op="write" vba="17" count="5" sync="yes" salt="5353"/>
|
|
<request op="extend_vbd" count="2" sync="yes"/>
|
|
<request op="extend_vbd" count="2" sync="yes"/>
|
|
<request op="extend_vbd" count="2" sync="yes"/>
|
|
<request op="read" vba="22" count="3" sync="yes" salt="1296"/>
|
|
<request op="extend_vbd" count="1" sync="yes"/>
|
|
<request op="read" vba="15" count="2" sync="yes" salt="1161"/>
|
|
<request op="write" vba="11" count="6" sync="yes" salt="3654"/>
|
|
<request op="write" vba="65" count="1" sync="yes" salt="5346"/>
|
|
<request op="read" vba="65" count="1" sync="yes" salt="5346"/>
|
|
<request op="sync" vba="0" count="256" sync="yes"/>
|
|
<check/>
|
|
|
|
<log string="Step 15: test asynchronous vbd extension"/>
|
|
|
|
<request op="write" vba="20" count="3" sync="no" salt="7384"/>
|
|
<request op="extend_vbd" count="21" sync="no"/>
|
|
<request op="extend_vbd" count="17" sync="no"/>
|
|
<request op="read" vba="21" count="1" sync="no" salt="7384"/>
|
|
<request op="write" vba="15" count="10" sync="no" salt="9602"/>
|
|
<request op="write" vba="15" count="4" sync="no" salt="6100"/>
|
|
<request op="read" vba="21" count="3" sync="no" salt="9602"/>
|
|
<request op="read" vba="19" count="3" sync="no" salt="9602"/>
|
|
<request op="write" vba="17" count="5" sync="no" salt="5555"/>
|
|
<request op="read" vba="22" count="3" sync="no" salt="9602"/>
|
|
<request op="read" vba="15" count="2" sync="no" salt="6100"/>
|
|
<request op="extend_vbd" count="180" sync="no"/>
|
|
<request op="write" vba="11" count="6" sync="no" salt="1436"/>
|
|
<request op="read" vba="17" count="5" sync="no" salt="5555"/>
|
|
<request op="write" vba="22" count="2" sync="no" salt="7463"/>
|
|
<request op="write" vba="25" count="11" sync="no" salt="4323"/>
|
|
<request op="read" vba="24" count="1" sync="no" salt="9602"/>
|
|
<request op="write" vba="10" count="5" sync="no" salt="3758"/>
|
|
<request op="extend_vbd" count="3" sync="no"/>
|
|
<request op="extend_vbd" count="2" sync="no"/>
|
|
<request op="write" vba="21" count="2" sync="no" salt="8094"/>
|
|
<request op="write" vba="12" count="10" sync="no" salt="4455"/>
|
|
<request op="write" vba="26" count="4" sync="no" salt="7574"/>
|
|
<request op="write" vba="15" count="7" sync="no" salt="1931"/>
|
|
<request op="write" vba="65" count="7" sync="no" salt="8453"/>
|
|
<request op="read" vba="23" count="1" sync="no" salt="7463"/>
|
|
<request op="read" vba="25" count="1" sync="no" salt="4323"/>
|
|
<request op="read" vba="28" count="2" sync="no" salt="7574"/>
|
|
<request op="extend_vbd" count="11" sync="no"/>
|
|
<request op="read" vba="24" count="1" sync="no" salt="9602"/>
|
|
<request op="read" vba="12" count="3" sync="no" salt="4455"/>
|
|
<request op="read" vba="19" count="3" sync="no" salt="1931"/>
|
|
<request op="read" vba="10" count="2" sync="no" salt="3758"/>
|
|
<request op="read" vba="65" count="7" sync="no" salt="8453"/>
|
|
<request op="write" vba="60" count="10" sync="no" salt="2275"/>
|
|
<request op="read" vba="63" count="7" sync="no" salt="2275"/>
|
|
<request op="read" vba="70" count="2" sync="no" salt="8453"/>
|
|
<request op="sync" vba="0" count="256" sync="yes"/>
|
|
<check/>
|
|
|
|
<log string="Step 16: reinitialize Tresor device"/>
|
|
|
|
<request op="deinitialize" sync="no"/>
|
|
<destruct/>
|
|
<initialize>
|
|
|
|
<virtual-block-device
|
|
nr_of_levels="4"
|
|
nr_of_children="64"
|
|
nr_of_leafs="25600" />
|
|
|
|
<free-tree
|
|
nr_of_levels="4"
|
|
nr_of_children="64"
|
|
nr_of_leafs="25600" />
|
|
|
|
</initialize>
|
|
<construct/>
|
|
}
|
|
if {[benchmark_blk_count] > 0} {
|
|
|
|
append config {
|
|
|
|
<log string="Step 17: do read/write benchmarks"/>
|
|
|
|
<benchmark op="start" label="read initial data in one request"/>
|
|
<request op="read" vba="0" count="} [benchmark_blk_count] {" sync="no"/>
|
|
<benchmark op="stop"/>
|
|
|
|
<benchmark op="start" label="overwrite initial data in one request"/>
|
|
<request op="write" vba="0" count="} [benchmark_blk_count] {" sync="no"/>
|
|
<benchmark op="stop"/>
|
|
|
|
<benchmark op="start" label="overwrite written data in one request"/>
|
|
<request op="write" vba="0" count="} [benchmark_blk_count] {" sync="no"/>
|
|
<benchmark op="stop"/>
|
|
|
|
<benchmark op="start" label="read written data in one request"/>
|
|
<request op="read" vba="0" count="} [benchmark_blk_count] {" sync="no"/>
|
|
<benchmark op="stop"/>
|
|
|
|
<benchmark op="start" label="read written data randomized"/>
|
|
|
|
<request op="read" vba="00001" count="10" sync="no"/>
|
|
<request op="read" vba="00028" count="80" sync="no"/>
|
|
<request op="read" vba="24045" count="50" sync="no"/>
|
|
<request op="read" vba="04441" count="10" sync="no"/>
|
|
<request op="read" vba="14240" count="40" sync="no"/>
|
|
<request op="read" vba="00230" count="80" sync="no"/>
|
|
<request op="read" vba="01673" count="30" sync="no"/>
|
|
<request op="read" vba="21609" count="30" sync="no"/>
|
|
<request op="read" vba="12201" count="10" sync="no"/>
|
|
<request op="read" vba="19601" count="10" sync="no"/>
|
|
<request op="read" vba="08901" count="10" sync="no"/>
|
|
<request op="read" vba="00972" count="20" sync="no"/>
|
|
<request op="read" vba="00097" count="70" sync="no"/>
|
|
<request op="read" vba="05593" count="30" sync="no"/>
|
|
<request op="read" vba="15201" count="10" sync="no"/>
|
|
<request op="read" vba="25237" count="20" sync="no"/>
|
|
<request op="read" vba="03537" count="70" sync="no"/>
|
|
<request op="read" vba="15151" count="10" sync="no"/>
|
|
<request op="read" vba="04374" count="40" sync="no"/>
|
|
<request op="read" vba="05350" count="40" sync="no"/>
|
|
<request op="read" vba="00754" count="40" sync="no"/>
|
|
<request op="read" vba="01729" count="90" sync="no"/>
|
|
<request op="read" vba="11246" count="60" sync="no"/>
|
|
<request op="read" vba="13229" count="90" sync="no"/>
|
|
<request op="read" vba="13001" count="10" sync="no"/>
|
|
<request op="read" vba="00120" count="90" sync="no"/>
|
|
<request op="read" vba="20111" count="10" sync="no"/>
|
|
<request op="read" vba="02451" count="10" sync="no"/>
|
|
<request op="read" vba="14734" count="40" sync="no"/>
|
|
<request op="read" vba="00942" count="20" sync="no"/>
|
|
<request op="read" vba="00091" count="10" sync="no"/>
|
|
<request op="read" vba="23011" count="10" sync="no"/>
|
|
<request op="read" vba="20271" count="50" sync="no"/>
|
|
<request op="read" vba="01283" count="30" sync="no"/>
|
|
<request op="read" vba="12823" count="30" sync="no"/>
|
|
<request op="read" vba="00200" count="50" sync="no"/>
|
|
<request op="read" vba="01234" count="40" sync="no"/>
|
|
<request op="read" vba="17490" count="70" sync="no"/>
|
|
<request op="read" vba="19990" count="20" sync="no"/>
|
|
<request op="read" vba="02190" count="30" sync="no"/>
|
|
<request op="read" vba="00421" count="10" sync="no"/>
|
|
<request op="read" vba="11421" count="10" sync="no"/>
|
|
<request op="read" vba="02481" count="50" sync="no"/>
|
|
<request op="read" vba="23471" count="10" sync="no"/>
|
|
<request op="read" vba="21291" count="40" sync="no"/>
|
|
<request op="read" vba="00212" count="20" sync="no"/>
|
|
<request op="read" vba="14402" count="20" sync="no"/>
|
|
<request op="read" vba="01201" count="10" sync="no"/>
|
|
<request op="read" vba="20975" count="30" sync="no"/>
|
|
<request op="read" vba="13777" count="70" sync="no"/>
|
|
|
|
<request op="read" vba="00100" count="10" sync="no"/>
|
|
<request op="read" vba="00820" count="80" sync="no"/>
|
|
<request op="read" vba="24540" count="50" sync="no"/>
|
|
<request op="read" vba="04144" count="10" sync="no"/>
|
|
<request op="read" vba="14042" count="40" sync="no"/>
|
|
<request op="read" vba="00032" count="80" sync="no"/>
|
|
<request op="read" vba="01376" count="30" sync="no"/>
|
|
<request op="read" vba="21906" count="30" sync="no"/>
|
|
<request op="read" vba="12102" count="10" sync="no"/>
|
|
<request op="read" vba="19106" count="10" sync="no"/>
|
|
<request op="read" vba="08109" count="10" sync="no"/>
|
|
<request op="read" vba="00279" count="20" sync="no"/>
|
|
<request op="read" vba="00790" count="70" sync="no"/>
|
|
<request op="read" vba="05395" count="30" sync="no"/>
|
|
<request op="read" vba="15102" count="10" sync="no"/>
|
|
<request op="read" vba="25032" count="20" sync="no"/>
|
|
<request op="read" vba="03735" count="70" sync="no"/>
|
|
<request op="read" vba="15151" count="10" sync="no"/>
|
|
<request op="read" vba="04473" count="40" sync="no"/>
|
|
<request op="read" vba="05053" count="40" sync="no"/>
|
|
<request op="read" vba="00457" count="40" sync="no"/>
|
|
<request op="read" vba="01927" count="90" sync="no"/>
|
|
<request op="read" vba="11642" count="60" sync="no"/>
|
|
<request op="read" vba="13922" count="90" sync="no"/>
|
|
<request op="read" vba="13100" count="10" sync="no"/>
|
|
<request op="read" vba="00021" count="90" sync="no"/>
|
|
<request op="read" vba="20111" count="10" sync="no"/>
|
|
<request op="read" vba="02154" count="10" sync="no"/>
|
|
<request op="read" vba="14437" count="40" sync="no"/>
|
|
<request op="read" vba="00249" count="20" sync="no"/>
|
|
<request op="read" vba="00190" count="10" sync="no"/>
|
|
<request op="read" vba="23110" count="10" sync="no"/>
|
|
<request op="read" vba="20172" count="50" sync="no"/>
|
|
<request op="read" vba="01382" count="30" sync="no"/>
|
|
<request op="read" vba="12328" count="30" sync="no"/>
|
|
<request op="read" vba="00002" count="50" sync="no"/>
|
|
<request op="read" vba="01432" count="40" sync="no"/>
|
|
<request op="read" vba="17094" count="70" sync="no"/>
|
|
<request op="read" vba="19099" count="20" sync="no"/>
|
|
<request op="read" vba="02091" count="30" sync="no"/>
|
|
<request op="read" vba="00124" count="10" sync="no"/>
|
|
<request op="read" vba="11124" count="10" sync="no"/>
|
|
<request op="read" vba="02184" count="50" sync="no"/>
|
|
<request op="read" vba="23174" count="10" sync="no"/>
|
|
<request op="read" vba="21192" count="40" sync="no"/>
|
|
<request op="read" vba="00212" count="20" sync="no"/>
|
|
<request op="read" vba="14204" count="20" sync="no"/>
|
|
<request op="read" vba="01102" count="10" sync="no"/>
|
|
<request op="read" vba="20579" count="30" sync="no"/>
|
|
<request op="read" vba="13777" count="70" sync="no"/>
|
|
|
|
<request op="read" vba="00010" count="10" sync="no"/>
|
|
<request op="read" vba="02080" count="80" sync="no"/>
|
|
<request op="read" vba="24054" count="50" sync="no"/>
|
|
<request op="read" vba="04414" count="10" sync="no"/>
|
|
<request op="read" vba="14204" count="40" sync="no"/>
|
|
<request op="read" vba="03200" count="80" sync="no"/>
|
|
<request op="read" vba="07631" count="30" sync="no"/>
|
|
<request op="read" vba="20691" count="30" sync="no"/>
|
|
<request op="read" vba="10212" count="10" sync="no"/>
|
|
<request op="read" vba="10619" count="10" sync="no"/>
|
|
<request op="read" vba="00918" count="10" sync="no"/>
|
|
<request op="read" vba="07920" count="20" sync="no"/>
|
|
<request op="read" vba="09070" count="70" sync="no"/>
|
|
<request op="read" vba="09535" count="30" sync="no"/>
|
|
<request op="read" vba="10215" count="10" sync="no"/>
|
|
<request op="read" vba="23275" count="20" sync="no"/>
|
|
<request op="read" vba="03573" count="70" sync="no"/>
|
|
<request op="read" vba="15115" count="10" sync="no"/>
|
|
<request op="read" vba="07344" count="40" sync="no"/>
|
|
<request op="read" vba="05305" count="40" sync="no"/>
|
|
<request op="read" vba="05740" count="40" sync="no"/>
|
|
<request op="read" vba="02791" count="90" sync="no"/>
|
|
<request op="read" vba="14261" count="60" sync="no"/>
|
|
<request op="read" vba="12293" count="90" sync="no"/>
|
|
<request op="read" vba="10013" count="10" sync="no"/>
|
|
<request op="read" vba="02100" count="90" sync="no"/>
|
|
<request op="read" vba="21110" count="10" sync="no"/>
|
|
<request op="read" vba="05412" count="10" sync="no"/>
|
|
<request op="read" vba="13744" count="40" sync="no"/>
|
|
<request op="read" vba="04920" count="20" sync="no"/>
|
|
<request op="read" vba="09010" count="10" sync="no"/>
|
|
<request op="read" vba="21013" count="10" sync="no"/>
|
|
<request op="read" vba="00210" count="50" sync="no"/>
|
|
<request op="read" vba="08231" count="30" sync="no"/>
|
|
<request op="read" vba="12832" count="30" sync="no"/>
|
|
<request op="read" vba="00200" count="50" sync="no"/>
|
|
<request op="read" vba="03241" count="40" sync="no"/>
|
|
<request op="read" vba="19407" count="70" sync="no"/>
|
|
<request op="read" vba="19909" count="20" sync="no"/>
|
|
<request op="read" vba="09102" count="30" sync="no"/>
|
|
<request op="read" vba="02410" count="10" sync="no"/>
|
|
<request op="read" vba="12411" count="10" sync="no"/>
|
|
<request op="read" vba="08412" count="50" sync="no"/>
|
|
<request op="read" vba="22413" count="10" sync="no"/>
|
|
<request op="read" vba="24211" count="40" sync="no"/>
|
|
<request op="read" vba="01220" count="20" sync="no"/>
|
|
<request op="read" vba="10424" count="20" sync="no"/>
|
|
<request op="read" vba="00211" count="10" sync="no"/>
|
|
<request op="read" vba="21950" count="30" sync="no"/>
|
|
<request op="read" vba="17773" count="70" sync="no"/>
|
|
|
|
<request op="read" vba="01000" count="10" sync="no"/>
|
|
<request op="read" vba="08002" count="80" sync="no"/>
|
|
<request op="read" vba="25044" count="50" sync="no"/>
|
|
<request op="read" vba="01444" count="10" sync="no"/>
|
|
<request op="read" vba="10244" count="40" sync="no"/>
|
|
<request op="read" vba="00203" count="80" sync="no"/>
|
|
<request op="read" vba="03617" count="30" sync="no"/>
|
|
<request op="read" vba="23610" count="30" sync="no"/>
|
|
<request op="read" vba="11220" count="10" sync="no"/>
|
|
<request op="read" vba="11690" count="10" sync="no"/>
|
|
<request op="read" vba="01980" count="10" sync="no"/>
|
|
<request op="read" vba="02907" count="20" sync="no"/>
|
|
<request op="read" vba="07009" count="70" sync="no"/>
|
|
<request op="read" vba="03559" count="30" sync="no"/>
|
|
<request op="read" vba="11250" count="10" sync="no"/>
|
|
<request op="read" vba="20253" count="20" sync="no"/>
|
|
<request op="read" vba="07533" count="70" sync="no"/>
|
|
<request op="read" vba="11155" count="10" sync="no"/>
|
|
<request op="read" vba="04347" count="40" sync="no"/>
|
|
<request op="read" vba="00355" count="40" sync="no"/>
|
|
<request op="read" vba="04705" count="40" sync="no"/>
|
|
<request op="read" vba="09712" count="90" sync="no"/>
|
|
<request op="read" vba="16214" count="60" sync="no"/>
|
|
<request op="read" vba="19232" count="90" sync="no"/>
|
|
<request op="read" vba="11030" count="10" sync="no"/>
|
|
<request op="read" vba="00102" count="90" sync="no"/>
|
|
<request op="read" vba="21101" count="10" sync="no"/>
|
|
<request op="read" vba="01425" count="10" sync="no"/>
|
|
<request op="read" vba="14743" count="40" sync="no"/>
|
|
<request op="read" vba="02904" count="20" sync="no"/>
|
|
<request op="read" vba="01009" count="10" sync="no"/>
|
|
<request op="read" vba="21031" count="10" sync="no"/>
|
|
<request op="read" vba="25207" count="50" sync="no"/>
|
|
<request op="read" vba="03218" count="30" sync="no"/>
|
|
<request op="read" vba="13822" count="30" sync="no"/>
|
|
<request op="read" vba="00200" count="50" sync="no"/>
|
|
<request op="read" vba="04213" count="40" sync="no"/>
|
|
<request op="read" vba="10479" count="70" sync="no"/>
|
|
<request op="read" vba="10999" count="20" sync="no"/>
|
|
<request op="read" vba="00129" count="30" sync="no"/>
|
|
<request op="read" vba="01402" count="10" sync="no"/>
|
|
<request op="read" vba="11412" count="10" sync="no"/>
|
|
<request op="read" vba="01428" count="50" sync="no"/>
|
|
<request op="read" vba="21437" count="10" sync="no"/>
|
|
<request op="read" vba="24219" count="40" sync="no"/>
|
|
<request op="read" vba="02201" count="20" sync="no"/>
|
|
<request op="read" vba="12440" count="20" sync="no"/>
|
|
<request op="read" vba="01210" count="10" sync="no"/>
|
|
<request op="read" vba="20907" count="30" sync="no"/>
|
|
<request op="read" vba="17737" count="70" sync="no"/>
|
|
|
|
<benchmark op="stop"/>
|
|
|
|
<benchmark op="start" label="overwrite written data randomized"/>
|
|
|
|
<request op="write" vba="00001" count="10" sync="no"/>
|
|
<request op="write" vba="00028" count="80" sync="no"/>
|
|
<request op="write" vba="24045" count="50" sync="no"/>
|
|
<request op="write" vba="04441" count="10" sync="no"/>
|
|
<request op="write" vba="14240" count="40" sync="no"/>
|
|
<request op="write" vba="00230" count="80" sync="no"/>
|
|
<request op="write" vba="01673" count="30" sync="no"/>
|
|
<request op="write" vba="21609" count="30" sync="no"/>
|
|
<request op="write" vba="12201" count="10" sync="no"/>
|
|
<request op="write" vba="19601" count="10" sync="no"/>
|
|
<request op="write" vba="08901" count="10" sync="no"/>
|
|
<request op="write" vba="00972" count="20" sync="no"/>
|
|
<request op="write" vba="00097" count="70" sync="no"/>
|
|
<request op="write" vba="05593" count="30" sync="no"/>
|
|
<request op="write" vba="15201" count="10" sync="no"/>
|
|
<request op="write" vba="25237" count="20" sync="no"/>
|
|
<request op="write" vba="03537" count="70" sync="no"/>
|
|
<request op="write" vba="15151" count="10" sync="no"/>
|
|
<request op="write" vba="04374" count="40" sync="no"/>
|
|
<request op="write" vba="05350" count="40" sync="no"/>
|
|
<request op="write" vba="00754" count="40" sync="no"/>
|
|
<request op="write" vba="01729" count="90" sync="no"/>
|
|
<request op="write" vba="11246" count="60" sync="no"/>
|
|
<request op="write" vba="13229" count="90" sync="no"/>
|
|
<request op="write" vba="13001" count="10" sync="no"/>
|
|
<request op="write" vba="00120" count="90" sync="no"/>
|
|
<request op="write" vba="20111" count="10" sync="no"/>
|
|
<request op="write" vba="02451" count="10" sync="no"/>
|
|
<request op="write" vba="14734" count="40" sync="no"/>
|
|
<request op="write" vba="00942" count="20" sync="no"/>
|
|
<request op="write" vba="00091" count="10" sync="no"/>
|
|
<request op="write" vba="23011" count="10" sync="no"/>
|
|
<request op="write" vba="20271" count="50" sync="no"/>
|
|
<request op="write" vba="01283" count="30" sync="no"/>
|
|
<request op="write" vba="12823" count="30" sync="no"/>
|
|
<request op="write" vba="00200" count="50" sync="no"/>
|
|
<request op="write" vba="01234" count="40" sync="no"/>
|
|
<request op="write" vba="17490" count="70" sync="no"/>
|
|
<request op="write" vba="19990" count="20" sync="no"/>
|
|
<request op="write" vba="02190" count="30" sync="no"/>
|
|
<request op="write" vba="00421" count="10" sync="no"/>
|
|
<request op="write" vba="11421" count="10" sync="no"/>
|
|
<request op="write" vba="02481" count="50" sync="no"/>
|
|
<request op="write" vba="23471" count="10" sync="no"/>
|
|
<request op="write" vba="21291" count="40" sync="no"/>
|
|
<request op="write" vba="00212" count="20" sync="no"/>
|
|
<request op="write" vba="14402" count="20" sync="no"/>
|
|
<request op="write" vba="01201" count="10" sync="no"/>
|
|
<request op="write" vba="20975" count="30" sync="no"/>
|
|
<request op="write" vba="13777" count="70" sync="no"/>
|
|
|
|
<request op="write" vba="00100" count="10" sync="no"/>
|
|
<request op="write" vba="00820" count="80" sync="no"/>
|
|
<request op="write" vba="24540" count="50" sync="no"/>
|
|
<request op="write" vba="04144" count="10" sync="no"/>
|
|
<request op="write" vba="14042" count="40" sync="no"/>
|
|
<request op="write" vba="00032" count="80" sync="no"/>
|
|
<request op="write" vba="01376" count="30" sync="no"/>
|
|
<request op="write" vba="21906" count="30" sync="no"/>
|
|
<request op="write" vba="12102" count="10" sync="no"/>
|
|
<request op="write" vba="19106" count="10" sync="no"/>
|
|
<request op="write" vba="08109" count="10" sync="no"/>
|
|
<request op="write" vba="00279" count="20" sync="no"/>
|
|
<request op="write" vba="00790" count="70" sync="no"/>
|
|
<request op="write" vba="05395" count="30" sync="no"/>
|
|
<request op="write" vba="15102" count="10" sync="no"/>
|
|
<request op="write" vba="25032" count="20" sync="no"/>
|
|
<request op="write" vba="03735" count="70" sync="no"/>
|
|
<request op="write" vba="15151" count="10" sync="no"/>
|
|
<request op="write" vba="04473" count="40" sync="no"/>
|
|
<request op="write" vba="05053" count="40" sync="no"/>
|
|
<request op="write" vba="00457" count="40" sync="no"/>
|
|
<request op="write" vba="01927" count="90" sync="no"/>
|
|
<request op="write" vba="11642" count="60" sync="no"/>
|
|
<request op="write" vba="13922" count="90" sync="no"/>
|
|
<request op="write" vba="13100" count="10" sync="no"/>
|
|
<request op="write" vba="00021" count="90" sync="no"/>
|
|
<request op="write" vba="20111" count="10" sync="no"/>
|
|
<request op="write" vba="02154" count="10" sync="no"/>
|
|
<request op="write" vba="14437" count="40" sync="no"/>
|
|
<request op="write" vba="00249" count="20" sync="no"/>
|
|
<request op="write" vba="00190" count="10" sync="no"/>
|
|
<request op="write" vba="23110" count="10" sync="no"/>
|
|
<request op="write" vba="20172" count="50" sync="no"/>
|
|
<request op="write" vba="01382" count="30" sync="no"/>
|
|
<request op="write" vba="12328" count="30" sync="no"/>
|
|
<request op="write" vba="00002" count="50" sync="no"/>
|
|
<request op="write" vba="01432" count="40" sync="no"/>
|
|
<request op="write" vba="17094" count="70" sync="no"/>
|
|
<request op="write" vba="19099" count="20" sync="no"/>
|
|
<request op="write" vba="02091" count="30" sync="no"/>
|
|
<request op="write" vba="00124" count="10" sync="no"/>
|
|
<request op="write" vba="11124" count="10" sync="no"/>
|
|
<request op="write" vba="02184" count="50" sync="no"/>
|
|
<request op="write" vba="23174" count="10" sync="no"/>
|
|
<request op="write" vba="21192" count="40" sync="no"/>
|
|
<request op="write" vba="00212" count="20" sync="no"/>
|
|
<request op="write" vba="14204" count="20" sync="no"/>
|
|
<request op="write" vba="01102" count="10" sync="no"/>
|
|
<request op="write" vba="20579" count="30" sync="no"/>
|
|
<request op="write" vba="13777" count="70" sync="no"/>
|
|
|
|
<request op="write" vba="00010" count="10" sync="no"/>
|
|
<request op="write" vba="02080" count="80" sync="no"/>
|
|
<request op="write" vba="24054" count="50" sync="no"/>
|
|
<request op="write" vba="04414" count="10" sync="no"/>
|
|
<request op="write" vba="14204" count="40" sync="no"/>
|
|
<request op="write" vba="03200" count="80" sync="no"/>
|
|
<request op="write" vba="07631" count="30" sync="no"/>
|
|
<request op="write" vba="20691" count="30" sync="no"/>
|
|
<request op="write" vba="10212" count="10" sync="no"/>
|
|
<request op="write" vba="10619" count="10" sync="no"/>
|
|
<request op="write" vba="00918" count="10" sync="no"/>
|
|
<request op="write" vba="07920" count="20" sync="no"/>
|
|
<request op="write" vba="09070" count="70" sync="no"/>
|
|
<request op="write" vba="09535" count="30" sync="no"/>
|
|
<request op="write" vba="10215" count="10" sync="no"/>
|
|
<request op="write" vba="23275" count="20" sync="no"/>
|
|
<request op="write" vba="03573" count="70" sync="no"/>
|
|
<request op="write" vba="15115" count="10" sync="no"/>
|
|
<request op="write" vba="07344" count="40" sync="no"/>
|
|
<request op="write" vba="05305" count="40" sync="no"/>
|
|
<request op="write" vba="05740" count="40" sync="no"/>
|
|
<request op="write" vba="02791" count="90" sync="no"/>
|
|
<request op="write" vba="14261" count="60" sync="no"/>
|
|
<request op="write" vba="12293" count="90" sync="no"/>
|
|
<request op="write" vba="10013" count="10" sync="no"/>
|
|
<request op="write" vba="02100" count="90" sync="no"/>
|
|
<request op="write" vba="21110" count="10" sync="no"/>
|
|
<request op="write" vba="05412" count="10" sync="no"/>
|
|
<request op="write" vba="13744" count="40" sync="no"/>
|
|
<request op="write" vba="04920" count="20" sync="no"/>
|
|
<request op="write" vba="09010" count="10" sync="no"/>
|
|
<request op="write" vba="21013" count="10" sync="no"/>
|
|
<request op="write" vba="00210" count="50" sync="no"/>
|
|
<request op="write" vba="08231" count="30" sync="no"/>
|
|
<request op="write" vba="12832" count="30" sync="no"/>
|
|
<request op="write" vba="00200" count="50" sync="no"/>
|
|
<request op="write" vba="03241" count="40" sync="no"/>
|
|
<request op="write" vba="19407" count="70" sync="no"/>
|
|
<request op="write" vba="19909" count="20" sync="no"/>
|
|
<request op="write" vba="09102" count="30" sync="no"/>
|
|
<request op="write" vba="02410" count="10" sync="no"/>
|
|
<request op="write" vba="12411" count="10" sync="no"/>
|
|
<request op="write" vba="08412" count="50" sync="no"/>
|
|
<request op="write" vba="22413" count="10" sync="no"/>
|
|
<request op="write" vba="24211" count="40" sync="no"/>
|
|
<request op="write" vba="01220" count="20" sync="no"/>
|
|
<request op="write" vba="10424" count="20" sync="no"/>
|
|
<request op="write" vba="00211" count="10" sync="no"/>
|
|
<request op="write" vba="21950" count="30" sync="no"/>
|
|
<request op="write" vba="17773" count="70" sync="no"/>
|
|
|
|
<request op="write" vba="01000" count="10" sync="no"/>
|
|
<request op="write" vba="08002" count="80" sync="no"/>
|
|
<request op="write" vba="25044" count="50" sync="no"/>
|
|
<request op="write" vba="01444" count="10" sync="no"/>
|
|
<request op="write" vba="10244" count="40" sync="no"/>
|
|
<request op="write" vba="00203" count="80" sync="no"/>
|
|
<request op="write" vba="03617" count="30" sync="no"/>
|
|
<request op="write" vba="23610" count="30" sync="no"/>
|
|
<request op="write" vba="11220" count="10" sync="no"/>
|
|
<request op="write" vba="11690" count="10" sync="no"/>
|
|
<request op="write" vba="01980" count="10" sync="no"/>
|
|
<request op="write" vba="02907" count="20" sync="no"/>
|
|
<request op="write" vba="07009" count="70" sync="no"/>
|
|
<request op="write" vba="03559" count="30" sync="no"/>
|
|
<request op="write" vba="11250" count="10" sync="no"/>
|
|
<request op="write" vba="20253" count="20" sync="no"/>
|
|
<request op="write" vba="07533" count="70" sync="no"/>
|
|
<request op="write" vba="11155" count="10" sync="no"/>
|
|
<request op="write" vba="04347" count="40" sync="no"/>
|
|
<request op="write" vba="00355" count="40" sync="no"/>
|
|
<request op="write" vba="04705" count="40" sync="no"/>
|
|
<request op="write" vba="09712" count="90" sync="no"/>
|
|
<request op="write" vba="16214" count="60" sync="no"/>
|
|
<request op="write" vba="19232" count="90" sync="no"/>
|
|
<request op="write" vba="11030" count="10" sync="no"/>
|
|
<request op="write" vba="00102" count="90" sync="no"/>
|
|
<request op="write" vba="21101" count="10" sync="no"/>
|
|
<request op="write" vba="01425" count="10" sync="no"/>
|
|
<request op="write" vba="14743" count="40" sync="no"/>
|
|
<request op="write" vba="02904" count="20" sync="no"/>
|
|
<request op="write" vba="01009" count="10" sync="no"/>
|
|
<request op="write" vba="21031" count="10" sync="no"/>
|
|
<request op="write" vba="25207" count="50" sync="no"/>
|
|
<request op="write" vba="03218" count="30" sync="no"/>
|
|
<request op="write" vba="13822" count="30" sync="no"/>
|
|
<request op="write" vba="00200" count="50" sync="no"/>
|
|
<request op="write" vba="04213" count="40" sync="no"/>
|
|
<request op="write" vba="10479" count="70" sync="no"/>
|
|
<request op="write" vba="10999" count="20" sync="no"/>
|
|
<request op="write" vba="00129" count="30" sync="no"/>
|
|
<request op="write" vba="01402" count="10" sync="no"/>
|
|
<request op="write" vba="11412" count="10" sync="no"/>
|
|
<request op="write" vba="01428" count="50" sync="no"/>
|
|
<request op="write" vba="21437" count="10" sync="no"/>
|
|
<request op="write" vba="24219" count="40" sync="no"/>
|
|
<request op="write" vba="02201" count="20" sync="no"/>
|
|
<request op="write" vba="12440" count="20" sync="no"/>
|
|
<request op="write" vba="01210" count="10" sync="no"/>
|
|
<request op="write" vba="20907" count="30" sync="no"/>
|
|
<request op="write" vba="17737" count="70" sync="no"/>
|
|
|
|
<benchmark op="stop"/>
|
|
<check/>
|
|
}
|
|
|
|
} else {
|
|
|
|
append config {
|
|
|
|
<log string="Step 17: skip because benchmarks are disabled for this platform"/>
|
|
}
|
|
}
|
|
append config {
|
|
|
|
<log string="Step 18: test check-snapshots command"/>
|
|
|
|
<request op="create_snapshot" sync="no" id="13"/>
|
|
<request op="write" vba="17737" count="70" sync="no" salt="8924"/>
|
|
<request op="create_snapshot" sync="no" id="14"/>
|
|
<request op="write" vba="00129" count="30" sync="no" salt="9471"/>
|
|
<request op="create_snapshot" sync="no" id="15"/>
|
|
<check-snapshots/>
|
|
|
|
</commands>
|
|
|
|
</config>
|
|
|
|
<route>
|
|
<service name="File_system" label_last="trust_anchor"> <child name="trust_anchor_fs"/> </service>
|
|
<service name="File_system"> <child name="block_io_fs"/> </service>
|
|
<service name="Terminal"> <child name="log_terminal"/> </service>
|
|
<service name="Timer"> <child name="timer"/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
</route>
|
|
|
|
</start>
|
|
|
|
</config>
|
|
}
|
|
|
|
install_config $config
|
|
|
|
if {[have_board linux]} {
|
|
|
|
exec rm -rf [lx_local_tresor_image]
|
|
if { [get_cmd_switch --autopilot] } {
|
|
|
|
exec rm -rf [lx_autopilot_tresor_image]
|
|
catch { exec $dd if=/dev/urandom of=[lx_autopilot_tresor_image] bs=1M count=[lx_tresor_image_size_mb] }
|
|
exec ln -sf -T [lx_autopilot_tresor_image] [lx_local_tresor_image]
|
|
|
|
} else {
|
|
|
|
catch { exec $dd if=/dev/urandom of=[lx_local_tresor_image] bs=1M count=[lx_tresor_image_size_mb] }
|
|
}
|
|
}
|
|
|
|
set boot_modules [build_artifacts]
|
|
|
|
lappend_if [have_board linux] boot_modules [tresor_image_name]
|
|
|
|
build_boot_image $boot_modules
|
|
|
|
append qemu_args " -nographic "
|
|
|
|
set test_timeout 100
|
|
if {[benchmark_blk_count] > 0} {
|
|
set test_timeout 300
|
|
}
|
|
run_genode_until "child \"test\" exited with exit value.*\n" $test_timeout
|
|
|
|
if {[have_board linux]} {
|
|
|
|
if { [get_cmd_switch --autopilot] } {
|
|
|
|
exec rm -rf [lx_local_tresor_image]
|
|
exec rm -rf [lx_autopilot_tresor_image]
|
|
}
|
|
}
|
|
|
|
grep_output {\[init\] child "test" exited with exit value}
|
|
compare_output_to {[init] child "test" exited with exit value 0}
|