FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Ubuntu > Ubuntu Development

 
 
LinkBack Thread Tools
 
Old 03-12-2009, 08:21 PM
Bryce Harrington
 
Default X startup times: Jaunty vs. Moblin

On Thu, Mar 12, 2009 at 12:42:08PM -0700, Bryce Harrington wrote:
> On Thu, Mar 12, 2009 at 08:14:14PM +0100, Martin Pitt wrote:
> > Matt Zimmerman [2009-03-12 17:47 +0000]:
> > > The intel section of the log is still completely different from the moblin
> > > log. It seems to do the same thing over and over. Is there anything in the
> > > moblin xorg.conf?
> >
> > Could that be related to gnome-settings-daemon and perhaps other GNOME
> > programs to do expensive Xrandr calls over and over?
>
> The messages being printed look very reminiscent of that class of issue,
> although note in the log it's only one (well, two) sets of calls, so
> that feels more like a one time thing such as you'd see during init.
>
> As a general rule, the Xserver does video set up first, and then input
> setup. So when you see monitor resolution messaging after input device
> setup messages, that often indicates activity post-init.

So... getting back to the original issue, I think the stuff scott is
interested in is prior to the EDID probing stuff at timestamp 5.x and
later.

In the black case, the log indicates X has completed init at 2.7 sec.
Whatever is happening between 2.7 and 3.5 may not be due to X. The
black bootchart indicates X is mostly sleeping during this period (and
perhaps handling a few client calls or something).

gdm clearly is taking about a third of a second to itself, following X
startup but before x-session-manager. In the white case, startx is used
instead.

Another note of possible relevance is that X depends on hal now, for
input device stuff. I notice in the white log, that hald has completed
its work before X begins (looks like it sleeps until hald is done?)
Whereas in the black case, there seems to be hald activity going on in
parallel with the X startup. Not sure what it means, but it looks
interesting. I notice in the moblin patches is one that indicates some
sort of hald synchronization. (Scott, mind tossing the patches up
somewhere for us to poke through?)

Bryce

--
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
 
Old 03-13-2009, 06:49 AM
Timo Aaltonen
 
Default X startup times: Jaunty vs. Moblin

On Thu, 12 Mar 2009, Bryce Harrington wrote:

> Another note of possible relevance is that X depends on hal now, for
> input device stuff. I notice in the white log, that hald has completed
> its work before X begins (looks like it sleeps until hald is done?)
> Whereas in the black case, there seems to be hald activity going on in
> parallel with the X startup. Not sure what it means, but it looks
> interesting. I notice in the moblin patches is one that indicates some
> sort of hald synchronization. (Scott, mind tossing the patches up
> somewhere for us to poke through?)

xserver 1.6.0 contains commit 6b8bbbd21b39181e9 which should do the same:

http://cgit.freedesktop.org/xorg/xserver/commit/?h=server-1.6-branch&id=6b8bbbd21b39181e9dd3175fa73c05008c361ba2

trying without xorg.conf would rule out the difference in setting up the
default devices. Btw, the initial startup is already a lot slower. By the
time the pci bus has been probed, we've lost 0.3 seconds.

t

--
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
 
Old 03-13-2009, 11:27 AM
Scott James Remnant
 
Default X startup times: Jaunty vs. Moblin

On Thu, 2009-03-12 at 11:30 -0700, Bryce Harrington wrote:

> The sequence of monitor probe stuff starting at 5.x seconds looks like
> xrandr calls, almost certainly from some client program rather than from
> X itself.
>
Here's a dump of all the other programs known to bootchart, with their
start and end times relative to the X server.

The numbers might not exactly match the X log, but they should be +/- a
consistent small amount.

