Commit Graph
65388 Commits
Author SHA1 Message Date
Yu WatanabeandFranck Bui 331aa7aa15 udev-node: optimize device node symlink creation
If multiple devices requested the same device node symlink with the same
priority, then previously we read O(N^2) of files saved in
/run/udev/links.

This makes if the requested symlink already exists with equal or higher
priority, then the symlink is kept, and skip to read all existing files,
except for one related to the current device node, in /run/udev/links.
Hence, the total amount of file read becomes O(N).

This improves performance of testcase_simultaneous_events_2 added by the
previous commit about 30%.
Before (32.8 sec):
```
 ## 3 iterations start: 11:13:44.690953163
 ## 3 iterations end: 11:14:17.493974927
```
After (23.8 sec):
```
 ## 3 iterations start: 11:17:53.869938387
 ## 3 iterations end: 11:18:17.624268345
```

This is based on the idea and analysis by Franck Bui.

Replaces #25839.

Co-authored-by: Franck Bui <fbui@suse.com>
2023-06-13 22:51:00 +02:00
Daniele Medri 0b75d6579b it.po: minor updates 2023-06-13 21:18:16 +01:00
Lennart Poettering c27e8cd272 Merge pull request #28020 from DaanDeMeyer/followups
Followups
2023-06-13 22:14:33 +02:00
Luca Boccassi 59936b66d1 Merge pull request #27952 from mrc0mmand/drop-TEST-61
test: merge TEST-61-UNITTESTS-QEMU with TEST-02-UNITTESTS
2023-06-13 21:13:14 +01:00
Daan De Meyer 22afd5cb2c Merge pull request #27977 from DaanDeMeyer/update-mkosi
Update mkosi
2023-06-13 16:56:54 +02:00
Anatoli Babenia 5c193a7c3c man: document "s" is default --vacuum-time= suffix 2023-06-13 16:14:30 +02:00
Daan De Meyer a6ae99363d rm-rf: Fix assertion
This doesn't cover every case but cases where people try to do
rm_rf(dir_fd, ".") are covered by unlinkat() simply failing.
2023-06-13 16:13:49 +02:00
Daan De Meyer 549a9a671a fd-util: Add extra shortcut to path_is_root_at() 2023-06-13 16:13:43 +02:00
Daan De Meyer e089efd7a7 btrfs-util: Drop redundant parentheses 2023-06-13 16:13:22 +02:00
Daan De Meyer fd9b68d925 repart: Store dm_name in DecryptedPartitionTarget
This means we don't have to do a fallible allocation in the
DecryptedPartitionTarget destructor. Also use log_warning_error_errno()
for the failure we ignore in the destructor.
2023-06-13 16:13:19 +02:00
Daan De Meyer 6aca147f82 mkosi: Remove explicit /testok check
vsock should work properly after the latest release of mkosi. But
to make sure it works, let's exit with 123 in case of success and
check for that in Github Actions.
2023-06-13 16:04:10 +02:00
Daan De Meyer abeecde242 mkosi: Update to latest
We update our configuration to replace the removed
RepositoryDirectories= option with the new PackageManagerTrees=
option.
2023-06-13 16:04:08 +02:00
Daan De Meyer 33d960cbed mkosi: Make sure we build custom kernels with EROFS support 2023-06-13 15:42:17 +02:00
Daan De Meyer 63e5ee4096 mkosi: Add bpftool to final image
Useful for debugging bpf.
2023-06-13 15:42:17 +02:00
Daan De Meyer 569bbc1f43 mkosi: Add socat to the final image
Useful for debugging vsock stuff
2023-06-13 15:42:17 +02:00
Daan De Meyer 17f5942f8a Merge pull request #28010 from DaanDeMeyer/vsock-type
Vsock improvements
2023-06-13 15:41:58 +02:00
David Tardon 1b6e11f58d udevadm-control: fix error message
Extracted from #25523 by Lennart.
2023-06-13 15:31:29 +02:00
Daan De Meyer 7f78d3431b sd-daemon: Add vsock fallback to SOCK_STREAM
SOCK_SEQPACKET is only supported on recent kernels. Let's add a
fallback to SOCK_STREAM if it is not supported.

