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

nvme: wrap nvme debug log macros in #ifdef DEBUG



Although in debug mode the NVME_TQPAIR_DEBUGLOG macro expands to

do {
    if (!((tqpair) ? & (tqpair)->qpair : ((void *)0))) {
        do { } while (0);
    } else if (!((tqpair) ? & (tqpair)->qpair : ((void *)0))->ctrlr) {
        do { } while (0);
    } else {
        do { } while (0);
    }
} while (0);

and clearly should be optimized out in release mode, it somehow prevents
the compiler from reporting an unused variable warning when the only consumer of
the variable is such a DEBUGLOG macro.

Fix this by adding #ifdef DEBUG around NVME_[CTRLR|QPAIR]_DEBUGLOG
macros.

With or without this change, no assembly instructions are generated for
_DEBUGLOG macros in release mode.

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


Community-CI: Mellanox Build Bot
Reviewed-by: default avatarJim Harris <jim.harris@nvidia.com>
Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz@tzawadzki.com>
parent 2a94ea69
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -627,7 +627,6 @@ struct spdk_nvme_ns {
#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, nvme, ctrlr, format, ##__VA_ARGS__)
#define NVME_CTRLR_DEBUGLOG(ctrlr, format, ...) NVME_CTRLR_LOG2(DEBUG, nvme, ctrlr, format, ##__VA_ARGS__)

#define NVME_QPAIR_LOG(type, qpair, format, ...) do { \
	if (!(qpair)) { \
@@ -653,7 +652,14 @@ struct spdk_nvme_ns {
#define NVME_QPAIR_WARNLOG(qpair, format, ...) NVME_QPAIR_LOG(WARN, qpair, format, ##__VA_ARGS__)
#define NVME_QPAIR_NOTICELOG(qpair, format, ...) NVME_QPAIR_LOG(NOTICE, qpair, format, ##__VA_ARGS__)
#define NVME_QPAIR_INFOLOG(qpair, format, ...) NVME_QPAIR_LOG2(INFO, nvme, qpair, format, ##__VA_ARGS__)

#ifdef DEBUG
#define NVME_CTRLR_DEBUGLOG(ctrlr, format, ...) NVME_CTRLR_LOG2(DEBUG, nvme, ctrlr, format, ##__VA_ARGS__)
#define NVME_QPAIR_DEBUGLOG(qpair, format, ...) NVME_QPAIR_LOG2(DEBUG, nvme, qpair, format, ##__VA_ARGS__)
#else
#define NVME_CTRLR_DEBUGLOG(ctrlr, format, ...) do { } while (0)
#define NVME_QPAIR_DEBUGLOG(qpair, format, ...) do { } while (0)
#endif

/**
 * State of struct spdk_nvme_ctrlr (in particular, during initialization).