-0.09..-0.09 3166 (gdm)
-0.04..51.55 3167 (gdm)
-0.04..51.55 3168 (gdm)
-0.04.. 0.04 3172 (sleep)
0.00..51.55 3173 (Xorg)
0.09.. 0.09 3176 (fgconsole)
0.13.. 0.13 3178 (pidof)
0.18.. 0.27 3179 (lap)
0.22.. 0.27 3180 (lap)
0.31.. 0.31 3181 (rc)
0.35.. 0.49 3183 (S50NetworkManag)
0.40.. 0.49 3195 (NetworkManager)
0.44..51.55 3196 (hald-addon-dell)
0.49..51.55 3197 (NetworkManager)
0.53.. 0.53 3198 (ifconfig)
0.53.. 1.09 3207 (S50avahi-daemon)
0.53.. 0.53 3208 (usplash_write)
0.58.. 0.71 3209 (dbus-daemon)
0.58.. 0.58 3210 (dbus-daemon)
0.58..51.55 3211 (nm-system-setti)
0.58.. 0.58 3218 (S50avahi-daemon)
0.62.. 0.62 3219 (tput)
0.62..51.55 3220 (wpa_supplicant)
0.62..51.55 3221 (hald-addon-inpu)
0.67.. 1.44 3224 (debian-setup-ke)
0.67.. 0.99 3225 (avahi-daemon)
0.67.. 1.13 3226 (hal-set-propert)
0.67.. 1.44 3227 (hald-probe-inpu)
0.67.. 0.67 3228 (avahi-daemon)
0.71..51.55 3229 (avahi-daemon)
0.71..51.55 3230 (avahi-daemon)
0.71.. 0.71 3233 (hald-runner)
0.76.. 0.76 3235 (hal-acl-tool)
0.81.. 0.81 3237 (hal-acl-tool)
1.04.. 1.04 3238 (S50avahi-daemon)
1.09.. 1.09 3240 (tput)
1.09.. 1.44 3241 (hald-runner)
1.13.. 1.13 3242 (rc)
1.18.. 1.18 3244 (hal-set-propert)
1.18.. 1.18 3247 (lap)
1.18.. 1.18 3248 (sed)
1.22.. 1.89 3249 (S50cups)
1.57.. 1.57 3261 (hald-runner)
1.57.. 1.57 3263 (chown)
1.62.. 1.62 3265 (hal-setup-keyma)
1.62.. 1.62 3269 (hald-runner)
1.66.. 1.66 3280 (hal-acl-tool)
1.66.. 1.84 3281 (cupsd)
1.66.. 1.66 3282 (hal-acl-tool)
1.66.. 1.75 3283 (modprobe)
1.71.. 1.75 3287 (hald-probe-volu)
1.75.. 1.75 3289 (debian-setup-ke)
1.75.. 1.75 3291 (hald-runner)
1.75..51.55 3293 (cupsd)
1.75.. 1.75 3295 (hal-set-propert)
1.80..51.55 3297 (hald-addon-cpuf)
1.80.. 1.80 3299 (udevd)
1.84..51.55 3300 (hald-addon-acpi)
1.89.. 1.89 3301 (hal-acl-tool)
1.89.. 1.89 3302 (S50cups)
1.93.. 1.98 3310 (S50pulseaudio)
1.98.. 1.98 3311 (hal-system-kill)
1.98.. 1.98 3312 (hal-system-kill)
2.02.. 2.02 3321 (lap)
2.02.. 2.02 3322 (lap)
2.07.. 2.07 3332 (rc)
2.11.. 2.11 3337 (S50system-tools)
2.11.. 2.11 3347 (system-tools-ba)
2.16..51.55 3348 (system-tools-ba)
2.16.. 2.20 3357 (sh)
2.16.. 2.16 3360 (sh)
2.20.. 2.20 3363 (savelog)
2.20.. 2.20 3373 (gzip)
2.25.. 2.25 3382 (pidof)
2.40.. 2.40 3408 (S89anacron)
2.40.. 2.40 3422 (start-stop-daem)
2.44.. 2.44 3430 (lap)
2.44.. 2.44 3431 (lap)
2.49.. 2.49 3432 (S89atd)
2.49.. 2.49 3438 (tput)
2.54..51.55 3443 (atd)
2.54.. 2.54 3447 (pidof)
2.58.. 2.63 3452 (S89cron)
2.58.. 2.58 3457 (S89cron)
2.63.. 2.63 3471 (expr)
2.67..51.55 3475 (cron)
2.72.. 3.12 3484 (S90binfmt-suppo)
2.72.. 2.72 3493 (tput)
2.76.. 3.12 3494 (update-binfmts)
3.16.. 3.16 3504 (pam-foreground-)
3.21.. 3.21 3518 (pam-foreground-)
3.21.. 3.21 3519 (pam-foreground-)
3.21.. 3.21 3520 (S98usplash)
3.21.. 3.21 3521 (S98usplash)
3.21.. 3.40 3522 (hal-acl-tool)
3.21.. 3.21 3523 (pidof)
3.26..51.55 3528 (x-session-manag)
3.26.. 3.30 3531 (Default)
3.26.. 3.26 3532 (rc)
3.26.. 3.26 3534 (gdmflexiserver)
3.30.. 3.54 3536 (S99acpi-support)
3.30.. 3.30 3539 (readlink)
3.30.. 3.30 3540 (hal-acl-tool)
3.30.. 3.30 3541 (Default)
3.30.. 3.30 3542 (Default)
3.30.. 3.30 3543 (sed)
3.35.. 3.35 3556 (Xsession)
3.35.. 3.35 3558 (hal-acl-tool)
3.40.. 3.40 3572 (polkit-read-aut)
3.40.. 3.45 3576 (Xsession)
3.40.. 3.40 3580 (S99acpi-support)
3.45.. 3.59 3593 (hal-acl-tool)
3.45.. 3.45 3594 (S99acpi-support)
3.45.. 3.45 3596 (expr)
3.50.. 3.50 3597 (on_ac_power)
3.50.. 3.50 3606 (hal-acl-tool)
3.50.. 3.50 3607 (on_ac_power)
3.50.. 3.50 3609 (run-parts)
3.54.. 3.63 3610 (xrdb)
3.54.. 3.63 3613 (sh)
3.54.. 3.63 3615 (cpp)
3.54.. 3.63 3618 (cc1)
3.59.. 3.59 3635 (rc)
3.68.. 3.68 3649 (Xsession)
3.68.. 3.68 3651 (basename)
3.68.. 3.68 3652 (cut)
3.68.. 3.68 3655 (lap)
3.73.. 3.73 3666 (lap)
3.73.. 3.73 3667 (sed)
3.73.. 3.73 3668 (grep)
3.77..51.55 3676 (ssh-agent)
3.77.. 3.77 3677 (dbus-launch)
3.77.. 3.77 3678 (dbus-daemon)
3.77..51.55 3679 (dbus-launch)
3.82..51.55 3682 (getty)
3.82..51.55 3683 (dbus-daemon)
3.82.. 4.54 3684 (start-pulseaudi)
3.82.. 4.49 3685 (pulseaudio)
3.86..51.55 3688 (pulseaudio)
3.95..51.55 3689 (gconf-helper)
3.99..51.55 3691 (gconfd-2)
4.54.. 4.54 3694 (pactl)
4.63.. 4.63 3696 (gpg)
4.67..51.55 3700 (seahorse-agent)
4.76.. 4.81 3701 (gconf-sanity-ch)
4.94.. 5.49 3702 (gnome-settings-)
4.94.. 5.08 3704 (gnome-settings-)
5.03..51.55 3705 (gnome-settings-)
5.03.. 5.22 3706 (gnome-keyring-d)
5.26..51.55 3707 (gnome-keyring-d)
5.31.. 5.31 3708 (dbus-daemon)
5.31..51.55 3709 (gvfsd)
5.36.. 5.36 3711 (gvfs-fuse-daemo)
5.36.. 5.36 3712 (fusermount)
5.36.. 5.36 3713 (fusermount)
5.36.. 5.36 3714 (udevd)
5.40.. 5.49 3715 (xrdb)
5.40..51.55 3716 (gvfs-fuse-daemo)
5.45.. 5.49 3721 (xrdb)
5.49.. 5.49 3722 (gnome-settings-)
5.55..51.55 3723 (compiz)
5.55.. 5.55 3724 (xvinfo)
5.55.. 5.55 3725 (grep)
5.65.. 5.79 3738 (compiz)
5.65.. 5.79 3739 (lspci)
5.65.. 5.79 3740 (grep)
5.83.. 5.83 3741 (compiz)
5.83.. 5.83 3742 (glxinfo)
5.83.. 5.83 3743 (grep)
5.88.. 5.88 3744 (compiz)
5.88.. 5.88 3745 (glxinfo)
5.88.. 5.88 3746 (grep)
5.97.. 5.97 3756 (compiz)
5.97.. 5.97 3757 (glxinfo)
5.97.. 5.97 3758 (grep)
5.97.. 5.97 3759 (sed)
6.02.. 6.02 3760 (compiz)
6.02.. 6.02 3761 (xdpyinfo)
6.02.. 6.02 3762 (grep)
6.02.. 6.02 3763 (sed)
6.06.. 6.06 3770 (glxinfo)
6.06.. 6.06 3771 (egrep)
6.11.. 6.11 3776 (xvinfo)
6.11.. 6.11 3777 (grep)
6.15..51.55 3778 (compiz.real)
6.20..51.55 3779 (gnome-panel)
7.34..51.55 3780 (nautilus)
7.39.. 7.39 3781 (gnome-panel)
7.39..51.55 3782 (bonobo-activati)
7.57..15.78 3784 (canberra-gtk-pl)
7.57..51.55 3785 (evolution-alarm)
7.62.. 8.26 3786 (gnome-power-man)
7.62..37.61 3787 (sleep)
7.66..51.55 3788 (nm-applet)
7.75..51.55 3789 (python)
7.80.. 8.17 3790 (sh)
7.80..37.75 3791 (sleep)
7.85.. 8.17 3792 (xdg-user-dirs-g)
7.94.. 8.40 3793 (gnome-at-visual)
8.03..51.55 3795 (update-notifier)
8.03.. 8.08 3798 (gconftool-2)
8.12..51.55 3799 (bluetooth-apple)
8.12.. 8.17 3800 (gconftool-2)
8.17.. 8.36 3801 (hal-system-kill)
8.22.. 8.31 3802 (gconftool-2)
8.26..51.55 3803 (gnome-power-man)
8.26.. 8.26 3804 (hal-is-caller-p)
8.31.. 8.36 3805 (basename)
8.36.. 8.40 3806 (gconftool-2)
8.45.. 9.85 3807 (dbus-daemon)
8.45.. 8.50 3808 (gnome-power-man)
8.50..51.55 3809 (notify-osd)
8.63.. 8.77 3811 (bonobo-activati)
8.82.. 8.87 3813 (polkit-read-aut)
8.82..51.55 3814 (trashapplet)
8.87.. 8.87 3815 (polkit-read-aut)
9.08..10.36 3816 (hal-system-powe)
9.18.. 9.65 3817 (dbus-daemon)
9.18.. 9.22 3818 (hal-is-caller-p)
9.18.. 9.22 3819 (polkit-read-aut)
9.22.. 9.22 3820 (polkit-read-aut)
9.22..51.55 3821 (gvfs-hal-volume)
9.27.. 9.31 3822 (hal-system-powe)
9.36..10.32 3826 (hal-system-powe)
9.36..10.32 3827 (pm-powersave)
9.47.. 9.51 3828 (pm-powersave)
9.47.. 9.51 3829 (hal-get-propert)
9.56.. 9.56 3830 (gvfsd)
9.56..51.55 3832 (gvfsd-trash)
9.56.. 9.56 3834 (mkdir)
9.61.. 9.65 3835 (pm-powersave)
9.70.. 9.70 3836 (mkdir)
9.70.. 9.90 3837 (dbus-daemon)
9.70..51.55 3838 (gvfs-gphoto2-vo)
9.75.. 9.75 3839 (pm-powersave)
9.79.. 9.85 3840 (pm-powersave)
9.79.. 9.85 3841 (pm-powersave)
9.79.. 9.85 3842 (sort)
9.85.. 9.85 3843 (uniq)
9.90..10.27 3844 (anacron)
9.90..10.27 3845 (invoke-rc.d)
9.99..10.23 3849 (invoke-rc.d)
9.99..10.23 3851 (xargs)
9.99..10.23 3852 (xargs)
10.27..10.27 3853 (invoke-rc.d)
10.36..10.36 3875 (hal-set-propert)
12.15..12.20 3879 (bonobo-activati)
12.20..51.55 3881 (fast-user-switc)
12.25..51.55 3883 (mixer_applet2)
12.53..51.55 3885 (sh)
12.53..51.55 3886 (compiz-decorato)
12.57..12.57 3887 (compiz-decorato)
12.62..51.55 3889 (gtk-window-deco)
14.15..14.25 3892 (hal-system-kill)
14.25..14.25 3893 (hal-is-caller-p)
14.62..51.55 3897 (gvfsd-burn)
26.16..26.16 3912 (hal-system-kill)
31.23..31.23 3915 (sh)
31.23..31.23 3917 (sh)
31.56..34.94 3926 (gnome-keyring-a)
36.16..36.16 3930 (gnome-settings-)
36.21..36.30 3931 (gnome-screensav)
36.35..51.55 3932 (gnome-screensav)
42.00..42.00 3943 (cryptomgr_probe)
42.00..42.00 3947 (khelper)
42.00..42.00 3948 (modprobe)
42.00..42.00 3950 (kthreadd)
42.05..51.55 3956 (dhclient)
42.05..42.05 3958 (nm-dhcp-client.)
44.58..51.55 3961 (nm-dispatcher.a)
44.58..44.58 3962 (hald-runner)
44.63..45.26 3964 (run-parts)
44.63..44.81 3966 (01ifupdown)
44.85..45.12 3974 (avahi-daemon-ch)
44.90..44.94 3977 (avahi-daemon-ch)
44.90..44.94 3978 (ifconfig)
44.90..44.94 3979 (grep)
44.99..45.08 3987 (host)
45.12..45.12 3991 (rm)
45.17..45.26 3992 (mountnfs)
45.17..45.21 4006 (umount)
45.26..45.26 4008 (mountpoint)
45.31..45.44 4013 (ntpdate)
45.31..45.44 4016 (lockfile-touch)
45.31..45.44 4020 (ntpdate)
47.45..51.55 4023 (gksudo)


