Browse Source

qcacmn: Optimize VDEV MLME SM prints

Reduced VDEV SM debug level, and added prints for state abd substates at
event handling API

Change-Id: I3076c590131581a8728548592e0a9b4e66db377e
CRs-Fixed: 2394012
Srinivas Pitla 6 years ago
parent
commit
8d19efa7c2

+ 1 - 1
qdf/linux/src/qdf_trace.c

@@ -3320,7 +3320,7 @@ static void set_default_trace_levels(struct category_info *cinfo)
 		[QDF_MODULE_ID_CP_STATS] = QDF_TRACE_LEVEL_ERROR,
 		[QDF_MODULE_ID_MBSSIE] = QDF_TRACE_LEVEL_INFO,
 		[QDF_MODULE_ID_FWOL] = QDF_TRACE_LEVEL_NONE,
-		[QDF_MODULE_ID_SM_ENGINE] = QDF_TRACE_LEVEL_DEBUG,
+		[QDF_MODULE_ID_SM_ENGINE] = QDF_TRACE_LEVEL_ERROR,
 		[QDF_MODULE_ID_CMN_MLME] = QDF_TRACE_LEVEL_INFO,
 		[QDF_MODULE_ID_BSSCOLOR] = QDF_TRACE_LEVEL_ERROR,
 		[QDF_MODULE_ID_ANY] = QDF_TRACE_LEVEL_INFO,

