[PATCH] hostapd: add -T Linux tracing option
Johannes Berg
johannes
Wed Oct 30 11:31:30 PDT 2013
From: Johannes Berg <johannes.berg at intel.com>
Just like wpa_supplicant, give hostapd the -T option to
send all debug messages into the Linux tracing buffer.
Enable this option for hwsim test builds by default.
Signed-hostap: Johannes Berg <johannes.berg at intel.com>
---
hostapd/Makefile | 4 ++++
hostapd/defconfig | 6 ++++++
hostapd/main.c | 14 +++++++++++++-
tests/hwsim/example-hostapd.config | 1 +
tests/hwsim/start.sh | 2 +-
5 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/hostapd/Makefile b/hostapd/Makefile
index c56d368..87ff9b4 100644
--- a/hostapd/Makefile
+++ b/hostapd/Makefile
@@ -828,6 +828,10 @@ ifdef CONFIG_NO_STDOUT_DEBUG
CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
endif
+ifdef CONFIG_DEBUG_LINUX_TRACING
+CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
+endif
+
ifdef CONFIG_DEBUG_FILE
CFLAGS += -DCONFIG_DEBUG_FILE
endif
diff --git a/hostapd/defconfig b/hostapd/defconfig
index 2dd6fc8..3f2924b 100644
--- a/hostapd/defconfig
+++ b/hostapd/defconfig
@@ -157,6 +157,12 @@ CONFIG_IPV6=y
# Disabled by default.
#CONFIG_DEBUG_FILE=y
+# Add support for sending all debug messages (regardless of debug verbosity)
+# to the Linux kernel tracing facility. This helps debug the entire stack by
+# making it easy to record everything happening from the driver up into the
+# same file, e.g., using trace-cmd.
+#CONFIG_DEBUG_LINUX_TRACING=y
+
# Remove support for RADIUS accounting
#CONFIG_NO_ACCOUNTING=y
diff --git a/hostapd/main.c b/hostapd/main.c
index 23eef1a..109bea4 100644
--- a/hostapd/main.c
+++ b/hostapd/main.c
@@ -697,6 +697,7 @@ int main(int argc, char *argv[])
const char *entropy_file = NULL;
char **bss_config = NULL, **tmp_bss;
size_t num_bss_configs = 0;
+ int enable_trace_dbg = 0;
if (os_program_init())
return -1;
@@ -713,7 +714,7 @@ int main(int argc, char *argv[])
interfaces.global_ctrl_sock = -1;
for (;;) {
- c = getopt(argc, argv, "b:Bde:f:hKP:tvg:G:");
+ c = getopt(argc, argv, "b:Bde:f:hKP:Ttvg:G:");
if (c < 0)
break;
switch (c) {
@@ -744,6 +745,9 @@ int main(int argc, char *argv[])
case 't':
wpa_debug_timestamp++;
break;
+ case 'T':
+ enable_trace_dbg = 1;
+ break;
case 'v':
show_version();
exit(1);
@@ -779,6 +783,13 @@ int main(int argc, char *argv[])
if (log_file)
wpa_debug_open_file(log_file);
+ if (enable_trace_dbg) {
+ int tret = wpa_debug_open_linux_tracing();
+ if (tret) {
+ wpa_printf(MSG_ERROR, "Failed to enable trace logging");
+ return -1;
+ }
+ }
interfaces.count = argc - optind;
if (interfaces.count || num_bss_configs) {
@@ -867,6 +878,7 @@ int main(int argc, char *argv[])
if (log_file)
wpa_debug_close_file();
+ wpa_debug_close_linux_tracing();
os_free(bss_config);
diff --git a/tests/hwsim/example-hostapd.config b/tests/hwsim/example-hostapd.config
index e0348da..224aec0 100644
--- a/tests/hwsim/example-hostapd.config
+++ b/tests/hwsim/example-hostapd.config
@@ -57,6 +57,7 @@ CONFIG_WPA_TRACE_BFD=y
CONFIG_P2P_MANAGER=y
CONFIG_DEBUG_FILE=y
+CONFIG_DEBUG_LINUX_TRACING=y
CONFIG_WPA_CLI_EDIT=y
CONFIG_ACS=y
CONFIG_NO_RANDOM_POOL=y
diff --git a/tests/hwsim/start.sh b/tests/hwsim/start.sh
index 8185968..c82bf8a 100755
--- a/tests/hwsim/start.sh
+++ b/tests/hwsim/start.sh
@@ -65,7 +65,7 @@ for i in 0 1 2; do
sudo $(printf -- "$VALGRIND_WPAS" $i) $WPAS -g /tmp/wpas-wlan$i -G$GROUP -Dnl80211 -iwlan$i -c $DIR/p2p$i.conf \
$(printf -- "$CONCURRENT_ARGS" $i) -ddKt$TRACE > $LOGDIR/$DATE-log$i &
done
-sudo $VALGRIND_HAPD $HAPD -ddKt -g /var/run/hostapd-global -G $GROUP -ddKt > $LOGDIR/$DATE-hostapd &
+sudo $VALGRIND_HAPD $HAPD -ddKt$TRACE -g /var/run/hostapd-global -G $GROUP -ddKt > $LOGDIR/$DATE-hostapd &
sleep 1
sudo chown $USER $LOGDIR/$DATE-hwsim0.dump
--
1.8.4.rc3
More information about the Hostap
mailing list