Spdk/test
Shuhei Matsumoto 2139be1598 lib/thread: spdk_thread_poll() measures run time per call by reading end TSC
Update spdk_thread_poll() to count SPDK thread stats correctly on multiple
SPDK threads per reactor configuration.

spdk_thread_poll() gets start time and reads TSC at end as end time,
and then gets delta between them as run time. Run time is added to idle
time or busy time according to the result of polling.

Reactor overhead is included into the next thread which calls
spdk_thread_poll() now.

spdk_thread_poll() saves the end time to the current thread to use it
as the start time of the next thread.

Unit test framework for this patch and the next patch need to access
thread->tsc_last. In the next patch, reactor will use the end time of
the current thread to the start time of the next thread in reactor_run()
to realize the idea.

Hence add an new API spdk_thread_get_last_tsc(). The corresponding
variable is named as tsc_last and it is good and is aligned with
DPDK (DPDK has used tsc_start and tsc_end as variable name). But
last_tsc will be better as API name because the last TSC value is
easier to understand.

Then add necessary unit test and update the unit test framework.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I5e465e9283c032acb427576d0c90f9e1414f2271
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1048
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
2020-03-25 07:52:53 +00:00
..
app test/iscsi: add application for target fuzz testing. 2020-03-13 08:53:46 +00:00
bdev bdevperf: Rename end_run bdevperf_job_end 2020-03-25 07:52:43 +00:00
blobfs test/rocksdb: fix db_bench build with gcc9 2020-03-05 13:33:23 +00:00
blobstore lib/log: do not put trailing whitespace in fdump 2020-02-04 20:08:02 +00:00
common lib/thread: spdk_thread_poll() measures run time per call by reading end TSC 2020-03-25 07:52:53 +00:00
compress test/compress: add selection of pmd to run test against 2020-03-24 12:24:16 +00:00
config_converter test/config_converter: Declare $rootdir, $testdir paths 2020-02-20 09:54:15 +00:00
cpp_headers queue_extras: use SPDK_CONTAINEROF 2019-10-07 15:06:01 +00:00
dpdk_memory_utility test: add test to validate dpdk mem utility 2020-01-24 05:46:43 +00:00
env test: move report_test_completion into run_test 2020-01-14 07:49:08 +00:00
event lib/thread: Fail spdk_thread_exit() if thread has any registered poller 2020-02-13 09:51:15 +00:00
ftl fio: Remove hardcoded path to fio repo 2020-03-17 14:44:20 +00:00
fuzz test/fuzz: Rename FUZZ_APP to VHOST_FUZZ_UP 2020-02-27 10:15:40 +00:00
ioat test: move report_test_completion into run_test 2020-01-14 07:49:08 +00:00
iscsi_tgt test: do not use iter_pci_class_code in tests 2020-03-18 08:03:21 +00:00
json_config subsystem/accel: add entry point for .write_config_json 2020-02-18 08:05:34 +00:00
lvol test/lvol: rewrite thin_provisioning_check_space to bash 2020-03-24 07:38:59 +00:00
make test/make: inform user about processed objects in confirm_abi_deps() 2020-03-24 15:56:19 +00:00
nvme memory.h: move to public headers 2020-03-19 08:50:45 +00:00
nvmf test/nvmf: Handle lack of nvme devices in a more graceful way 2020-03-24 12:23:50 +00:00
ocf test: move report_test_completion into run_test 2020-01-14 07:49:08 +00:00
openstack test/openstack: Add possibility to reinstall devstack on required branch 2019-11-07 13:22:50 +00:00
pmem script: update pmem test script 2020-02-12 12:07:30 +00:00
rpc scripts/rpc.py: add daemon mode 2020-03-11 11:35:03 +00:00
rpc_client test: add timing calls to run_test 2019-12-10 17:12:03 +00:00
spdkcli test: move report_test_completion into run_test 2020-01-14 07:49:08 +00:00
unit lib/thread: spdk_thread_poll() measures run time per call by reading end TSC 2020-03-25 07:52:53 +00:00
vhost test: do not use iter_pci_class_code in tests 2020-03-18 08:03:21 +00:00
vmd fio: Remove hardcoded path to fio repo 2020-03-17 14:44:20 +00:00
Makefile build: add option to disable building unit tests 2020-03-10 09:12:21 +00:00
spdk_cunit.h test: remove leftover spdk_cunit declaration 2018-07-06 22:47:56 +00:00