+ 16 - 1
umac/mlme/mlme_objmgr/dispatcher/inc/wlan_mlme_dbg.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -39,5 +39,20 @@
 #define mlme_debug(format, args...) \
 		QDF_TRACE_DEBUG(QDF_MODULE_ID_CMN_MLME, format, ## args)
 
+#define mlme_nofl_alert(format, args...) \
+		QDF_TRACE_FATAL_NO_FL(QDF_MODULE_ID_CMN_MLME, format, ## args)
+
+#define mlme_nofl_err(format, args...) \
+		QDF_TRACE_ERROR_NO_FL(QDF_MODULE_ID_CMN_MLME, format, ## args)
+
+#define mlme_nofl_warn(format, args...) \
+		QDF_TRACE_WARN_NO_FL(QDF_MODULE_ID_CMN_MLME, format, ## args)
+
+#define mlme_nofl_info(format, args...) \
+		QDF_TRACE_INFO_NO_FL(QDF_MODULE_ID_CMN_MLME, format, ## args)
+
+#define mlme_nofl_debug(format, args...) \
+		QDF_TRACE_DEBUG_NO_FL(QDF_MODULE_ID_CMN_MLME, format, ## args)
+
 #endif    /* _WLAN_MLME_DBG_H_ */
 

+ 33 - 1
umac/mlme/vdev_mgr/core/src/vdev_mlme_sm.c

@@ -1801,7 +1801,7 @@ struct wlan_sm_state_info sm_info[] = {
 		(uint8_t)WLAN_SM_ENGINE_STATE_NONE,
 		(uint8_t)WLAN_SM_ENGINE_STATE_NONE,
 		false,
-		"INVALID",
+		"IDLE",
 		NULL,
 		NULL,
 		NULL,
@@ -1826,6 +1826,38 @@ QDF_STATUS mlme_vdev_sm_deliver_event(struct vdev_mlme_obj *vdev_mlme,
 				event_data_len, event_data);
 }
 
+void mlme_vdev_sm_print_state_event(struct vdev_mlme_obj *vdev_mlme,
+				    enum wlan_vdev_sm_evt event)
+{
+	enum wlan_vdev_state state;
+	enum wlan_vdev_state substate;
+	struct wlan_objmgr_vdev *vdev;
+
+	vdev = vdev_mlme->vdev;
+
+	state = wlan_vdev_mlme_get_state(vdev);
+	substate = wlan_vdev_mlme_get_substate(vdev);
+
+	mlme_nofl_info("[%s]%s - %s, %s", vdev_mlme->sm_hdl->name,
+		       sm_info[state].name, sm_info[substate].name,
+		       vdev_sm_event_names[event]);
+}
+
+void mlme_vdev_sm_print_state(struct vdev_mlme_obj *vdev_mlme)
+{
+	enum wlan_vdev_state state;
+	enum wlan_vdev_state substate;
+	struct wlan_objmgr_vdev *vdev;
+
+	vdev = vdev_mlme->vdev;
+
+	state = wlan_vdev_mlme_get_state(vdev);
+	substate = wlan_vdev_mlme_get_substate(vdev);
+
+	mlme_nofl_info("[%s]%s - %s", vdev_mlme->sm_hdl->name,
+		       sm_info[state].name, sm_info[substate].name);
+}
+
 #ifdef SM_ENG_HIST_ENABLE
 void mlme_vdev_sm_history_print(struct vdev_mlme_obj *vdev_mlme)
 {

+ 21 - 0
umac/mlme/vdev_mgr/core/src/vdev_mlme_sm.h

@@ -41,6 +41,27 @@ QDF_STATUS mlme_vdev_sm_deliver_event(struct vdev_mlme_obj *vdev_mlme,
 				      uint16_t event_data_len,
 				      void *event_data);
 
+/**
+ * mlme_vdev_sm_print_state_event() - Prints the state/substate, event
+ * @vdev_mlme: MLME VDEV comp object
+ * @event: MLME event
+ *
+ * API to print current state/substate, events in readable format
+ *
+ * Return: void
+ */
+void mlme_vdev_sm_print_state_event(struct vdev_mlme_obj *vdev_mlme,
+				    enum wlan_vdev_sm_evt event);
+
+/**
+ * mlme_vdev_sm_print_state_event() - Prints the state/substate
+ * @vdev_mlme: MLME VDEV comp object
+ *
+ * API to print current state/substate
+ *
+ * Return: void
+ */
+void mlme_vdev_sm_print_state(struct vdev_mlme_obj *vdev_mlme);
 #ifdef SM_ENG_HIST_ENABLE
 /**
  * mlme_vdev_sm_history_print() - Prints SM history

+ 14 - 0
umac/mlme/vdev_mgr/dispatcher/src/wlan_vdev_mlme_api.c

@@ -81,6 +81,8 @@ QDF_STATUS wlan_vdev_mlme_sm_deliver_evt(struct wlan_objmgr_vdev *vdev,
 {
 	struct vdev_mlme_obj *vdev_mlme;
 	QDF_STATUS status;
+	enum wlan_vdev_state state_entry, state_exit;
+	enum wlan_vdev_state substate_entry, substate_exit;
 
 	vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
 	if (!vdev_mlme) {
@@ -89,8 +91,20 @@ QDF_STATUS wlan_vdev_mlme_sm_deliver_evt(struct wlan_objmgr_vdev *vdev,
 	}
 
 	mlme_vdev_sm_spin_lock(vdev_mlme);
+
+	/* store entry state and sub state for prints */
+	state_entry = wlan_vdev_mlme_get_state(vdev);
+	substate_entry = wlan_vdev_mlme_get_substate(vdev);
+	mlme_vdev_sm_print_state_event(vdev_mlme, event);
+
 	status = mlme_vdev_sm_deliver_event(vdev_mlme, event, event_data_len,
 					    event_data);
+	/* Take exit state, exit substate for prints */
+	state_exit = wlan_vdev_mlme_get_state(vdev);
+	substate_exit = wlan_vdev_mlme_get_substate(vdev);
+	/* If no state and substate change, don't print */
+	if (!((state_entry == state_exit) && (substate_entry == substate_exit)))
+		mlme_vdev_sm_print_state(vdev_mlme);
 	mlme_vdev_sm_spin_unlock(vdev_mlme);
 
 	return status;