gdm r6053 - in trunk: . common gui/simple-greeter



Author: mccann
Date: Mon Mar 24 01:52:43 2008
New Revision: 6053
URL: http://svn.gnome.org/viewvc/gdm?rev=6053&view=rev

Log:
2008-03-23  William Jon McCann  <jmccann redhat com>

	* common/gdm-profile.h:
	* configure.ac:
	* gui/simple-greeter/gdm-greeter-client.c:
	(gdm_greeter_client_start):
	* gui/simple-greeter/gdm-greeter-session.c: (toggle_panel),
	(toggle_login_window), (launch_compiz), (launch_metacity),
	(start_window_manager), (activate_settings_daemon),
	(gdm_greeter_session_start):
	* gui/simple-greeter/gdm-session-manager.c: (_change_level),
	(gdm_session_manager_set_level):
	* gui/simple-greeter/greeter-main.c: (load_a11y), (main):
	Add some more profiling stuff.

	The greeter can now be profiled like so:
	strace -ttt -f -o /tmp/logfile.strace -p `/sbin/pidof gdm-binary`
	python plot-timeline.py -o prettygraph.png /tmp/logfile.strace

	See: http://www.gnome.org/~federico/news-2006-03.html#09



Modified:
   trunk/ChangeLog
   trunk/common/gdm-profile.h
   trunk/configure.ac
   trunk/gui/simple-greeter/gdm-greeter-client.c
   trunk/gui/simple-greeter/gdm-greeter-session.c
   trunk/gui/simple-greeter/gdm-session-manager.c
   trunk/gui/simple-greeter/greeter-main.c

Modified: trunk/common/gdm-profile.h
==============================================================================
--- trunk/common/gdm-profile.h	(original)
+++ trunk/common/gdm-profile.h	Mon Mar 24 01:52:43 2008
@@ -29,9 +29,9 @@
 
 #ifdef ENABLE_PROFILING
 #ifdef G_HAVE_ISO_VARARGS
-#define gdm_profile_start(...) _gdm_profile_log (G_STRFUNC, "start", __VA_ARGDM__)
-#define gdm_profile_end(...)   _gdm_profile_log (G_STRFUNC, "end", __VA_ARGDM__)
-#define gdm_profile_msg(...)   _gdm_profile_log (NULL, NULL, __VA_ARGDM__)
+#define gdm_profile_start(...) _gdm_profile_log (G_STRFUNC, "start", __VA_ARGS__)
+#define gdm_profile_end(...)   _gdm_profile_log (G_STRFUNC, "end", __VA_ARGS__)
+#define gdm_profile_msg(...)   _gdm_profile_log (NULL, NULL, __VA_ARGS__)
 #elif defined(G_HAVE_GNUC_VARARGS)
 #define gdm_profile_start(format...) _gdm_profile_log (G_STRFUNC, "start", format)
 #define gdm_profile_end(format...)   _gdm_profile_log (G_STRFUNC, "end", format)

Modified: trunk/configure.ac
==============================================================================
--- trunk/configure.ac	(original)
+++ trunk/configure.ac	Mon Mar 24 01:52:43 2008
@@ -1306,6 +1306,17 @@
 fi
 AC_SUBST(DEBUG_CFLAGS)
 
+#
+# Enable Profiling
+#
+AC_ARG_ENABLE(profiling,
+	[AC_HELP_STRING([--enable-profiling],
+	[turn on profiling])],
+	, enable_profiling=yes)
+if test "$enable_profiling" = "yes"; then
+    AC_DEFINE(ENABLE_PROFILING,1,[enable profiling])
+fi
+
 # Set configuration choices.
 #
 AC_SUBST(HALT_COMMAND)

Modified: trunk/gui/simple-greeter/gdm-greeter-client.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-greeter-client.c	(original)
+++ trunk/gui/simple-greeter/gdm-greeter-client.c	Mon Mar 24 01:52:43 2008
@@ -35,6 +35,7 @@
 
 #include "gdm-greeter-client.h"
 #include "gdm-marshal.h"