Scott
--
Scott James Remnant
scott@canonical.com
--
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
 
Old 03-13-2009, 04:10 PM
Bryce Harrington
 
Default X startup times: Jaunty vs. Moblin

On Fri, Mar 13, 2009 at 12:27:11PM +0000, Scott James Remnant wrote:
> On Thu, 2009-03-12 at 11:30 -0700, Bryce Harrington wrote:
> > The sequence of monitor probe stuff starting at 5.x seconds looks like
> > xrandr calls, almost certainly from some client program rather than from
> > X itself.
> >
> Here's a dump of all the other programs known to bootchart, with their
> start and end times relative to the X server.
>
> The numbers might not exactly match the X log, but they should be +/- a
> consistent small amount.

Yep, there's gnome-settings-daemon poking its head in at the 5 sec
mark. Bit earlier than I would have guessed, though.

Compiz appears to be doing a lot of querying at around the 5.8 sec mark
(glxinfo/xdpyinfo/xvinfo/lspci). I don't think any of those trigger an
edid probe but guess it's possible.

> 0.00..51.55 3173 (Xorg)

> 4.94.. 5.49 3702 (gnome-settings-)
> 4.94.. 5.08 3704 (gnome-settings-)
> 5.03..51.55 3705 (gnome-settings-)
> 5.03.. 5.22 3706 (gnome-keyring-d)
> 5.26..51.55 3707 (gnome-keyring-d)
> 5.31.. 5.31 3708 (dbus-daemon)
> 5.31..51.55 3709 (gvfsd)
> 5.36.. 5.36 3711 (gvfs-fuse-daemo)
> 5.36.. 5.36 3712 (fusermount)
> 5.36.. 5.36 3713 (fusermount)
> 5.36.. 5.36 3714 (udevd)
> 5.40.. 5.49 3715 (xrdb)
> 5.40..51.55 3716 (gvfs-fuse-daemo)
> 5.45.. 5.49 3721 (xrdb)
> 5.49.. 5.49 3722 (gnome-settings-)
> 5.55..51.55 3723 (compiz)
> 5.55.. 5.55 3724 (xvinfo)
> 5.55.. 5.55 3725 (grep)
> 5.65.. 5.79 3738 (compiz)
> 5.65.. 5.79 3739 (lspci)
> 5.65.. 5.79 3740 (grep)
> 5.83.. 5.83 3741 (compiz)
> 5.83.. 5.83 3742 (glxinfo)
> 5.83.. 5.83 3743 (grep)
> 5.88.. 5.88 3744 (compiz)
> 5.88.. 5.88 3745 (glxinfo)
> 5.88.. 5.88 3746 (grep)
> 5.97.. 5.97 3756 (compiz)
> 5.97.. 5.97 3757 (glxinfo)
> 5.97.. 5.97 3758 (grep)
> 5.97.. 5.97 3759 (sed)
> 6.02.. 6.02 3760 (compiz)
> 6.02.. 6.02 3761 (xdpyinfo)
> 6.02.. 6.02 3762 (grep)
> 6.02.. 6.02 3763 (sed)
> 6.06.. 6.06 3770 (glxinfo)
> 6.06.. 6.06 3771 (egrep)
> 6.11.. 6.11 3776 (xvinfo)
> 6.11.. 6.11 3777 (grep)
> 6.15..51.55 3778 (compiz.real)
> 6.20..51.55 3779 (gnome-panel)

