All of lore.kernel.org
 help / color / mirror / Atom feed
* [B.A.T.M.A.N.] [PATCH 0/5] batman-adv: Tracing and debugfs deprecation cleanups
@ 2018-10-21  9:30 Sven Eckelmann
  2018-10-21  9:30 ` [B.A.T.M.A.N.] [PATCH 1/5] batman-adv: Drop unused lockdep include Sven Eckelmann
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Sven Eckelmann @ 2018-10-21  9:30 UTC (permalink / raw)
  To: b.a.t.m.a.n

Hi,

the current master branch already contains support to store debug messages
to the tracing buffer and to inform users about the deprecation of the
debugfs functionality.

This patchset is now cleaning it up a little bit more and allows to the
tracing infrastructure completely without BATMAN_ADV_DEBUGFS.

Kind regards,
	Sven

Sven Eckelmann (5):
  batman-adv: Drop unused lockdep include
  batman-adv: Add includes for deprecation warning
  batman-adv: Improve includes for trace functionality
  batman-adv: Allow to use BATMAN_ADV_DEBUG without BATMAN_ADV_DEBUGFS
  batman-adv: Fix description for BATMAN_ADV_DEBUG

 compat.h                    |  5 ----
 net/batman-adv/Kconfig      |  7 +++--
 net/batman-adv/bat_iv_ogm.c |  1 -
 net/batman-adv/debugfs.c    |  2 ++
 net/batman-adv/log.c        | 60 ++++++++++++++++++++-----------------
 net/batman-adv/trace.c      |  2 --
 net/batman-adv/trace.h      |  6 ++++
 7 files changed, 45 insertions(+), 38 deletions(-)

-- 
2.19.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [B.A.T.M.A.N.] [PATCH 1/5] batman-adv: Drop unused lockdep include
  2018-10-21  9:30 [B.A.T.M.A.N.] [PATCH 0/5] batman-adv: Tracing and debugfs deprecation cleanups Sven Eckelmann
@ 2018-10-21  9:30 ` Sven Eckelmann
  2018-10-21  9:30 ` [B.A.T.M.A.N.] [PATCH 2/5] batman-adv: Add includes for deprecation warning Sven Eckelmann
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Sven Eckelmann @ 2018-10-21  9:30 UTC (permalink / raw)
  To: b.a.t.m.a.n

The commit f36b93064420 ("batman-adv: Move OGM rebroadcast stats to
orig_ifinfo") removed all used functionality of the include linux/lockdep.h
from batadv_iv_ogm.c.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
 net/batman-adv/bat_iv_ogm.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c
index d2227091..1d31ac84 100644
--- a/net/batman-adv/bat_iv_ogm.c
+++ b/net/batman-adv/bat_iv_ogm.c
@@ -34,7 +34,6 @@
 #include <linux/kernel.h>
 #include <linux/kref.h>
 #include <linux/list.h>
-#include <linux/lockdep.h>
 #include <linux/netdevice.h>
 #include <linux/netlink.h>
 #include <linux/pkt_sched.h>
-- 
2.19.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [B.A.T.M.A.N.] [PATCH 2/5] batman-adv: Add includes for deprecation warning
  2018-10-21  9:30 [B.A.T.M.A.N.] [PATCH 0/5] batman-adv: Tracing and debugfs deprecation cleanups Sven Eckelmann
  2018-10-21  9:30 ` [B.A.T.M.A.N.] [PATCH 1/5] batman-adv: Drop unused lockdep include Sven Eckelmann
@ 2018-10-21  9:30 ` Sven Eckelmann
  2018-10-21  9:30 ` [B.A.T.M.A.N.] [PATCH 3/5] batman-adv: Improve includes for trace functionality Sven Eckelmann
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Sven Eckelmann @ 2018-10-21  9:30 UTC (permalink / raw)
  To: b.a.t.m.a.n

