Spdk/test/unit/lib
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
..
bdev nvme/opal: remove the revert asynchronous API 2020-03-25 07:52:28 +00:00
blob lib/blob: add error path on persisting dirty bs 2020-03-24 07:39:47 +00:00
blobfs blobfs: start a poller to do cache buffer reclaim regularly 2020-03-06 10:27:45 +00:00
event lib/event: Count number of threads per reactor 2020-03-12 09:04:02 +00:00
ftl ftl ut: Fix the compilation issue. 2020-03-04 05:02:35 +00:00
ioat test/unit: remove duplicate mk/spdk.common.mk includes 2019-02-11 09:30:27 +00:00
iscsi lib/iscsi: Remove dry run processing from portal config file parsing 2020-02-17 10:06:47 +00:00
json ut/cunit: added missing semicolon on CU_ASSERT macros 2019-07-24 18:21:22 +00:00
jsonrpc jsonrpc: always allocate response for request 2019-07-19 20:56:54 +00:00
log log: passing user-defined log 2019-06-18 03:56:50 +00:00
lvol ut/lvol: fixed scan-build error on spdk_bs_init 2019-07-01 13:08:33 +00:00
notify lib/notify: rename spdk_notify_get_events to spdk_notify_foreach_event 2019-05-07 06:11:27 +00:00
nvme ut/nvme: Test Set Num Queues controller intialization step 2020-03-18 08:02:48 +00:00
nvmf lib/nvmf: Make spdk_nvmf_poll_group_destroy() asynchronous 2020-03-17 08:49:00 +00:00
reduce lib/reduce: add array bounds checking for iovs. 2019-12-19 11:04:57 +00:00
scsi lib/scsi: Remove workaround for astyle format check about break-after-return-type 2020-03-04 10:04:26 +00:00
sock sock/uring: Add the async network I/O support for socket 2020-03-20 08:41:28 +00:00
thread lib/thread: spdk_thread_poll() measures run time per call by reading end TSC 2020-03-25 07:52:53 +00:00
util lib/util: Add spdk_sn32_lt/gt() to compare two numbers based on serial number arithmetic 2020-03-19 08:51:31 +00:00
vhost vhost: add a protocol_features parameter in vdev 2019-12-30 11:46:24 +00:00
json_mock.c subsystem: add per module configuration dump 2018-03-23 02:47:40 -04:00
Makefile test/unit: remove vhost dependency from ftl tests 2020-01-15 13:37:19 +00:00