--
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
 
Old 03-14-2009, 12:44 AM
Bryce Harrington
 
Default X startup times: Jaunty vs. Moblin

On Thu, Mar 12, 2009 at 03:32:19PM +0000, Scott James Remnant wrote:
> Here's a boot-performance related challenge for X efficianados amongst
> you.
>
> The attached file black-jaunty-20090310-4_cropped.png shows a bootchart
> for Jaunty on a Dell Mini 9.
>
> You'll note that the Xorg server takes roughly four seconds to start
> (from 9.5s to 13s) before it calls the X session manager, and thus
> begins the login to GNOME.
>
>
> The attached file white-moblina1-20090312-1.png shows a bootchart for
> Moblin Core Alpha 1 on the same hardware.
>
> You'll note that the Xorg server takes significantly less time to start,
> in fact, roughly 1.5s (from 2s to 3.5s) before it calls the session
> manager.

I've done some further analysis on this.

We can break the X boot sequence into four phases:

I. 0 - 2.7 sec X init
II. 2.7 - 3.5 sec ??
III. 3.5 - 5.8 sec Session startup
IV. 5.8 - 7.8 sec Client X activity (monitor probing)

Phase IV was already discussed on the other leg of this thread; the
sequence of EDID messages in Xorg.0.log is probably just
gnome-session-daemon doing its stuff, nothing we really care about.

