xref: /spdk/test/ocf/management/multicore.sh (revision eb53c23236cccb6b698b7ca70ee783da1c574b5f)
100565ee6SVitaliy Mysak#!/usr/bin/env bash
2*eb53c232Spaul luse#  SPDX-License-Identifier: BSD-3-Clause
3*eb53c232Spaul luse#  Copyright (C) 2019 Intel Corporation
4*eb53c232Spaul luse#  All rights reserved.
5*eb53c232Spaul luse#
625f601cfSMaciej Wawrykcurdir=$(dirname $(readlink -f "${BASH_SOURCE[0]}"))
700565ee6SVitaliy Mysakrootdir=$(readlink -f $curdir/../../..)
800565ee6SVitaliy Mysaksource $rootdir/test/common/autotest_common.sh
900565ee6SVitaliy Mysak
1000565ee6SVitaliy Mysakrpc_py=$rootdir/scripts/rpc.py
1100565ee6SVitaliy Mysak
1200565ee6SVitaliy Mysakspdk_pid='?'
13844c8ec3SMichal Bergerfunction start_spdk() {
146b9b448eSBen Walker	$SPDK_BIN_DIR/iscsi_tgt &
1500565ee6SVitaliy Mysak	spdk_pid=$!
1690c84ec5SKarol Latecki	trap 'killprocess $spdk_pid; exit 1' SIGINT SIGTERM EXIT
1700565ee6SVitaliy Mysak	waitforlisten $spdk_pid
1800565ee6SVitaliy Mysak}
19844c8ec3SMichal Bergerfunction stop_spdk() {
20d0111963SDarek Stojaczyk	killprocess $spdk_pid
2100565ee6SVitaliy Mysak	trap - SIGINT SIGTERM EXIT
2200565ee6SVitaliy Mysak}
2300565ee6SVitaliy Mysak
2400565ee6SVitaliy Mysakstart_spdk
2500565ee6SVitaliy Mysak
2600565ee6SVitaliy Mysak# Hotplug case
2700565ee6SVitaliy Mysak
287964f1dfSPawel Kaminski$rpc_py bdev_malloc_create 1 512 -b Core0
297964f1dfSPawel Kaminski$rpc_py bdev_malloc_create 1 512 -b Core1
3000565ee6SVitaliy Mysak
31557f8ff9SPawel Kaminski$rpc_py bdev_ocf_create C1 wt Cache Core0
32557f8ff9SPawel Kaminski$rpc_py bdev_ocf_create C2 wt Cache Core1
3300565ee6SVitaliy Mysak
3495482c54SPawel Kaminski$rpc_py bdev_ocf_get_bdevs | jq -e \
3500565ee6SVitaliy Mysak	'any(select(.started)) == false'
3600565ee6SVitaliy Mysak
377964f1dfSPawel Kaminski$rpc_py bdev_malloc_create 101 512 -b Cache
3800565ee6SVitaliy Mysak
3995482c54SPawel Kaminski$rpc_py bdev_ocf_get_bdevs | jq -e \
4000565ee6SVitaliy Mysak	'all(select(.started)) == true'
4100565ee6SVitaliy Mysak
428f80af4cSMarcin Dziegielewski#Be sure that we will not fail delete because examine is still in progress
438f80af4cSMarcin Dziegielewskiwaitforbdev C2
448f80af4cSMarcin Dziegielewski
4500565ee6SVitaliy Mysak# Detaching cores
4600565ee6SVitaliy Mysak
47557f8ff9SPawel Kaminski$rpc_py bdev_ocf_delete C2
4800565ee6SVitaliy Mysak
4995482c54SPawel Kaminski$rpc_py bdev_ocf_get_bdevs C1 | jq -e \
50bef0c6edSVitaliy Mysak	'.[0] | .started'
5100565ee6SVitaliy Mysak
52557f8ff9SPawel Kaminski$rpc_py bdev_ocf_create C2 wt Cache Core1
5300565ee6SVitaliy Mysak
5495482c54SPawel Kaminski$rpc_py bdev_ocf_get_bdevs C2 | jq -e \
55bef0c6edSVitaliy Mysak	'.[0] | .started'
5600565ee6SVitaliy Mysak
5700565ee6SVitaliy Mysak# Normal shutdown
5800565ee6SVitaliy Mysak
5900565ee6SVitaliy Mysakstop_spdk
6000565ee6SVitaliy Mysak
6100565ee6SVitaliy Mysak# Hotremove case
6200565ee6SVitaliy Mysakstart_spdk
6300565ee6SVitaliy Mysak
647964f1dfSPawel Kaminski$rpc_py bdev_malloc_create 101 512 -b Cache
657964f1dfSPawel Kaminski$rpc_py bdev_malloc_create 101 512 -b Malloc
667964f1dfSPawel Kaminski$rpc_py bdev_malloc_create 1 512 -b Core
6700565ee6SVitaliy Mysak
68557f8ff9SPawel Kaminski$rpc_py bdev_ocf_create C1 wt Cache Malloc
69557f8ff9SPawel Kaminski$rpc_py bdev_ocf_create C2 wt Cache Core
7000565ee6SVitaliy Mysak
7195482c54SPawel Kaminski$rpc_py bdev_ocf_get_bdevs Cache | jq \
72bef0c6edSVitaliy Mysak	'length == 2'
73bef0c6edSVitaliy Mysak
7406a1b419SPawel Kaminski$rpc_py bdev_malloc_delete Cache
7500565ee6SVitaliy Mysak
7695482c54SPawel Kaminski$rpc_py bdev_ocf_get_bdevs | jq -e \
7700565ee6SVitaliy Mysak	'. == []'
7800565ee6SVitaliy Mysak
7900565ee6SVitaliy Mysak# Not fully initialized shutdown
8000565ee6SVitaliy Mysak
81557f8ff9SPawel Kaminski$rpc_py bdev_ocf_create C1 wt Malloc NonExisting
82557f8ff9SPawel Kaminski$rpc_py bdev_ocf_create C2 wt Malloc NonExisting
83557f8ff9SPawel Kaminski$rpc_py bdev_ocf_create C3 wt Malloc Core
8400565ee6SVitaliy Mysak
8500565ee6SVitaliy Mysakstop_spdk
86