2021-07-23 22:23:26 +00:00
|
|
|
#!/usr/bin/env bash
|
2022-11-13 02:15:47 +00:00
|
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
# Copyright (C) 2021 Intel Corporation.
|
|
|
|
# All rights reserved.
|
2021-07-23 22:23:26 +00:00
|
|
|
|
|
|
|
curdir=$(dirname $(readlink -f "${BASH_SOURCE[0]}"))
|
|
|
|
rootdir=$(readlink -f $curdir/../../..)
|
|
|
|
source $rootdir/test/common/autotest_common.sh
|
|
|
|
|
2022-11-18 11:52:44 +00:00
|
|
|
bdevperf=$rootdir/build/examples/bdevperf
|
2021-07-23 22:23:26 +00:00
|
|
|
rpc_py="$rootdir/scripts/rpc.py -s /var/tmp/spdk.sock"
|
|
|
|
|
|
|
|
check_flush_in_progress() {
|
|
|
|
$rpc_py bdev_ocf_flush_status MalCache0 \
|
|
|
|
| jq -e '.in_progress' > /dev/null
|
|
|
|
}
|
|
|
|
|
|
|
|
bdevperf_config() {
|
|
|
|
local config
|
|
|
|
|
|
|
|
config="$(
|
|
|
|
cat <<- JSON
|
|
|
|
{
|
|
|
|
"method": "bdev_malloc_create",
|
|
|
|
"params": {
|
|
|
|
"name": "Malloc0",
|
|
|
|
"num_blocks": 102400,
|
|
|
|
"block_size": 512
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"method": "bdev_malloc_create",
|
|
|
|
"params": {
|
|
|
|
"name": "Malloc1",
|
|
|
|
"num_blocks": 1024000,
|
|
|
|
"block_size": 512
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"method": "bdev_ocf_create",
|
|
|
|
"params": {
|
|
|
|
"name": "MalCache0",
|
|
|
|
"mode": "wb",
|
|
|
|
"cache_line_size": 4,
|
|
|
|
"cache_bdev_name": "Malloc0",
|
|
|
|
"core_bdev_name": "Malloc1"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
JSON
|
|
|
|
)"
|
|
|
|
|
|
|
|
jq . <<- JSON
|
|
|
|
{
|
|
|
|
"subsystems": [
|
|
|
|
{
|
|
|
|
"subsystem": "bdev",
|
|
|
|
"config": [
|
|
|
|
$(
|
|
|
|
IFS=","
|
|
|
|
printf '%s\n' "$config"
|
|
|
|
),
|
|
|
|
{
|
|
|
|
"method": "bdev_wait_for_examine"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
JSON
|
|
|
|
}
|
|
|
|
|
|
|
|
$bdevperf --json <(bdevperf_config) -q 128 -o 4096 -w write -t 120 -r /var/tmp/spdk.sock &
|
|
|
|
bdevperf_pid=$!
|
|
|
|
trap 'killprocess $bdevperf_pid' SIGINT SIGTERM EXIT
|
|
|
|
waitforlisten $bdevperf_pid
|
|
|
|
sleep 5
|
|
|
|
|
|
|
|
$rpc_py bdev_ocf_flush_start MalCache0
|
|
|
|
sleep 1
|
|
|
|
|
|
|
|
while check_flush_in_progress; do
|
|
|
|
sleep 1
|
|
|
|
done
|
|
|
|
$rpc_py bdev_ocf_flush_status MalCache0 | jq -e '.status == 0'
|