Phase III we don't care about either, that's just regular boot stuff.

Phase II is a mystery; the Xorg.0.log doesn't cover this period.
See below for suggestions.

Phase I we've got data so can look at more closely. See the attached
spreadsheet for details. Comparing the times it reaches different key
landmarks reveals that several specific steps of the init process have
been hugely optimized:

0. Moblin does its DRM kernel operations faster than Ubuntu.
This is a sequence of [drm] operations none really stands out
individually but the whole total is a lot faster.
Fwiw, Moblin is using UXA for this, Ubuntu uses EXA.
Ubuntu: 0.83 sec Moblin: 0.46 sec = 372 msec improvement.

1. Moblin loads the libvgahw.so faster than Ubuntu.
Ubuntu: 0.33 sec Moblin: 0.0003 sec = 325 msec improvement.

2. Moblin does its PCI probing much faster than Ubuntu.
Ubuntu: 0.31 sec Moblin: 0.05 sec = 260 msec improvement.

3. Moblin loads up UXA much faster than Ubuntu loads EXA
Ubuntu: 0.17 sec (EXA) Moblin: 0.002 sec (UXA) = 169 msec improvement.

4. Moblin loads the AT keyboard device from HAL faster than Ubuntu.
Ubuntu: 0.19 sec Moblin: 0.026 sec = 168 msec improvement.