The commit fee04b6f72cf ("batman-adv: Mark debugfs functionality as
deprecated") introduced various messages to inform the user about the
deprecation of the debugfs based functionality. The messages also include
the context/task in which this problem was observed.

The datastructures and functions to access this information require special
headers. These should be included directly instead of depending on a more
complex and fragile include chain.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
 net/batman-adv/debugfs.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/net/batman-adv/debugfs.c b/net/batman-adv/debugfs.c
index 8b608a2e..d4a7702e 100644
--- a/net/batman-adv/debugfs.c
+++ b/net/batman-adv/debugfs.c
@@ -19,6 +19,7 @@
 #include "debugfs.h"
 #include "main.h"
 
+#include <asm/current.h>
 #include <linux/dcache.h>
 #include <linux/debugfs.h>
 #include <linux/err.h>
@@ -27,6 +28,7 @@
 #include <linux/fs.h>
 #include <linux/netdevice.h>
 #include <linux/printk.h>
+#include <linux/sched.h>
 #include <linux/seq_file.h>
 #include <linux/stat.h>
 #include <linux/stddef.h>
-- 
2.19.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [B.A.T.M.A.N.] [PATCH 3/5] batman-adv: Improve includes for trace functionality
  2018-10-21  9:30 [B.A.T.M.A.N.] [PATCH 0/5] batman-adv: Tracing and debugfs deprecation cleanups Sven Eckelmann
  2018-10-21  9:30 ` [B.A.T.M.A.N.] [PATCH 1/5] batman-adv: Drop unused lockdep include Sven Eckelmann
  2018-10-21  9:30 ` [B.A.T.M.A.N.] [PATCH 2/5] batman-adv: Add includes for deprecation warning Sven Eckelmann
@ 2018-10-21  9:30 ` Sven Eckelmann
  2018-10-21  9:30 ` [B.A.T.M.A.N.] [PATCH 4/5] batman-adv: Allow to use BATMAN_ADV_DEBUG without BATMAN_ADV_DEBUGFS Sven Eckelmann
  2018-10-21  9:30 ` [B.A.T.M.A.N.] [PATCH 5/5] batman-adv: Fix description for BATMAN_ADV_DEBUG Sven Eckelmann
  4 siblings, 0 replies; 6+ messages in thread
From: Sven Eckelmann @ 2018-10-21  9:30 UTC (permalink / raw)
  To: b.a.t.m.a.n

The batadv_dbg trace event uses different functionality and datastructures
which are not directly associated with the trace infrastructure. It should
not be expected that the trace headers indirectly provide them and instead
include the required headers directly.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
 net/batman-adv/trace.c | 2 --
 net/batman-adv/trace.h | 6 ++++++
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/net/batman-adv/trace.c b/net/batman-adv/trace.c
index 3d57f998..8e102421 100644
--- a/net/batman-adv/trace.c
+++ b/net/batman-adv/trace.c
@@ -16,7 +16,5 @@
  * along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include <linux/module.h>
-
 #define CREATE_TRACE_POINTS
 #include "trace.h"
diff --git a/net/batman-adv/trace.h b/net/batman-adv/trace.h
index 3acda26a..104784be 100644
--- a/net/batman-adv/trace.h
+++ b/net/batman-adv/trace.h
@@ -21,7 +21,13 @@
 
 #include "main.h"
 
+#include <linux/bug.h>
+#include <linux/kernel.h>
+#include <linux/netdevice.h>
+#include <linux/percpu.h>
+#include <linux/printk.h>
 #include <linux/tracepoint.h>
+#include <linux/types.h>
 
 #undef TRACE_SYSTEM
 #define TRACE_SYSTEM batadv
-- 
2.19.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [B.A.T.M.A.N.] [PATCH 4/5] batman-adv: Allow to use BATMAN_ADV_DEBUG without BATMAN_ADV_DEBUGFS
  2018-10-21  9:30 [B.A.T.M.A.N.] [PATCH 0/5] batman-adv: Tracing and debugfs deprecation cleanups Sven Eckelmann
                   ` (2 preceding siblings ...)
  2018-10-21  9:30 ` [B.A.T.M.A.N.] [PATCH 3/5] batman-adv: Improve includes for trace functionality Sven Eckelmann
@ 2018-10-21  9:30 ` Sven Eckelmann
  2018-10-21  9:30 ` [B.A.T.M.A.N.] [PATCH 5/5] batman-adv: Fix description for BATMAN_ADV_DEBUG Sven Eckelmann
  4 siblings, 0 replies; 6+ messages in thread
From: Sven Eckelmann @ 2018-10-21  9:30 UTC (permalink / raw)
  To: b.a.t.m.a.n

The BATMAN_ADV_DEBUGFS portion of batman-adv is marked as deprecated. Thus
all required functionality should be available without it. The debug log
was already modified to also output via the kernel tracing function but
still retained its BATMAN_ADV_DEBUGFS functionality.

Separate the entry point for the debug log from the debugfs portions to
make it possible to build with BATMAN_ADV_DEBUG and without
BATMAN_ADV_DEBUGFS.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
 compat.h               |  5 ----
 net/batman-adv/Kconfig |  2 +-
 net/batman-adv/log.c   | 60 +++++++++++++++++++++++-------------------
 3 files changed, 34 insertions(+), 33 deletions(-)

diff --git a/compat.h b/compat.h
index 385b629c..559df2f3 100644
--- a/compat.h
+++ b/compat.h
@@ -30,11 +30,6 @@
 
 #include "compat-autoconf.h"
 
-/* test for dependency CONFIG_BATMAN_ADV_DEBUG -> CONFIG_BATMAN_ADV_DEBUGFS */
-#if defined(CONFIG_BATMAN_ADV_DEBUG) && !defined(CONFIG_BATMAN_ADV_DEBUGFS)
-#error CONFIG_BATMAN_ADV_DEBUG=y requires CONFIG_BATMAN_ADV_DEBUGFS=y
-#endif
-
 #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)
 
 /* wild hack for batadv_getlink_net only */
diff --git a/net/batman-adv/Kconfig b/net/batman-adv/Kconfig
index f75816f5..7b0e1fcd 100644
--- a/net/batman-adv/Kconfig
+++ b/net/batman-adv/Kconfig
@@ -100,7 +100,7 @@ config BATMAN_ADV_DEBUGFS
 
 config BATMAN_ADV_DEBUG
 	bool "B.A.T.M.A.N. debugging"
-	depends on BATMAN_ADV_DEBUGFS
+	depends on BATMAN_ADV
 	help
 	  This is an option for use by developers; most people should
 	  say N here. This enables compilation of support for
diff --git a/net/batman-adv/log.c b/net/batman-adv/log.c
index 6beb5f06..02e55b78 100644
--- a/net/batman-adv/log.c
+++ b/net/batman-adv/log.c
@@ -43,6 +43,8 @@
 #include "debugfs.h"
 #include "trace.h"
 
+#ifdef CONFIG_BATMAN_ADV_DEBUGFS
+
 #define BATADV_LOG_BUFF_MASK (batadv_log_buff_len - 1)
 
 static const int batadv_log_buff_len = BATADV_LOG_BUF_LEN;
@@ -92,33 +94,6 @@ static int batadv_fdebug_log(struct batadv_priv_debug_log *debug_log,
 	return 0;
 }
 
-/**
- * batadv_debug_log() - Add debug log entry
- * @bat_priv: the bat priv with all the soft interface information
- * @fmt: format string
- *
- * Return: 0 on success or negative error number in case of failure
- */
-int batadv_debug_log(struct batadv_priv *bat_priv, const char *fmt, ...)
-{
-	struct va_format vaf;
-	va_list args;
-
-	va_start(args, fmt);
-
-	vaf.fmt = fmt;
-	vaf.va = &args;
-
-	batadv_fdebug_log(bat_priv->debug_log, "[%10u] %pV",
-			  jiffies_to_msecs(jiffies), &vaf);
-
-	trace_batadv_dbg(bat_priv, &vaf);
-
-	va_end(args);
-
-	return 0;
-}
-
 static int batadv_log_open(struct inode *inode, struct file *file)
 {
 	if (!try_module_get(THIS_MODULE))
@@ -259,3 +234,34 @@ void batadv_debug_log_cleanup(struct batadv_priv *bat_priv)
 	kfree(bat_priv->debug_log);
 	bat_priv->debug_log = NULL;
 }
+
+#endif /* CONFIG_BATMAN_ADV_DEBUGFS */
+
+/**
+ * batadv_debug_log() - Add debug log entry
+ * @bat_priv: the bat priv with all the soft interface information
+ * @fmt: format string
+ *
+ * Return: 0 on success or negative error number in case of failure
+ */
+int batadv_debug_log(struct batadv_priv *bat_priv, const char *fmt, ...)
+{
+	struct va_format vaf;
+	va_list args;
+
+	va_start(args, fmt);
+
+	vaf.fmt = fmt;
+	vaf.va = &args;
+
+#ifdef CONFIG_BATMAN_ADV_DEBUGFS
+	batadv_fdebug_log(bat_priv->debug_log, "[%10u] %pV",
+			  jiffies_to_msecs(jiffies), &vaf);
+#endif
+
+	trace_batadv_dbg(bat_priv, &vaf);
+
+	va_end(args);
+
+	return 0;
+}
-- 
2.19.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [B.A.T.M.A.N.] [PATCH 5/5] batman-adv: Fix description for BATMAN_ADV_DEBUG
  2018-10-21  9:30 [B.A.T.M.A.N.] [PATCH 0/5] batman-adv: Tracing and debugfs deprecation cleanups Sven Eckelmann
                   ` (3 preceding siblings ...)
  2018-10-21  9:30 ` [B.A.T.M.A.N.] [PATCH 4/5] batman-adv: Allow to use BATMAN_ADV_DEBUG without BATMAN_ADV_DEBUGFS Sven Eckelmann
@ 2018-10-21  9:30 ` Sven Eckelmann
  4 siblings, 0 replies; 6+ messages in thread
From: Sven Eckelmann @ 2018-10-21  9:30 UTC (permalink / raw)
  To: b.a.t.m.a.n

The debug messages of batman-adv are not printed to the kernel log at all
but can be stored (depending on the compile setting) in the tracing buffer
or the batadv specific log buffer. There is also no debug module parameter
but a batadv netdev specific log_level setting to enable/disable different
classes of debug messages at runtime.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
 net/batman-adv/Kconfig | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/net/batman-adv/Kconfig b/net/batman-adv/Kconfig
index 7b0e1fcd..082e9606 100644
--- a/net/batman-adv/Kconfig
+++ b/net/batman-adv/Kconfig
@@ -104,8 +104,9 @@ config BATMAN_ADV_DEBUG
 	help
 	  This is an option for use by developers; most people should
 	  say N here. This enables compilation of support for
-	  outputting debugging information to the kernel log. The
-	  output is controlled via the module parameter debug.
+	  outputting debugging information to the debugfs log or tracing
+	  buffer. The output is controlled via the batadv netdev specific
+	  log_level setting.
 
 config BATMAN_ADV_TRACING
 	bool "B.A.T.M.A.N. tracing support"
-- 
2.19.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-10-21  9:30 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-21  9:30 [B.A.T.M.A.N.] [PATCH 0/5] batman-adv: Tracing and debugfs deprecation cleanups Sven Eckelmann
2018-10-21  9:30 ` [B.A.T.M.A.N.] [PATCH 1/5] batman-adv: Drop unused lockdep include Sven Eckelmann
2018-10-21  9:30 ` [B.A.T.M.A.N.] [PATCH 2/5] batman-adv: Add includes for deprecation warning Sven Eckelmann
2018-10-21  9:30 ` [B.A.T.M.A.N.] [PATCH 3/5] batman-adv: Improve includes for trace functionality Sven Eckelmann
2018-10-21  9:30 ` [B.A.T.M.A.N.] [PATCH 4/5] batman-adv: Allow to use BATMAN_ADV_DEBUG without BATMAN_ADV_DEBUGFS Sven Eckelmann
2018-10-21  9:30 ` [B.A.T.M.A.N.] [PATCH 5/5] batman-adv: Fix description for BATMAN_ADV_DEBUG Sven Eckelmann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.