Ninjatrappeur's systemd working tree
Go to file
Lennart Poettering d8fdc62037 core: use an AF_UNIX/SOCK_DGRAM socket for cgroup agent notification
dbus-daemon currently uses a backlog of 30 on its D-bus system bus socket. On
overloaded systems this means that only 30 connections may be queued without
dbus-daemon processing them before further connection attempts fail. Our
cgroups-agent binary so far used D-Bus for its messaging, and hitting this
limit hence may result in us losing cgroup empty messages.

This patch adds a seperate cgroup agent socket of type AF_UNIX/SOCK_DGRAM.
Since sockets of these types need no connection set up, no listen() backlog
applies. Our cgroup-agent binary will hence simply block as long as it can't
enqueue its datagram message, so that we won't lose cgroup empty messages as
likely anymore.

This also rearranges the ordering of the processing of SIGCHLD signals, service
notification messages (sd_notify()...) and the two types of cgroup
notifications (inotify for the unified hierarchy support, and agent for the
classic hierarchy support). We now always process events for these in the
following order:

  1. service notification messages  (SD_EVENT_PRIORITY_NORMAL-7)
  2. SIGCHLD signals (SD_EVENT_PRIORITY_NORMAL-6)
  3. cgroup inotify and cgroup agent (SD_EVENT_PRIORITY_NORMAL-5)

This is because when receiving SIGCHLD we invalidate PID information, which we
need to process the service notification messages which are bound to PIDs.
Hence the order between the first two items. And we want to process SIGCHLD
metadata to detect whether a service is gone, before using cgroup
notifications, to decide when a service is gone, since the former carries more
useful metadata.

Related to this:
https://bugs.freedesktop.org/show_bug.cgi?id=95264
https://github.com/systemd/systemd/issues/1961
2016-05-05 12:37:04 +02:00
.github .github/ISSUE_TEMPLATE: Use a list for submission type so that it appears as a checkbox 2016-02-26 09:54:30 +11:00
catalog catalog: rename RateLimitInterval= to RateLimitIntervalSec= 2016-05-01 17:30:06 +00:00
coccinelle tree-wide: remove useless NULLs from strjoina 2016-04-13 08:56:44 -04:00
docs docs: add .gitignore 2015-07-06 17:47:38 +02:00
factory/etc factory: remove broken pam_limits 2014-07-30 15:21:54 +02:00
hwdb hwdb: add missing newline so the hwdb buils correctly again 2016-04-29 16:27:49 +02:00
m4 build-sys: Perform flag tests in context to existing flags 2016-02-06 14:57:46 +01:00
man Merge pull request #3156 from keszybz/duid-settings 2016-05-04 11:31:59 +02:00
network network: turn on LLDP tx+rx for the default container network configuration 2016-02-21 20:58:59 +01:00
po Add croatian translation, hr.po and systemd.hr.catalog files 2016-04-27 17:13:29 +02:00
rules rules: add NVMe rules (#3136) 2016-04-29 13:02:57 +02:00
shell-completion zsh-completion: remove non-portable uses of \s in awk (#3063) 2016-04-19 00:23:01 -04:00
src core: use an AF_UNIX/SOCK_DGRAM socket for cgroup agent notification 2016-05-05 12:37:04 +02:00
sysctl.d coredump: honour RLIMIT_CORE when saving/processing coredumps 2016-02-10 16:08:32 +01:00
system-preset preset: enable machines.target by default 2014-12-29 17:36:57 +01:00
sysusers.d remove bus-proxyd 2016-02-12 19:10:01 +01:00
test tests: add test for #3166 (#3180) 2016-05-03 11:43:22 +02:00
tmpfiles.d tmpfiles: don't set the x bit for volatile system journal when ACL support is enabled (#3079) 2016-05-03 19:29:11 -04:00
tools Remove systemd-bootchart 2016-02-23 13:30:09 +01:00
units Stop syslog.socket when entering emergency mode (#3130) 2016-04-27 10:34:24 +02:00
xorg login: support user-bus on dbus1 2015-08-31 18:12:37 +02:00
.dir-locals.el editors: only extend line width to 119 for C and XML files 2016-02-10 12:29:32 +01:00
.editorconfig editors: only extend line width to 119 for C and XML files 2016-02-10 12:29:32 +01:00
.gitattributes git: indicate that tabs are never OK in the systemd tree 2013-10-30 02:25:38 +01:00
.gitignore test-networkd-conf: add tests for the parsing functions 2016-05-03 12:26:42 -04:00
.mailmap NEWS: add more stuff, and reorder things a bit 2015-11-13 13:59:50 +01:00
.travis.yml remove gudev and gtk-doc 2015-06-03 00:22:53 +02:00
.vimrc vimrc: fix indentation logic for our docbook xml files 2016-04-29 12:23:34 +02:00
.ycm_extra_conf.py ycm: update flag blacklist 2014-06-04 15:41:10 -04:00
autogen.sh build-sys: drop libsystemd-{id128,daemon,login,journal}.so compat libs 2016-02-13 11:57:14 +01:00
CODING_STYLE minor CODING_STYLE clarification 2016-05-02 11:17:07 +02:00
configure.ac build-sys: allow references to adm group to be omitted (#3150) 2016-05-01 00:02:17 -04:00
DISTRO_PORTING build-sys: warn if people don't change the default NTP servers when building systemd 2015-07-11 14:24:29 -03:00
LICENSE.GPL2 relicense to LGPLv2.1 (with exceptions) 2012-04-12 00:24:39 +02:00
LICENSE.LGPL2.1 licence: remove references to old FSF address 2012-12-17 11:41:31 +01:00
Makefile-man.am man: document the new by-fd journal calls 2016-04-25 19:29:01 +02:00
Makefile.am Merge pull request #3156 from keszybz/duid-settings 2016-05-04 11:31:59 +02:00
NEWS tree-wide: use mdash instead of a two minuses 2016-04-21 23:00:13 -04:00
README README: document that we only support util-linux built with --enable-libmount-force-mountinfo 2016-04-12 13:43:33 +02:00
README.md github: CONTRIBUTING.md moved, let's fix the link to it 2016-02-22 23:23:06 +01:00
TODO Merge pull request #3173 from poettering/dnssec-incapdns-fix 2016-05-03 14:50:43 -04:00

systemd - System and Service Manager

Build Status
Coverity Scan Status

Details

General information about systemd can be found in the systemd Wiki.

Information about build requirements are provided in the README file.

Consult our NEWS file for information about what's new in the most recent systemd versions.

Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.

When preparing patches for systemd, please follow our Coding Style Guidelines.

If you are looking for support, please contact our mailing list or join our IRC channel.