5. Moblin does its xf86ClaimFixedResources() call faster
Ubuntu: 0.17 sec Moblin: 0.078 sec = 94 msec improvement.

6. Moblin does its EDID probing faster than Ubuntu.
Ubuntu: 0.26 sec Moblin: 0.174 sec = 83 msec improvement.

The rest of the differences look to be just noise - nickels and dimes.

To generalize, it appears they:

* Benefit a lot from kernel UXA/DRM performance changes
* Made module loading faster (maybe compiled in?)
* Do hardware probing INCREDIBLY faster. I wonder if they're even
skipping the HW probing and caching or embedding the data?


Now briefly on Phase II...

The moblin case does not have a comparable time period to this, so it
seems to be something Ubuntu is doing that they're not, and it costs 800
msec. There are no messages in the Xorg.0.log for this period, so it's
not X startup activity. The boot chart seems to show a quiescent period
followed by some activity; is something going on in the kernel that X is
waiting on? You might want to look at an strace or cross-reference this
time period with the kernel logs might to shed some light as to what's
going on.


Hope this helps,
Bryce
--
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
 
Old 03-14-2009, 02:49 AM
"Robbie Williamson"
 
Default X startup times: Jaunty vs. Moblin

Would using the bootgraph.pl kernel script help here...if we are thinking it may be something in the kernel causing the delay?

-Robbie
Sent via BlackBerry by AT&T

-----Original Message-----
From: Bryce Harrington <bryce@canonical.com>

Date: Fri, 13 Mar 2009 18:44:11
To: Scott James Remnant<scott@ubuntu.com>
Cc: Timo Aaltonen<tjaalton@cc.hut.fi>; Matt Zimmerman<mdz@canonical.com>; Ubuntu Development<ubuntu-devel@lists.ubuntu.com>
Subject: Re: X startup times: Jaunty vs. Moblin


