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

bdev/nvme: refactor nvme log macros



Safety improvements have been introduced (ctrlr/nbdev null checks,
macros wrapped in do/while, and macro arguments enclosed in
parentheses), along with a single location where the log format and
arguments can be modified, allowing for future extensions.

This change unifies the approach with what has already been done in
lib/nvme.

Change-Id: I3b8acf6b4f6c2ac66949362daa1e228160c47177
Signed-off-by: default avatarJacek Kalwas <jacek.kalwas@nutanix.com>
Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/26687


Reviewed-by: default avatarKonrad Sztyber <ksztyber@nvidia.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
parent 694fae55
Loading
Loading
Loading
Loading
+56 −30
Original line number Diff line number Diff line
@@ -38,39 +38,65 @@

#define CTRLR_ID(nvme_ctrlr)   (spdk_nvme_ctrlr_get_id(nvme_ctrlr->ctrlr))

#define NVME_CTRLR_ERRLOG(ctrlr, format, ...) \
	SPDK_ERRLOG("[%s, %u] " format, CTRLR_STRING(ctrlr), CTRLR_ID(ctrlr), ##__VA_ARGS__);

#define NVME_CTRLR_WARNLOG(ctrlr, format, ...) \
	SPDK_WARNLOG("[%s, %u] " format, CTRLR_STRING(ctrlr), CTRLR_ID(ctrlr), ##__VA_ARGS__);

#define NVME_CTRLR_NOTICELOG(ctrlr, format, ...) \
	SPDK_NOTICELOG("[%s, %u] " format, CTRLR_STRING(ctrlr), CTRLR_ID(ctrlr), ##__VA_ARGS__);

#define NVME_CTRLR_INFOLOG(ctrlr, format, ...) \
	SPDK_INFOLOG(bdev_nvme, "[%s, %u] " format, CTRLR_STRING(ctrlr), CTRLR_ID(ctrlr), ##__VA_ARGS__);
#define NVME_CTRLR_LOG_FMT "%s,%u"
#define NVME_CTRLR_LOG_ARGS(ctrlr) \
  CTRLR_STRING(ctrlr), \
  CTRLR_ID(ctrlr)

#define NVME_BDEV_LOG_FMT "%s"
#define NVME_BDEV_LOG_ARGS(nbdev) \
  (nbdev)->disk.name

#define NVME_CTRLR_LOG(type, ctrlr, format, ...) do { \
	if ((ctrlr)) { \
		SPDK_##type##LOG("["NVME_CTRLR_LOG_FMT"] " format, NVME_CTRLR_LOG_ARGS(ctrlr), ##__VA_ARGS__); \
	} else { \
		SPDK_##type##LOG("[null ctrlr] " format, ##__VA_ARGS__); \
	} \
} while (0)

#define NVME_CTRLR_LOG2(type, component, ctrlr, format, ...) do { \
	if ((ctrlr)) { \
		SPDK_##type##LOG(component, "["NVME_CTRLR_LOG_FMT"] " format, NVME_CTRLR_LOG_ARGS(ctrlr), ##__VA_ARGS__); \
	} else { \
		SPDK_##type##LOG(component, "[null ctrlr] " format, ##__VA_ARGS__); \
	} \
} while (0)

#define NVME_CTRLR_ERRLOG(ctrlr, format, ...) NVME_CTRLR_LOG(ERR, ctrlr, format, ##__VA_ARGS__)
#define NVME_CTRLR_WARNLOG(ctrlr, format, ...) NVME_CTRLR_LOG(WARN, ctrlr, format, ##__VA_ARGS__)
#define NVME_CTRLR_NOTICELOG(ctrlr, format, ...) NVME_CTRLR_LOG(NOTICE, ctrlr, format, ##__VA_ARGS__)
#define NVME_CTRLR_INFOLOG(ctrlr, format, ...) NVME_CTRLR_LOG2(INFO, bdev_nvme, ctrlr, format, ##__VA_ARGS__)

#define NVME_BDEV_LOG(type, nbdev, format, ...) do { \
	if ((nbdev)) { \
		SPDK_##type##LOG("["NVME_BDEV_LOG_FMT"] " format, NVME_BDEV_LOG_ARGS(nbdev), ##__VA_ARGS__); \
	} else { \
		SPDK_##type##LOG("[null nbdev] " format, ##__VA_ARGS__); \
	} \
} while (0)

#define NVME_BDEV_LOG2(type, component, nbdev, format, ...) do { \
	if ((nbdev)) { \
		SPDK_##type##LOG(component, "["NVME_BDEV_LOG_FMT"] " format, NVME_BDEV_LOG_ARGS(nbdev), ##__VA_ARGS__); \
	} else { \
		SPDK_##type##LOG(component, "[null nbdev] " format, ##__VA_ARGS__); \
	} \
} while (0)

#define NVME_BDEV_ERRLOG(nbdev, format, ...) NVME_BDEV_LOG(ERR, nbdev, format, ##__VA_ARGS__)
#define NVME_BDEV_WARNLOG(nbdev, format, ...) NVME_BDEV_LOG(WARN, nbdev, format, ##__VA_ARGS__)
#define NVME_BDEV_NOTICELOG(nbdev, format, ...) NVME_BDEV_LOG(NOTICE, nbdev, format, ##__VA_ARGS__)
#define NVME_BDEV_INFOLOG(nbdev, format, ...) NVME_BDEV_LOG2(INFO, bdev_nvme, nbdev, format, ##__VA_ARGS__)

#ifdef DEBUG
#define NVME_CTRLR_DEBUGLOG(ctrlr, format, ...) \
	SPDK_DEBUGLOG(bdev_nvme, "[%s, %u] " format, CTRLR_STRING(ctrlr), CTRLR_ID(ctrlr), ##__VA_ARGS__);
#define NVME_CTRLR_DEBUGLOG(ctrlr, format, ...) NVME_CTRLR_LOG2(DEBUG, bdev_nvme, ctrlr, format, ##__VA_ARGS__)
#define NVME_BDEV_DEBUGLOG(ctrlr, format, ...) NVME_BDEV_LOG2(DEBUG, bdev_nvme, nbdev, format, ##__VA_ARGS__)
#else
#define NVME_CTRLR_DEBUGLOG(ctrlr, ...) do { } while (0)
#define NVME_CTRLR_DEBUGLOG(...) do { } while (0)
#define NVME_BDEV_DEBUGLOG(...) do { } while (0)
#endif

#define BDEV_STRING(nbdev) (nbdev->disk.name)

#define NVME_BDEV_ERRLOG(nbdev, format, ...) \
	SPDK_ERRLOG("[%s] " format, BDEV_STRING(nbdev), ##__VA_ARGS__);

#define NVME_BDEV_WARNLOG(nbdev, format, ...) \
	SPDK_WARNLOG("[%s] " format, BDEV_STRING(nbdev), ##__VA_ARGS__);

#define NVME_BDEV_NOTICELOG(nbdev, format, ...) \
	SPDK_NOTICELOG("[%s] " format, BDEV_STRING(nbdev), ##__VA_ARGS__);

#define NVME_BDEV_INFOLOG(nbdev, format, ...) \
	SPDK_INFOLOG(bdev_nvme, "[%s] " format, BDEV_STRING(nbdev), ##__VA_ARGS__);

#define SPDK_BDEV_NVME_DEFAULT_DELAY_CMD_SUBMIT true
#define SPDK_BDEV_NVME_DEFAULT_KEEP_ALIVE_TIMEOUT_IN_MS	(10000)