summaryrefslogtreecommitdiff
path: root/gui
diff options
context:
space:
mode:
authorWilliam Jon McCann <jmccann@redhat.com>2008-03-24 01:52:43 +0000
committerWilliam Jon McCann <mccann@src.gnome.org>2008-03-24 01:52:43 +0000
commitd3601da43abb94870aae346857809b2ef172107b (patch)
treeddf8597fdc520075bfe16cd4405864d538b1567f /gui
parent896b850edc9d8aa3e5257c3cdb262a3a5ffb5f33 (diff)
downloadgdm-d3601da43abb94870aae346857809b2ef172107b.tar.gz
Add some more profiling stuff.
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 svn path=/trunk/; revision=6053
Diffstat (limited to 'gui')
-rw-r--r--gui/simple-greeter/gdm-greeter-client.c5
-rw-r--r--gui/simple-greeter/gdm-greeter-session.c47
-rw-r--r--gui/simple-greeter/gdm-session-manager.c7
-rw-r--r--gui/simple-greeter/greeter-main.c9
4 files changed, 42 insertions, 26 deletions
diff --git a/gui/simple-greeter/gdm-greeter-client.c b/gui/simple-greeter/gdm-greeter-client.c
index aaa6370b..a341b911 100644
--- a/gui/simple-greeter/gdm-greeter-client.c
+++ b/gui/simple-greeter/gdm-greeter-client.c
@@ -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 @@ gdm_greeter_client_start (GdmGreeterClient *client,
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 @@ gdm_greeter_client_start (GdmGreeterClient *client,
ret = TRUE;
out:
+ gdm_profile_end (NULL);
+
return ret;
}
diff --git a/gui/simple-greeter/gdm-greeter-session.c b/gui/simple-greeter/gdm-greeter-session.c
index e3527e4b..a7fbda15 100644
--- a/gui/simple-greeter/gdm-greeter-session.c
+++ b/gui/simple-greeter/gdm-greeter-session.c
@@ -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 @@ toggle_panel (GdmSessionManager *manager,
gboolean enabled,
GdmGreeterSession *session)
{
+ gdm_profile_start (NULL);
+
if (enabled) {
session->priv->panel = gdm_greeter_panel_new ();
@@ -290,6 +293,8 @@ toggle_panel (GdmSessionManager *manager,
gtk_widget_destroy (session->priv->panel);
session->priv->panel = NULL;
}
+
+ gdm_profile_end (NULL);
}
static void
@@ -297,6 +302,8 @@ toggle_login_window (GdmSessionManager *manager,
gboolean enabled,
GdmGreeterSession *session)
{
+ gdm_profile_start (NULL);
+
if (enabled) {
gboolean is_local;
@@ -341,6 +348,7 @@ toggle_login_window (GdmSessionManager *manager,
gtk_widget_destroy (session->priv->login_window);
session->priv->login_window = NULL;
}
+ gdm_profile_end (NULL);
}
static gboolean
@@ -349,6 +357,7 @@ launch_compiz (GdmGreeterSession *session)
GError *error;
gboolean ret;
+ gdm_profile_start (NULL);
g_debug ("GdmGreeterSession: Launching compiz");
ret = FALSE;
@@ -376,6 +385,7 @@ launch_compiz (GdmGreeterSession *session)
/* FIXME: should try to detect if it actually works */
out:
+ gdm_profile_end (NULL);
return ret;
}
@@ -385,6 +395,8 @@ launch_metacity (GdmGreeterSession *session)
GError *error;
gboolean ret;
+ gdm_profile_start (NULL);
+
g_debug ("GdmGreeterSession: Launching metacity");
ret = FALSE;
@@ -400,6 +412,7 @@ launch_metacity (GdmGreeterSession *session)
ret = TRUE;
out:
+ gdm_profile_end (NULL);
return ret;
}
@@ -409,8 +422,6 @@ start_window_manager (GdmGreeterSession *session)
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 @@ activate_settings_daemon (GdmGreeterSession *session)
DBusError local_error;
DBusConnection *connection;
+ gdm_profile_start (NULL);
+
g_debug ("GdmGreeterLoginWindow: activating settings daemon");
dbus_error_init (&local_error);
@@ -635,7 +648,7 @@ activate_settings_daemon (GdmGreeterSession *session)
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 @@ activate_settings_daemon (GdmGreeterSession *session)
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 @@ gdm_greeter_session_start (GdmGreeterSession *session,
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;
}
diff --git a/gui/simple-greeter/gdm-session-manager.c b/gui/simple-greeter/gdm-session-manager.c
index 80fbb4c3..a4b44ba9 100644
--- a/gui/simple-greeter/gdm-session-manager.c
+++ b/gui/simple-greeter/gdm-session-manager.c
@@ -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 @@ _change_level (GdmSessionManager *manager,
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 @@ _change_level (GdmSessionManager *manager,
ndata->func (manager, TRUE, ndata->data);
}
}
+
+ gdm_profile_end (NULL);
}
void
@@ -383,7 +388,9 @@ gdm_session_manager_set_level (GdmSessionManager *manager,
return;
}
+ gdm_profile_start (NULL);
_change_level (manager, level);
+ gdm_profile_end (NULL);
}
static void
diff --git a/gui/simple-greeter/greeter-main.c b/gui/simple-greeter/greeter-main.c
index 75985d29..4e5e98e3 100644
--- a/gui/simple-greeter/greeter-main.c
+++ b/gui/simple-greeter/greeter-main.c
@@ -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 @@ load_a11y (void)
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 @@ load_a11y (void)
}
g_object_unref (gconf_client);
+
+ gdm_profile_end (NULL);
}
@@ -295,10 +300,12 @@ main (int argc, char *argv[])
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 @@ main (int argc, char *argv[])
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);