To accomodate SOCK_STREAM, we also modify
pid_notify_with_fds_internal() to do sendmsg() in a loop as with
SOCK_STREAM, sendmsg() is not guaranteed to write all data in a single
syscall or fail otherwise.
2023-06-13 14:24:44 +02:00
Daan De Meyer 56d02f2969 sd-daemon: Use socket type from vsock address if set
If a socket type is explicitly provided in the vsock address, let's
make sure we try only that socket type.
2023-06-13 14:24:44 +02:00
Daan De Meyer c31984e3d0 socket-util: Allow specifying socket type in vsock address 2023-06-13 14:24:44 +02:00
Lennart Poettering 768fcd779f socket: bump listen() backlog to INT_MAX everywhere
This is a rework of #24764 by Cristian Rodríguez
<crodriguez@owncloud.com>, which stalled.

Instead of assigning -1 we'll use a macro defined to INT_MAX however.
2023-06-13 14:17:25 +02:00
Lennart Poettering 39b5f49f28 Merge pull request #28014 from bluca/portable_fixes
portabled fixes
2023-06-13 13:19:02 +02:00
Lennart Poettering 05d53d529a Merge pull request #28017 from poettering/link-tmpfile-flags
teach link_tmpfile_at() to properly sync
2023-06-13 13:18:42 +02:00
Luca Boccassi 7d812d7ca1 portable: make sure to fsync after extracting/copying
Just in case we are on a flimsy filesystem/disk
2023-06-13 10:12:00 +01:00
Frantisek Sumsal fb310ba9eb test: re-enable TEST-02 on ppc64le 2023-06-13 10:15:27 +02:00
Frantisek Sumsal f087837c46 test: make sure ping works for unprivileged users 2023-06-13 10:15:27 +02:00
Frantisek Sumsal a6695a431f test: copy file xattrs (if any) as well 2023-06-13 10:15:27 +02:00
Frantisek Sumsal bdee55672a test: merge TEST-61-UNITTESTS-QEMU with TEST-02-UNITTESTS
The test was originally introduced for Ubuntu CI, as it uses
PREFER_NSPAWN=1, but it was subsequently disabled two years ago [0], so
it was pretty much useless. Let's merge it into TEST-02 and tweak it a
bit to run only certain tests under QEMU when $TEST_PREFER_NSPAWN is
set.

[0] b152adbfa9
2023-06-13 10:15:27 +02:00
Frantisek Sumsal d5a937a62a proc-cmdline: parse the whole /proc/cmdline
The kernel command line may contain newlines which kernel happily
accepts, but we'd ignore everything past the first newline. Let's fix
that by replacing read_one_line_file() with read_full_file().
2023-06-13 09:54:02 +02:00
Lennart Poettering 8dfd099b50 tree-wide: start properly syncing at various places we so far didn't
Let's better be safe than sorry, and install files fully safely now that
is is easy.
2023-06-13 09:50:10 +02:00
Lennart Poettering 74402bf01a coredump: port over code to new LINK_TMPFILE_SYNC flag 2023-06-13 09:49:35 +02:00
Lennart Poettering ce67bf366f tmpfile-util: add new LINK_TMPFILE_SYNC flag for syncing properly before/after linking in the file
This syncs the data before linking it in, and both data + dir once done.
This should give us proper semantics for installing files safely into
the fs.
2023-06-13 09:45:39 +02:00
Lennart Poettering 27e18c23bc tmpfile-util: turn last parameter of link_tmpfile() into a proper flags
This changes a boolean param into a proper bitflag field.

Given this only defines a single flag for now this doesn't look like
much of an improvement. But we'll add another flag shortly, where it
starts to make more sense.
2023-06-13 09:40:53 +02:00
Luca Boccassi 5a41a142ba portable: do not extract empty unit files
Bare minimum sanity check, an empty unit is an invalid unit so
skip it early.
2023-06-13 00:33:21 +01:00
Lennart Poettering 0f85a0d38f update TODO 2023-06-12 23:00:47 +02:00
Lennart Poettering 6050e8b550 resolvectl: add resolvectl command for dumping cache contents
A wrapper around the new varlink call, showing the data either in its
native JSON or in a more human readable textual form.
2023-06-12 22:21:26 +02:00
Lennart Poettering 25165c1dea resolved: add DNS_RESOURCE_KEY_TO_STRING() macro helper
This does the usual compound init trick to get formatted strings of
stuff.

