Lennart Poettering [Tue, 1 Sep 2015 16:32:07 +0000 (18:32 +0200)]
cgroup: drop "ignore_self" argument from cg_is_empty()
In all cases where the function (or cg_is_empty_recursive()) ignoring
the calling process is actually wrong, as a process keeps a cgroup busy
regardless if its the current one or another. Hence, let's simplify
things and drop the "ignore_self" parameter.
Lennart Poettering [Tue, 1 Sep 2015 16:02:43 +0000 (18:02 +0200)]
cgroup: small cleanups and coding style fixes
A number of simplications and adjustments to brings things closer to our
coding style.
Lennart Poettering [Tue, 1 Sep 2015 15:54:17 +0000 (17:54 +0200)]
cgroup: don't allow hidden cgroups
We really should care for all cgroups, and not allow hidden ones.
Lennart Poettering [Tue, 1 Sep 2015 15:53:14 +0000 (17:53 +0200)]
cgroup: never migrate kernel threads out of the root cgroup
It won't work anyway.
Lennart Poettering [Tue, 1 Sep 2015 15:25:59 +0000 (17:25 +0200)]
units: enable waiting for unit termination in certain cases
The legacy cgroup hierarchy does not support reliable empty
notifications in containers and if there are left-over subgroups in a
cgroup. This makes it hard to correctly wait for them running empty, and
thus we previously disabled this logic entirely.
With this change we explicitly check for the container case, and whether
the unit is a "delegation" unit (i.e. one where programs may create
their own subgroups). If we are neither in a container, nor operating on
a delegation unit cgroup empty notifications become reliable and thus we
start waiting for the empty notifications again.
This doesn't really fix the general problem around cgroup notifications
but reduces the effect around it.
(This also reorders #include lines by their focus, as suggsted in
CODING_STYLE. We have to add "virt.h", so let's do that at the right
place.)
Also see #317.
Lennart Poettering [Tue, 1 Sep 2015 14:45:34 +0000 (16:45 +0200)]
unit: suppress unnecessary cgroup empty check
Rework the "service is good" check, to only check the cgroup state if we
really need to instead of always.
This allows us to suppress going to the cgroupfs for an empty check for
the majority of services.
No functional change.
Lennart Poettering [Tue, 1 Sep 2015 00:34:19 +0000 (02:34 +0200)]
manager: don't write first-boot flag file all the time
Instead, remember that we have already written it.
Lennart Poettering [Mon, 31 Aug 2015 22:40:20 +0000 (00:40 +0200)]
sd-login: improve error handling
let's return ENXIO whenever we don't know something rather than ENOENT.
ENOENT suggests this was really about a file or directory, while ENXIO
is a more generic "not found" indicator.
Lennart Poettering [Mon, 31 Aug 2015 17:43:54 +0000 (19:43 +0200)]
cgtop: properly show "/" instead of empty string in cgroup list
Lennart Poettering [Tue, 1 Sep 2015 15:13:53 +0000 (17:13 +0200)]
set: return NULL on destructors
Like we do it pretty much everywhere else.
Lennart Poettering [Tue, 1 Sep 2015 10:02:10 +0000 (12:02 +0200)]
Merge pull request #1066 from ssahani/tunnel
networkd: add support for tunnel encap limit
Lennart Poettering [Tue, 1 Sep 2015 09:34:26 +0000 (11:34 +0200)]
Merge pull request #1100 from martinpitt/master
logind: Listen to WMI hotkeys to catch SW_DOCK state/events
Martin Pitt [Tue, 1 Sep 2015 08:51:15 +0000 (10:51 +0200)]
logind: Listen to WMI hotkeys to catch SW_DOCK state/events
On Dell and HP laptops the dock state/events (SW_DOCK) come from the "{Dell,HP}
WMI hotkeys" input devices. Tag them as power-switch so that login actually
considers them. Use a general match in case this affects other vendors, too.
Thanks to Andreas Schultz for debugging this!
https://launchpad.net/bugs/1450009
Lennart Poettering [Tue, 1 Sep 2015 00:09:38 +0000 (02:09 +0200)]
Merge pull request #1096 from evverx/systemd-path-bash-completion
shell-completion: bash: add systemd-path completion
David Herrmann [Mon, 31 Aug 2015 21:41:34 +0000 (23:41 +0200)]
Merge pull request #1097 from teg/dhcp-server-2
dhcp-server: make pool configurable
Tom Gundersen [Fri, 28 Aug 2015 22:18:20 +0000 (00:18 +0200)]
networkd: dhcp-server - allow configuration of the pool
The constraints we place on the pool is that it is a contiguous
sequence of addresses in the same subnet as the server address, not
including the subnet nor broadcast addresses, but possibly including
the server address itself. If the server address is included in the
pool it is (obviously) reserved and not handed out to clients.
Tom Gundersen [Fri, 28 Aug 2015 18:37:03 +0000 (20:37 +0200)]
networkd: dhcp-server - default to manage the whole subnet
Don't restrict yourselves to 32 leases, simply manage the whole subnet by default.
Tom Gundersen [Fri, 28 Aug 2015 18:29:10 +0000 (20:29 +0200)]
sd-dhcp-server: simplify pool creation
Merge sd_dhcp_server_set_address() and sd_dhcp_server_set_lease_pool() into
sd_dhcp_server_configure_pool() as the behavior of the two former depends
on the order they are called in. The flexibility is not needed, so let's
just do this in one call.
Evgeny Vereshchagin [Mon, 31 Aug 2015 19:24:16 +0000 (19:24 +0000)]
shell-completion: bash: add systemd-path completion
David Herrmann [Mon, 31 Aug 2015 16:07:46 +0000 (18:07 +0200)]
login: support user-bus on dbus1
dbus-1.10 was just released, including systemd units to run
`dbus-daemon --session` as systemd user unit. This allows using a
user-bus with dbus1, just like we do per default with kdbus.
All the dbus libraries have already been fixed long ago to use the
user-bus as default. Hence, there's no need to set
DBUS_SESSION_BUS_ADDRESS= if we use the user-bus. However, gdm and
friends continue to spawn a session bus if this variable is not set
(instead of checking for the existence of the user-bus). Hence, we force
the user-bus, if it is available, in pam_systemd. Once gdm and friends
are fixed, we can continue to drop this again. However, that might take
a while.
With this in place, all that is needed to make the user-bus work is:
`systemctl --global enable dbus.socket`
If dbus.socket is not enabled, the legacy session-bus is still used.
Based on a patch by: Jan Alexander Steffens <jan.steffens@gmail.com>
Daniel Mack [Mon, 31 Aug 2015 11:58:29 +0000 (13:58 +0200)]
Merge pull request #1093 from poettering/unified-prepare
A variety of clean-ups
Lennart Poettering [Mon, 31 Aug 2015 11:29:46 +0000 (13:29 +0200)]
cgtop: rework error handling
Never report errors twice.
Lennart Poettering [Mon, 31 Aug 2015 11:07:24 +0000 (13:07 +0200)]
sd-event: improve debug message when we fail to remove and fd from an epoll
Let's help users to debug issues with epoll fd removal by printing the
name of the event source.
Lennart Poettering [Mon, 31 Aug 2015 11:03:16 +0000 (13:03 +0200)]
cgls: pretty print root cgroup path
Make sure show it as "/" rather than empty string.
Lennart Poettering [Sun, 30 Aug 2015 20:13:55 +0000 (22:13 +0200)]
manager: remove ask-password fd from sd_event before closing it
Otherwise we might attempt to remove a non-existing fd from epoll.
Lennart Poettering [Sun, 30 Aug 2015 14:38:52 +0000 (16:38 +0200)]
man: document relationship between keys and switches of cgtop
Lennart Poettering [Sun, 30 Aug 2015 14:15:08 +0000 (16:15 +0200)]
cgtop: allow toggling of --recursive= and -k at runtime
Lennart Poettering [Sun, 30 Aug 2015 13:11:35 +0000 (15:11 +0200)]
cgtop: recursively count cgroup member tasks
When showing the number of tasks in a cgroup, recursively count tasks in
child cgroups and include them in the number. This ensures that the
number of tasks is cummulative the same way as memory, cpu and IO
resources are.
Old behaviour can be restored by passing the new --recursive=no switch.
Lennart Poettering [Fri, 28 Aug 2015 17:31:07 +0000 (19:31 +0200)]
cgtop: ignore kernel threads when counting tasks
However, allow them to be counted in by specifying -k
Lennart Poettering [Fri, 28 Aug 2015 17:29:33 +0000 (19:29 +0200)]
cgls: print the expressive error message we have
Lennart Poettering [Fri, 28 Aug 2015 17:29:03 +0000 (19:29 +0200)]
process-util: trivial optimization
Lennart Poettering [Fri, 28 Aug 2015 17:17:47 +0000 (19:17 +0200)]
cgtop: show resource usage relative to cgroup root only
This way the output is restricted to cgroups from a container when run
in one.
Lennart Poettering [Fri, 28 Aug 2015 16:29:02 +0000 (18:29 +0200)]
unit: minor simplification
Lennart Poettering [Fri, 28 Aug 2015 16:22:14 +0000 (18:22 +0200)]
util: treat 'C' and 'POSIX' locale identical
Lennart Poettering [Fri, 28 Aug 2015 16:17:14 +0000 (18:17 +0200)]
pager: set $LESSCHARSET when we output UTF8 chars
This way we can be sure that less has the same idea of the terminal as
we do.
This solves issues in systems that have locale uninitalized, where
systemd would output UTF-8 but less wouldn't allow it and show them as
control characters.
Lennart Poettering [Fri, 28 Aug 2015 15:36:39 +0000 (17:36 +0200)]
unit: unify how we assing slices to units
This adds a new call unit_set_slice(), and simplifies
unit_add_default_slice(). THis should make our code a bit more robust
and simpler.
Lennart Poettering [Fri, 28 Aug 2015 15:14:59 +0000 (17:14 +0200)]
unit: add new macros to test for unit contexts
Lennart Poettering [Fri, 28 Aug 2015 15:11:37 +0000 (17:11 +0200)]
core: use DUAL_TIMESTAMP_NULL where we can
Lennart Poettering [Fri, 28 Aug 2015 14:05:32 +0000 (16:05 +0200)]
core: don't generate stub unit file for transient units
We store the properties for transient units in drop-ins anyway, and
units don't have to have fragment files, hence don't bother with them,
and don't create them.
Lennart Poettering [Fri, 28 Aug 2015 11:38:49 +0000 (13:38 +0200)]
build-sys: add missing Makefile symlink
Lennart Poettering [Sun, 30 Aug 2015 19:57:52 +0000 (21:57 +0200)]
update TODO
Daniel Mack [Mon, 31 Aug 2015 10:15:35 +0000 (12:15 +0200)]
Merge pull request #1091 from marmolak/master
socket: fix setsockopt call. SOL_SOCKET changed to SOL_TCP.
Robin Hack [Mon, 31 Aug 2015 09:45:09 +0000 (11:45 +0200)]
socket: fix setsockopt call. SOL_SOCKET changed to SOL_TCP.
Lennart Poettering [Mon, 31 Aug 2015 09:36:01 +0000 (11:36 +0200)]
Merge pull request #1083 from filbranden/configparse1
A few more tweaks to extract_first_word
Susant Sahani [Mon, 31 Aug 2015 07:52:15 +0000 (13:22 +0530)]
man: add man for tunnel encap limit
Susant Sahani [Mon, 31 Aug 2015 07:51:44 +0000 (13:21 +0530)]
networkd: add support for tunnel encap limit
The Tunnel Encapsulation Limit option specifies how many additional
levels of encapsulation are permitted to be prepended to the packet
Daniel Mack [Mon, 31 Aug 2015 06:47:49 +0000 (08:47 +0200)]
Merge pull request #1088 from filbranden/perltest2
test: udev - Signal that test was skipped when running as non-root
Daniel Mack [Mon, 31 Aug 2015 06:46:48 +0000 (08:46 +0200)]
Merge pull request #1084 from crrodriguez/master
misc bugfixes
Daniel Mack [Mon, 31 Aug 2015 06:44:02 +0000 (08:44 +0200)]
Merge pull request #1087 from whot/hwdb-updates
hwdb: Add trackpoint sensitivity setting for Thinkpad X230
Filipe Brandenburger [Mon, 31 Aug 2015 05:10:30 +0000 (22:10 -0700)]
test: udev - Signal that test was skipped when running as non-root
It is more accurate to report that the test was skipped rather than
succeeded if we did not get to run it because it requires root.
Tested by running `make check` and inspecting the log file:
$ cat test/udev-test.pl.log
Must have root permissions to run properly.
SKIP test/udev-test.pl (exit status: 77)
The `make check` output also reported:
SKIP: test/udev-test.pl
Peter Hutterer [Mon, 31 Aug 2015 04:53:07 +0000 (14:53 +1000)]
hwdb: move the Performance MX to 1000dpi
Original entry may have been skewed by an earlier setting on the device, we
have a confirmed 1000dpi for a new device.
https://github.com/systemd/systemd/issues/1049
Peter Hutterer [Mon, 31 Aug 2015 04:42:02 +0000 (14:42 +1000)]
hwdb: Add trackpoint sensitivity setting for Thinkpad X230
https://bugs.freedesktop.org/show_bug.cgi?id=91794
Filipe Brandenburger [Mon, 31 Aug 2015 02:40:44 +0000 (19:40 -0700)]
extract_first_word: Refactor EXTRACT_DONT_COALESCE_SEPARATORS handling
Refactor allocation of the result string to the top, since it is
currently done in both branches of the condition.
Remove unreachable code checking for EXTRACT_DONT_COALESCE_SEPARATORS
when state == SEPARATOR (the only place where SEPARATOR is assigned to
state follows a check for EXTRACT_DONT_COALESCE_SEPARATORS that jumps to
the end of the function.)
Tested by running test-util successfully.
Follow up to:
206644aedeb8859801051ac170ec562c6a113a79
Filipe Brandenburger [Mon, 31 Aug 2015 02:16:50 +0000 (19:16 -0700)]
extract_first_word: Refactor allocation in empty argument case
This covers the case where an argument is an empty string, such as ''.
Instead of allocating the empty string in the individual conditions when
state == VALUE, just always allocate it at the end of state == START, at
which point we know we will have an argument.
Tested that test-util keeps passing after the refactor.
Follow up to:
14e685c29d5b317b815e3e9f056648027852b07e
Cristian Rodríguez [Sun, 30 Aug 2015 21:19:34 +0000 (18:19 -0300)]
sd-bus: Fix incorrect cleanup attribute in bus_match_to_string()
Must be _cleanup_fclose_ not _cleanup_free_
Cristian Rodríguez [Mon, 17 Aug 2015 21:23:31 +0000 (18:23 -0300)]
core: add attribute printf to null_log()
Cristian Rodríguez [Mon, 17 Aug 2015 21:22:24 +0000 (18:22 -0300)]
locale: add printf attribute to log_xkb()
Lennart Poettering [Sun, 30 Aug 2015 11:19:17 +0000 (13:19 +0200)]
Merge pull request #1072 from piotrdrag/master
po: update Polish translation
Lennart Poettering [Sun, 30 Aug 2015 11:18:14 +0000 (13:18 +0200)]
Merge pull request #1073 from phomes/master
util: make malloc0 ask calloc for one block of size n
Lennart Poettering [Sun, 30 Aug 2015 11:16:53 +0000 (13:16 +0200)]
Merge pull request #1074 from phomes/networkd-initialize-var
networkd: initialize tz to null
Thomas Hindoe Paaboel Andersen [Sun, 30 Aug 2015 01:19:25 +0000 (03:19 +0200)]
networkd: initialize tz to null
We may not set it before checking it for null.
Thomas Hindoe Paaboel Andersen [Fri, 28 Aug 2015 19:16:39 +0000 (21:16 +0200)]
util: make malloc0 ask calloc for one block of size n
... instead of an array of n individual bytes.
Silences a lot of warnings in smatch.
Piotr Drąg [Sat, 29 Aug 2015 18:33:02 +0000 (20:33 +0200)]
po: update Polish translation
Lennart Poettering [Sat, 29 Aug 2015 17:43:48 +0000 (19:43 +0200)]
nspawn: don't try to extract quotes from option string, glibc doesn't do that either
Follow-up regarding #649.
Lennart Poettering [Sat, 29 Aug 2015 17:42:36 +0000 (19:42 +0200)]
Merge pull request #649 from eyakubovich/nspawn-rbind
nspawn: add --rbind and --rbind-ro options
Lennart Poettering [Sat, 29 Aug 2015 17:40:32 +0000 (19:40 +0200)]
Merge pull request #1069 from evverx/networkctl-bash-completion
shell-completion: bash: add networkctl completion
Eugene Yakubovich [Tue, 21 Jul 2015 22:48:38 +0000 (15:48 -0700)]
nspawn: add (no)rbind option to --bind and --bind-ro
--bind and --bind-ro perform the bind mount
non-recursively. It is sometimes (often?) desirable
to do a recursive mount. This patch adds an optional
set of bind mount options in the form of:
--bind=src-path:dst-path:options
options are comma separated and currently only
"rbind" and "norbind" are allowed.
Default value is "rbind".
David Herrmann [Fri, 28 Aug 2015 22:21:46 +0000 (00:21 +0200)]
Merge pull request #1058 from spasche/hwdb-logitech-mice
hwdb: add DPI data for a few Logitech mice
David Herrmann [Fri, 28 Aug 2015 22:20:25 +0000 (00:20 +0200)]
Merge pull request #1071 from phomes/master
hwdb: update the mouse db
Thomas Hindoe Paaboel Andersen [Fri, 28 Aug 2015 21:44:01 +0000 (23:44 +0200)]
hwdb: update entry for logitech RX 250
I tested a RX 250 and measured 1000 DPI. The spec for the mouse
agrees:
http://www.logitech.com/en-gb/product/rx250-optical-mouse-business
This is an optical mouse so it is extra sensitive to what kind of
surface it is tested on.
Thomas Hindoe Paaboel Andersen [Fri, 28 Aug 2015 21:42:39 +0000 (23:42 +0200)]
hwdb: add a few more mice
Evgeny Vereshchagin [Fri, 28 Aug 2015 18:00:38 +0000 (18:00 +0000)]
shell-completion: bash: add networkctl completion
Daniel Mack [Fri, 28 Aug 2015 16:46:04 +0000 (18:46 +0200)]
Merge pull request #1068 from evverx/networkctl-man
man: networkctl understands --no-legend too
Evgeny Vereshchagin [Fri, 28 Aug 2015 16:19:07 +0000 (16:19 +0000)]
man: networkctl understands --no-legend too
Lennart Poettering [Fri, 28 Aug 2015 10:17:37 +0000 (12:17 +0200)]
Merge pull request #1067 from teg/dhcp-server
sd-dhcp-server: improve predictability of leases
Tom Gundersen [Fri, 28 Aug 2015 10:01:46 +0000 (12:01 +0200)]
Merge pull request #1063 from poettering/dbus-interface-from-type
cgls/cgtop: a variety of modernizations
Tom Gundersen [Thu, 27 Aug 2015 06:54:41 +0000 (08:54 +0200)]
sd-dhcp-server: improve predictability of leases
Rather than having all clients attempt to get the same leases (starting at the
beginning of the pool), make each client star at a random offset into the pool
determined by their client id. This greatly increases the chances of a given
client receiving the same IP address even though both the client and server
have lost any lease information (and distinct server instances handing out
the same leases).
Daniel Mack [Fri, 28 Aug 2015 06:56:40 +0000 (08:56 +0200)]
Merge pull request #1062 from poettering/cgroups-show
cgroup-show: unescape cgroups on presentation
Daniel Mack [Fri, 28 Aug 2015 06:56:08 +0000 (08:56 +0200)]
Merge pull request #1061 from poettering/pager
A few auto-pager improvements
Daniel Mack [Fri, 28 Aug 2015 06:54:19 +0000 (08:54 +0200)]
Merge pull request #1060 from poettering/resolved-man-2
man: Document that resolved requires nss-resolve to work with libc
Lennart Poettering [Fri, 28 Aug 2015 00:47:22 +0000 (02:47 +0200)]
Merge pull request #1064 from evverx/systemctl-completion
shell-completion: add `failed` state to --state compwords
Evgeny Vereshchagin [Fri, 28 Aug 2015 00:31:19 +0000 (00:31 +0000)]
shell-completion: add `failed` state to --state compwords
Lennart Poettering [Fri, 28 Aug 2015 00:23:01 +0000 (02:23 +0200)]
cgls: modernize cgls in preparation for unified cgroup hierarchy work
Fix --machine= handling, don't hardcode long-obsolete container
cgroup paths
Many other clean-ups.
Lennart Poettering [Fri, 28 Aug 2015 00:04:33 +0000 (02:04 +0200)]
cgtop: major modernizations
In preparation of the unified cgroup support, let's clean up cgtop:
a) rework time code to be based on "nsec_t" rather than "struct timespec"
b) Introduce long option --order= for selecting ordering
c) count number of processes only in the main hierarchy, don't bother
with the controller hierarchies. We don't allow orthogonal
hierarchies in systemd anymore, hence there's no point to check the
other hierarchies.
d) Deal with non-monotonic cpuacct values (see #749)
e) When sorting groups, don't do prefix compare when ordering by number
of tasks, since this is not accumulative for all children.
f) Actually make --cpu without parameter work
g) Don't output control characters when we get them as input.
Fixes #749.
Lennart Poettering [Thu, 27 Aug 2015 20:30:43 +0000 (22:30 +0200)]
core: add unit_dbus_interface_from_type() to unit-name.h
Let's add a way to get the type-specific D-Bus interface of a unit from
either its type or name to src/basic/unit-name.[ch]. That way we can
share it with the client side, where it is useful in tools like cgls or
machinectl.
Also ports over machinectl to make use of this.
Lennart Poettering [Thu, 27 Aug 2015 22:12:38 +0000 (00:12 +0200)]
cgroup-show: unescape cgroups on presentation
Let's unescape cgroups on presentation, so that we show literal unit
names.
Lennart Poettering [Thu, 27 Aug 2015 22:13:34 +0000 (00:13 +0200)]
pager: also redirect stderr
It's really confusing if stdout goes to the pager, but stderr is written
directly to the screen. Hence, make sure both stdout and stderr are
passed to the pager when doing autopaging.
Lennart Poettering [Thu, 27 Aug 2015 22:11:49 +0000 (00:11 +0200)]
pager: port fallback pager to use copy_bytes()
Lennart Poettering [Thu, 27 Aug 2015 22:10:35 +0000 (00:10 +0200)]
copy: add splice() based fallback
Apparently, sendfile() does not work between fifos and ttys, but
splice() does, hence let's optionally fall back to that. This is useful
to implement the fallback pager this way.
Lennart Poettering [Fri, 28 Aug 2015 00:03:11 +0000 (02:03 +0200)]
man: Document that resolved requires nss-resolve to work with libc
Closes #884.
Lennart Poettering [Thu, 27 Aug 2015 23:38:51 +0000 (01:38 +0200)]
Merge pull request #1059 from evverx/systemd-run-bash-completion
shell-completion: update systemd-run bash completion
Evgeny Vereshchagin [Thu, 27 Aug 2015 23:24:15 +0000 (23:24 +0000)]
shell-completion: update systemd-run bash completion
Many new options have been added since the bash completion was last
updated.
Tom Gundersen [Thu, 27 Aug 2015 19:39:44 +0000 (21:39 +0200)]
Merge pull request #1057 from poettering/resolve-drop-res-query
sd-resolve: drop res_query() API
Tom Gundersen [Thu, 27 Aug 2015 19:38:36 +0000 (21:38 +0200)]
Merge pull request #1055 from poettering/dhcp-updates
Various networkd and dhcp updates
Sylvain Pasche [Thu, 27 Aug 2015 19:17:15 +0000 (21:17 +0200)]
hwdb: add DPI data for a few Logitech mice
Lennart Poettering [Thu, 27 Aug 2015 19:05:13 +0000 (21:05 +0200)]
update TODO
Lennart Poettering [Thu, 27 Aug 2015 18:47:13 +0000 (20:47 +0200)]
sd-resolve: drop res_query() API
Querying low-level DNS RRs should be done via resolved now, not via
glibc's awful res_query() API anymore. Let's not introduce an async
wrapper for it hence.
Lennart Poettering [Thu, 27 Aug 2015 18:23:17 +0000 (20:23 +0200)]
networkd: s/now/know
Lennart Poettering [Thu, 27 Aug 2015 17:57:11 +0000 (19:57 +0200)]
dhcp: say domain name, when we mean domain name
Lennart Poettering [Thu, 27 Aug 2015 17:56:52 +0000 (19:56 +0200)]
network: get rid of more RefCnt usage
A follow-up to
3733eec3e292e4ddb4cba5eb8d3bd8cbee7102d8