+#include "gdm-profile.h"
 
 #define GDM_GREETER_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_GREETER_CLIENT, GdmGreeterClientPrivate))
 
@@ -688,6 +689,8 @@
 
         g_return_val_if_fail (GDM_IS_GREETER_CLIENT (client), FALSE);
 
+        gdm_profile_start (NULL);
+
         ret = FALSE;
 
         if (client->priv->address == NULL) {
@@ -730,6 +733,8 @@
         ret = TRUE;
 
  out:
+        gdm_profile_end (NULL);
+
         return ret;
 }
 

Modified: trunk/gui/simple-greeter/gdm-greeter-session.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-greeter-session.c	(original)
+++ trunk/gui/simple-greeter/gdm-greeter-session.c	Mon Mar 24 01:52:43 2008
@@ -40,6 +40,7 @@
 
 #include "gdm-session-manager.h"
 #include "gdm-session-client.h"
+#include "gdm-profile.h"
 
 #define GDM_GREETER_SESSION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_GREETER_SESSION, GdmGreeterSessionPrivate))
 
@@ -272,6 +273,8 @@
               gboolean           enabled,
               GdmGreeterSession *session)
 {
+        gdm_profile_start (NULL);
+
         if (enabled) {
                 session->priv->panel = gdm_greeter_panel_new ();
 
@@ -290,6 +293,8 @@
                 gtk_widget_destroy (session->priv->panel);
                 session->priv->panel = NULL;
         }
+
+        gdm_profile_end (NULL);
 }
 
 static void
@@ -297,6 +302,8 @@
                      gboolean           enabled,
                      GdmGreeterSession *session)
 {
+        gdm_profile_start (NULL);
+
         if (enabled) {
                 gboolean is_local;
 
@@ -341,6 +348,7 @@
                 gtk_widget_destroy (session->priv->login_window);
                 session->priv->login_window = NULL;
         }
+        gdm_profile_end (NULL);
 }
 
 static gboolean
@@ -349,6 +357,7 @@
         GError  *error;
         gboolean ret;
 
+        gdm_profile_start (NULL);
         g_debug ("GdmGreeterSession: Launching compiz");
 
         ret = FALSE;
@@ -376,6 +385,7 @@
         /* FIXME: should try to detect if it actually works */
 
  out:
+        gdm_profile_end (NULL);
         return ret;
 }
 
@@ -385,6 +395,8 @@
         GError  *error;
         gboolean ret;
 
+        gdm_profile_start (NULL);
+
         g_debug ("GdmGreeterSession: Launching metacity");
 
         ret = FALSE;
@@ -400,6 +412,7 @@
         ret = TRUE;
 
  out:
+        gdm_profile_end (NULL);
         return ret;
 }
 
@@ -409,8 +422,6 @@
         gboolean     use_compiz;
         GConfClient *client;
 
-        /* FIXME: check for COMPOSITE */
-
         client = gconf_client_get_default ();
         use_compiz = gconf_client_get_bool (client, KEY_WM_USE_COMPIZ, NULL);
         g_object_unref (client);
@@ -628,6 +639,8 @@
         DBusError        local_error;
         DBusConnection  *connection;
 
+        gdm_profile_start (NULL);
+
         g_debug ("GdmGreeterLoginWindow: activating settings daemon");
 
         dbus_error_init (&local_error);
@@ -635,7 +648,7 @@
         if (connection == NULL) {
                 g_debug ("Failed to connect to the D-Bus daemon: %s", local_error.message);
                 dbus_error_free (&local_error);
-                return FALSE;
+                goto out;
         }
 
         res = send_dbus_string_method (connection,
@@ -648,30 +661,8 @@
         ret = TRUE;
         g_debug ("GdmGreeterLoginWindow: settings daemon started");
  out:
-        return ret;
-}
-
-static gboolean
-start_settings_daemon (GdmGreeterSession *session)
-{
-        GError  *error;
-        gboolean ret;
+        gdm_profile_end (NULL);
 
-        g_debug ("GdmGreeterSession: Launching settings daemon");
-
-        ret = FALSE;
-
-        error = NULL;
-        g_spawn_command_line_async (LIBEXECDIR "/gnome-settings-daemon --gconf-prefix=/apps/gdm/simple-greeter/settings-manager-plugins", &error);
-        if (error != NULL) {
-                g_warning ("Error starting settings daemon: %s", error->message);
-                g_error_free (error);
-                goto out;
-        }
-
-        ret = TRUE;
-
- out:
         return ret;
 }
 