We should probably port various pieces of code over to using this.
2023-06-12 22:21:26 +02:00
Lennart Poettering ce74fb0905 resolved: add dns_resource_key_from_json() helper
It reverse what dns_resource_key_to_json(), i.e. turns JSON data into a
parsed DnsResourceKey object.

Ultimately this just moves a client-side local wrapper into generic
code. Nothing truly new here.
2023-06-12 22:21:26 +02:00
Lennart Poettering e0930aa6ff resolved: add DumpCache varlink call for acquiring a complete dump of all of resolved's RR caches
This adds a simple varlink call io.systemd.Resolve.Monitor.DumpCache to
the existing io.systemd.Resolve.Monitor service. It compiles a JSON
object containing the per-scope cache entries and returns it.

Replaces: #20053 #19104

Fixes: #14796
2023-06-12 22:21:26 +02:00
Jan Janssen b4eb2de7e3 boot: Unify protocol opening
We are using HandleProtocol everywhere except in these few cases. This
unifies on HandleProtocol as it is simpler to use and equivalent to
OpenProtocol.

The only difference between the two is that OpenProtocol attributes the
opened protocol to a firmware-owned handle instead of our image handle.
This has no real use for regular UEFI applications as any protocols
opened via BY_HANDLE or GET_PROTOCOL is not required to be closed. In
fact, when a protocol is uninstalled it will do nothing more than reduce
the open count for these.
2023-06-12 21:12:11 +01:00
Lennart Poettering 6b9f63cb3f json: add json_dispatch_variant_noref() helper
This is identical to json_dispatch_variant() but doesn't increase the
ref counter of the variant. This is useful for taking JSON objects apart
locally without the intention to keep any component pinned for longer
than the local stack frame.
2023-06-12 18:26:08 +02:00
Lennart Poettering 2efddcb245 man: explain timesyncd epoch mtime touch files in a bit more detail
Let's mention what /usr/lib/clock-epoch precisely does, and underline we
only *advance* the time based on it.

Inspired by Darkdragon-001's #23214.

Replaces #23214
2023-06-12 14:29:25 +01:00
Lennart Poettering 2d5d4f2f3e Merge pull request #27989 from poettering/message-append-string-set
common helpers for serializing Set of strings into bus message
2023-06-12 14:12:05 +02:00
Lennart Poettering fefefcd573 bus-util: add bus_property_get_string_set() helper
This is a common implementation of a property getter for a Set of
strings.
2023-06-12 11:35:52 +02:00
Lennart Poettering 9298af8dd3 bus-util: add bus_message_append_string_set() helper
This new helper adds all strings from a Set object as a string array to
a message.

Various places where we have similar code are then ported over to this.
2023-06-12 11:34:26 +02:00
Zbigniew Jędrzejewski-Szmek b09a5315f5 ukify: move verb mangling to finalize_options()
This simplifies the logic: finalize_options() is the step that does the
checks and the mangling. The checks for consistency are done in more places,
so we need to pass a verb (we only have 'build', but once we add other verbs,
any would do).
2023-06-12 11:12:02 +02:00
Zbigniew Jędrzejewski-Szmek 9a1cb2038e ukify: split out iteration over phase path groups and keys
In preparation for future changes.
2023-06-12 11:12:02 +02:00
Zbigniew Jędrzejewski-Szmek 24f4ff8a09 man,test: root or hardware is not needed for ukify 2023-06-12 11:12:02 +02:00
Zbigniew Jędrzejewski-Szmek 794385f5df ukify: fix synopsis in --help
Missed in a3b227d28a.
2023-06-12 11:12:02 +02:00
Zbigniew Jędrzejewski-Szmek 6fa7913830 ukify: use pager for --help
The output is now too long to fit on one page, let's use a pager automatically
like in other places.

The implementation is copied from mkosi, but adjusted to follow what other
systemd tools do.
2023-06-12 11:12:02 +02:00