Boaz Harrosh wrote:
Boaz Harrosh wrote:
Remove the dark ages /* define debug_print */ in code, to use
a Kconfig option. With a system like Kconfig, in code, commented out,
configuration options are slavery and hard work.
(version control, manual edit ... need I say more)
I've used an "int" config bit-mask so more areas of code can be
selected with one Koption, but mainly so that allmodconfig will
not turn it on.
bit-1 - will turn on prints for libiscsi.
bit-2 - will turn on prints for libiscsi_tcp & iscsi_tcp.
More iscsi drivers should use more bits.
Signed-off-by: Boaz Harrosh <bharrosh@xxxxxxxxxxx>
---
drivers/scsi/Kconfig | 15 +++++++++++++++
drivers/scsi/iscsi_tcp.c | 7 -------
drivers/scsi/iscsi_tcp.h | 6 ++++++
drivers/scsi/libiscsi_tcp.c | 7 -------
include/scsi/libiscsi.h | 3 +--
5 files changed, 22 insertions(+), 16 deletions(-)
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
Mike hi.
These are over latest Linus. Sorry I mixed up the branches.
If they don't apply to your tree any more, I'll rebase.
It applies ok.
I'm sending these because for too many times I submit some code
with iscsi sources edits, because I forget to remove the edits
for enabling prints. Please consider for inclusion.
What about compile time vs load time? Olaf had the attached patch which
does it at module load time. It is nicer for users, but I was just
worried about maybe there being a perf change with all the new ifs? I
was waiting to do some testing to see if there was and change, but did
not get around to it. Is that too paranoid (probably other factors like
our crappy locking will slow us down more than some ifs for printks right)?
--- Begin Message ---
Make iscsi debugging a module option
This patch adds a debug module parameter to both
libiscsi and iscsi_tcp, allowing to toggle debug
at runtime via /sys/modules/$name/parameters/debug
Signed-off-by: olaf.kirch@xxxxxxxxxx
---
drivers/scsi/Kconfig | 9 +++++++++
drivers/scsi/iscsi_tcp.c | 13 +++++++++----
drivers/scsi/libiscsi.c | 10 ++++++++++
include/scsi/libiscsi.h | 11 +++++++----
4 files changed, 35 insertions(+), 8 deletions(-)
Index: iscsi-2.6/drivers/scsi/iscsi_tcp.c
===================================================================
--- iscsi-2.6.orig/drivers/scsi/iscsi_tcp.c
+++ iscsi-2.6/drivers/scsi/iscsi_tcp.c
@@ -48,13 +48,18 @@ MODULE_AUTHOR("Dmitry Yusupov <dmitry_yu
"Alex Aizman <itn780@xxxxxxxxx>");
MODULE_DESCRIPTION("iSCSI/TCP data-path");
MODULE_LICENSE("GPL");
-#undef DEBUG_TCP
#define DEBUG_ASSERT
-#ifdef DEBUG_TCP
-#define debug_tcp(fmt...) printk(KERN_INFO "tcp: " fmt)
+#ifdef CONFIG_SCSI_ISCSI_DEBUG
+static int iscsi_tcp_debug = 0;
+#define debug_tcp(fmt...) do { \
+ if (unlikely(iscsi_tcp_debug)) \
+ printk(KERN_INFO "tcp: " fmt); \
+ } while (0)
+
+module_param_named(debug, iscsi_tcp_debug, int, S_IRUGO | S_IWUSR);
#else
-#define debug_tcp(fmt...)
+#define debug_tcp(fmt...) do { } while (0)
#endif
#ifndef DEBUG_ASSERT
Index: iscsi-2.6/drivers/scsi/libiscsi.c
===================================================================
--- iscsi-2.6.orig/drivers/scsi/libiscsi.c
+++ iscsi-2.6/drivers/scsi/libiscsi.c
@@ -37,6 +37,16 @@
#include <scsi/scsi_transport_iscsi.h>
#include <scsi/libiscsi.h>
+/* Debug flag for libiscsi - needs to be
+ * exported so other iscsi modules can make use
+ * of the debug_scsi() macro */
+#ifdef CONFIG_SCSI_ISCSI_DEBUG
+int libiscsi_debug = 0;
+EXPORT_SYMBOL_GPL(libiscsi_debug);
+
+module_param_named(debug, libiscsi_debug, int, S_IRUGO | S_IWUSR);
+#endif
+
struct iscsi_session *
class_to_transport_session(struct iscsi_cls_session *cls_session)
{
Index: iscsi-2.6/include/scsi/libiscsi.h
===================================================================
--- iscsi-2.6.orig/include/scsi/libiscsi.h
+++ iscsi-2.6/include/scsi/libiscsi.h
@@ -41,11 +41,14 @@ struct iscsi_cls_conn;
struct iscsi_session;
struct iscsi_nopin;
-/* #define DEBUG_SCSI */
-#ifdef DEBUG_SCSI
-#define debug_scsi(fmt...) printk(KERN_INFO "iscsi: " fmt)
+#ifdef CONFIG_SCSI_ISCSI_DEBUG
+extern int libiscsi_debug;
+#define debug_scsi(fmt...) do { \
+ if (unlikely(libiscsi_debug)) \
+ printk(KERN_INFO "iscsi: " fmt); \
+ } while (0)
#else
-#define debug_scsi(fmt...)
+#define debug_scsi(fmt...) do { } while (0)
#endif
#define ISCSI_DEF_XMIT_CMDS_MAX 128 /* must be power of 2 */
Index: iscsi-2.6/drivers/scsi/Kconfig
===================================================================
--- iscsi-2.6.orig/drivers/scsi/Kconfig
+++ iscsi-2.6/drivers/scsi/Kconfig
@@ -312,6 +312,15 @@ config ISCSI_TCP
http://linux-iscsi.sf.net
+config SCSI_ISCSI_DEBUG
+ bool "Support iSCSI debugging"
+ depends on ISCSI_TCP
+ default n
+ help
+ Say Y here to compile debugging support into libiscsi and
+ iscsi_tcp. Debugging will not be enable by default, but
+ can be switched on and off via module options.
+
config SGIWD93_SCSI
tristate "SGI WD93C93 SCSI Driver"
depends on SGI_IP22 && SCSI
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "open-iscsi" group.
To post to this group, send email to open-iscsi@xxxxxxxxxxxxxxxx
To unsubscribe from this group, send email to open-iscsi-unsubscribe@xxxxxxxxxxxxxxxx
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~----------~----~----~----~------~----~------~--~---
--- End Message ---