On Thu, Mar 12, 2009 at 03:32:19PM +0000, Scott James Remnant wrote:
> Here's a boot-performance related challenge for X efficianados amongst
> you.
>
> The attached file black-jaunty-20090310-4_cropped.png shows a bootchart
> for Jaunty on a Dell Mini 9.
>
> You'll note that the Xorg server takes roughly four seconds to start
> (from 9.5s to 13s) before it calls the X session manager, and thus
> begins the login to GNOME.
>
>
> The attached file white-moblina1-20090312-1.png shows a bootchart for
> Moblin Core Alpha 1 on the same hardware.
>
> You'll note that the Xorg server takes significantly less time to start,
> in fact, roughly 1.5s (from 2s to 3.5s) before it calls the session
> manager.

I've done some further analysis on this.

We can break the X boot sequence into four phases:

I. 0 - 2.7 sec X init
II. 2.7 - 3.5 sec ??
III. 3.5 - 5.8 sec Session startup
IV. 5.8 - 7.8 sec Client X activity (monitor probing)

Phase IV was already discussed on the other leg of this thread; the
sequence of EDID messages in Xorg.0.log is probably just
gnome-session-daemon doing its stuff, nothing we really care about.

Phase III we don't care about either, that's just regular boot stuff.

Phase II is a mystery; the Xorg.0.log doesn't cover this period.
See below for suggestions.

Phase I we've got data so can look at more closely. See the attached
spreadsheet for details. Comparing the times it reaches different key
landmarks reveals that several specific steps of the init process have
been hugely optimized:

0. Moblin does its DRM kernel operations faster than Ubuntu.
This is a sequence of [drm] operations none really stands out
individually but the whole total is a lot faster.
Fwiw, Moblin is using UXA for this, Ubuntu uses EXA.
Ubuntu: 0.83 sec Moblin: 0.46 sec = 372 msec improvement.

1. Moblin loads the libvgahw.so faster than Ubuntu.
Ubuntu: 0.33 sec Moblin: 0.0003 sec = 325 msec improvement.

2. Moblin does its PCI probing much faster than Ubuntu.
Ubuntu: 0.31 sec Moblin: 0.05 sec = 260 msec improvement.

3. Moblin loads up UXA much faster than Ubuntu loads EXA
Ubuntu: 0.17 sec (EXA) Moblin: 0.002 sec (UXA) = 169 msec improvement.

4. Moblin loads the AT keyboard device from HAL faster than Ubuntu.
Ubuntu: 0.19 sec Moblin: 0.026 sec = 168 msec improvement.

5. Moblin does its xf86ClaimFixedResources() call faster
Ubuntu: 0.17 sec Moblin: 0.078 sec = 94 msec improvement.

6. Moblin does its EDID probing faster than Ubuntu.
Ubuntu: 0.26 sec Moblin: 0.174 sec = 83 msec improvement.

The rest of the differences look to be just noise - nickels and dimes.

To generalize, it appears they:

* Benefit a lot from kernel UXA/DRM performance changes
* Made module loading faster (maybe compiled in?)
* Do hardware probing INCREDIBLY faster. I wonder if they're even
skipping the HW probing and caching or embedding the data?


Now briefly on Phase II...

The moblin case does not have a comparable time period to this, so it
seems to be something Ubuntu is doing that they're not, and it costs 800
msec. There are no messages in the Xorg.0.log for this period, so it's
not X startup activity. The boot chart seems to show a quiescent period
followed by some activity; is something going on in the kernel that X is
waiting on? You might want to look at an strace or cross-reference this
time period with the kernel logs might to shed some light as to what's
going on.


Hope this helps,
Bryce

--
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
 
Old 03-14-2009, 04:24 PM
Loc Minier
 
Default X startup times: Jaunty vs. Moblin

Could the default compiler flags in Moblin explain the difference?
(they build everything with -march=core2 -mtune=generic -mfpmath=sse
-Os)

-Os notably could result in smaller binaries which are loaded faster.

--
Loc Minier

--
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
 
Old 03-14-2009, 10:54 PM
Bryce Harrington
 
Default X startup times: Jaunty vs. Moblin

On Sat, Mar 14, 2009 at 06:24:34PM +0100, Lo?c Minier wrote:
> Could the default compiler flags in Moblin explain the difference?
> (they build everything with -march=core2 -mtune=generic -mfpmath=sse
> -Os)
>
> -Os notably could result in smaller binaries which are loaded faster.

