Age | Commit message (Collapse) | Author |
|
|
|
Hi,
I redid the boot ID look up to use enumerate_unique.
This is quite fast if the cache is warm but painfully slow if
it isn't. It has a slight chance of returning the wrong order if
realtime clock jumps around.
This one has to do n searches for every boot ID there is plus
a sort, so it depends heavily on cache hotness. This is in contrast
to the other way of look-up through filtering by a MESSAGE_ID,
which only needs about 1 seek + whatever amount of relative IDs
you want to walk.
I also have a linked-list + (in-place) mergesort version of this
patch, which has pretty much the same runtime. But since this one
is using libc sorting and armortized allocation, I prefer this
one.
To summarize: The MESSAGE_ID way is a *lot* faster but can be
incomplete due to rotation, while the enumerate+sort will find
every boot ID out there but will be painfully slow for large
journals and cold caches.
You choose :P
Jan
|
|
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=65850
|
|
--user basically gives messages from your own systemd --user services.
--system basically gives messages from PID 1, kernel, and --system
services. Those two options are not exahustive, because a priviledged
user might be able to see messages from other users, and they will not
be shown with either or both of those flags.
|
|
systemctl set-default NAME links the default.target to the given unit,
get-default prints out the path to the currently set default target.
|
|
"critical-chain" prints a tree of the critical chain of units
$ ./systemd-analyze critical-chain
graphical.target @1.226s
└─multi-user.target @1.226s
└─nfs-lock.service @961ms +265ms
└─rpcbind.service @958ms +1ms
└─network.target @957ms
└─NetworkManager.service @434ms +522ms
└─basic.target @428ms
└─sockets.target @428ms
└─dbus.socket @428ms
└─sysinit.target @427ms
└─systemd-tmpfiles-setup.service @411ms +15ms
└─local-fs.target @410ms
└─boot-efi.automount @410ms
└─boot.mount @397ms +9ms
└─local-fs-pre.target @192ms
└─systemd-udevd.service @187ms +5ms
└─systemd-udevd-control.socket @140ms
└─-.mount
With the "--fuzz=<ms>" parameter one can display more units around
the critical units.
$ ./systemd-analyze --fuzz=10ms critical-chain
└─multi-user.target @1.226s
└─nfs-lock.service @961ms +265ms
├─rpcbind.service @958ms +1ms
│ └─network.target @957ms
│ └─NetworkManager.service @434ms +522ms
│ ├─basic.target @428ms
│ │ ├─sockets.target @428ms
│ │ │ ├─dbus.socket @428ms
│ │ │ │ └─sysinit.target @427ms
│ │ │ │ ├─systemd-tmpfiles-setup.service @411ms +15ms
│ │ │ │ │ └─local-fs.target @410ms
│ │ │ │ │ └─boot-efi.automount @410ms
│ │ │ │ │ └─boot.mount @397ms +9ms
│ │ │ │ │ └─local-fs-pre.target @192ms
│ │ │ │ │ └─systemd-udevd.service @187ms +5ms
│ │ │ │ │ ├─systemd-udevd-control.socket @140ms
│ │ │ │ │ │ └─-.mount
│ │ │ │ │ └─systemd-udevd-kernel.socket @140ms
│ │ │ │ └─swap.target @421ms
│ │ │ │ └─dev-disk-by\x2duuid-....swap @414ms +6ms
│ │ │ │ └─systemd-journald.socket
│ │ │ ├─rpcbind.socket @428ms
│ │ │ └─cups.socket @428ms
│ │ ├─paths.target @428ms
│ │ │ └─cups.path @428ms
│ │ ├─timers.target @427ms
│ │ │ └─systemd-tmpfiles-clean.timer @427ms
│ │ └─sysinit.target @427ms
│ │ └─...
│ └─dbus.socket @428ms
│ └─...
└─network.target @957ms
└─...
|
|
|
|
Also update completion scripts a bit.
|
|
|
|
|
|
Just bash.
|
|
This mirrors --property, and is generally useful.
New functionality is used in bash completion.
In case of zsh completion, new functionality is less useful
because of caching. Nevertheless, zsh completion for restart
is made to behave more-or-less the same as bash completion.
At least sockets can be restarted.
|
|
Also show disabled units as candidates for reenable,
since it works and one may want to do enable-or-reenable
in one line.
|
|
It is faster to use a bash built-in, then to invoke an external
program. The problem of unit names starting with a dash is solved
by prepending a space. Spaces are ignored anyway.
For zsh, replace echo "$unit", which is vulnerable to dashes,
with echo " $unit".
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=61695
|
|
|
|
Distros that whish to support old kernels should set
--with-firmware-dirs="/usr/lib/firmware/updates:/usr/lib/firmware"
to retain the old behaviour.
|
|
Split the large bash completion script into separate, smaller files each
named after the binary it is used for and move the files to
/usr/share/bash-completion/completions. This way the completions can be
loaded on demand and we only install the completions for the tools we
actually build. The old path /etc/bash_completion.d/ is deprecated and
will disappear in the future.
|