Commit c7c25930 authored by Jacek Kalwas's avatar Jacek Kalwas Committed by Tomasz Zawadzki
Browse files

bdevperf: more verbose logging for data mismatch



With prev logs only the first dword was dumped e.g. `dword expected
0x0 got 0x0` and that is not enough for debugging purposes.

Change-Id: Iaddc6d1525cbb83f38f7930ea15c07c1916a0ac4
Signed-off-by: default avatarJacek Kalwas <jacek.kalwas@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/22082


Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
parent 9d6e1f5b
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -503,6 +503,10 @@ verify_data(void *wr_buf, int wr_buf_len, void *rd_buf, int rd_buf_len, int bloc

	while (offset_blocks < num_blocks) {
		if (memcmp(wr_buf, rd_buf, data_block_size) != 0) {
			printf("data_block_size %d, num_blocks %d, offset %d\n", data_block_size, num_blocks,
			       offset_blocks);
			spdk_log_dump(stdout, "rd_buf", rd_buf, data_block_size);
			spdk_log_dump(stdout, "wr_buf", wr_buf, data_block_size);
			return false;
		}

@@ -511,6 +515,9 @@ verify_data(void *wr_buf, int wr_buf_len, void *rd_buf, int rd_buf_len, int bloc

		if (md_check) {
			if (memcmp(wr_md_buf, rd_md_buf, md_size) != 0) {
				printf("md_size %d, num_blocks %d, offset %d\n", md_size, num_blocks, offset_blocks);
				spdk_log_dump(stdout, "rd_md_buf", rd_md_buf, md_size);
				spdk_log_dump(stdout, "wr_md_buf", wr_md_buf, md_size);
				return false;
			}

@@ -908,7 +915,6 @@ bdevperf_complete(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg)
				 spdk_bdev_get_md_size(job->bdev),
				 job->io_size_blocks, md_check)) {
			printf("Buffer mismatch! Target: %s Disk Offset: %" PRIu64 "\n", job->name, task->offset_blocks);
			printf("   First dword expected 0x%x got 0x%x\n", *(int *)task->buf, *(int *)iovs[0].iov_base);
			bdevperf_job_drain(job);
			g_run_rc = -1;
		}