@@ -695,10 +686,14 @@
 
         g_return_val_if_fail (GDM_IS_GREETER_SESSION (session), FALSE);
 
+        gdm_profile_start (NULL);
+
         res = gdm_greeter_client_start (session->priv->client, error);
 
         gdm_session_manager_set_level (session->priv->manager, GDM_SESSION_LEVEL_LOGIN_WINDOW);
 
+        gdm_profile_end (NULL);
+
         return res;
 }
 

Modified: trunk/gui/simple-greeter/gdm-session-manager.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-session-manager.c	(original)
+++ trunk/gui/simple-greeter/gdm-session-manager.c	Mon Mar 24 01:52:43 2008
@@ -31,6 +31,7 @@
 
 #include "gdm-session-manager.h"
 #include "gdm-marshal.h"
+#include "gdm-profile.h"
 
 #define GDM_SESSION_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_SESSION_MANAGER, GdmSessionManagerPrivate))
 
@@ -294,6 +295,8 @@
         GList *list;
         guint  old_level;
 
+        gdm_profile_start (NULL);
+
         g_debug ("GdmSessionManager: Changing level to %u", (guint)new_level);
 
         /* unlike some other run level systems
@@ -371,6 +374,8 @@
                         ndata->func (manager, TRUE, ndata->data);
                 }
         }
+
+        gdm_profile_end (NULL);
 }
 
 void
@@ -383,7 +388,9 @@
                 return;
         }
 
+        gdm_profile_start (NULL);
         _change_level (manager, level);
+        gdm_profile_end (NULL);
 }
 
 static void

Modified: trunk/gui/simple-greeter/greeter-main.c
==============================================================================
--- trunk/gui/simple-greeter/greeter-main.c	(original)
+++ trunk/gui/simple-greeter/greeter-main.c	Mon Mar 24 01:52:43 2008
@@ -36,6 +36,7 @@
 #include "gdm-signal-handler.h"
 #include "gdm-settings-client.h"
 #include "gdm-settings-keys.h"
+#include "gdm-profile.h"
 
 #include "gdm-greeter-session.h"
 
@@ -202,6 +203,8 @@
         gboolean           a_t_support;
         GConfClient       *gconf_client;
 
+        gdm_profile_start (NULL);
+
         gconf_client = gconf_client_get_default ();
 
         env_a_t_support = g_getenv ("GNOME_ACCESSIBILITY");
@@ -217,6 +220,8 @@
         }
 
         g_object_unref (gconf_client);
+
+        gdm_profile_end (NULL);
 }
 
 
@@ -295,10 +300,12 @@
 
         g_type_init ();
 
+        gdm_profile_start ("Initializing settings client");
         if (! gdm_settings_client_init (GDMCONFDIR "/gdm.schemas", "/")) {
                 g_critical ("Unable to initialize settings client");
                 exit (1);
         }
+        gdm_profile_end ("Initializing settings client");
 
         g_debug ("Greeter session pid=%d display=%s xauthority=%s",
                  (int)getpid (),
@@ -325,11 +332,13 @@
         gdm_signal_handler_add (signal_handler, SIGHUP, signal_cb, NULL);
         gdm_signal_handler_add (signal_handler, SIGUSR1, signal_cb, NULL);
 
+        gdm_profile_start ("Creating new greeter session");
         session = gdm_greeter_session_new ();
         if (session == NULL) {
                 g_critical ("Unable to create greeter session");
                 exit (1);
         }
+        gdm_profile_end ("Creating new greeter session");
 
         error = NULL;
         res = gdm_greeter_session_start (session, &error);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]