summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* shared: add helpers for unaligend BE read/writeTom Gundersen2014-11-01
|
* hwdb: Update database of Bluetooth company identifiersMarcel Holtmann2014-10-31
|
* ptyforward: rework PTY forwarder logic used by nspawn to utilize the normal ↵Lennart Poettering2014-10-31
| | | | | | | event loop We really should not run manual event loops anymore, but standardize on sd_event, so that we can run sd_bus connections from it eventually.
* Make bus errno mappings non-staticZbigniew Jędrzejewski-Szmek2014-10-31
| | | | | | | | | | | | | | | __attribute__((used)) is not enough to force static variables to be carried over to a compiled program from a library. Mappings defined in libsystemd-shared.a were not visible in the compiled binaries. To ensure that the mappings are present in the final binary, the tables are made non-static and are given a real unique name by which they can be referenced. To use a mapping defined not in the local compilation unit (e.g. in a library) a reference to the mapping table is added. This is done by including a declaration in the header file. Expected values in test-engine are fixed to reflect the new mappings.
* bus: do not segfault on zeros in errno mapping tableZbigniew Jędrzejewski-Szmek2014-10-31
| | | | | | | | Depending on the link order, holes might appear in the body of the sd_bus_errnomap section. Ignore them. Adds a simple test to print the table to help with debugging such issues in the future.
* units: don't order journal flushing afte remote-fs.targetLennart Poettering2014-10-31
| | | | | | | Instead, only depend on the actual file systems we need. This should solve dep loops on setups where remote-fs.target is moved into late boot.
* nspawn: don't make up -1 as error codeLennart Poettering2014-10-31
|
* shared/install: avoid prematurely rejecting "missing" unitsDave Reisner2014-10-31
| | | | | | | | | | f7101b7368df copied some logic to prevent enabling masked units, but also added a check which causes attempts to enable templated units to fail. Since we know the logic beyond this check will properly handle units which truly do not exist, we can rely on the unit file state comparison to suffice for expressing the intent of f7101b7368df. ref: https://bugs.archlinux.org/task/42616
* sd-bus: add missing includeTom Gundersen2014-10-31
|
* tests: add test-copyRonny Chevalier2014-10-31
|
* tests: add tests for path_startswithRonny Chevalier2014-10-31
|
* shared: fix typoRonny Chevalier2014-10-31
|
* tests: add missing entry for LocalVariable to test-tablesRonny Chevalier2014-10-31
|
* tests: add test-locale-utilRonny Chevalier2014-10-31
|
* shared: add missing includesRonny Chevalier2014-10-31
|
* tests: add tests for strv.cRonny Chevalier2014-10-31
| | | | | | | add tests for: - strv_find_startswith - strv_push_prepend - strv_consume_prepend
* remove references of readaheadRonny Chevalier2014-10-31
|
* tests: add tests for fileio.cRonny Chevalier2014-10-31
| | | | | | add tests for the following functions: - write_string_file_no_create - load_env_file_pairs
* sd-dhcp-client: clean up raw socket sd_event_source when creating new UDP socketDan Williams2014-10-31
| | | | | | | The raw socket sd_event_source used for DHCP server solicitations was simply dropped on the floor when creating the new UDP socket after a lease has been acquired. Clean it up properly so we're not still listening and responding to events on it.
* snapshot: return error when snapshot existsZbigniew Jędrzejewski-Szmek2014-10-30
|
* Convert the rest to sd_bus_errnomapZbigniew Jędrzejewski-Szmek2014-10-30
| | | | | | I tried to preserve most errno values, but in some cases they were inconsistent (different errno values for the same error name) or just mismatched.
* bus: add sd_bus_errnomap sectionZbigniew Jędrzejewski-Szmek2014-10-30
| | | | | This allows custom "name" ↔ errno mappings to be registered. Tables from all compilation units are concatenated.
* test: test a corner case in hashmap_remove_and_replace()Michal Schmidt2014-10-30
|
* configure.ac: add --enable-hashmap-debug optionMichal Schmidt2014-10-30
| | | | | | | The option simply enables hashmap debugging by defining ENABLE_HASHMAP_DEBUG. I suggest developing new code with it enabled, to have the iterator checks.
* tools: add gdb command to dump hashmap informationMichal Schmidt2014-10-30
| | | | | | | | | | | $ sudo gdb -p 1 ... (gdb) source gdb-sd_dump_hashmaps.py (gdb) sd_dump_hashmaps ... lists allocated hashmaps ... (gdb) sd_dump_hashmaps 1 ... lists allocated hashmaps, their DIB histograms and contiguous blocks statistics ...
* hashmap: rewrite the implementationMichal Schmidt2014-10-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a rewrite of the hashmap implementation. Its advantage is lower memory usage. It uses open addressing (entries are stored in an array, as opposed to linked lists). Hash collisions are resolved with linear probing and Robin Hood displacement policy. See the references in hashmap.c. Some fun empirical findings about hashmap usage in systemd on my laptop: - 98 % of allocated hashmaps are Sets. - Sets contain 78 % of all entries, plain Hashmaps 17 %, and OrderedHashmaps 5 %. - 60 % of allocated hashmaps contain only 1 entry. - 90 % of allocated hashmaps contain 5 or fewer entries. - 75 % of all entries are in hashmaps that use trivial_hash_ops. Clearly it makes sense to: - store entries in distinct entry types. Especially for Sets - their entries are the most numerous and they require the least information to store an entry. - have a way to store small numbers of entries directly in the hashmap structs, and only allocate the usual entry arrays when the direct storage is full. The implementation has an optional debugging feature (enabled by defining the ENABLE_HASHMAP_DEBUG macro), where it: - tracks all allocated hashmaps in a linked list so that one can easily find them in gdb, - tracks which function/line allocated a given hashmap, and - checks for invalid mixing of hashmap iteration and modification. Since entries are not allocated one-by-one anymore, mempools are not used for entries. Originally I meant to drop mempools entirely, but it's still worth it to use them for the hashmap structs. My testing indicates that it makes loading of units about 5 % faster (a test with 10000 units where more than 200000 hashmaps are allocated - pure malloc: 449±4 ms, mempools: 427±7 ms). Here are some memory usage numbers, taken on my laptop with a more or less normal Fedora setup after booting with SELinux disabled (SELinux increases systemd's memory usage significantly): systemd (PID 1) Original New Change dirty memory (from pmap -x 1) [KiB] 2152 1264 -41 % total heap allocations (from gdb-heap) [KiB] 1623 756 -53 %
* test: adjust max load factor in test_hashmap_many()Michal Schmidt2014-10-30
| | | | A reimplementation of hashmaps will follow and it will use 0.8.
* mempool: add a zeroing alloc functionMichal Schmidt2014-10-30
| | | | | Add mempool_alloc0_tile(). It's like mempool_alloc_tile(), but it initializes the allocated tile's memory to zero.
* util: add log2u(), log2u_round_up()Michal Schmidt2014-10-30
| | | | Two's logarithms for unsigned.
* memfd: rename memfd.h to memfd-util.h to avoid any confusion with any libc ↵Lennart Poettering2014-10-30
| | | | provided headers
* memfd: always use our internal utility functions where we have themLennart Poettering2014-10-30
|
* memfd: drop memfd_get_name() as it is unusedLennart Poettering2014-10-30
|
* update TODOLennart Poettering2014-10-30
|
* journal: when sending huge log messages prefer memfds over temporary files ↵Lennart Poettering2014-10-30
| | | | | | | | | | | | | in /dev/shm Previously when a log message grew beyond the maximum AF_UNIX/SOCK_DGRAM datagram limit we'd send an fd to a deleted file in /dev/shm instead. Because the sender could still modify the file after delivery we had to immediately copy the data on the receiving side. With memfds we can optimize this logic, and also remove the dependency on /dev/shm: simply send a sealed memfd around, and if we detect the seal memory map the fd and use it directly.
* CODING_STYLE: clarify that we really should use O_CLOEXEC everywhereLennart Poettering2014-10-30
|
* memfd: always create our memfds with CLOEXEC setLennart Poettering2014-10-30
| | | | We really shouldn't create fds ever that have the flag unset.
* util: unify how we see srand()Lennart Poettering2014-10-30
|
* util: don't block on getrandom()Lennart Poettering2014-10-30
|
* sysusers: Preserve ownership and mode on /etc/passwd and friendsColin Guthrie2014-10-30
| | | | | | | | When running sysusers we would clobber file ownership and permissions on the files /etc/passwd, /etc/group and /etc/[g]shadow. This simply preserves the ownership and mode if existing files are found.
* keymap: Ignore brightness keys on Dell Inspiron 1520 to avoid double eventsHans de Goede2014-10-30
| | | | | | | | | | | | | | | On the Dell Inspiron 1520 both the atkbd and acpi-video input devices report an event for pressing the brightness up / down key-combos, resulting in user space seeing double events and increasing / decreasing the brightness 2 steps for each keypress. This hwdb snippet suppresses the atkbd events, making the Inspiron 1520 work like most modern laptops which emit brightness up / down events through acpi-video only. Reported by Pavel Malyshev <p.malishev@gmail.com> https://bugzilla.redhat.com/show_bug.cgi?id=1141525
* zsh-completion: update start/restart completionsZbigniew Jędrzejewski-Szmek2014-10-29
| | | | Now zsh should behave the same for those two subcommands as bash.
* bash-completion: use improved filtering to make things fasterZbigniew Jędrzejewski-Szmek2014-10-29
|
* systemctl: obey --state in list-unit-filesZbigniew Jędrzejewski-Szmek2014-10-29
|
* systemctl: let list-{units,unit-files } honour --typeZbigniew Jędrzejewski-Szmek2014-10-29
| | | | | | | | The docs don't clarify what is expected, but I don't see any reason why --type should be ignored. Also restucture the compund conditions into separate clauses for easier reading.
* bash-completion: rework startable/restartable units once moreZbigniew Jędrzejewski-Szmek2014-10-29
| | | | | | | | I tried to use 'systemctl --all list-units' to filter unit files, but this always filters out unit files which are not loaded. We want to complete systemctl start with those units too, so this approach is not going to work. New version is rather slow, but hopefully correct.
* missing.h: fix wrong __NR_getrandom syscall defDave Reisner2014-10-29
| | | | | | 278 is vmsplice on x86_64. 318 is what we want: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/x86/syscalls/syscall_64.tbl
* udev: path_id - update commentsKay Sievers2014-10-30
|
* busctl: add new "capture" verb to record bus messages in libpcap compatible ↵Lennart Poettering2014-10-30
| | | | files, for dissection with wireshark
* nspawn: ignore EEXIST when creating mount pointDave Reisner2014-10-29
| | | | | | | | | | | A combination of commits f3c80515c and 79d80fc14 cause nspawn to silently fail with a commandline such as: # systemd-nspawn -D /build/extra-x86_64 --bind=/usr strace shows the culprit: [pid 27868] writev(2, [{"Failed to create mount point /build/extra-x86_64/usr: File exists", 82}, {"\n", 1}], 2) = 83
* sd-bus: properly handle removals of non-existing matchesLennart Poettering2014-10-29
|