Sounds plausible to me. Can you provide the configure string being used
for xorg-server and for xserver-xorg-video-intel on Moblin?

Bryce

--
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
 
Old 03-15-2009, 08:38 AM
Loc Minier
 
Default X startup times: Jaunty vs. Moblin

On Sat, Mar 14, 2009, Bryce Harrington wrote:
> On Sat, Mar 14, 2009 at 06:24:34PM +0100, Lo?c Minier wrote:
> > Could the default compiler flags in Moblin explain the difference?
> > (they build everything with -march=core2 -mtune=generic -mfpmath=sse
> > -Os)
> >
> > -Os notably could result in smaller binaries which are loaded faster.
> Sounds plausible to me. Can you provide the configure string being used
> for xorg-server and for xserver-xorg-video-intel on Moblin?

Sure, here's how to do it yourself: I downloaded
http://repo.moblin.org/moblin/development/core/source/xorg-x11-server-1.6.0-1.2.moblin2.src.rpm
and extracted it (I have a trivial SRPM extraction script attached);
the %configure line from the .spec file:
%configure --enable-maintainer-mode -disable-xvfb --disable-xnest --disable-kdrive --disable-xephyr --disable-xsdl --disable-xfake --disable-xfbdev --disable-kdrive-vesa --enable-xorg --with-pic --with-default-font-path="catalogue:/etc/X11/fontpath.d,built-ins" --with-module-dir=%{_libdir}/xorg/modules --with-builderstring="Build ID: %{name} %{version}-%{release}" --with-xkb-output=%{_localstatedir}/lib/xkb --with-rgb-path=%{_datadir}/X11/rgb --disable-record --enable-install-libxf86config --disable-xselinux --disable-xinerama --enable-dri2 --enable-dri --with-dri-driver-path=%{_libdir}/dri ${CONFIGURE}

Note that the opt flags I mentionned are the default ones in Moblin 2's
toolchain and typically wont be set in all .spec files.

--
Loc Minier
#!/bin/sh
# srpm-extract - extract SRPM files into $source-$version/ in their dirs
# Copyright (C) 2009 Loc Minier <lool@dooz.org>
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# SOFTWARE IN THE PUBLIC INTEREST, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the author shall not be used
# in advertising or otherwise to promote the sale, use or other dealings in
# this Software without prior written authorization from the author.
#
# depends: rpm

set -e

usage() {
echo "Usage: $(basename "$0") <SRPM> [<SRPM>...]"
}

log() {
echo "$@" >&2
}

log_i() {
log "I:" "$@" >&2
}

log_e() {
log "E:" "$@" >&2
}

die() {
log_e "$@"
exit 1
}

if [ $# -eq 0 ]; then
usage >&2
exit 1
fi

for srpm; do
if ! [ -r "$srpm" ]; then
log_e "Can't read $srpm; skipping"
continue
fi

dir="$(dirname "$srpm")"
src_ver_rel="$(basename "$srpm" .src.rpm)"
source=$(echo "$src_ver_rel" | sed -rn 's#^(.+)-[^-]+-[^-]+$#1#p')
ver_rel=$(echo "$src_ver_rel" | sed -rn 's#^.+-([^-]+-[^-]+)$#1#p')

if [ "$source-$ver_rel.src.rpm" != "$(basename "$srpm")" ]; then
log_e "Internal error: unrecognized format of filename; skipping"
continue
fi

log_i "Processing $source $ver_rel"
output_dir="$dir/$source-$ver_rel"
mkdir -vp "$output_dir"
if [ -e "$output_dir/$source.spec" ]; then
log_i "Already extracted; skipping"
continue
fi
rpm2cpio "$srpm" | (cd "$output_dir"; cpio --extract --quiet)
done

--
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
 
Old 03-15-2009, 03:54 PM
Kees Cook
 
Default X startup times: Jaunty vs. Moblin

On Sun, Mar 15, 2009 at 10:38:37AM +0100, Loc Minier wrote:
> and extracted it (I have a trivial SRPM extraction script attached);

For extracting src.rpms, I just use "rpm -ivh" with %_topdir set to
/scratch/rpm in my ~/.rpmmacros.

--
Kees Cook
Ubuntu Security Team

--
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
 

Thread Tools




All times are GMT. The time now is 04:03 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org