7cc16c96 | 20-Nov-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
bdevperf: g_main_thread calls bdev_open() instead of job->thread
The following patches will enable no_metadata option to each bdev and use new APIs to get metadata configuration.
Hence, it will be
bdevperf: g_main_thread calls bdev_open() instead of job->thread
The following patches will enable no_metadata option to each bdev and use new APIs to get metadata configuration.
Hence, it will be necessary to open bdev before getting metadata configuration.
As a preparation, move bdev open and close operations from job->thread to g_main_thread. set timeout should be called on the thread which called bdev open. Hence, move set timeout operation too. Furthermore, event notification should be redirected from g_main_thread to job->thread.
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I3623e7c0ccc314932f79b78243be9ede0b8927b3 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25143 Reviewed-by: Jim Harris <jim.harris@nvidia.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
65fa5aff | 25-Jun-2024 |
Marcin Spiewak <marcin.spiewak@intel.com> |
bdevperf: send RPC error resp. if no jobs started
When bdevperf receives 'perform_tests' RPC call, it prints 'Running I/O for x seconds' message on the console and is trying to start I/O jobs. The i
bdevperf: send RPC error resp. if no jobs started
When bdevperf receives 'perform_tests' RPC call, it prints 'Running I/O for x seconds' message on the console and is trying to start I/O jobs. The issue here is that the message is printed even if there are no jobs defined (e.g. no bdevs created) so nothing really happens. In such case no RPC response was sent, and the RPC call initiating tests just timeouts. This is fixed now and bdevperf will print on the console 'Running I/O for x seconds' message only if there are any jobs started. If no jobs are defined, the message is not printed, and RPC error response is generated: Error code: SPDK_JSONRPC_ERROR_INVALID_PARAMS (-32602) Error message: "No jobs defined or bdevs created"
Change-Id: Ibac7a961cd79713ff2bb56a2b5d56c80fb6cc98f Signed-off-by: Marcin Spiewak <marcin.spiewak@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23902 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Community-CI: Mellanox Build Bot
show more ...
|
3a141b72 | 11-Sep-2024 |
Marcin Spiewak <marcin.spiewak@intel.com> |
bdevperf: send test results in RPC response
When bdevperf test is triggered with 'bdevperf.py perform_tests' RPC command, the tool starts test jobs and when they are finished, the test results are p
bdevperf: send test results in RPC response
When bdevperf test is triggered with 'bdevperf.py perform_tests' RPC command, the tool starts test jobs and when they are finished, the test results are printed on the console. This patch adds reporting of the test results in RPC response. The response consists of two sections, an object indicating the number of cores on which the tests were run, and a table with test results. When a bdevperf is started on 8 cores with a command: 'sudo ./build/examples/bdevperf -m 0xFF -z' an example response to the command starting tests: 'sudo PYTHONPATH=python examples/bdev/bdevperf/bdevperf.py \ perform_tests -q 16 -o 4096 -t 5 -w write' would be: { "results": [ { "job": "Malloc0", "core_mask": "0x1", "workload": "write", "status": "finished", "queue_depth": 16, "io_size": 4096, "runtime": 5.000048, "iops": 1200455.675625514, "mibps": 4689.279982912164, "io_failed": 0, "io_timeout": 0, "avg_latency_us": 13.252784244696382, "min_latency_us": 11.130434782608695, "max_latency_us": 222.6086956521739 }, { "job": "Malloc1", "core_mask": "0x2", "workload": "write", "status": "finished", "queue_depth": 16, "io_size": 4096, "runtime": 5.000024, "iops": 1216432.5611237066, "mibps": 4751.689691889479, "io_failed": 0, "io_timeout": 0, "avg_latency_us": 13.082916284986958, "min_latency_us": 5.7043478260869565, "max_latency_us": 90.82434782608695 } ], "core_count": 2 }
Majority of the information provided in RPC response is the same as information printed on the console. If the test finishes successfully, it is indicated by: "status": "finished" If the test fails, it is indicated by: "status": "failed" If the bdevperf was terminated (SIGINT, SIGTERM sent to the process or by Ctrl-C in the console window), it will be indicated by: "status": "terminated" The "runtime" field carries information about test execution time in seconds, latencies are presented in microseconds. If the test fails, "runtime" indicates the time when the test failed. "core_count" provides number of cores that were actually used during the test.
Change-Id: I327db7a57bdc1033b6803813d54861a6c970a718 Signed-off-by: Marcin Spiewak <marcin.spiewak@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23881 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Community-CI: Mellanox Build Bot Reviewed-by: Karol Latecki <karol.latecki@intel.com>
show more ...
|