-
-
Notifications
You must be signed in to change notification settings - Fork 4k
all: reduce struct sizes using data aligment for 64bit #37424
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nah, I'm quite wary of this change. It completely disregards maintainability and logically ordered fields in pursuit of memory saving. I mean, I personally also try to be somewhat careful when building structs for the reason you stated in the PR. Yet to be frank, this kind of narrowly-focused changes are basically non-starters on my side.
Now, I do wish common C compilers had supported marking a struct as reorganizable so that such optimization can be done without disturbing existing layout in source, but I'm not aware of any impl like that. To me it makes a ton of sense to delegate this to compilers, not so much when ordering matters regarding readability...
char *fdname; | ||
sd_event_source *event_source; | ||
bool do_poll; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This one however makes sense
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fix it 5fddc47
char *cursor; | ||
usec_t since, until; | ||
int64_t n_skip; | ||
uint64_t n_entries; | ||
bool n_entries_set, since_set, until_set; | ||
|
||
OutputMode mode; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fix it 5fddc47
src/vmspawn/vmspawn.c
Outdated
@@ -93,8 +93,8 @@ typedef enum TpmStateMode { | ||
} TpmStateMode; | ||
|
||
typedef struct SSHInfo { | ||
unsigned cid; | ||
char *private_key_path; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd place the key path at the end
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fix it 5fddc47
So, hmm, please drop all such changes to n_ref field. Placing it atop clearly indicates that a struct is refcounted. |
@YHNdnzj, I tried to keep order fields as in original code, but yes, there are no keywords in standard C language itself, but compilers have keywords for packing structures, for example, GCC https://www.gnu.org/software/c-intro-and-ref/manual/html_node/Packed-Structures.html |
There are tools such as pahole that can show how structs actually get packed in memory, so please at least use that and show before/after, otherwise it's just speculation whether something makes a difference in practice or not |
many of these structs are effectively singletons, and not often used, hence I doubt it is really worth it there. For stuff that is frequently allocated, and frequently accessed it might make sense to do this, in order to save a bit of memory and keep things in cachelines, but otherwise I am not a fan. We care a lot about readability/maintainability, and the ordering does matter for that. Hence it's a relatively high threshold for making changes like this, in particular as they tend to bitrot quickly. We have done similar rearrangements in the past, but only focussed on stuff that is "hot" and allocated many times. i.e. things like structures used by fundamental data structures and stuff, i.e. hashmaps, lists, prioq and so on. Or with the Unit structure itself. But the stuff listed here is mostly not comparable. |
Hello dear maintainers and contributors. |
PRstruct LoopDevice {
unsigned int n_ref; /* 0 4 */
int fd; /* 4 4 */
int lock_fd; /* 8 4 */
int nr; /* 12 4 */
dev_t devno; /* 16 8 */
char * node; /* 24 8 */
sd_device * dev; /* 32 8 */
char * backing_file; /* 40 8 */
dev_t backing_devno; /* 48 8 */
ino_t backing_inode; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
_Bool relinquished; /* 64 1 */
_Bool created; /* 65 1 */
/* XXX 2 bytes hole, try to pack */
uint32_t sector_size; /* 68 4 */
uint64_t diskseq; /* 72 8 */
uint64_t device_size; /* 80 8 */
/* size: 88, cachelines: 2, members: 15 */
/* sum members: 86, holes: 1, sum holes: 2 */
/* last cacheline: 24 bytes */
struct SSHInfo {
char * private_key_path; /* 0 8 */
unsigned int cid; /* 8 4 */
unsigned int port; /* 12 4 */
/* size: 16, cachelines: 1, members: 3 */
/* last cacheline: 16 bytes */
struct machine_info {
char * name; /* 0 8 */
char * version; /* 8 8 */
char * tainted; /* 16 8 */
uint64_t timestamp; /* 24 8 */
_Bool is_host; /* 32 1 */
/* XXX 3 bytes hole, try to pack */
uint32_t n_names; /* 36 4 */
uint32_t n_failed_units; /* 40 4 */
uint32_t n_jobs; /* 44 4 */
char * control_group; /* 48 8 */
char * state; /* 56 8 */
/* size: 64, cachelines: 1, members: 10 */
/* sum members: 61, holes: 1, sum holes: 3 */
struct ManagedOOMMessage {
char * path; /* 0 8 */
char * property; /* 8 8 */
ManagedOOMMode mode; /* 16 4 */
uint32_t limit; /* 20 4 */
usec_t duration; /* 24 8 */
/* size: 32, cachelines: 1, members: 5 */
/* last cacheline: 32 bytes */
struct NTPStatusInfo {
const char * server_name; /* 0 8 */
char * server_address; /* 8 8 */
usec_t poll_interval; /* 16 8 */
usec_t poll_max; /* 24 8 */
usec_t poll_min; /* 32 8 */
usec_t root_distance_max; /* 40 8 */
uint32_t leap; /* 48 4 */
uint32_t version; /* 52 4 */
uint32_t mode; /* 56 4 */
uint32_t stratum; /* 60 4 */
/* --- cacheline 1 boundary (64 bytes) --- */
usec_t root_delay; /* 64 8 */
usec_t root_dispersion; /* 72 8 */
union {
char str[5]; /* 80 5 */
uint32_t val; /* 80 4 */
} reference; /* 80 8 */
union {
char str[5]; /* 0 5 */
uint32_t val; /* 0 4 */
struct DNSServer {
struct iovec addr; /* 0 16 */
char * server_name; /* 16 8 */
int family; /* 24 4 */
uint16_t port; /* 28 2 */
/* XXX 2 bytes hole, try to pack */
int ifindex; /* 32 4 */
_Bool accessible; /* 36 1 */
/* size: 40, cachelines: 1, members: 6 */
/* sum members: 35, holes: 1, sum holes: 2 */
/* padding: 3 */
/* last cacheline: 40 bytes */
struct SyncReq {
Server * server; /* 0 8 */
sd_varlink * link; /* 8 8 */
usec_t realtime; /* 16 8 */
usec_t boottime; /* 24 8 */
sd_event_source * idle_event_source; /* 32 8 */
_Bool offline; /* 40 1 */
/* XXX 3 bytes hole, try to pack */
uint32_t pending_rqlen; /* 44 4 */
SyncReq * pending_rqlen_next; /* 48 8 */
SyncReq * pending_rqlen_prev; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
StreamSyncReq * stream_sync_reqs; /* 64 8 */
unsigned int realtime_prioq_idx; /* 72 4 */
unsigned int boottime_prioq_idx; /* 76 4 */
/* size: 80, cachelines: 2, members: 12 */
/* sum members: 77, holes: 1, sum holes: 3 */
/* last cacheline: 16 bytes */
struct Context {
const XMLIntrospectOps * ops; /* 0 8 */
void * userdata; /* 8 8 */
char * interface_name; /* 16 8 */
uint64_t interface_flags; /* 24 8 */
char * member_name; /* 32 8 */
char * member_signature; /* 40 8 */
char * member_result; /* 48 8 */
uint64_t member_flags; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
_Bool member_writable; /* 64 1 */
/* XXX 7 bytes hole, try to pack */
const char * current; /* 72 8 */
void * xml_state; /* 80 8 */
/* size: 88, cachelines: 2, members: 11 */
/* sum members: 81, holes: 1, sum holes: 7 */
/* last cacheline: 24 bytes */
struct Context {
int fd; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
Feature * drive_features; /* 8 8 */
size_t n_drive_feature; /* 16 8 */
Feature media_feature; /* 24 4 */
_Bool has_media; /* 28 1 */
/* XXX 3 bytes hole, try to pack */
MediaState media_state; /* 32 4 */
unsigned int media_session_next; /* 36 4 */
unsigned int media_session_count; /* 40 4 */
unsigned int media_track_count; /* 44 4 */
unsigned int media_track_count_data; /* 48 4 */
unsigned int media_track_count_audio; /* 52 4 */
uint64_t media_session_last_offset; /* 56 8 */
/* size: 64, cachelines: 1, members: 12 */
/* sum members: 57, holes: 2, sum holes: 7 */
struct Context {
const char * object_path; /* 0 8 */
double progress; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
struct Context {
sd_journal * journal; /* 0 8 */
_Bool has_cursor; /* 8 1 */
_Bool need_seek; /* 9 1 */
_Bool since_seeked; /* 10 1 */
_Bool ellipsized; /* 11 1 */
_Bool previous_boot_id_valid; /* 12 1 */
/* XXX 3 bytes hole, try to pack */
sd_id128_t previous_boot_id; /* 16 16 */
sd_id128_t previous_boot_id_output; /* 32 16 */
dual_timestamp previous_ts_output; /* 48 16 */
/* --- cacheline 1 boundary (64 bytes) --- */
sd_event * event; /* 64 8 */
sd_varlink * synchronize_varlink; /* 72 8 */
/* size: 80, cachelines: 2, members: 11 */
/* sum members: 77, holes: 1, sum holes: 3 */
/* last cacheline: 16 bytes */
struct Context {
int rfd; /* 0 4 */
Action action; /* 4 4 */
sd_id128_t machine_id; /* 8 16 */
_Bool machine_id_is_random; /* 24 1 */
/* XXX 3 bytes hole, try to pack */
KernelImageType kernel_image_type; /* 28 4 */
Layout layout; /* 32 4 */
/* XXX 4 bytes hole, try to pack */
char * layout_other; /* 40 8 */
char * conf_root; /* 48 8 */
char * boot_root; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
BootEntryTokenType entry_token_type; /* 64 4 */
/* XXX 4 bytes hole, try to pack */
char * entry_token; /* 72 8 */
char * entry_dir; /* 80 8 */
char * version; /* 88 8 */
char * kernel; /* 96 8 */
char * * initrds; /* 104 8 */
char * initrd_generator; /* 112 8 */
char * uki_generator; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
char * staging_area; /* 128 8 */
char * * plugins; /* 136 8 */
char * * argv; /* 144 8 */
char * * envp; /* 152 8 */
/* size: 160, cachelines: 3, members: 21 */
/* sum members: 149, holes: 3, sum holes: 11 */
/* last cacheline: 32 bytes */
struct Context {
PidRef pidref; /* 0 16 */
uid_t uid; /* 16 4 */
gid_t gid; /* 20 4 */
int signo; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
uint64_t rlimit; /* 32 8 */
_Bool is_pid1; /* 40 1 */
_Bool is_journald; /* 41 1 */
/* XXX 2 bytes hole, try to pack */
int mount_tree_fd; /* 44 4 */
const char * meta[11]; /* 48 88 */
/* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
size_t meta_size[11]; /* 136 88 */
/* size: 224, cachelines: 4, members: 10 */
/* sum members: 218, holes: 2, sum holes: 6 */
/* last cacheline: 32 bytes */
struct Context {
char * data[15]; /* 0 120 */
/* --- cacheline 1 boundary (64 bytes) was 56 bytes ago --- */
HostnameSource hostname_source; /* 120 4 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 2 boundary (128 bytes) --- */
struct stat etc_hostname_stat; /* 128 144 */
/* --- cacheline 4 boundary (256 bytes) was 16 bytes ago --- */
struct stat etc_os_release_stat; /* 272 144 */
/* --- cacheline 6 boundary (384 bytes) was 32 bytes ago --- */
struct stat etc_machine_info_stat; /* 416 144 */
/* --- cacheline 8 boundary (512 bytes) was 48 bytes ago --- */
sd_event * event; /* 560 8 */
sd_bus * bus; /* 568 8 */
/* --- cacheline 9 boundary (576 bytes) --- */
sd_varlink_server * varlink_server; /* 576 8 */
Hashmap * polkit_registry; /* 584 8 */
sd_device * device_dmi; /* 592 8 */
sd_device * device_acpi; /* 600 8 */
sd_device * device_tree; /* 608 8 */
/* size: 616, cachelines: 10, members: 12 */
/* sum members: 612, holes: 1, sum holes: 4 */
/* last cacheline: 40 bytes */
struct Context {
sd_bus_message * locale_cache; /* 0 8 */
LocaleContext locale_context; /* 8 256 */
/* --- cacheline 4 boundary (256 bytes) was 8 bytes ago --- */
sd_bus_message * x11_cache; /* 264 8 */
struct stat x11_stat; /* 272 144 */
/* --- cacheline 6 boundary (384 bytes) was 32 bytes ago --- */
X11Context x11_from_xorg; /* 416 32 */
/* --- cacheline 7 boundary (448 bytes) --- */
X11Context x11_from_vc; /* 448 32 */
sd_bus_message * vc_cache; /* 480 8 */
struct stat vc_stat; /* 488 144 */
/* --- cacheline 9 boundary (576 bytes) was 56 bytes ago --- */
VCContext vc; /* 632 16 */
/* --- cacheline 10 boundary (640 bytes) was 8 bytes ago --- */
Hashmap * polkit_registry; /* 648 8 */
/* size: 656, cachelines: 11, members: 10 */
/* last cacheline: 16 bytes */
struct Context {
Hashmap * networks_by_name; /* 0 8 */
Hashmap * netdevs_by_name; /* 8 8 */
Hashmap * links_by_filename; /* 16 8 */
/* size: 24, cachelines: 1, members: 3 */
/* last cacheline: 24 bytes */
struct Context {
Hashmap * polkit_registry; /* 0 8 */
struct userns_restrict_bpf * missing_bpf; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
struct Context {
Partition * partitions; /* 0 8 */
size_t n_partitions; /* 8 8 */
FreeArea * * free_areas; /* 16 8 */
size_t n_free_areas; /* 24 8 */
uint64_t start; /* 32 8 */
uint64_t end; /* 40 8 */
uint64_t total; /* 48 8 */
struct fdisk_context * fdisk_context; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
uint64_t sector_size; /* 64 8 */
uint64_t grain_size; /* 72 8 */
uint64_t fs_sector_size; /* 80 8 */
sd_id128_t seed; /* 88 16 */
char * node; /* 104 8 */
int backing_fd; /* 112 4 */
_Bool node_is_our_file; /* 116 1 */
_Bool from_scratch; /* 117 1 */
/* XXX 2 bytes hole, try to pack */
X509 * certificate; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
EVP_PKEY * private_key; /* 128 8 */
/* size: 136, cachelines: 3, members: 18 */
/* sum members: 134, holes: 1, sum holes: 2 */
/* last cacheline: 8 bytes */
struct Context {
write_queue_item * write_queue; /* 0 8 */
int rfkill_fd; /* 8 4 */
/* size: 16, cachelines: 1, members: 2 */
/* padding: 4 */
/* last cacheline: 16 bytes */
struct Context {
sd_event * event; /* 0 8 */
sd_resolve * resolve; /* 8 8 */
sd_event_source * idle_time; /* 16 8 */
Set * listen; /* 24 8 */
Set * connections; /* 32 8 */
/* size: 40, cachelines: 1, members: 5 */
/* last cacheline: 40 bytes */
struct Context {
Hashmap * subsystems; /* 0 8 */
NvmePort * ipv4_port; /* 8 8 */
NvmePort * ipv6_port; /* 16 8 */
_Bool display_refresh_scheduled; /* 24 1 */
/* size: 32, cachelines: 1, members: 4 */
/* padding: 7 */
/* last cacheline: 32 bytes */
struct Context {
Transfer * * transfers; /* 0 8 */
size_t n_transfers; /* 8 8 */
Transfer * * disabled_transfers; /* 16 8 */
size_t n_disabled_transfers; /* 24 8 */
Hashmap * features; /* 32 8 */
UpdateSet * * update_sets; /* 40 8 */
size_t n_update_sets; /* 48 8 */
UpdateSet * newest_installed; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
UpdateSet * candidate; /* 64 8 */
Hashmap * web_cache; /* 72 8 */
/* size: 80, cachelines: 2, members: 10 */
/* last cacheline: 16 bytes */
struct Context {
int audit_fd; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
OrderedHashmap * users; /* 8 8 */
OrderedHashmap * groups; /* 16 8 */
OrderedHashmap * todo_uids; /* 24 8 */
OrderedHashmap * todo_gids; /* 32 8 */
OrderedHashmap * members; /* 40 8 */
Hashmap * database_by_uid; /* 48 8 */
Hashmap * database_by_username; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
Hashmap * database_by_gid; /* 64 8 */
Hashmap * database_by_groupname; /* 72 8 */
Set * names; /* 80 8 */
uid_t search_uid; /* 88 4 */
/* XXX 4 bytes hole, try to pack */
UIDRange * uid_range; /* 96 8 */
UGIDAllocationRange login_defs; /* 104 16 */
_Bool login_defs_need_warning; /* 120 1 */
/* size: 128, cachelines: 2, members: 15 */
/* sum members: 113, holes: 2, sum holes: 8 */
/* padding: 7 */
struct Context {
char * zone; /* 0 8 */
_Bool local_rtc; /* 8 1 */
/* XXX 7 bytes hole, try to pack */
Hashmap * polkit_registry; /* 16 8 */
sd_bus_message * cache; /* 24 8 */
Set * set_ntp_calls; /* 32 8 */
sd_bus_slot * slot_job_removed; /* 40 8 */
UnitStatusInfo * units; /* 48 8 */
/* size: 56, cachelines: 1, members: 7 */
/* sum members: 49, holes: 1, sum holes: 7 */
/* last cacheline: 56 bytes */
struct Context {
OrderedHashmap * items; /* 0 8 */
OrderedHashmap * globs; /* 8 8 */
Set * unix_sockets; /* 16 8 */
Hashmap * uid_cache; /* 24 8 */
Hashmap * gid_cache; /* 32 8 */
/* size: 40, cachelines: 1, members: 5 */
/* last cacheline: 40 bytes */
struct Context {
sd_bus * bus; /* 0 8 */
int audit_fd; /* 8 4 */
/* size: 16, cachelines: 1, members: 2 */
/* padding: 4 */
/* last cacheline: 16 bytes */
struct Context {
char * keymap; /* 0 8 */
char * keymap_toggle; /* 8 8 */
char * font; /* 16 8 */
char * font_map; /* 24 8 */
char * font_unimap; /* 32 8 */
/* size: 40, cachelines: 1, members: 5 */
/* last cacheline: 40 bytes */
struct Context {
unsigned int data; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
PidRef pidref; /* 8 16 */
/* size: 24, cachelines: 1, members: 2 */
/* sum members: 20, holes: 1, sum holes: 4 */
/* last cacheline: 24 bytes */
struct FeatureToString {
Feature feature; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
const char * str; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* sum members: 12, holes: 1, sum holes: 4 */
/* last cacheline: 16 bytes */
struct Feature {
char * id; /* 0 8 */
char * description; /* 8 8 */
char * documentation; /* 16 8 */
char * appstream; /* 24 8 */
unsigned int n_ref; /* 32 4 */
_Bool enabled; /* 36 1 */
/* size: 40, cachelines: 1, members: 6 */
/* padding: 3 */
/* last cacheline: 40 bytes */
struct Feature {
char * name; /* 0 8 */
char * description; /* 8 8 */
_Bool enabled; /* 16 1 */
/* XXX 7 bytes hole, try to pack */
char * documentation; /* 24 8 */
char * * transfers; /* 32 8 */
/* size: 40, cachelines: 1, members: 5 */
/* sum members: 33, holes: 1, sum holes: 7 */
/* last cacheline: 40 bytes */
struct LogContext {
char * * fields; /* 0 8 */
struct iovec * input_iovec; /* 8 8 */
size_t n_input_iovec; /* 16 8 */
char * key; /* 24 8 */
char * value; /* 32 8 */
unsigned int n_ref; /* 40 4 */
_Bool owned; /* 44 1 */
/* XXX 3 bytes hole, try to pack */
struct LogContext * ll_next; /* 48 8 */
struct LogContext * ll_prev; /* 56 8 */
/* size: 64, cachelines: 1, members: 9 */
/* sum members: 61, holes: 1, sum holes: 3 */
struct InstanceMetadata {
char * version; /* 0 8 */
sd_id128_t partition_uuid; /* 8 16 */
uint64_t partition_flags; /* 24 8 */
_Bool partition_uuid_set; /* 32 1 */
_Bool partition_flags_set; /* 33 1 */
/* XXX 2 bytes hole, try to pack */
mode_t mode; /* 36 4 */
usec_t mtime; /* 40 8 */
uint64_t size; /* 48 8 */
uint64_t tries_done; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
uint64_t tries_left; /* 64 8 */
int no_auto; /* 72 4 */
int read_only; /* 76 4 */
int growfs; /* 80 4 */
uint8_t sha256sum[32]; /* 84 32 */
_Bool sha256sum_set; /* 116 1 */
/* size: 120, cachelines: 2, members: 15 */
/* sum members: 115, holes: 1, sum holes: 2 */
/* padding: 3 */
/* last cacheline: 56 bytes */
struct ResourcePressure {
loadavg_t avg10; /* 0 8 */
loadavg_t avg60; /* 8 8 */
loadavg_t avg300; /* 16 8 */
usec_t total; /* 24 8 */
/* size: 32, cachelines: 1, members: 4 */
/* last cacheline: 32 bytes */
struct Resource {
ResourceType type; /* 0 4 */
_Bool path_auto; /* 4 1 */
_Bool partition_type_set; /* 5 1 */
/* XXX 2 bytes hole, try to pack */
char * path; /* 8 8 */
PathRelativeTo path_relative_to; /* 16 4 */
/* XXX 4 bytes hole, try to pack */
char * * patterns; /* 24 8 */
GptPartitionType partition_type; /* 32 32 */
/* --- cacheline 1 boundary (64 bytes) --- */
Instance * * instances; /* 64 8 */
size_t n_instances; /* 72 8 */
size_t n_empty; /* 80 8 */
/* size: 88, cachelines: 2, members: 10 */
/* sum members: 82, holes: 2, sum holes: 6 */
/* last cacheline: 24 bytes */
struct ServiceFDStore {
Service * service; /* 0 8 */
int fd; /* 8 4 */
_Bool do_poll; /* 12 1 */
/* XXX 3 bytes hole, try to pack */
char * fdname; /* 16 8 */
sd_event_source * event_source; /* 24 8 */
struct ServiceFDStore * fd_store_next; /* 32 8 */
struct ServiceFDStore * fd_store_prev; /* 40 8 */
/* size: 48, cachelines: 1, members: 7 */
/* sum members: 45, holes: 1, sum holes: 3 */
/* last cacheline: 48 bytes */
struct CommonApplicationsKeptEnhanced {
QDisc meta; /* 0 56 */
uint64_t bandwidth; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
int autorate; /* 64 4 */
_Bool overhead_set; /* 68 1 */
/* XXX 3 bytes hole, try to pack */
int overhead; /* 72 4 */
uint32_t mpu; /* 76 4 */
CakeCompensationMode compensation_mode; /* 80 4 */
int raw; /* 84 4 */
CakeFlowIsolationMode flow_isolation_mode; /* 88 4 */
int nat; /* 92 4 */
CakePriorityQueueingPreset preset; /* 96 4 */
uint32_t fwmark; /* 100 4 */
int wash; /* 104 4 */
int split_gso; /* 108 4 */
usec_t rtt; /* 112 8 */
CakeAckFilter ack_filter; /* 120 4 */
/* size: 128, cachelines: 2, members: 16 */
/* sum members: 121, holes: 1, sum holes: 3 */
/* padding: 4 */
struct SleepConfig {
char * * states[3]; /* 0 24 */
char * * modes[3]; /* 24 24 */
char * * mem_modes; /* 48 8 */
_Bool allow[5]; /* 56 5 */
_Bool hibernate_on_ac_power; /* 61 1 */
/* XXX 2 bytes hole, try to pack */
/* --- cacheline 1 boundary (64 bytes) --- */
usec_t hibernate_delay_usec; /* 64 8 */
usec_t suspend_estimation_usec; /* 72 8 */
/* size: 80, cachelines: 2, members: 7 */
/* sum members: 78, holes: 1, sum holes: 2 */
/* last cacheline: 16 bytes */
struct sd_dns_resolver {
char * auth_name; /* 0 8 */
uint16_t priority; /* 8 2 */
/* XXX 2 bytes hole, try to pack */
int family; /* 12 4 */
union in_addr_union * addrs; /* 16 8 */
size_t n_addrs; /* 24 8 */
sd_dns_alpn_flags transports; /* 32 8 */
uint16_t port; /* 40 2 */
/* XXX 6 bytes hole, try to pack */
char * dohpath; /* 48 8 */
/* size: 56, cachelines: 1, members: 8 */
/* sum members: 48, holes: 2, sum holes: 8 */
/* last cacheline: 56 bytes */
struct write_queue_item {
struct write_queue_item * queue_next; /* 0 8 */
struct write_queue_item * queue_prev; /* 8 8 */
char * file; /* 16 8 */
int rfkill_idx; /* 24 4 */
int state; /* 28 4 */
/* size: 32, cachelines: 1, members: 5 */
/* last cacheline: 32 bytes */
struct Manager {
Hashmap * units; /* 0 8 */
Hashmap * units_by_invocation_id; /* 8 8 */
Hashmap * jobs; /* 16 8 */
Unit * units_by_type[11]; /* 24 88 */
/* --- cacheline 1 boundary (64 bytes) was 48 bytes ago --- */
Unit * load_queue; /* 112 8 */
struct Prioq * run_queue; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
Unit * dbus_unit_queue; /* 128 8 */
Job * dbus_job_queue; /* 136 8 */
Unit * cleanup_queue; /* 144 8 */
Unit * gc_unit_queue; /* 152 8 */
Job * gc_job_queue; /* 160 8 */
Unit * cgroup_realize_queue; /* 168 8 */
Unit * cgroup_empty_queue; /* 176 8 */
Unit * cgroup_oom_queue; /* 184 8 */
/* --- cacheline 3 boundary (192 bytes) --- */
Unit * target_deps_queue; /* 192 8 */
Unit * stop_when_unneeded_queue; /* 200 8 */
Unit * start_when_upheld_queue; /* 208 8 */
Unit * stop_when_bound_queue; /* 216 8 */
Unit * release_resources_queue; /* 224 8 */
sd_event * event; /* 232 8 */
Hashmap * watch_pids; /* 240 8 */
Hashmap * watch_pids_more; /* 248 8 */
/* --- cacheline 4 boundary (256 bytes) --- */
Set * startup_units; /* 256 8 */
Set * failed_units; /* 264 8 */
sd_event_source * run_queue_event_source; /* 272 8 */
char * notify_socket; /* 280 8 */
int notify_fd; /* 288 4 */
/* XXX 4 bytes hole, try to pack */
sd_event_source * notify_event_source; /* 296 8 */
int signal_fd; /* 304 4 */
/* XXX 4 bytes hole, try to pack */
sd_event_source * signal_event_source; /* 312 8 */
/* --- cacheline 5 boundary (320 bytes) --- */
sd_event_source * sigchld_event_source; /* 320 8 */
sd_event_source * time_change_event_source; /* 328 8 */
sd_event_source * timezone_change_event_source; /* 336 8 */
sd_event_source * jobs_in_progress_event_source; /* 344 8 */
int user_lookup_fds[2]; /* 352 8 */
sd_event_source * user_lookup_event_source; /* 360 8 */
int handoff_timestamp_fds[2]; /* 368 8 */
sd_event_source * handoff_timestamp_event_source; /* 376 8 */
/* --- cacheline 6 boundary (384 bytes) --- */
int pidref_transport_fds[2]; /* 384 8 */
sd_event_source * pidref_event_source; /* 392 8 */
RuntimeScope runtime_scope; /* 400 4 */
/* XXX 4 bytes hole, try to pack */
LookupPaths lookup_paths; /* 408 104 */
/* --- cacheline 8 boundary (512 bytes) --- */
Hashmap * unit_id_map; /* 512 8 */
Hashmap * unit_name_map; /* 520 8 */
Set * unit_path_cache; /* 528 8 */
uint64_t unit_cache_timestamp_hash; /* 536 8 */
_Bool unit_file_state_outdated; /* 544 1 */
/* XXX 7 bytes hole, try to pack */
char * * transient_environment; /* 552 8 */
char * * client_environment; /* 560 8 */
usec_t watchdog[4]; /* 568 32 */
/* --- cacheline 9 boundary (576 bytes) was 24 bytes ago --- */
usec_t watchdog_overridden[4]; /* 600 32 */
char * watchdog_pretimeout_governor; /* 632 8 */
/* --- cacheline 10 boundary (640 bytes) --- */
char * watchdog_pretimeout_governor_overridden; /* 640 8 */
dual_timestamp timestamps[20]; /* 648 320 */
/* --- cacheline 15 boundary (960 bytes) was 8 bytes ago --- */
sd_device_monitor * device_monitor; /* 968 8 */
Hashmap * devices_by_sysfs; /* 976 8 */
struct libmnt_monitor * mount_monitor; /* 984 8 */
sd_event_source * mount_event_source; /* 992 8 */
FILE * proc_swaps; /* 1000 8 */
sd_event_source * swap_event_source; /* 1008 8 */
Hashmap * swaps_by_devnode; /* 1016 8 */
/* --- cacheline 16 boundary (1024 bytes) --- */
sd_bus * api_bus; /* 1024 8 */
sd_bus * system_bus; /* 1032 8 */
Set * private_buses; /* 1040 8 */
int private_listen_fd; /* 1048 4 */
/* XXX 4 bytes hole, try to pack */
sd_event_source * private_listen_event_source; /* 1056 8 */
sd_bus_track * subscribed; /* 1064 8 */
char * * subscribed_as_strv; /* 1072 8 */
sd_id128_t bus_id; /* 1080 16 */
/* --- cacheline 17 boundary (1088 bytes) was 8 bytes ago --- */
sd_id128_t deserialized_bus_id; /* 1096 16 */
sd_bus_message * pending_reload_message; /* 1112 8 */
Hashmap * watch_bus; /* 1120 8 */
_Bool send_reloading_done; /* 1128 1 */
/* XXX 3 bytes hole, try to pack */
uint32_t current_job_id; /* 1132 4 */
uint32_t default_unit_job_id; /* 1136 4 */
int dev_autofs_fd; /* 1140 4 */
Hashmap * cgroup_unit; /* 1144 8 */
/* --- cacheline 18 boundary (1152 bytes) --- */
CGroupMask cgroup_supported; /* 1152 4 */
/* XXX 4 bytes hole, try to pack */
char * cgroup_root; /* 1160 8 */
int cgroup_inotify_fd; /* 1168 4 */
/* XXX 4 bytes hole, try to pack */
sd_event_source * cgroup_inotify_event_source; /* 1176 8 */
Hashmap * cgroup_control_inotify_wd_unit; /* 1184 8 */
Hashmap * cgroup_memory_inotify_wd_unit; /* 1192 8 */
sd_event_source * cgroup_empty_event_source; /* 1200 8 */
sd_event_source * cgroup_oom_event_source; /* 1208 8 */
/* --- cacheline 19 boundary (1216 bytes) --- */
int pin_cgroupfs_fd; /* 1216 4 */
unsigned int gc_marker; /* 1220 4 */
usec_t etc_localtime_mtime; /* 1224 8 */
_Bool etc_localtime_accessible; /* 1232 1 */
/* XXX 3 bytes hole, try to pack */
ManagerObjective objective; /* 1236 4 */
ManagerObjective previous_objective; /* 1240 4 */
_Bool dispatching_load_queue; /* 1244 1 */
_Bool ready_sent; /* 1245 1 */
_Bool status_ready; /* 1246 1 */
_Bool taint_logged; /* 1247 1 */
_Bool sysctl_pid_max_changed; /* 1248 1 */
/* XXX 3 bytes hole, try to pack */
ManagerTestRunFlags test_run_flags; /* 1252 4 */
uint8_t return_value; /* 1256 1 */
/* XXX 3 bytes hole, try to pack */
ShowStatus show_status; /* 1260 4 */
ShowStatus show_status_overridden; /* 1264 4 */
StatusUnitFormat status_unit_format; /* 1268 4 */
char * confirm_spawn; /* 1272 8 */
/* --- cacheline 20 boundary (1280 bytes) --- */
_Bool no_console_output; /* 1280 1 */
_Bool service_watchdogs; /* 1281 1 */
/* XXX 6 bytes hole, try to pack */
UnitDefaults defaults; /* 1288 272 */
/* --- cacheline 24 boundary (1536 bytes) was 24 bytes ago --- */
int original_log_level; /* 1560 4 */
LogTarget original_log_target; /* 1564 4 */
_Bool log_level_overridden; /* 1568 1 */
_Bool log_target_overridden; /* 1569 1 */
/* XXX 2 bytes hole, try to pack */
int n_reloading; /* 1572 4 */
unsigned int n_installed_jobs; /* 1576 4 */
unsigned int n_failed_jobs; /* 1580 4 */
unsigned int n_running_jobs; /* 1584 4 */
unsigned int n_on_console; /* 1588 4 */
unsigned int jobs_in_progress_iteration; /* 1592 4 */
int have_ask_password; /* 1596 4 */
/* --- cacheline 25 boundary (1600 bytes) --- */
sd_event_source * ask_password_event_source; /* 1600 8 */
int idle_pipe[4]; /* 1608 16 */
sd_event_source * idle_pipe_event_source; /* 1624 8 */
char * switch_root; /* 1632 8 */
char * switch_root_init; /* 1640 8 */
_Bool switching_root; /* 1648 1 */
/* XXX 7 bytes hole, try to pack */
Hashmap * units_needing_mounts_for[2]; /* 1656 16 */
/* --- cacheline 26 boundary (1664 bytes) was 8 bytes ago --- */
Hashmap * polkit_registry; /* 1672 8 */
Hashmap * dynamic_users; /* 1680 8 */
Hashmap * uid_refs; /* 1688 8 */
Hashmap * gid_refs; /* 1696 8 */
Hashmap * exec_shared_runtime_by_id; /* 1704 8 */
RateLimit ctrl_alt_del_ratelimit; /* 1712 24 */
/* --- cacheline 27 boundary (1728 bytes) was 8 bytes ago --- */
EmergencyAction cad_burst_action; /* 1736 4 */
int first_boot; /* 1740 4 */
char * prefix[5]; /* 1744 40 */
char * received_credentials_directory; /* 1784 8 */
/* --- cacheline 28 boundary (1792 bytes) --- */
char * received_encrypted_credentials_directory; /* 1792 8 */
unsigned int sigchldgen; /* 1800 4 */
unsigned int notifygen; /* 1804 4 */
sd_varlink_server * varlink_server; /* 1808 8 */
sd_varlink * managed_oom_varlink; /* 1816 8 */
struct restrict_fs_bpf * restrict_fs; /* 1824 8 */
RateLimit reload_reexec_ratelimit; /* 1832 24 */
/* --- cacheline 29 boundary (1856 bytes) --- */
RateLimit dump_ratelimit; /* 1856 24 */
sd_event_source * memory_pressure_event_source; /* 1880 8 */
FirewallContext * fw_ctx; /* 1888 8 */
char * executor_path; /* 1896 8 */
int executor_fd; /* 1904 4 */
unsigned int soft_reboots_count; /* 1908 4 */
uint64_t saved_ambient_set; /* 1912 8 */
/* size: 1920, cachelines: 30, members: 147 */
/* sum members: 1862, holes: 14, sum holes: 58 */
struct Manager {
sd_event * event; /* 0 8 */
sd_bus * bus; /* 8 8 */
Hashmap * polkit_registry; /* 16 8 */
Hashmap * homes_by_uid; /* 24 8 */
Hashmap * homes_by_name; /* 32 8 */
Hashmap * homes_by_worker_pid; /* 40 8 */
Hashmap * homes_by_sysfs; /* 48 8 */
_Bool scan_slash_home; /* 56 1 */
/* XXX 3 bytes hole, try to pack */
UserStorage default_storage; /* 60 4 */
/* --- cacheline 1 boundary (64 bytes) --- */
char * default_file_system_type; /* 64 8 */
sd_event_source * inotify_event_source; /* 72 8 */
char * notify_socket_path; /* 80 8 */
sd_device_monitor * device_monitor; /* 88 8 */
sd_event_source * deferred_rescan_event_source; /* 96 8 */
sd_event_source * deferred_gc_event_source; /* 104 8 */
sd_event_source * deferred_auto_login_event_source; /* 112 8 */
sd_event_source * rebalance_event_source; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
Home * gc_focus; /* 128 8 */
sd_varlink_server * varlink_server; /* 136 8 */
char * userdb_service; /* 144 8 */
EVP_PKEY * private_key; /* 152 8 */
Hashmap * public_keys; /* 160 8 */
RebalanceState rebalance_state; /* 168 4 */
/* XXX 4 bytes hole, try to pack */
usec_t rebalance_interval_usec; /* 176 8 */
Set * rebalance_pending_method_calls; /* 184 8 */
/* --- cacheline 3 boundary (192 bytes) --- */
Set * rebalance_queued_method_calls; /* 192 8 */
/* size: 200, cachelines: 4, members: 26 */
/* sum members: 193, holes: 2, sum holes: 7 */
/* last cacheline: 8 bytes */
struct Manager {
sd_event * event; /* 0 8 */
sd_bus * bus; /* 8 8 */
sd_varlink_server * varlink_server; /* 16 8 */
uint32_t current_transfer_id; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
Hashmap * transfers; /* 32 8 */
Hashmap * polkit_registry; /* 40 8 */
char * notify_socket_path; /* 48 8 */
_Bool use_btrfs_subvol; /* 56 1 */
_Bool use_btrfs_quota; /* 57 1 */
/* XXX 2 bytes hole, try to pack */
RuntimeScope runtime_scope; /* 60 4 */
/* size: 64, cachelines: 1, members: 10 */
/* sum members: 58, holes: 2, sum holes: 6 */
struct Manager {
sd_event * event; /* 0 8 */
sd_bus * bus; /* 8 8 */
Hashmap * devices; /* 16 8 */
Hashmap * seats; /* 24 8 */
Hashmap * sessions; /* 32 8 */
Hashmap * sessions_by_leader; /* 40 8 */
Hashmap * users; /* 48 8 */
Hashmap * inhibitors; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
Hashmap * buttons; /* 64 8 */
Hashmap * brightness_writers; /* 72 8 */
Seat * seat_gc_queue; /* 80 8 */
Session * session_gc_queue; /* 88 8 */
User * user_gc_queue; /* 96 8 */
sd_device_monitor * device_seat_monitor; /* 104 8 */
sd_device_monitor * device_monitor; /* 112 8 */
sd_device_monitor * device_vcsa_monitor; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
sd_device_monitor * device_button_monitor; /* 128 8 */
sd_event_source * console_active_event_source; /* 136 8 */
sd_event_source * utmp_event_source; /* 144 8 */
int console_active_fd; /* 152 4 */
unsigned int n_autovts; /* 156 4 */
unsigned int reserve_vt; /* 160 4 */
int reserve_vt_fd; /* 164 4 */
Seat * seat0; /* 168 8 */
char * * kill_only_users; /* 176 8 */
char * * kill_exclude_users; /* 184 8 */
/* --- cacheline 3 boundary (192 bytes) --- */
_Bool kill_user_processes; /* 192 1 */
/* XXX 7 bytes hole, try to pack */
uint64_t session_counter; /* 200 8 */
uint64_t inhibit_counter; /* 208 8 */
Hashmap * session_units; /* 216 8 */
Hashmap * user_units; /* 224 8 */
usec_t inhibit_delay_max; /* 232 8 */
usec_t user_stop_delay; /* 240 8 */
const HandleActionData * delayed_action; /* 248 8 */
/* --- cacheline 4 boundary (256 bytes) --- */
char * action_job; /* 256 8 */
sd_event_source * inhibit_timeout_source; /* 264 8 */
HandleAction scheduled_shutdown_action; /* 272 4 */
/* XXX 4 bytes hole, try to pack */
usec_t scheduled_shutdown_timeout; /* 280 8 */
sd_event_source * scheduled_shutdown_timeout_source; /* 288 8 */
uid_t scheduled_shutdown_uid; /* 296 4 */
/* XXX 4 bytes hole, try to pack */
char * scheduled_shutdown_tty; /* 304 8 */
sd_event_source * nologin_timeout_source; /* 312 8 */
/* --- cacheline 5 boundary (320 bytes) --- */
_Bool unlink_nologin; /* 320 1 */
/* XXX 7 bytes hole, try to pack */
char * wall_message; /* 328 8 */
_Bool enable_wall_messages; /* 336 1 */
/* XXX 7 bytes hole, try to pack */
sd_event_source * wall_message_timeout_source; /* 344 8 */
_Bool shutdown_dry_run; /* 352 1 */
/* XXX 7 bytes hole, try to pack */
sd_event_source * idle_action_event_source; /* 360 8 */
usec_t idle_action_usec; /* 368 8 */
usec_t idle_action_not_before_usec; /* 376 8 */
/* --- cacheline 6 boundary (384 bytes) --- */
HandleAction idle_action; /* 384 4 */
_Bool was_idle; /* 388 1 */
/* XXX 3 bytes hole, try to pack */
usec_t stop_idle_session_usec; /* 392 8 */
HandleActionSleepMask handle_action_sleep_mask; /* 400 4 */
HandleAction handle_power_key; /* 404 4 */
HandleAction handle_power_key_long_press; /* 408 4 */
HandleAction handle_reboot_key; /* 412 4 */
HandleAction handle_reboot_key_long_press; /* 416 4 */
HandleAction handle_suspend_key; /* 420 4 */
HandleAction handle_suspend_key_long_press; /* 424 4 */
HandleAction handle_hibernate_key; /* 428 4 */
HandleAction handle_hibernate_key_long_press; /* 432 4 */
HandleAction handle_secure_attention_key; /* 436 4 */
HandleAction handle_lid_switch; /* 440 4 */
HandleAction handle_lid_switch_ep; /* 444 4 */
/* --- cacheline 7 boundary (448 bytes) --- */
HandleAction handle_lid_switch_docked; /* 448 4 */
_Bool power_key_ignore_inhibited; /* 452 1 */
_Bool suspend_key_ignore_inhibited; /* 453 1 */
_Bool hibernate_key_ignore_inhibited; /* 454 1 */
_Bool lid_switch_ignore_inhibited; /* 455 1 */
_Bool reboot_key_ignore_inhibited; /* 456 1 */
_Bool remove_ipc; /* 457 1 */
/* XXX 6 bytes hole, try to pack */
Hashmap * polkit_registry; /* 464 8 */
usec_t holdoff_timeout_usec; /* 472 8 */
sd_event_source * lid_switch_ignore_event_source; /* 480 8 */
sd_event_source * power_key_long_press_event_source; /* 488 8 */
sd_event_source * reboot_key_long_press_event_source; /* 496 8 */
sd_event_source * suspend_key_long_press_event_source; /* 504 8 */
/* --- cacheline 8 boundary (512 bytes) --- */
sd_event_source * hibernate_key_long_press_event_source; /* 512 8 */
uint64_t runtime_dir_size; /* 520 8 */
uint64_t runtime_dir_inodes; /* 528 8 */
uint64_t sessions_max; /* 536 8 */
uint64_t inhibitors_max; /* 544 8 */
char * * efi_boot_loader_entries; /* 552 8 */
_Bool efi_boot_loader_entries_set; /* 560 1 */
/* XXX 7 bytes hole, try to pack */
char * efi_loader_entry_one_shot; /* 568 8 */
/* --- cacheline 9 boundary (576 bytes) --- */
struct stat efi_loader_entry_one_shot_stat; /* 576 144 */
/* --- cacheline 11 boundary (704 bytes) was 16 bytes ago --- */
CalendarSpec * maintenance_time; /* 720 8 */
dual_timestamp init_ts; /* 728 16 */
sd_varlink_server * varlink_server; /* 744 8 */
/* size: 752, cachelines: 12, members: 90 */
/* sum members: 700, holes: 9, sum holes: 52 */
/* last cacheline: 48 bytes */
struct Manager {
sd_event * event; /* 0 8 */
sd_bus * bus; /* 8 8 */
Hashmap * machines; /* 16 8 */
Hashmap * machines_by_unit; /* 24 8 */
Hashmap * machines_by_leader; /* 32 8 */
sd_event_source * deferred_gc_event_source; /* 40 8 */
Hashmap * polkit_registry; /* 48 8 */
Hashmap * image_cache; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
sd_event_source * image_cache_defer_event; /* 64 8 */
Machine * machine_gc_queue; /* 72 8 */
Machine * host_machine; /* 80 8 */
Operation * operations; /* 88 8 */
unsigned int n_operations; /* 96 4 */
/* XXX 4 bytes hole, try to pack */
sd_varlink_server * varlink_userdb_server; /* 104 8 */
sd_varlink_server * varlink_machine_server; /* 112 8 */
RuntimeScope runtime_scope; /* 120 4 */
/* size: 128, cachelines: 2, members: 16 */
/* sum members: 120, holes: 1, sum holes: 4 */
/* padding: 4 */
struct Manager {
sd_event * event; /* 0 8 */
Set * workers_fixed; /* 8 8 */
Set * workers_dynamic; /* 16 8 */
int listen_fd; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
RateLimit worker_ratelimit; /* 32 24 */
/* size: 56, cachelines: 1, members: 5 */
/* sum members: 52, holes: 1, sum holes: 4 */
/* last cacheline: 56 bytes */
struct Manager {
Hashmap * links_by_index; /* 0 8 */
Hashmap * links_by_name; /* 8 8 */
Hashmap * command_line_interfaces_by_name; /* 16 8 */
char * * ignored_interfaces; /* 24 8 */
LinkOperationalStateRange required_operstate; /* 32 8 */
AddressFamily required_family; /* 40 4 */
_Bool any; /* 44 1 */
_Bool requires_dns; /* 45 1 */
/* XXX 2 bytes hole, try to pack */
sd_netlink * rtnl; /* 48 8 */
sd_event_source * rtnl_event_source; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
sd_network_monitor * network_monitor; /* 64 8 */
sd_event_source * network_monitor_event_source; /* 72 8 */
sd_event * event; /* 80 8 */
sd_varlink * varlink_client; /* 88 8 */
DNSConfiguration * dns_configuration; /* 96 8 */
Hashmap * dns_configuration_by_link_index; /* 104 8 */
/* size: 112, cachelines: 2, members: 16 */
/* sum members: 110, holes: 1, sum holes: 2 */
/* last cacheline: 48 bytes */
struct Manager {
sd_netlink * rtnl; /* 0 8 */
sd_netlink * genl; /* 8 8 */
sd_event * event; /* 16 8 */
sd_resolve * resolve; /* 24 8 */
sd_bus * bus; /* 32 8 */
sd_varlink_server * varlink_server; /* 40 8 */
sd_device_monitor * device_monitor; /* 48 8 */
Hashmap * polkit_registry; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
int ethtool_fd; /* 64 4 */
int persistent_storage_fd; /* 68 4 */
KeepConfiguration keep_configuration; /* 72 4 */
IPv6PrivacyExtensions ipv6_privacy_extensions; /* 76 4 */
ManagerState state; /* 80 4 */
_Bool test_mode; /* 84 1 */
_Bool enumerating; /* 85 1 */
_Bool dirty; /* 86 1 */
_Bool manage_foreign_routes; /* 87 1 */
_Bool manage_foreign_rules; /* 88 1 */
_Bool manage_foreign_nexthops; /* 89 1 */
_Bool dhcp_server_persist_leases; /* 90 1 */
/* XXX 5 bytes hole, try to pack */
Set * dirty_links; /* 96 8 */
Set * new_wlan_ifindices; /* 104 8 */
char * state_file; /* 112 8 */
LinkOperationalState operational_state; /* 120 4 */
LinkCarrierState carrier_state; /* 124 4 */
/* --- cacheline 2 boundary (128 bytes) --- */
LinkAddressState address_state; /* 128 4 */
LinkAddressState ipv4_address_state; /* 132 4 */
LinkAddressState ipv6_address_state; /* 136 4 */
LinkOnlineState online_state; /* 140 4 */
Hashmap * links_by_index; /* 144 8 */
Hashmap * links_by_name; /* 152 8 */
Hashmap * links_by_hw_addr; /* 160 8 */
Hashmap * links_by_dhcp_pd_subnet_prefix; /* 168 8 */
Hashmap * netdevs; /* 176 8 */
OrderedHashmap * networks; /* 184 8 */
/* --- cacheline 3 boundary (192 bytes) --- */
OrderedSet * address_pools; /* 192 8 */
Set * dhcp_pd_subnet_ids; /* 200 8 */
UseDomains use_domains; /* 208 4 */
UseDomains dhcp_use_domains; /* 212 4 */
UseDomains dhcp6_use_domains; /* 216 4 */
UseDomains ndisc_use_domains; /* 220 4 */
DHCPClientIdentifier dhcp_client_identifier; /* 224 4 */
/* XXX 4 bytes hole, try to pack */
DUID dhcp_duid; /* 232 152 */
/* --- cacheline 6 boundary (384 bytes) --- */
DUID dhcp6_duid; /* 384 152 */
/* --- cacheline 8 boundary (512 bytes) was 24 bytes ago --- */
DUID duid_product_uuid; /* 536 152 */
/* --- cacheline 10 boundary (640 bytes) was 48 bytes ago --- */
_Bool has_product_uuid; /* 688 1 */
_Bool product_uuid_requested; /* 689 1 */
/* XXX 6 bytes hole, try to pack */
char * dynamic_hostname; /* 696 8 */
/* --- cacheline 11 boundary (704 bytes) --- */
char * dynamic_timezone; /* 704 8 */
Set * rules; /* 712 8 */
Hashmap * nexthops_by_id; /* 720 8 */
Set * nexthop_ids; /* 728 8 */
unsigned int route_remove_messages; /* 736 4 */
/* XXX 4 bytes hole, try to pack */
Set * routes; /* 744 8 */
Hashmap * address_labels_by_section; /* 752 8 */
unsigned int static_address_label_messages; /* 760 4 */
_Bool static_address_labels_configured; /* 764 1 */
/* XXX 3 bytes hole, try to pack */
/* --- cacheline 12 boundary (768 bytes) --- */
Hashmap * route_table_numbers_by_name; /* 768 8 */
Hashmap * route_table_names_by_number; /* 776 8 */
Hashmap * wiphy_by_index; /* 784 8 */
Hashmap * wiphy_by_name; /* 792 8 */
_Bool use_speed_meter; /* 800 1 */
/* XXX 7 bytes hole, try to pack */
sd_event_source * speed_meter_event_source; /* 808 8 */
usec_t speed_meter_interval_usec; /* 816 8 */
usec_t speed_meter_usec_new; /* 824 8 */
/* --- cacheline 13 boundary (832 bytes) --- */
usec_t speed_meter_usec_old; /* 832 8 */
FirewallContext * fw_ctx; /* 840 8 */
_Bool request_queued; /* 848 1 */
/* XXX 7 bytes hole, try to pack */
OrderedSet * request_queue; /* 856 8 */
OrderedSet * remove_request_queue; /* 864 8 */
Hashmap * tuntap_fds_by_name; /* 872 8 */
unsigned int reloading; /* 880 4 */
int serialization_fd; /* 884 4 */
int ip_forwarding[2]; /* 888 8 */
/* size: 896, cachelines: 14, members: 74 */
/* sum members: 860, holes: 7, sum holes: 36 */
struct Manager {
sd_event * event; /* 0 8 */
Set * workers_fixed; /* 8 8 */
Set * workers_dynamic; /* 16 8 */
int listen_fd; /* 24 4 */
int registry_fd; /* 28 4 */
RateLimit worker_ratelimit; /* 32 24 */
sd_event_source * deferred_start_worker_event_source; /* 56 8 */
/* size: 64, cachelines: 1, members: 7 */
struct Manager {
sd_bus * bus; /* 0 8 */
sd_event * event; /* 8 8 */
Hashmap * polkit_registry; /* 16 8 */
_Bool dry_run; /* 24 1 */
/* XXX 3 bytes hole, try to pack */
int swap_used_limit_permyriad; /* 28 4 */
loadavg_t default_mem_pressure_limit; /* 32 8 */
usec_t default_mem_pressure_duration_usec; /* 40 8 */
Hashmap * monitored_swap_cgroup_contexts; /* 48 8 */
Hashmap * monitored_mem_pressure_cgroup_contexts; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
Hashmap * monitored_mem_pressure_cgroup_contexts_candidates; /* 64 8 */
OomdSystemContext system_context; /* 72 32 */
usec_t mem_pressure_post_action_delay_start; /* 104 8 */
sd_event_source * swap_context_event_source; /* 112 8 */
sd_event_source * mem_pressure_context_event_source; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
sd_varlink * varlink_client; /* 128 8 */
sd_varlink_server * varlink_server; /* 136 8 */
/* size: 144, cachelines: 3, members: 16 */
/* sum members: 141, holes: 1, sum holes: 3 */
/* last cacheline: 16 bytes */
struct Manager {
sd_event * event; /* 0 8 */
sd_bus * bus; /* 8 8 */
Hashmap * polkit_registry; /* 16 8 */
Hashmap * image_cache; /* 24 8 */
sd_event_source * image_cache_defer_event; /* 32 8 */
Operation * operations; /* 40 8 */
unsigned int n_operations; /* 48 4 */
RuntimeScope runtime_scope; /* 52 4 */
/* size: 56, cachelines: 1, members: 8 */
/* last cacheline: 56 bytes */
struct Manager {
sd_event * event; /* 0 8 */
ResolveSupport llmnr_support; /* 8 4 */
ResolveSupport mdns_support; /* 12 4 */
DnssecMode dnssec_mode; /* 16 4 */
DnsOverTlsMode dns_over_tls_mode; /* 20 4 */
DnsCacheMode enable_cache; /* 24 4 */
_Bool cache_from_localhost; /* 28 1 */
/* XXX 3 bytes hole, try to pack */
DnsStubListenerMode dns_stub_listener_mode; /* 32 4 */
/* XXX 4 bytes hole, try to pack */
usec_t stale_retention_usec; /* 40 8 */
DnsTlsManagerData dnstls_data; /* 48 8 */
Hashmap * links; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
sd_netlink * rtnl; /* 64 8 */
sd_event_source * rtnl_event_source; /* 72 8 */
sd_network_monitor * network_monitor; /* 80 8 */
sd_event_source * network_event_source; /* 88 8 */
Hashmap * dns_transactions; /* 96 8 */
DnsQuery * dns_queries; /* 104 8 */
unsigned int n_dns_queries; /* 112 4 */
/* XXX 4 bytes hole, try to pack */
Hashmap * stub_queries_by_packet; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
DnsStream * dns_streams; /* 128 8 */
unsigned int n_dns_streams[4]; /* 136 16 */
DnsServer * dns_servers; /* 152 8 */
DnsServer * fallback_dns_servers; /* 160 8 */
unsigned int n_dns_servers; /* 168 4 */
/* XXX 4 bytes hole, try to pack */
DnsServer * current_dns_server; /* 176 8 */
DnsSearchDomain * search_domains; /* 184 8 */
/* --- cacheline 3 boundary (192 bytes) --- */
unsigned int n_search_domains; /* 192 4 */
_Bool need_builtin_fallbacks; /* 196 1 */
_Bool read_resolv_conf; /* 197 1 */
_Bool resolve_unicast_single_label; /* 198 1 */
/* XXX 1 byte hole, try to pack */
struct stat resolv_conf_stat; /* 200 144 */
/* --- cacheline 5 boundary (320 bytes) was 24 bytes ago --- */
DnsTrustAnchor trust_anchor; /* 344 24 */
DnsScope * dns_scopes; /* 368 8 */
DnsScope * unicast_scope; /* 376 8 */
/* --- cacheline 6 boundary (384 bytes) --- */
int llmnr_ipv4_udp_fd; /* 384 4 */
int llmnr_ipv6_udp_fd; /* 388 4 */
int llmnr_ipv4_tcp_fd; /* 392 4 */
int llmnr_ipv6_tcp_fd; /* 396 4 */
sd_event_source * llmnr_ipv4_udp_event_source; /* 400 8 */
sd_event_source * llmnr_ipv6_udp_event_source; /* 408 8 */
sd_event_source * llmnr_ipv4_tcp_event_source; /* 416 8 */
sd_event_source * llmnr_ipv6_tcp_event_source; /* 424 8 */
int mdns_ipv4_fd; /* 432 4 */
int mdns_ipv6_fd; /* 436 4 */
sd_event_source * mdns_ipv4_event_source; /* 440 8 */
/* --- cacheline 7 boundary (448 bytes) --- */
sd_event_source * mdns_ipv6_event_source; /* 448 8 */
Hashmap * dnssd_services; /* 456 8 */
sd_bus * bus; /* 464 8 */
char * full_hostname; /* 472 8 */
char * llmnr_hostname; /* 480 8 */
char * mdns_hostname; /* 488 8 */
DnsResourceKey * llmnr_host_ipv4_key; /* 496 8 */
DnsResourceKey * llmnr_host_ipv6_key; /* 504 8 */
/* --- cacheline 8 boundary (512 bytes) --- */
DnsResourceKey * mdns_host_ipv4_key; /* 512 8 */
DnsResourceKey * mdns_host_ipv6_key; /* 520 8 */
int hostname_fd; /* 528 4 */
/* XXX 4 bytes hole, try to pack */
sd_event_source * hostname_event_source; /* 536 8 */
unsigned int n_transactions_total; /* 544 4 */
unsigned int n_timeouts_total; /* 548 4 */
unsigned int n_timeouts_served_stale_total; /* 552 4 */
unsigned int n_failure_responses_total; /* 556 4 */
unsigned int n_failure_responses_served_stale_total; /* 560 4 */
unsigned int n_dnssec_verdict[4]; /* 564 16 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 9 boundary (576 bytes) was 8 bytes ago --- */
EtcHosts etc_hosts; /* 584 24 */
usec_t etc_hosts_last; /* 608 8 */
struct stat etc_hosts_stat; /* 616 144 */
/* --- cacheline 11 boundary (704 bytes) was 56 bytes ago --- */
_Bool read_etc_hosts; /* 760 1 */
/* XXX 7 bytes hole, try to pack */
/* --- cacheline 12 boundary (768 bytes) --- */
Set * refuse_record_types; /* 768 8 */
OrderedSet * dns_extra_stub_listeners; /* 776 8 */
sd_event_source * dns_stub_udp_event_source; /* 784 8 */
sd_event_source * dns_stub_tcp_event_source; /* 792 8 */
sd_event_source * dns_proxy_stub_udp_event_source; /* 800 8 */
sd_event_source * dns_proxy_stub_tcp_event_source; /* 808 8 */
Hashmap * polkit_registry; /* 816 8 */
sd_varlink_server * varlink_server; /* 824 8 */
/* --- cacheline 13 boundary (832 bytes) --- */
sd_varlink_server * varlink_monitor_server; /* 832 8 */
Set * varlink_query_results_subscription; /* 840 8 */
Set * varlink_dns_configuration_subscription; /* 848 8 */
sd_json_variant * dns_configuration_json; /* 856 8 */
sd_netlink_slot * netlink_new_route_slot; /* 864 8 */
sd_netlink_slot * netlink_del_route_slot; /* 872 8 */
sd_event_source * clock_change_event_source; /* 880 8 */
SocketGraveyard * socket_graveyard; /* 888 8 */
/* --- cacheline 14 boundary (896 bytes) --- */
SocketGraveyard * socket_graveyard_oldest; /* 896 8 */
size_t n_socket_graveyard; /* 904 8 */
struct sigrtmin18_info sigrtmin18_info; /* 912 16 */
/* size: 928, cachelines: 15, members: 86 */
/* sum members: 897, holes: 8, sum holes: 31 */
/* last cacheline: 32 bytes */
struct Manager {
sd_event * event; /* 0 8 */
sd_bus * bus; /* 8 8 */
Hashmap * targets; /* 16 8 */
uint64_t last_job_id; /* 24 8 */
Hashmap * jobs; /* 32 8 */
Hashmap * polkit_registry; /* 40 8 */
char * notify_socket_path; /* 48 8 */
RuntimeScope runtime_scope; /* 56 4 */
/* size: 64, cachelines: 1, members: 8 */
/* padding: 4 */
struct Manager {
sd_bus * bus; /* 0 8 */
sd_event * event; /* 8 8 */
sd_resolve * resolve; /* 16 8 */
ServerName * system_servers; /* 24 8 */
ServerName * link_servers; /* 32 8 */
ServerName * runtime_servers; /* 40 8 */
ServerName * fallback_servers; /* 48 8 */
RateLimit ratelimit; /* 56 24 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
_Bool exhausted_servers; /* 80 1 */
_Bool have_fallbacks; /* 81 1 */
/* XXX 6 bytes hole, try to pack */
sd_event_source * network_event_source; /* 88 8 */
sd_network_monitor * network_monitor; /* 96 8 */
sd_resolve_query * resolve_query; /* 104 8 */
sd_event_source * event_receive; /* 112 8 */
ServerName * current_server_name; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
ServerAddress * current_server_address; /* 128 8 */
int server_socket; /* 136 4 */
int missed_replies; /* 140 4 */
uint64_t packet_count; /* 144 8 */
sd_event_source * event_timeout; /* 152 8 */
_Bool talking; /* 160 1 */
/* XXX 7 bytes hole, try to pack */
Hashmap * polkit_registry; /* 168 8 */
struct timespec trans_time_mon; /* 176 16 */
/* --- cacheline 3 boundary (192 bytes) --- */
struct timespec trans_time; /* 192 16 */
struct ntp_ts request_nonce; /* 208 8 */
usec_t retry_interval; /* 216 8 */
usec_t connection_retry_usec; /* 224 8 */
_Bool pending; /* 232 1 */
/* XXX 7 bytes hole, try to pack */
sd_event_source * event_timer; /* 240 8 */
usec_t poll_interval_usec; /* 248 8 */
/* --- cacheline 4 boundary (256 bytes) --- */
usec_t poll_interval_min_usec; /* 256 8 */
usec_t poll_interval_max_usec; /* 264 8 */
_Bool poll_resync; /* 272 1 */
/* XXX 7 bytes hole, try to pack */
struct {
double offset; /* 280 8 */
double delay; /* 288 8 */
} samples[8]; /* 280 128 */
struct {
double offset; /* 0 8 */
double delay; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
struct Manager {
sd_bus * bus; /* 0 8 */
sd_event * event; /* 8 8 */
sd_resolve * resolve; /* 16 8 */
ServerName * system_servers; /* 24 8 */
ServerName * link_servers; /* 32 8 */
ServerName * runtime_servers; /* 40 8 */
ServerName * fallback_servers; /* 48 8 */
RateLimit ratelimit; /* 56 24 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
_Bool exhausted_servers; /* 80 1 */
_Bool have_fallbacks; /* 81 1 */
/* XXX 6 bytes hole, try to pack */
sd_event_source * network_event_source; /* 88 8 */
sd_network_monitor * network_monitor; /* 96 8 */
sd_resolve_query * resolve_query; /* 104 8 */
sd_event_source * event_receive; /* 112 8 */
ServerName * current_server_name; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
ServerAddress * current_server_address; /* 128 8 */
int server_socket; /* 136 4 */
int missed_replies; /* 140 4 */
uint64_t packet_count; /* 144 8 */
sd_event_source * event_timeout; /* 152 8 */
_Bool talking; /* 160 1 */
/* XXX 7 bytes hole, try to pack */
Hashmap * polkit_registry; /* 168 8 */
struct timespec trans_time_mon; /* 176 16 */
/* --- cacheline 3 boundary (192 bytes) --- */
struct timespec trans_time; /* 192 16 */
struct ntp_ts request_nonce; /* 208 8 */
usec_t retry_interval; /* 216 8 */
usec_t connection_retry_usec; /* 224 8 */
_Bool pending; /* 232 1 */
/* XXX 7 bytes hole, try to pack */
sd_event_source * event_timer; /* 240 8 */
usec_t poll_interval_usec; /* 248 8 */
/* --- cacheline 4 boundary (256 bytes) --- */
usec_t poll_interval_min_usec; /* 256 8 */
usec_t poll_interval_max_usec; /* 264 8 */
_Bool poll_resync; /* 272 1 */
/* XXX 7 bytes hole, try to pack */
struct {
double offset; /* 280 8 */
double delay; /* 288 8 */
} samples[8]; /* 280 128 */
struct {
double offset; /* 0 8 */
double delay; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
struct Manager {
sd_bus * bus; /* 0 8 */
sd_event * event; /* 8 8 */
sd_resolve * resolve; /* 16 8 */
ServerName * system_servers; /* 24 8 */
ServerName * link_servers; /* 32 8 */
ServerName * runtime_servers; /* 40 8 */
ServerName * fallback_servers; /* 48 8 */
RateLimit ratelimit; /* 56 24 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
_Bool exhausted_servers; /* 80 1 */
_Bool have_fallbacks; /* 81 1 */
/* XXX 6 bytes hole, try to pack */
sd_event_source * network_event_source; /* 88 8 */
sd_network_monitor * network_monitor; /* 96 8 */
sd_resolve_query * resolve_query; /* 104 8 */
sd_event_source * event_receive; /* 112 8 */
ServerName * current_server_name; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
ServerAddress * current_server_address; /* 128 8 */
int server_socket; /* 136 4 */
int missed_replies; /* 140 4 */
uint64_t packet_count; /* 144 8 */
sd_event_source * event_timeout; /* 152 8 */
_Bool talking; /* 160 1 */
/* XXX 7 bytes hole, try to pack */
Hashmap * polkit_registry; /* 168 8 */
struct timespec trans_time_mon; /* 176 16 */
/* --- cacheline 3 boundary (192 bytes) --- */
struct timespec trans_time; /* 192 16 */
struct ntp_ts request_nonce; /* 208 8 */
usec_t retry_interval; /* 216 8 */
usec_t connection_retry_usec; /* 224 8 */
_Bool pending; /* 232 1 */
/* XXX 7 bytes hole, try to pack */
sd_event_source * event_timer; /* 240 8 */
usec_t poll_interval_usec; /* 248 8 */
/* --- cacheline 4 boundary (256 bytes) --- */
usec_t poll_interval_min_usec; /* 256 8 */
usec_t poll_interval_max_usec; /* 264 8 */
_Bool poll_resync; /* 272 1 */
/* XXX 7 bytes hole, try to pack */
struct {
double offset; /* 280 8 */
double delay; /* 288 8 */
} samples[8]; /* 280 128 */
struct {
double offset; /* 0 8 */
double delay; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
struct Manager {
sd_bus * bus; /* 0 8 */
sd_event * event; /* 8 8 */
sd_resolve * resolve; /* 16 8 */
ServerName * system_servers; /* 24 8 */
ServerName * link_servers; /* 32 8 */
ServerName * runtime_servers; /* 40 8 */
ServerName * fallback_servers; /* 48 8 */
RateLimit ratelimit; /* 56 24 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
_Bool exhausted_servers; /* 80 1 */
_Bool have_fallbacks; /* 81 1 */
/* XXX 6 bytes hole, try to pack */
sd_event_source * network_event_source; /* 88 8 */
sd_network_monitor * network_monitor; /* 96 8 */
sd_resolve_query * resolve_query; /* 104 8 */
sd_event_source * event_receive; /* 112 8 */
ServerName * current_server_name; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
ServerAddress * current_server_address; /* 128 8 */
int server_socket; /* 136 4 */
int missed_replies; /* 140 4 */
uint64_t packet_count; /* 144 8 */
sd_event_source * event_timeout; /* 152 8 */
_Bool talking; /* 160 1 */
/* XXX 7 bytes hole, try to pack */
Hashmap * polkit_registry; /* 168 8 */
struct timespec trans_time_mon; /* 176 16 */
/* --- cacheline 3 boundary (192 bytes) --- */
struct timespec trans_time; /* 192 16 */
struct ntp_ts request_nonce; /* 208 8 */
usec_t retry_interval; /* 216 8 */
usec_t connection_retry_usec; /* 224 8 */
_Bool pending; /* 232 1 */
/* XXX 7 bytes hole, try to pack */
sd_event_source * event_timer; /* 240 8 */
usec_t poll_interval_usec; /* 248 8 */
/* --- cacheline 4 boundary (256 bytes) --- */
usec_t poll_interval_min_usec; /* 256 8 */
usec_t poll_interval_max_usec; /* 264 8 */
_Bool poll_resync; /* 272 1 */
/* XXX 7 bytes hole, try to pack */
struct {
double offset; /* 280 8 */
double delay; /* 288 8 */
} samples[8]; /* 280 128 */
struct {
double offset; /* 0 8 */
double delay; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
struct Manager {
sd_bus * bus; /* 0 8 */
sd_event * event; /* 8 8 */
sd_resolve * resolve; /* 16 8 */
ServerName * system_servers; /* 24 8 */
ServerName * link_servers; /* 32 8 */
ServerName * runtime_servers; /* 40 8 */
ServerName * fallback_servers; /* 48 8 */
RateLimit ratelimit; /* 56 24 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
_Bool exhausted_servers; /* 80 1 */
_Bool have_fallbacks; /* 81 1 */
/* XXX 6 bytes hole, try to pack */
sd_event_source * network_event_source; /* 88 8 */
sd_network_monitor * network_monitor; /* 96 8 */
sd_resolve_query * resolve_query; /* 104 8 */
sd_event_source * event_receive; /* 112 8 */
ServerName * current_server_name; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
ServerAddress * current_server_address; /* 128 8 */
int server_socket; /* 136 4 */
int missed_replies; /* 140 4 */
uint64_t packet_count; /* 144 8 */
sd_event_source * event_timeout; /* 152 8 */
_Bool talking; /* 160 1 */
/* XXX 7 bytes hole, try to pack */
Hashmap * polkit_registry; /* 168 8 */
struct timespec trans_time_mon; /* 176 16 */
/* --- cacheline 3 boundary (192 bytes) --- */
struct timespec trans_time; /* 192 16 */
struct ntp_ts request_nonce; /* 208 8 */
usec_t retry_interval; /* 216 8 */
usec_t connection_retry_usec; /* 224 8 */
_Bool pending; /* 232 1 */
/* XXX 7 bytes hole, try to pack */
sd_event_source * event_timer; /* 240 8 */
usec_t poll_interval_usec; /* 248 8 */
/* --- cacheline 4 boundary (256 bytes) --- */
usec_t poll_interval_min_usec; /* 256 8 */
usec_t poll_interval_max_usec; /* 264 8 */
_Bool poll_resync; /* 272 1 */
/* XXX 7 bytes hole, try to pack */
struct {
double offset; /* 280 8 */
double delay; /* 288 8 */
} samples[8]; /* 280 128 */
struct {
double offset; /* 0 8 */
double delay; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
struct Manager {
sd_event * event; /* 0 8 */
Set * workers_fixed; /* 8 8 */
Set * workers_dynamic; /* 16 8 */
int listen_fd; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
RateLimit worker_ratelimit; /* 32 24 */
sd_event_source * deferred_start_worker_event_source; /* 56 8 */
/* size: 64, cachelines: 1, members: 6 */
/* sum members: 60, holes: 1, sum holes: 4 */
struct Manager {
sd_bus * bus; /* 0 8 */
sd_event * event; /* 8 8 */
sd_resolve * resolve; /* 16 8 */
ServerName * system_servers; /* 24 8 */
ServerName * link_servers; /* 32 8 */
ServerName * runtime_servers; /* 40 8 */
ServerName * fallback_servers; /* 48 8 */
RateLimit ratelimit; /* 56 24 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
_Bool exhausted_servers; /* 80 1 */
_Bool have_fallbacks; /* 81 1 */
/* XXX 6 bytes hole, try to pack */
sd_event_source * network_event_source; /* 88 8 */
sd_network_monitor * network_monitor; /* 96 8 */
sd_resolve_query * resolve_query; /* 104 8 */
sd_event_source * event_receive; /* 112 8 */
ServerName * current_server_name; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
ServerAddress * current_server_address; /* 128 8 */
int server_socket; /* 136 4 */
int missed_replies; /* 140 4 */
uint64_t packet_count; /* 144 8 */
sd_event_source * event_timeout; /* 152 8 */
_Bool talking; /* 160 1 */
/* XXX 7 bytes hole, try to pack */
Hashmap * polkit_registry; /* 168 8 */
struct timespec trans_time_mon; /* 176 16 */
/* --- cacheline 3 boundary (192 bytes) --- */
struct timespec trans_time; /* 192 16 */
struct ntp_ts request_nonce; /* 208 8 */
usec_t retry_interval; /* 216 8 */
usec_t connection_retry_usec; /* 224 8 */
_Bool pending; /* 232 1 */
/* XXX 7 bytes hole, try to pack */
sd_event_source * event_timer; /* 240 8 */
usec_t poll_interval_usec; /* 248 8 */
/* --- cacheline 4 boundary (256 bytes) --- */
usec_t poll_interval_min_usec; /* 256 8 */
usec_t poll_interval_max_usec; /* 264 8 */
_Bool poll_resync; /* 272 1 */
/* XXX 7 bytes hole, try to pack */
struct {
double offset; /* 280 8 */
double delay; /* 288 8 */
} samples[8]; /* 280 128 */
struct {
double offset; /* 0 8 */
double delay; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
struct Manager {
sd_event * event; /* 0 8 */
Hashmap * workers; /* 8 8 */
Event * events; /* 16 8 */
Event * last_event; /* 24 8 */
char * cgroup; /* 32 8 */
UdevRules * rules; /* 40 8 */
Hashmap * properties; /* 48 8 */
sd_device_monitor * monitor; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
UdevCtrl * ctrl; /* 64 8 */
sd_varlink_server * varlink_server; /* 72 8 */
char * worker_notify_socket_path; /* 80 8 */
int inotify_fd; /* 88 4 */
/* XXX 4 bytes hole, try to pack */
sd_event_source * inotify_event; /* 96 8 */
Set * synthesize_change_child_event_sources; /* 104 8 */
sd_event_source * kill_workers_event; /* 112 8 */
Hashmap * locked_events_by_disk; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
Prioq * locked_events_by_time; /* 128 8 */
sd_event_source * requeue_locked_events_timer_event_source; /* 136 8 */
usec_t last_usec; /* 144 8 */
UdevConfig config_by_udev_conf; /* 152 40 */
/* --- cacheline 3 boundary (192 bytes) --- */
UdevConfig config_by_command; /* 192 40 */
UdevConfig config_by_kernel; /* 232 40 */
/* --- cacheline 4 boundary (256 bytes) was 16 bytes ago --- */
UdevConfig config_by_control; /* 272 40 */
UdevConfig config; /* 312 40 */
/* --- cacheline 5 boundary (320 bytes) was 32 bytes ago --- */
_Bool queue_file_created; /* 352 1 */
_Bool stop_exec_queue; /* 353 1 */
_Bool exit; /* 354 1 */
/* size: 360, cachelines: 6, members: 27 */
/* sum members: 351, holes: 1, sum holes: 4 */
/* padding: 5 */
/* last cacheline: 40 bytes */
struct GroupRecord {
unsigned int n_ref; /* 0 4 */
UserRecordMask mask; /* 4 4 */
_Bool incomplete; /* 8 1 */
/* XXX 7 bytes hole, try to pack */
char * group_name; /* 16 8 */
char * realm; /* 24 8 */
char * group_name_and_realm_auto; /* 32 8 */
sd_id128_t uuid; /* 40 16 */
char * description; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
UserDisposition disposition; /* 64 4 */
/* XXX 4 bytes hole, try to pack */
uint64_t last_change_usec; /* 72 8 */
gid_t gid; /* 80 4 */
/* XXX 4 bytes hole, try to pack */
char * * members; /* 88 8 */
char * service; /* 96 8 */
char * * administrators; /* 104 8 */
char * * hashed_password; /* 112 8 */
sd_json_variant * json; /* 120 8 */
/* size: 128, cachelines: 2, members: 16 */
/* sum members: 113, holes: 3, sum holes: 15 */
struct Group {
char * path; /* 0 8 */
_Bool n_tasks_valid; /* 8 1 */
_Bool cpu_valid; /* 9 1 */
_Bool memory_valid; /* 10 1 */
_Bool io_valid; /* 11 1 */
unsigned int cpu_iteration; /* 12 4 */
nsec_t cpu_usage; /* 16 8 */
nsec_t cpu_timestamp; /* 24 8 */
double cpu_fraction; /* 32 8 */
uint64_t n_tasks; /* 40 8 */
uint64_t memory; /* 48 8 */
unsigned int io_iteration; /* 56 4 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 1 boundary (64 bytes) --- */
uint64_t io_input; /* 64 8 */
uint64_t io_output; /* 72 8 */
nsec_t io_timestamp; /* 80 8 */
uint64_t io_input_bps; /* 88 8 */
uint64_t io_output_bps; /* 96 8 */
/* size: 104, cachelines: 2, members: 17 */
/* sum members: 100, holes: 1, sum holes: 4 */
/* last cacheline: 40 bytes */
struct PickFilter {
const char * basename; /* 0 8 */
const char * version; /* 8 8 */
uint32_t type_mask; /* 16 4 */
Architecture architecture; /* 20 4 */
char * const * suffix; /* 24 8 */
/* size: 32, cachelines: 1, members: 5 */
/* last cacheline: 32 bytes */
struct Wiphy {
Manager * manager; /* 0 8 */
char * name; /* 8 8 */
uint32_t index; /* 16 4 */
RFKillState rfkill_state; /* 20 4 */
sd_device * dev; /* 24 8 */
sd_device * rfkill; /* 32 8 */
/* size: 40, cachelines: 1, members: 6 */
/* last cacheline: 40 bytes */
struct Server {
int epoll_fd; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
Fifo * fifos; /* 8 8 */
unsigned int n_fifos; /* 16 4 */
_Bool quit; /* 20 1 */
/* XXX 3 bytes hole, try to pack */
sd_bus * bus; /* 24 8 */
/* size: 32, cachelines: 1, members: 5 */
/* sum members: 25, holes: 2, sum holes: 7 */
/* last cacheline: 32 bytes */
struct Server {
char * namespace; /* 0 8 */
int syslog_fd; /* 8 4 */
int native_fd; /* 12 4 */
int stdout_fd; /* 16 4 */
int dev_kmsg_fd; /* 20 4 */
int audit_fd; /* 24 4 */
int hostname_fd; /* 28 4 */
int notify_fd; /* 32 4 */
int forward_socket_fd; /* 36 4 */
sd_event * event; /* 40 8 */
sd_event_source * syslog_event_source; /* 48 8 */
sd_event_source * native_event_source; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
sd_event_source * stdout_event_source; /* 64 8 */
sd_event_source * dev_kmsg_event_source; /* 72 8 */
sd_event_source * audit_event_source; /* 80 8 */
sd_event_source * sync_event_source; /* 88 8 */
sd_event_source * sigusr1_event_source; /* 96 8 */
sd_event_source * sigusr2_event_source; /* 104 8 */
sd_event_source * sigterm_event_source; /* 112 8 */
sd_event_source * sigint_event_source; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
sd_event_source * sigrtmin1_event_source; /* 128 8 */
sd_event_source * hostname_event_source; /* 136 8 */
sd_event_source * notify_event_source; /* 144 8 */
sd_event_source * watchdog_event_source; /* 152 8 */
sd_event_source * idle_event_source; /* 160 8 */
struct sigrtmin18_info sigrtmin18_info; /* 168 16 */
JournalFile * runtime_journal; /* 184 8 */
/* --- cacheline 3 boundary (192 bytes) --- */
JournalFile * system_journal; /* 192 8 */
OrderedHashmap * user_journals; /* 200 8 */
SeqnumData * seqnum; /* 208 8 */
char * buffer; /* 216 8 */
OrderedHashmap * ratelimit_groups_by_id; /* 224 8 */
usec_t sync_interval_usec; /* 232 8 */
usec_t ratelimit_interval; /* 240 8 */
unsigned int ratelimit_burst; /* 248 4 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 4 boundary (256 bytes) --- */
JournalStorage runtime_storage; /* 256 104 */
/* --- cacheline 5 boundary (320 bytes) was 40 bytes ago --- */
JournalStorage system_storage; /* 360 104 */
/* --- cacheline 7 boundary (448 bytes) was 16 bytes ago --- */
JournalCompressOptions compress; /* 464 16 */
_Bool seal; /* 480 1 */
_Bool read_kmsg; /* 481 1 */
/* XXX 2 bytes hole, try to pack */
int set_audit; /* 484 4 */
_Bool forward_to_kmsg; /* 488 1 */
_Bool forward_to_syslog; /* 489 1 */
_Bool forward_to_console; /* 490 1 */
_Bool forward_to_wall; /* 491 1 */
/* XXX 4 bytes hole, try to pack */
SocketAddress forward_to_socket; /* 496 144 */
/* --- cacheline 10 boundary (640 bytes) --- */
unsigned int n_forward_syslog_missed; /* 640 4 */
/* XXX 4 bytes hole, try to pack */
usec_t last_warn_forward_syslog_missed; /* 648 8 */
usec_t max_retention_usec; /* 656 8 */
usec_t max_file_usec; /* 664 8 */
usec_t oldest_file_usec; /* 672 8 */
StdoutStream * stdout_streams; /* 680 8 */
StdoutStream * stdout_streams_notify_queue; /* 688 8 */
unsigned int n_stdout_streams; /* 696 4 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 11 boundary (704 bytes) --- */
char * tty_path; /* 704 8 */
int max_level_store; /* 712 4 */
int max_level_syslog; /* 716 4 */
int max_level_kmsg; /* 720 4 */
int max_level_console; /* 724 4 */
int max_level_wall; /* 728 4 */
int max_level_socket; /* 732 4 */
Storage storage; /* 736 4 */
SplitMode split_mode; /* 740 4 */
MMapCache * mmap; /* 744 8 */
Set * deferred_closes; /* 752 8 */
uint64_t * kernel_seqnum; /* 760 8 */
/* --- cacheline 12 boundary (768 bytes) --- */
RateLimit kmsg_own_ratelimit; /* 768 24 */
_Bool send_watchdog:1; /* 792: 0 1 */
_Bool sent_notify_ready:1; /* 792: 1 1 */
_Bool sync_scheduled:1; /* 792: 2 1 */
/* XXX 5 bits hole, try to pack */
char machine_id_field[45]; /* 793 45 */
/* --- cacheline 13 boundary (832 bytes) was 6 bytes ago --- */
char boot_id_field[42]; /* 838 42 */
char * hostname_field; /* 880 8 */
char * namespace_field; /* 888 8 */
/* --- cacheline 14 boundary (896 bytes) --- */
char * runtime_directory; /* 896 8 */
char * cgroup_root; /* 904 8 */
usec_t watchdog_usec; /* 912 8 */
usec_t last_realtime_clock; /* 920 8 */
size_t line_max; /* 928 8 */
Hashmap * client_contexts; /* 936 8 */
Prioq * client_contexts_lru; /* 944 8 */
usec_t last_cache_pid_flush; /* 952 8 */
/* --- cacheline 15 boundary (960 bytes) --- */
ClientContext * my_context; /* 960 8 */
ClientContext * pid1_context; /* 968 8 */
sd_varlink_server * varlink_server; /* 976 8 */
usec_t native_timestamp; /* 984 8 */
usec_t syslog_timestamp; /* 992 8 */
usec_t dev_kmsg_timestamp; /* 1000 8 */
Prioq * sync_req_realtime_prioq; /* 1008 8 */
Prioq * sync_req_boottime_prioq; /* 1016 8 */
/* --- cacheline 16 boundary (1024 bytes) --- */
SyncReq * sync_req_pending_rqlen; /* 1024 8 */
/* size: 1032, cachelines: 17, members: 91 */
/* sum members: 1013, holes: 5, sum holes: 18 */
/* sum bitfield members: 3 bits, bit holes: 1, sum bit holes: 5 bits */
/* last cacheline: 8 bytes */
struct ServerAddress {
ServerName * name; /* 0 8 */
union sockaddr_union sockaddr; /* 8 128 */
/* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
socklen_t socklen; /* 136 4 */
/* XXX 4 bytes hole, try to pack */
ServerAddress * addresses_next; /* 144 8 */
ServerAddress * addresses_prev; /* 152 8 */
/* size: 160, cachelines: 3, members: 5 */
/* sum members: 156, holes: 1, sum holes: 4 */
/* last cacheline: 32 bytes */
struct ServerName {
Manager * manager; /* 0 8 */
_Bool marked; /* 8 1 */
/* XXX 3 bytes hole, try to pack */
ServerType type; /* 12 4 */
char * string; /* 16 8 */
ServerAddress * addresses; /* 24 8 */
ServerName * names_next; /* 32 8 */
ServerName * names_prev; /* 40 8 */
/* size: 48, cachelines: 1, members: 7 */
/* sum members: 45, holes: 1, sum holes: 3 */
/* last cacheline: 48 bytes */
struct ClockState {
int timerfd_fd; /* 0 4 */
int adjtime_state; /* 4 4 */
sd_event_source * timerfd_event_source; /* 8 8 */
sd_event_source * inotify_event_source; /* 16 8 */
int inotify_fd; /* 24 4 */
int run_systemd_wd; /* 28 4 */
int run_systemd_timesync_wd; /* 32 4 */
_Bool has_watchfile; /* 36 1 */
/* size: 40, cachelines: 1, members: 8 */
/* padding: 3 */
/* last cacheline: 40 bytes */
struct HierarchyTokenBucketClass {
TClass meta; /* 0 56 */
uint32_t priority; /* 56 4 */
uint32_t quantum; /* 60 4 */
/* --- cacheline 1 boundary (64 bytes) --- */
uint32_t mtu; /* 64 4 */
uint16_t overhead; /* 68 2 */
/* XXX 2 bytes hole, try to pack */
uint64_t rate; /* 72 8 */
uint32_t buffer; /* 80 4 */
uint32_t ceil_buffer; /* 84 4 */
uint64_t ceil_rate; /* 88 8 */
/* size: 96, cachelines: 2, members: 9 */
/* sum members: 94, holes: 1, sum holes: 2 */
/* last cacheline: 32 bytes */
struct QDiscVTable {
size_t object_size; /* 0 8 */
const char * tca_kind; /* 8 8 */
int (*init)(QDisc *); /* 16 8 */
int (*fill_message)(Link *, QDisc *, sd_netlink_message *); /* 24 8 */
int (*verify)(QDisc *); /* 32 8 */
int (*is_ready)(QDisc *, Link *); /* 40 8 */
/* size: 48, cachelines: 1, members: 6 */
/* last cacheline: 48 bytes */
struct QDisc {
Link * link; /* 0 8 */
Network * network; /* 8 8 */
ConfigSection * section; /* 16 8 */
NetworkConfigSource source; /* 24 4 */
NetworkConfigState state; /* 28 4 */
unsigned int n_ref; /* 32 4 */
uint32_t handle; /* 36 4 */
uint32_t parent; /* 40 4 */
QDiscKind kind; /* 44 4 */
char * tca_kind; /* 48 8 */
/* size: 56, cachelines: 1, members: 10 */
/* last cacheline: 56 bytes */
struct ControlledDelay {
QDisc meta; /* 0 56 */
usec_t interval_usec; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
usec_t target_usec; /* 64 8 */
usec_t ce_threshold_usec; /* 72 8 */
uint32_t packet_limit; /* 80 4 */
int ecn; /* 84 4 */
/* size: 88, cachelines: 2, members: 6 */
/* last cacheline: 24 bytes */
struct Spawn {
sd_device * device; /* 0 8 */
const char * cmd; /* 8 8 */
PidRef pidref; /* 16 16 */
usec_t timeout_warn_usec; /* 32 8 */
usec_t timeout_usec; /* 40 8 */
int timeout_signal; /* 48 4 */
_Bool accept_failure; /* 52 1 */
_Bool truncated; /* 53 1 */
/* XXX 2 bytes hole, try to pack */
usec_t event_birth_usec; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
usec_t cmd_birth_usec; /* 64 8 */
int fd_stdout; /* 72 4 */
int fd_stderr; /* 76 4 */
char * result; /* 80 8 */
size_t result_size; /* 88 8 */
size_t result_len; /* 96 8 */
/* size: 104, cachelines: 2, members: 15 */
/* sum members: 102, holes: 1, sum holes: 2 */
/* last cacheline: 40 bytes */
struct UserNamespaceInfo {
char * name; /* 0 8 */
uint64_t userns_inode; /* 8 8 */
uid_t owner; /* 16 4 */
uint32_t size; /* 20 4 */
uid_t start_uid; /* 24 4 */
uid_t target_uid; /* 28 4 */
gid_t start_gid; /* 32 4 */
gid_t target_gid; /* 36 4 */
uint64_t * cgroups; /* 40 8 */
size_t n_cgroups; /* 48 8 */
char * * netifs; /* 56 8 */
/* size: 64, cachelines: 1, members: 11 */
struct RequestMeta {
sd_journal * journal; /* 0 8 */
char * cursor; /* 8 8 */
usec_t since; /* 16 8 */
usec_t until; /* 24 8 */
int64_t n_skip; /* 32 8 */
uint64_t n_entries; /* 40 8 */
_Bool n_entries_set; /* 48 1 */
_Bool since_set; /* 49 1 */
_Bool until_set; /* 50 1 */
/* XXX 1 byte hole, try to pack */
OutputMode mode; /* 52 4 */
FILE * tmp; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
uint64_t delta; /* 64 8 */
uint64_t size; /* 72 8 */
int argument_parse_error; /* 80 4 */
_Bool follow; /* 84 1 */
_Bool discrete; /* 85 1 */
/* size: 88, cachelines: 2, members: 16 */
/* sum members: 85, holes: 1, sum holes: 1 */
/* padding: 2 */
/* last cacheline: 24 bytes */
struct sd_ndisc_router {
ICMP6Packet * packet; /* 0 8 */
unsigned int n_ref; /* 8 4 */
uint8_t hop_limit; /* 12 1 */
uint8_t flags; /* 13 1 */
uint8_t preference; /* 14 1 */
/* XXX 1 byte hole, try to pack */
usec_t lifetime_usec; /* 16 8 */
usec_t reachable_time_usec; /* 24 8 */
usec_t retransmission_time_usec; /* 32 8 */
Set * options; /* 40 8 */
Iterator iterator; /* 48 16 */
/* --- cacheline 1 boundary (64 bytes) --- */
sd_ndisc_option * current_option; /* 64 8 */
/* size: 72, cachelines: 2, members: 11 */
/* sum members: 71, holes: 1, sum holes: 1 */
/* last cacheline: 8 bytes */ |
Masterstruct LoopDevice {
unsigned int n_ref; /* 0 4 */
int fd; /* 4 4 */
int lock_fd; /* 8 4 */
int nr; /* 12 4 */
dev_t devno; /* 16 8 */
char * node; /* 24 8 */
sd_device * dev; /* 32 8 */
char * backing_file; /* 40 8 */
_Bool relinquished; /* 48 1 */
_Bool created; /* 49 1 */
/* XXX 6 bytes hole, try to pack */
dev_t backing_devno; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
ino_t backing_inode; /* 64 8 */
uint64_t diskseq; /* 72 8 */
uint32_t sector_size; /* 80 4 */
/* XXX 4 bytes hole, try to pack */
uint64_t device_size; /* 88 8 */
/* size: 96, cachelines: 2, members: 15 */
/* sum members: 86, holes: 2, sum holes: 10 */
/* last cacheline: 32 bytes */
struct SSHInfo {
unsigned int cid; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
char * private_key_path; /* 8 8 */
unsigned int port; /* 16 4 */
/* size: 24, cachelines: 1, members: 3 */
/* sum members: 16, holes: 1, sum holes: 4 */
/* padding: 4 */
/* last cacheline: 24 bytes */
struct machine_info {
_Bool is_host; /* 0 1 */
/* XXX 7 bytes hole, try to pack */
char * name; /* 8 8 */
char * version; /* 16 8 */
char * tainted; /* 24 8 */
uint64_t timestamp; /* 32 8 */
uint32_t n_names; /* 40 4 */
uint32_t n_failed_units; /* 44 4 */
uint32_t n_jobs; /* 48 4 */
/* XXX 4 bytes hole, try to pack */
char * control_group; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
char * state; /* 64 8 */
/* size: 72, cachelines: 2, members: 10 */
/* sum members: 61, holes: 2, sum holes: 11 */
/* last cacheline: 8 bytes */
struct ManagedOOMMessage {
ManagedOOMMode mode; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
char * path; /* 8 8 */
char * property; /* 16 8 */
uint32_t limit; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
usec_t duration; /* 32 8 */
/* size: 40, cachelines: 1, members: 5 */
/* sum members: 32, holes: 2, sum holes: 8 */
/* last cacheline: 40 bytes */
struct NTPStatusInfo {
const char * server_name; /* 0 8 */
char * server_address; /* 8 8 */
usec_t poll_interval; /* 16 8 */
usec_t poll_max; /* 24 8 */
usec_t poll_min; /* 32 8 */
usec_t root_distance_max; /* 40 8 */
uint32_t leap; /* 48 4 */
uint32_t version; /* 52 4 */
uint32_t mode; /* 56 4 */
uint32_t stratum; /* 60 4 */
/* --- cacheline 1 boundary (64 bytes) --- */
int32_t precision; /* 64 4 */
/* XXX 4 bytes hole, try to pack */
usec_t root_delay; /* 72 8 */
usec_t root_dispersion; /* 80 8 */
union {
char str[5]; /* 88 5 */
uint32_t val; /* 88 4 */
} reference; /* 88 8 */
union {
char str[5]; /* 0 5 */
uint32_t val; /* 0 4 */
struct DNSServer {
struct iovec addr; /* 0 16 */
int family; /* 16 4 */
uint16_t port; /* 20 2 */
/* XXX 2 bytes hole, try to pack */
int ifindex; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
char * server_name; /* 32 8 */
_Bool accessible; /* 40 1 */
/* size: 48, cachelines: 1, members: 6 */
/* sum members: 35, holes: 2, sum holes: 6 */
/* padding: 7 */
/* last cacheline: 48 bytes */
struct SyncReq {
Server * server; /* 0 8 */
sd_varlink * link; /* 8 8 */
_Bool offline; /* 16 1 */
/* XXX 7 bytes hole, try to pack */
usec_t realtime; /* 24 8 */
usec_t boottime; /* 32 8 */
sd_event_source * idle_event_source; /* 40 8 */
uint32_t pending_rqlen; /* 48 4 */
/* XXX 4 bytes hole, try to pack */
SyncReq * pending_rqlen_next; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
SyncReq * pending_rqlen_prev; /* 64 8 */
StreamSyncReq * stream_sync_reqs; /* 72 8 */
unsigned int realtime_prioq_idx; /* 80 4 */
unsigned int boottime_prioq_idx; /* 84 4 */
/* size: 88, cachelines: 2, members: 12 */
/* sum members: 77, holes: 2, sum holes: 11 */
/* last cacheline: 24 bytes */
struct Context {
const XMLIntrospectOps * ops; /* 0 8 */
void * userdata; /* 8 8 */
char * interface_name; /* 16 8 */
uint64_t interface_flags; /* 24 8 */
char * member_name; /* 32 8 */
char * member_signature; /* 40 8 */
char * member_result; /* 48 8 */
uint64_t member_flags; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
_Bool member_writable; /* 64 1 */
/* XXX 7 bytes hole, try to pack */
const char * current; /* 72 8 */
void * xml_state; /* 80 8 */
/* size: 88, cachelines: 2, members: 11 */
/* sum members: 81, holes: 1, sum holes: 7 */
/* last cacheline: 24 bytes */
struct Context {
int fd; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
Feature * drive_features; /* 8 8 */
size_t n_drive_feature; /* 16 8 */
Feature media_feature; /* 24 4 */
_Bool has_media; /* 28 1 */
/* XXX 3 bytes hole, try to pack */
MediaState media_state; /* 32 4 */
unsigned int media_session_next; /* 36 4 */
unsigned int media_session_count; /* 40 4 */
unsigned int media_track_count; /* 44 4 */
unsigned int media_track_count_data; /* 48 4 */
unsigned int media_track_count_audio; /* 52 4 */
uint64_t media_session_last_offset; /* 56 8 */
/* size: 64, cachelines: 1, members: 12 */
/* sum members: 57, holes: 2, sum holes: 7 */
struct Context {
const char * object_path; /* 0 8 */
double progress; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
struct Context {
sd_journal * journal; /* 0 8 */
_Bool has_cursor; /* 8 1 */
_Bool need_seek; /* 9 1 */
_Bool since_seeked; /* 10 1 */
_Bool ellipsized; /* 11 1 */
_Bool previous_boot_id_valid; /* 12 1 */
/* XXX 3 bytes hole, try to pack */
sd_id128_t previous_boot_id; /* 16 16 */
sd_id128_t previous_boot_id_output; /* 32 16 */
dual_timestamp previous_ts_output; /* 48 16 */
/* --- cacheline 1 boundary (64 bytes) --- */
sd_event * event; /* 64 8 */
sd_varlink * synchronize_varlink; /* 72 8 */
/* size: 80, cachelines: 2, members: 11 */
/* sum members: 77, holes: 1, sum holes: 3 */
/* last cacheline: 16 bytes */
struct Context {
int rfd; /* 0 4 */
Action action; /* 4 4 */
sd_id128_t machine_id; /* 8 16 */
_Bool machine_id_is_random; /* 24 1 */
/* XXX 3 bytes hole, try to pack */
KernelImageType kernel_image_type; /* 28 4 */
Layout layout; /* 32 4 */
/* XXX 4 bytes hole, try to pack */
char * layout_other; /* 40 8 */
char * conf_root; /* 48 8 */
char * boot_root; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
BootEntryTokenType entry_token_type; /* 64 4 */
/* XXX 4 bytes hole, try to pack */
char * entry_token; /* 72 8 */
char * entry_dir; /* 80 8 */
char * version; /* 88 8 */
char * kernel; /* 96 8 */
char * * initrds; /* 104 8 */
char * initrd_generator; /* 112 8 */
char * uki_generator; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
char * staging_area; /* 128 8 */
char * * plugins; /* 136 8 */
char * * argv; /* 144 8 */
char * * envp; /* 152 8 */
/* size: 160, cachelines: 3, members: 21 */
/* sum members: 149, holes: 3, sum holes: 11 */
/* last cacheline: 32 bytes */
struct Context {
PidRef pidref; /* 0 16 */
uid_t uid; /* 16 4 */
gid_t gid; /* 20 4 */
int signo; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
uint64_t rlimit; /* 32 8 */
_Bool is_pid1; /* 40 1 */
_Bool is_journald; /* 41 1 */
/* XXX 2 bytes hole, try to pack */
int mount_tree_fd; /* 44 4 */
const char * meta[11]; /* 48 88 */
/* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
size_t meta_size[11]; /* 136 88 */
/* size: 224, cachelines: 4, members: 10 */
/* sum members: 218, holes: 2, sum holes: 6 */
/* last cacheline: 32 bytes */
struct Context {
char * data[15]; /* 0 120 */
/* --- cacheline 1 boundary (64 bytes) was 56 bytes ago --- */
HostnameSource hostname_source; /* 120 4 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 2 boundary (128 bytes) --- */
struct stat etc_hostname_stat; /* 128 144 */
/* --- cacheline 4 boundary (256 bytes) was 16 bytes ago --- */
struct stat etc_os_release_stat; /* 272 144 */
/* --- cacheline 6 boundary (384 bytes) was 32 bytes ago --- */
struct stat etc_machine_info_stat; /* 416 144 */
/* --- cacheline 8 boundary (512 bytes) was 48 bytes ago --- */
sd_event * event; /* 560 8 */
sd_bus * bus; /* 568 8 */
/* --- cacheline 9 boundary (576 bytes) --- */
sd_varlink_server * varlink_server; /* 576 8 */
Hashmap * polkit_registry; /* 584 8 */
sd_device * device_dmi; /* 592 8 */
sd_device * device_acpi; /* 600 8 */
sd_device * device_tree; /* 608 8 */
/* size: 616, cachelines: 10, members: 12 */
/* sum members: 612, holes: 1, sum holes: 4 */
/* last cacheline: 40 bytes */
struct Context {
sd_bus_message * locale_cache; /* 0 8 */
LocaleContext locale_context; /* 8 256 */
/* --- cacheline 4 boundary (256 bytes) was 8 bytes ago --- */
sd_bus_message * x11_cache; /* 264 8 */
struct stat x11_stat; /* 272 144 */
/* --- cacheline 6 boundary (384 bytes) was 32 bytes ago --- */
X11Context x11_from_xorg; /* 416 32 */
/* --- cacheline 7 boundary (448 bytes) --- */
X11Context x11_from_vc; /* 448 32 */
sd_bus_message * vc_cache; /* 480 8 */
struct stat vc_stat; /* 488 144 */
/* --- cacheline 9 boundary (576 bytes) was 56 bytes ago --- */
VCContext vc; /* 632 16 */
/* --- cacheline 10 boundary (640 bytes) was 8 bytes ago --- */
Hashmap * polkit_registry; /* 648 8 */
/* size: 656, cachelines: 11, members: 10 */
/* last cacheline: 16 bytes */
struct Context {
Hashmap * networks_by_name; /* 0 8 */
Hashmap * netdevs_by_name; /* 8 8 */
Hashmap * links_by_filename; /* 16 8 */
/* size: 24, cachelines: 1, members: 3 */
/* last cacheline: 24 bytes */
struct Context {
Hashmap * polkit_registry; /* 0 8 */
struct userns_restrict_bpf * missing_bpf; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
struct Context {
Partition * partitions; /* 0 8 */
size_t n_partitions; /* 8 8 */
FreeArea * * free_areas; /* 16 8 */
size_t n_free_areas; /* 24 8 */
uint64_t start; /* 32 8 */
uint64_t end; /* 40 8 */
uint64_t total; /* 48 8 */
struct fdisk_context * fdisk_context; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
uint64_t sector_size; /* 64 8 */
uint64_t grain_size; /* 72 8 */
uint64_t fs_sector_size; /* 80 8 */
sd_id128_t seed; /* 88 16 */
char * node; /* 104 8 */
_Bool node_is_our_file; /* 112 1 */
/* XXX 3 bytes hole, try to pack */
int backing_fd; /* 116 4 */
_Bool from_scratch; /* 120 1 */
/* XXX 7 bytes hole, try to pack */
/* --- cacheline 2 boundary (128 bytes) --- */
X509 * certificate; /* 128 8 */
EVP_PKEY * private_key; /* 136 8 */
/* size: 144, cachelines: 3, members: 18 */
/* sum members: 134, holes: 2, sum holes: 10 */
/* last cacheline: 16 bytes */
struct Context {
write_queue_item * write_queue; /* 0 8 */
int rfkill_fd; /* 8 4 */
/* size: 16, cachelines: 1, members: 2 */
/* padding: 4 */
/* last cacheline: 16 bytes */
struct Context {
sd_event * event; /* 0 8 */
sd_resolve * resolve; /* 8 8 */
sd_event_source * idle_time; /* 16 8 */
Set * listen; /* 24 8 */
Set * connections; /* 32 8 */
/* size: 40, cachelines: 1, members: 5 */
/* last cacheline: 40 bytes */
struct Context {
Hashmap * subsystems; /* 0 8 */
NvmePort * ipv4_port; /* 8 8 */
NvmePort * ipv6_port; /* 16 8 */
_Bool display_refresh_scheduled; /* 24 1 */
/* size: 32, cachelines: 1, members: 4 */
/* padding: 7 */
/* last cacheline: 32 bytes */
struct Context {
Transfer * * transfers; /* 0 8 */
size_t n_transfers; /* 8 8 */
Transfer * * disabled_transfers; /* 16 8 */
size_t n_disabled_transfers; /* 24 8 */
Hashmap * features; /* 32 8 */
UpdateSet * * update_sets; /* 40 8 */
size_t n_update_sets; /* 48 8 */
UpdateSet * newest_installed; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
UpdateSet * candidate; /* 64 8 */
Hashmap * web_cache; /* 72 8 */
/* size: 80, cachelines: 2, members: 10 */
/* last cacheline: 16 bytes */
struct Context {
int audit_fd; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
OrderedHashmap * users; /* 8 8 */
OrderedHashmap * groups; /* 16 8 */
OrderedHashmap * todo_uids; /* 24 8 */
OrderedHashmap * todo_gids; /* 32 8 */
OrderedHashmap * members; /* 40 8 */
Hashmap * database_by_uid; /* 48 8 */
Hashmap * database_by_username; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
Hashmap * database_by_gid; /* 64 8 */
Hashmap * database_by_groupname; /* 72 8 */
Set * names; /* 80 8 */
uid_t search_uid; /* 88 4 */
/* XXX 4 bytes hole, try to pack */
UIDRange * uid_range; /* 96 8 */
UGIDAllocationRange login_defs; /* 104 16 */
_Bool login_defs_need_warning; /* 120 1 */
/* size: 128, cachelines: 2, members: 15 */
/* sum members: 113, holes: 2, sum holes: 8 */
/* padding: 7 */
struct Context {
char * zone; /* 0 8 */
_Bool local_rtc; /* 8 1 */
/* XXX 7 bytes hole, try to pack */
Hashmap * polkit_registry; /* 16 8 */
sd_bus_message * cache; /* 24 8 */
Set * set_ntp_calls; /* 32 8 */
sd_bus_slot * slot_job_removed; /* 40 8 */
UnitStatusInfo * units; /* 48 8 */
/* size: 56, cachelines: 1, members: 7 */
/* sum members: 49, holes: 1, sum holes: 7 */
/* last cacheline: 56 bytes */
struct Context {
OrderedHashmap * items; /* 0 8 */
OrderedHashmap * globs; /* 8 8 */
Set * unix_sockets; /* 16 8 */
Hashmap * uid_cache; /* 24 8 */
Hashmap * gid_cache; /* 32 8 */
/* size: 40, cachelines: 1, members: 5 */
/* last cacheline: 40 bytes */
struct Context {
sd_bus * bus; /* 0 8 */
int audit_fd; /* 8 4 */
/* size: 16, cachelines: 1, members: 2 */
/* padding: 4 */
/* last cacheline: 16 bytes */
struct Context {
char * keymap; /* 0 8 */
char * keymap_toggle; /* 8 8 */
char * font; /* 16 8 */
char * font_map; /* 24 8 */
char * font_unimap; /* 32 8 */
/* size: 40, cachelines: 1, members: 5 */
/* last cacheline: 40 bytes */
struct Context {
unsigned int data; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
PidRef pidref; /* 8 16 */
/* size: 24, cachelines: 1, members: 2 */
/* sum members: 20, holes: 1, sum holes: 4 */
/* last cacheline: 24 bytes */
struct FeatureToString {
Feature feature; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
const char * str; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* sum members: 12, holes: 1, sum holes: 4 */
/* last cacheline: 16 bytes */
struct Feature {
unsigned int n_ref; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
char * id; /* 8 8 */
char * description; /* 16 8 */
char * documentation; /* 24 8 */
char * appstream; /* 32 8 */
_Bool enabled; /* 40 1 */
/* size: 48, cachelines: 1, members: 6 */
/* sum members: 37, holes: 1, sum holes: 4 */
/* padding: 7 */
/* last cacheline: 48 bytes */
struct Feature {
char * name; /* 0 8 */
char * description; /* 8 8 */
_Bool enabled; /* 16 1 */
/* XXX 7 bytes hole, try to pack */
char * documentation; /* 24 8 */
char * * transfers; /* 32 8 */
/* size: 40, cachelines: 1, members: 5 */
/* sum members: 33, holes: 1, sum holes: 7 */
/* last cacheline: 40 bytes */
struct LogContext {
unsigned int n_ref; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
char * * fields; /* 8 8 */
struct iovec * input_iovec; /* 16 8 */
size_t n_input_iovec; /* 24 8 */
char * key; /* 32 8 */
char * value; /* 40 8 */
_Bool owned; /* 48 1 */
/* XXX 7 bytes hole, try to pack */
struct LogContext * ll_next; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
struct LogContext * ll_prev; /* 64 8 */
/* size: 72, cachelines: 2, members: 9 */
/* sum members: 61, holes: 2, sum holes: 11 */
/* last cacheline: 8 bytes */
struct InstanceMetadata {
char * version; /* 0 8 */
sd_id128_t partition_uuid; /* 8 16 */
_Bool partition_uuid_set; /* 24 1 */
/* XXX 7 bytes hole, try to pack */
uint64_t partition_flags; /* 32 8 */
_Bool partition_flags_set; /* 40 1 */
/* XXX 7 bytes hole, try to pack */
usec_t mtime; /* 48 8 */
mode_t mode; /* 56 4 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 1 boundary (64 bytes) --- */
uint64_t size; /* 64 8 */
uint64_t tries_done; /* 72 8 */
uint64_t tries_left; /* 80 8 */
int no_auto; /* 88 4 */
int read_only; /* 92 4 */
int growfs; /* 96 4 */
uint8_t sha256sum[32]; /* 100 32 */
/* --- cacheline 2 boundary (128 bytes) was 4 bytes ago --- */
_Bool sha256sum_set; /* 132 1 */
/* size: 136, cachelines: 3, members: 15 */
/* sum members: 115, holes: 3, sum holes: 18 */
/* padding: 3 */
/* last cacheline: 8 bytes */
struct ResourcePressure {
loadavg_t avg10; /* 0 8 */
loadavg_t avg60; /* 8 8 */
loadavg_t avg300; /* 16 8 */
usec_t total; /* 24 8 */
/* size: 32, cachelines: 1, members: 4 */
/* last cacheline: 32 bytes */
struct Resource {
ResourceType type; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
char * path; /* 8 8 */
_Bool path_auto; /* 16 1 */
/* XXX 3 bytes hole, try to pack */
PathRelativeTo path_relative_to; /* 20 4 */
char * * patterns; /* 24 8 */
GptPartitionType partition_type; /* 32 32 */
/* --- cacheline 1 boundary (64 bytes) --- */
_Bool partition_type_set; /* 64 1 */
/* XXX 7 bytes hole, try to pack */
Instance * * instances; /* 72 8 */
size_t n_instances; /* 80 8 */
size_t n_empty; /* 88 8 */
/* size: 96, cachelines: 2, members: 10 */
/* sum members: 82, holes: 3, sum holes: 14 */
/* last cacheline: 32 bytes */
struct ServiceFDStore {
Service * service; /* 0 8 */
int fd; /* 8 4 */
/* XXX 4 bytes hole, try to pack */
char * fdname; /* 16 8 */
sd_event_source * event_source; /* 24 8 */
_Bool do_poll; /* 32 1 */
/* XXX 7 bytes hole, try to pack */
struct ServiceFDStore * fd_store_next; /* 40 8 */
struct ServiceFDStore * fd_store_prev; /* 48 8 */
/* size: 56, cachelines: 1, members: 7 */
/* sum members: 45, holes: 2, sum holes: 11 */
/* last cacheline: 56 bytes */
struct CommonApplicationsKeptEnhanced {
QDisc meta; /* 0 64 */
/* --- cacheline 1 boundary (64 bytes) --- */
int autorate; /* 64 4 */
/* XXX 4 bytes hole, try to pack */
uint64_t bandwidth; /* 72 8 */
_Bool overhead_set; /* 80 1 */
/* XXX 3 bytes hole, try to pack */
int overhead; /* 84 4 */
uint32_t mpu; /* 88 4 */
CakeCompensationMode compensation_mode; /* 92 4 */
int raw; /* 96 4 */
CakeFlowIsolationMode flow_isolation_mode; /* 100 4 */
int nat; /* 104 4 */
CakePriorityQueueingPreset preset; /* 108 4 */
uint32_t fwmark; /* 112 4 */
int wash; /* 116 4 */
int split_gso; /* 120 4 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 2 boundary (128 bytes) --- */
usec_t rtt; /* 128 8 */
CakeAckFilter ack_filter; /* 136 4 */
/* size: 144, cachelines: 3, members: 16 */
/* sum members: 129, holes: 3, sum holes: 11 */
/* padding: 4 */
/* last cacheline: 16 bytes */
struct SleepConfig {
_Bool allow[5]; /* 0 5 */
/* XXX 3 bytes hole, try to pack */
char * * states[3]; /* 8 24 */
char * * modes[3]; /* 32 24 */
char * * mem_modes; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
usec_t hibernate_delay_usec; /* 64 8 */
_Bool hibernate_on_ac_power; /* 72 1 */
/* XXX 7 bytes hole, try to pack */
usec_t suspend_estimation_usec; /* 80 8 */
/* size: 88, cachelines: 2, members: 7 */
/* sum members: 78, holes: 2, sum holes: 10 */
/* last cacheline: 24 bytes */
struct sd_dns_resolver {
uint16_t priority; /* 0 2 */
/* XXX 6 bytes hole, try to pack */
char * auth_name; /* 8 8 */
int family; /* 16 4 */
/* XXX 4 bytes hole, try to pack */
union in_addr_union * addrs; /* 24 8 */
size_t n_addrs; /* 32 8 */
sd_dns_alpn_flags transports; /* 40 8 */
uint16_t port; /* 48 2 */
/* XXX 6 bytes hole, try to pack */
char * dohpath; /* 56 8 */
/* size: 64, cachelines: 1, members: 8 */
/* sum members: 48, holes: 3, sum holes: 16 */
struct write_queue_item {
struct write_queue_item * queue_next; /* 0 8 */
struct write_queue_item * queue_prev; /* 8 8 */
int rfkill_idx; /* 16 4 */
/* XXX 4 bytes hole, try to pack */
char * file; /* 24 8 */
int state; /* 32 4 */
/* size: 40, cachelines: 1, members: 5 */
/* sum members: 32, holes: 1, sum holes: 4 */
/* padding: 4 */
/* last cacheline: 40 bytes */
struct Manager {
Hashmap * units; /* 0 8 */
Hashmap * units_by_invocation_id; /* 8 8 */
Hashmap * jobs; /* 16 8 */
Unit * units_by_type[11]; /* 24 88 */
/* --- cacheline 1 boundary (64 bytes) was 48 bytes ago --- */
Unit * load_queue; /* 112 8 */
struct Prioq * run_queue; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
Unit * dbus_unit_queue; /* 128 8 */
Job * dbus_job_queue; /* 136 8 */
Unit * cleanup_queue; /* 144 8 */
Unit * gc_unit_queue; /* 152 8 */
Job * gc_job_queue; /* 160 8 */
Unit * cgroup_realize_queue; /* 168 8 */
Unit * cgroup_empty_queue; /* 176 8 */
Unit * cgroup_oom_queue; /* 184 8 */
/* --- cacheline 3 boundary (192 bytes) --- */
Unit * target_deps_queue; /* 192 8 */
Unit * stop_when_unneeded_queue; /* 200 8 */
Unit * start_when_upheld_queue; /* 208 8 */
Unit * stop_when_bound_queue; /* 216 8 */
Unit * release_resources_queue; /* 224 8 */
sd_event * event; /* 232 8 */
Hashmap * watch_pids; /* 240 8 */
Hashmap * watch_pids_more; /* 248 8 */
/* --- cacheline 4 boundary (256 bytes) --- */
Set * startup_units; /* 256 8 */
Set * failed_units; /* 264 8 */
sd_event_source * run_queue_event_source; /* 272 8 */
char * notify_socket; /* 280 8 */
int notify_fd; /* 288 4 */
/* XXX 4 bytes hole, try to pack */
sd_event_source * notify_event_source; /* 296 8 */
int signal_fd; /* 304 4 */
/* XXX 4 bytes hole, try to pack */
sd_event_source * signal_event_source; /* 312 8 */
/* --- cacheline 5 boundary (320 bytes) --- */
sd_event_source * sigchld_event_source; /* 320 8 */
sd_event_source * time_change_event_source; /* 328 8 */
sd_event_source * timezone_change_event_source; /* 336 8 */
sd_event_source * jobs_in_progress_event_source; /* 344 8 */
int user_lookup_fds[2]; /* 352 8 */
sd_event_source * user_lookup_event_source; /* 360 8 */
int handoff_timestamp_fds[2]; /* 368 8 */
sd_event_source * handoff_timestamp_event_source; /* 376 8 */
/* --- cacheline 6 boundary (384 bytes) --- */
int pidref_transport_fds[2]; /* 384 8 */
sd_event_source * pidref_event_source; /* 392 8 */
RuntimeScope runtime_scope; /* 400 4 */
/* XXX 4 bytes hole, try to pack */
LookupPaths lookup_paths; /* 408 104 */
/* --- cacheline 8 boundary (512 bytes) --- */
Hashmap * unit_id_map; /* 512 8 */
Hashmap * unit_name_map; /* 520 8 */
Set * unit_path_cache; /* 528 8 */
uint64_t unit_cache_timestamp_hash; /* 536 8 */
_Bool unit_file_state_outdated; /* 544 1 */
/* XXX 7 bytes hole, try to pack */
char * * transient_environment; /* 552 8 */
char * * client_environment; /* 560 8 */
usec_t watchdog[4]; /* 568 32 */
/* --- cacheline 9 boundary (576 bytes) was 24 bytes ago --- */
usec_t watchdog_overridden[4]; /* 600 32 */
char * watchdog_pretimeout_governor; /* 632 8 */
/* --- cacheline 10 boundary (640 bytes) --- */
char * watchdog_pretimeout_governor_overridden; /* 640 8 */
dual_timestamp timestamps[20]; /* 648 320 */
/* --- cacheline 15 boundary (960 bytes) was 8 bytes ago --- */
sd_device_monitor * device_monitor; /* 968 8 */
Hashmap * devices_by_sysfs; /* 976 8 */
struct libmnt_monitor * mount_monitor; /* 984 8 */
sd_event_source * mount_event_source; /* 992 8 */
FILE * proc_swaps; /* 1000 8 */
sd_event_source * swap_event_source; /* 1008 8 */
Hashmap * swaps_by_devnode; /* 1016 8 */
/* --- cacheline 16 boundary (1024 bytes) --- */
sd_bus * api_bus; /* 1024 8 */
sd_bus * system_bus; /* 1032 8 */
Set * private_buses; /* 1040 8 */
int private_listen_fd; /* 1048 4 */
/* XXX 4 bytes hole, try to pack */
sd_event_source * private_listen_event_source; /* 1056 8 */
sd_bus_track * subscribed; /* 1064 8 */
char * * subscribed_as_strv; /* 1072 8 */
sd_id128_t bus_id; /* 1080 16 */
/* --- cacheline 17 boundary (1088 bytes) was 8 bytes ago --- */
sd_id128_t deserialized_bus_id; /* 1096 16 */
sd_bus_message * pending_reload_message; /* 1112 8 */
Hashmap * watch_bus; /* 1120 8 */
_Bool send_reloading_done; /* 1128 1 */
/* XXX 3 bytes hole, try to pack */
uint32_t current_job_id; /* 1132 4 */
uint32_t default_unit_job_id; /* 1136 4 */
int dev_autofs_fd; /* 1140 4 */
Hashmap * cgroup_unit; /* 1144 8 */
/* --- cacheline 18 boundary (1152 bytes) --- */
CGroupMask cgroup_supported; /* 1152 4 */
/* XXX 4 bytes hole, try to pack */
char * cgroup_root; /* 1160 8 */
int cgroup_inotify_fd; /* 1168 4 */
/* XXX 4 bytes hole, try to pack */
sd_event_source * cgroup_inotify_event_source; /* 1176 8 */
Hashmap * cgroup_control_inotify_wd_unit; /* 1184 8 */
Hashmap * cgroup_memory_inotify_wd_unit; /* 1192 8 */
sd_event_source * cgroup_empty_event_source; /* 1200 8 */
sd_event_source * cgroup_oom_event_source; /* 1208 8 */
/* --- cacheline 19 boundary (1216 bytes) --- */
int pin_cgroupfs_fd; /* 1216 4 */
unsigned int gc_marker; /* 1220 4 */
usec_t etc_localtime_mtime; /* 1224 8 */
_Bool etc_localtime_accessible; /* 1232 1 */
/* XXX 3 bytes hole, try to pack */
ManagerObjective objective; /* 1236 4 */
ManagerObjective previous_objective; /* 1240 4 */
_Bool dispatching_load_queue; /* 1244 1 */
_Bool ready_sent; /* 1245 1 */
_Bool status_ready; /* 1246 1 */
_Bool taint_logged; /* 1247 1 */
_Bool sysctl_pid_max_changed; /* 1248 1 */
/* XXX 3 bytes hole, try to pack */
ManagerTestRunFlags test_run_flags; /* 1252 4 */
uint8_t return_value; /* 1256 1 */
/* XXX 3 bytes hole, try to pack */
ShowStatus show_status; /* 1260 4 */
ShowStatus show_status_overridden; /* 1264 4 */
StatusUnitFormat status_unit_format; /* 1268 4 */
char * confirm_spawn; /* 1272 8 */
/* --- cacheline 20 boundary (1280 bytes) --- */
_Bool no_console_output; /* 1280 1 */
_Bool service_watchdogs; /* 1281 1 */
/* XXX 6 bytes hole, try to pack */
UnitDefaults defaults; /* 1288 272 */
/* --- cacheline 24 boundary (1536 bytes) was 24 bytes ago --- */
int original_log_level; /* 1560 4 */
LogTarget original_log_target; /* 1564 4 */
_Bool log_level_overridden; /* 1568 1 */
_Bool log_target_overridden; /* 1569 1 */
/* XXX 2 bytes hole, try to pack */
int n_reloading; /* 1572 4 */
unsigned int n_installed_jobs; /* 1576 4 */
unsigned int n_failed_jobs; /* 1580 4 */
unsigned int n_running_jobs; /* 1584 4 */
unsigned int n_on_console; /* 1588 4 */
unsigned int jobs_in_progress_iteration; /* 1592 4 */
int have_ask_password; /* 1596 4 */
/* --- cacheline 25 boundary (1600 bytes) --- */
sd_event_source * ask_password_event_source; /* 1600 8 */
int idle_pipe[4]; /* 1608 16 */
sd_event_source * idle_pipe_event_source; /* 1624 8 */
char * switch_root; /* 1632 8 */
char * switch_root_init; /* 1640 8 */
_Bool switching_root; /* 1648 1 */
/* XXX 7 bytes hole, try to pack */
Hashmap * units_needing_mounts_for[2]; /* 1656 16 */
/* --- cacheline 26 boundary (1664 bytes) was 8 bytes ago --- */
Hashmap * polkit_registry; /* 1672 8 */
Hashmap * dynamic_users; /* 1680 8 */
Hashmap * uid_refs; /* 1688 8 */
Hashmap * gid_refs; /* 1696 8 */
Hashmap * exec_shared_runtime_by_id; /* 1704 8 */
RateLimit ctrl_alt_del_ratelimit; /* 1712 24 */
/* --- cacheline 27 boundary (1728 bytes) was 8 bytes ago --- */
EmergencyAction cad_burst_action; /* 1736 4 */
int first_boot; /* 1740 4 */
char * prefix[5]; /* 1744 40 */
char * received_credentials_directory; /* 1784 8 */
/* --- cacheline 28 boundary (1792 bytes) --- */
char * received_encrypted_credentials_directory; /* 1792 8 */
unsigned int sigchldgen; /* 1800 4 */
unsigned int notifygen; /* 1804 4 */
sd_varlink_server * varlink_server; /* 1808 8 */
sd_varlink * managed_oom_varlink; /* 1816 8 */
struct restrict_fs_bpf * restrict_fs; /* 1824 8 */
RateLimit reload_reexec_ratelimit; /* 1832 24 */
/* --- cacheline 29 boundary (1856 bytes) --- */
RateLimit dump_ratelimit; /* 1856 24 */
sd_event_source * memory_pressure_event_source; /* 1880 8 */
FirewallContext * fw_ctx; /* 1888 8 */
char * executor_path; /* 1896 8 */
int executor_fd; /* 1904 4 */
unsigned int soft_reboots_count; /* 1908 4 */
uint64_t saved_ambient_set; /* 1912 8 */
/* size: 1920, cachelines: 30, members: 147 */
/* sum members: 1862, holes: 14, sum holes: 58 */
struct Manager {
sd_event * event; /* 0 8 */
sd_bus * bus; /* 8 8 */
Hashmap * polkit_registry; /* 16 8 */
Hashmap * homes_by_uid; /* 24 8 */
Hashmap * homes_by_name; /* 32 8 */
Hashmap * homes_by_worker_pid; /* 40 8 */
Hashmap * homes_by_sysfs; /* 48 8 */
_Bool scan_slash_home; /* 56 1 */
/* XXX 3 bytes hole, try to pack */
UserStorage default_storage; /* 60 4 */
/* --- cacheline 1 boundary (64 bytes) --- */
char * default_file_system_type; /* 64 8 */
sd_event_source * inotify_event_source; /* 72 8 */
char * notify_socket_path; /* 80 8 */
sd_device_monitor * device_monitor; /* 88 8 */
sd_event_source * deferred_rescan_event_source; /* 96 8 */
sd_event_source * deferred_gc_event_source; /* 104 8 */
sd_event_source * deferred_auto_login_event_source; /* 112 8 */
sd_event_source * rebalance_event_source; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
Home * gc_focus; /* 128 8 */
sd_varlink_server * varlink_server; /* 136 8 */
char * userdb_service; /* 144 8 */
EVP_PKEY * private_key; /* 152 8 */
Hashmap * public_keys; /* 160 8 */
RebalanceState rebalance_state; /* 168 4 */
/* XXX 4 bytes hole, try to pack */
usec_t rebalance_interval_usec; /* 176 8 */
Set * rebalance_pending_method_calls; /* 184 8 */
/* --- cacheline 3 boundary (192 bytes) --- */
Set * rebalance_queued_method_calls; /* 192 8 */
/* size: 200, cachelines: 4, members: 26 */
/* sum members: 193, holes: 2, sum holes: 7 */
/* last cacheline: 8 bytes */
struct Manager {
sd_event * event; /* 0 8 */
sd_bus * bus; /* 8 8 */
sd_varlink_server * varlink_server; /* 16 8 */
uint32_t current_transfer_id; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
Hashmap * transfers; /* 32 8 */
Hashmap * polkit_registry; /* 40 8 */
char * notify_socket_path; /* 48 8 */
_Bool use_btrfs_subvol; /* 56 1 */
_Bool use_btrfs_quota; /* 57 1 */
/* XXX 2 bytes hole, try to pack */
RuntimeScope runtime_scope; /* 60 4 */
/* size: 64, cachelines: 1, members: 10 */
/* sum members: 58, holes: 2, sum holes: 6 */
struct Manager {
sd_event * event; /* 0 8 */
sd_bus * bus; /* 8 8 */
Hashmap * devices; /* 16 8 */
Hashmap * seats; /* 24 8 */
Hashmap * sessions; /* 32 8 */
Hashmap * sessions_by_leader; /* 40 8 */
Hashmap * users; /* 48 8 */
Hashmap * inhibitors; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
Hashmap * buttons; /* 64 8 */
Hashmap * brightness_writers; /* 72 8 */
Seat * seat_gc_queue; /* 80 8 */
Session * session_gc_queue; /* 88 8 */
User * user_gc_queue; /* 96 8 */
sd_device_monitor * device_seat_monitor; /* 104 8 */
sd_device_monitor * device_monitor; /* 112 8 */
sd_device_monitor * device_vcsa_monitor; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
sd_device_monitor * device_button_monitor; /* 128 8 */
sd_event_source * console_active_event_source; /* 136 8 */
sd_event_source * utmp_event_source; /* 144 8 */
int console_active_fd; /* 152 4 */
unsigned int n_autovts; /* 156 4 */
unsigned int reserve_vt; /* 160 4 */
int reserve_vt_fd; /* 164 4 */
Seat * seat0; /* 168 8 */
char * * kill_only_users; /* 176 8 */
char * * kill_exclude_users; /* 184 8 */
/* --- cacheline 3 boundary (192 bytes) --- */
_Bool kill_user_processes; /* 192 1 */
/* XXX 7 bytes hole, try to pack */
uint64_t session_counter; /* 200 8 */
uint64_t inhibit_counter; /* 208 8 */
Hashmap * session_units; /* 216 8 */
Hashmap * user_units; /* 224 8 */
usec_t inhibit_delay_max; /* 232 8 */
usec_t user_stop_delay; /* 240 8 */
const HandleActionData * delayed_action; /* 248 8 */
/* --- cacheline 4 boundary (256 bytes) --- */
char * action_job; /* 256 8 */
sd_event_source * inhibit_timeout_source; /* 264 8 */
HandleAction scheduled_shutdown_action; /* 272 4 */
/* XXX 4 bytes hole, try to pack */
usec_t scheduled_shutdown_timeout; /* 280 8 */
sd_event_source * scheduled_shutdown_timeout_source; /* 288 8 */
uid_t scheduled_shutdown_uid; /* 296 4 */
/* XXX 4 bytes hole, try to pack */
char * scheduled_shutdown_tty; /* 304 8 */
sd_event_source * nologin_timeout_source; /* 312 8 */
/* --- cacheline 5 boundary (320 bytes) --- */
_Bool unlink_nologin; /* 320 1 */
/* XXX 7 bytes hole, try to pack */
char * wall_message; /* 328 8 */
_Bool enable_wall_messages; /* 336 1 */
/* XXX 7 bytes hole, try to pack */
sd_event_source * wall_message_timeout_source; /* 344 8 */
_Bool shutdown_dry_run; /* 352 1 */
/* XXX 7 bytes hole, try to pack */
sd_event_source * idle_action_event_source; /* 360 8 */
usec_t idle_action_usec; /* 368 8 */
usec_t idle_action_not_before_usec; /* 376 8 */
/* --- cacheline 6 boundary (384 bytes) --- */
HandleAction idle_action; /* 384 4 */
_Bool was_idle; /* 388 1 */
/* XXX 3 bytes hole, try to pack */
usec_t stop_idle_session_usec; /* 392 8 */
HandleActionSleepMask handle_action_sleep_mask; /* 400 4 */
HandleAction handle_power_key; /* 404 4 */
HandleAction handle_power_key_long_press; /* 408 4 */
HandleAction handle_reboot_key; /* 412 4 */
HandleAction handle_reboot_key_long_press; /* 416 4 */
HandleAction handle_suspend_key; /* 420 4 */
HandleAction handle_suspend_key_long_press; /* 424 4 */
HandleAction handle_hibernate_key; /* 428 4 */
HandleAction handle_hibernate_key_long_press; /* 432 4 */
HandleAction handle_secure_attention_key; /* 436 4 */
HandleAction handle_lid_switch; /* 440 4 */
HandleAction handle_lid_switch_ep; /* 444 4 */
/* --- cacheline 7 boundary (448 bytes) --- */
HandleAction handle_lid_switch_docked; /* 448 4 */
_Bool power_key_ignore_inhibited; /* 452 1 */
_Bool suspend_key_ignore_inhibited; /* 453 1 */
_Bool hibernate_key_ignore_inhibited; /* 454 1 */
_Bool lid_switch_ignore_inhibited; /* 455 1 */
_Bool reboot_key_ignore_inhibited; /* 456 1 */
_Bool remove_ipc; /* 457 1 */
/* XXX 6 bytes hole, try to pack */
Hashmap * polkit_registry; /* 464 8 */
usec_t holdoff_timeout_usec; /* 472 8 */
sd_event_source * lid_switch_ignore_event_source; /* 480 8 */
sd_event_source * power_key_long_press_event_source; /* 488 8 */
sd_event_source * reboot_key_long_press_event_source; /* 496 8 */
sd_event_source * suspend_key_long_press_event_source; /* 504 8 */
/* --- cacheline 8 boundary (512 bytes) --- */
sd_event_source * hibernate_key_long_press_event_source; /* 512 8 */
uint64_t runtime_dir_size; /* 520 8 */
uint64_t runtime_dir_inodes; /* 528 8 */
uint64_t sessions_max; /* 536 8 */
uint64_t inhibitors_max; /* 544 8 */
char * * efi_boot_loader_entries; /* 552 8 */
_Bool efi_boot_loader_entries_set; /* 560 1 */
/* XXX 7 bytes hole, try to pack */
char * efi_loader_entry_one_shot; /* 568 8 */
/* --- cacheline 9 boundary (576 bytes) --- */
struct stat efi_loader_entry_one_shot_stat; /* 576 144 */
/* --- cacheline 11 boundary (704 bytes) was 16 bytes ago --- */
CalendarSpec * maintenance_time; /* 720 8 */
dual_timestamp init_ts; /* 728 16 */
sd_varlink_server * varlink_server; /* 744 8 */
/* size: 752, cachelines: 12, members: 90 */
/* sum members: 700, holes: 9, sum holes: 52 */
/* last cacheline: 48 bytes */
struct Manager {
sd_event * event; /* 0 8 */
sd_bus * bus; /* 8 8 */
Hashmap * machines; /* 16 8 */
Hashmap * machines_by_unit; /* 24 8 */
Hashmap * machines_by_leader; /* 32 8 */
sd_event_source * deferred_gc_event_source; /* 40 8 */
Hashmap * polkit_registry; /* 48 8 */
Hashmap * image_cache; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
sd_event_source * image_cache_defer_event; /* 64 8 */
Machine * machine_gc_queue; /* 72 8 */
Machine * host_machine; /* 80 8 */
Operation * operations; /* 88 8 */
unsigned int n_operations; /* 96 4 */
/* XXX 4 bytes hole, try to pack */
sd_varlink_server * varlink_userdb_server; /* 104 8 */
sd_varlink_server * varlink_machine_server; /* 112 8 */
RuntimeScope runtime_scope; /* 120 4 */
/* size: 128, cachelines: 2, members: 16 */
/* sum members: 120, holes: 1, sum holes: 4 */
/* padding: 4 */
struct Manager {
sd_event * event; /* 0 8 */
Set * workers_fixed; /* 8 8 */
Set * workers_dynamic; /* 16 8 */
int listen_fd; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
RateLimit worker_ratelimit; /* 32 24 */
/* size: 56, cachelines: 1, members: 5 */
/* sum members: 52, holes: 1, sum holes: 4 */
/* last cacheline: 56 bytes */
struct Manager {
Hashmap * links_by_index; /* 0 8 */
Hashmap * links_by_name; /* 8 8 */
Hashmap * command_line_interfaces_by_name; /* 16 8 */
char * * ignored_interfaces; /* 24 8 */
LinkOperationalStateRange required_operstate; /* 32 8 */
AddressFamily required_family; /* 40 4 */
_Bool any; /* 44 1 */
_Bool requires_dns; /* 45 1 */
/* XXX 2 bytes hole, try to pack */
sd_netlink * rtnl; /* 48 8 */
sd_event_source * rtnl_event_source; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
sd_network_monitor * network_monitor; /* 64 8 */
sd_event_source * network_monitor_event_source; /* 72 8 */
sd_event * event; /* 80 8 */
sd_varlink * varlink_client; /* 88 8 */
DNSConfiguration * dns_configuration; /* 96 8 */
Hashmap * dns_configuration_by_link_index; /* 104 8 */
/* size: 112, cachelines: 2, members: 16 */
/* sum members: 110, holes: 1, sum holes: 2 */
/* last cacheline: 48 bytes */
struct Manager {
sd_netlink * rtnl; /* 0 8 */
sd_netlink * genl; /* 8 8 */
sd_event * event; /* 16 8 */
sd_resolve * resolve; /* 24 8 */
sd_bus * bus; /* 32 8 */
sd_varlink_server * varlink_server; /* 40 8 */
sd_device_monitor * device_monitor; /* 48 8 */
Hashmap * polkit_registry; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
int ethtool_fd; /* 64 4 */
int persistent_storage_fd; /* 68 4 */
KeepConfiguration keep_configuration; /* 72 4 */
IPv6PrivacyExtensions ipv6_privacy_extensions; /* 76 4 */
ManagerState state; /* 80 4 */
_Bool test_mode; /* 84 1 */
_Bool enumerating; /* 85 1 */
_Bool dirty; /* 86 1 */
_Bool manage_foreign_routes; /* 87 1 */
_Bool manage_foreign_rules; /* 88 1 */
_Bool manage_foreign_nexthops; /* 89 1 */
_Bool dhcp_server_persist_leases; /* 90 1 */
/* XXX 5 bytes hole, try to pack */
Set * dirty_links; /* 96 8 */
Set * new_wlan_ifindices; /* 104 8 */
char * state_file; /* 112 8 */
LinkOperationalState operational_state; /* 120 4 */
LinkCarrierState carrier_state; /* 124 4 */
/* --- cacheline 2 boundary (128 bytes) --- */
LinkAddressState address_state; /* 128 4 */
LinkAddressState ipv4_address_state; /* 132 4 */
LinkAddressState ipv6_address_state; /* 136 4 */
LinkOnlineState online_state; /* 140 4 */
Hashmap * links_by_index; /* 144 8 */
Hashmap * links_by_name; /* 152 8 */
Hashmap * links_by_hw_addr; /* 160 8 */
Hashmap * links_by_dhcp_pd_subnet_prefix; /* 168 8 */
Hashmap * netdevs; /* 176 8 */
OrderedHashmap * networks; /* 184 8 */
/* --- cacheline 3 boundary (192 bytes) --- */
OrderedSet * address_pools; /* 192 8 */
Set * dhcp_pd_subnet_ids; /* 200 8 */
UseDomains use_domains; /* 208 4 */
UseDomains dhcp_use_domains; /* 212 4 */
UseDomains dhcp6_use_domains; /* 216 4 */
UseDomains ndisc_use_domains; /* 220 4 */
DHCPClientIdentifier dhcp_client_identifier; /* 224 4 */
/* XXX 4 bytes hole, try to pack */
DUID dhcp_duid; /* 232 152 */
/* --- cacheline 6 boundary (384 bytes) --- */
DUID dhcp6_duid; /* 384 152 */
/* --- cacheline 8 boundary (512 bytes) was 24 bytes ago --- */
DUID duid_product_uuid; /* 536 152 */
/* --- cacheline 10 boundary (640 bytes) was 48 bytes ago --- */
_Bool has_product_uuid; /* 688 1 */
_Bool product_uuid_requested; /* 689 1 */
/* XXX 6 bytes hole, try to pack */
char * dynamic_hostname; /* 696 8 */
/* --- cacheline 11 boundary (704 bytes) --- */
char * dynamic_timezone; /* 704 8 */
Set * rules; /* 712 8 */
Hashmap * nexthops_by_id; /* 720 8 */
Set * nexthop_ids; /* 728 8 */
unsigned int route_remove_messages; /* 736 4 */
/* XXX 4 bytes hole, try to pack */
Set * routes; /* 744 8 */
Hashmap * address_labels_by_section; /* 752 8 */
unsigned int static_address_label_messages; /* 760 4 */
_Bool static_address_labels_configured; /* 764 1 */
/* XXX 3 bytes hole, try to pack */
/* --- cacheline 12 boundary (768 bytes) --- */
Hashmap * route_table_numbers_by_name; /* 768 8 */
Hashmap * route_table_names_by_number; /* 776 8 */
Hashmap * wiphy_by_index; /* 784 8 */
Hashmap * wiphy_by_name; /* 792 8 */
_Bool use_speed_meter; /* 800 1 */
/* XXX 7 bytes hole, try to pack */
sd_event_source * speed_meter_event_source; /* 808 8 */
usec_t speed_meter_interval_usec; /* 816 8 */
usec_t speed_meter_usec_new; /* 824 8 */
/* --- cacheline 13 boundary (832 bytes) --- */
usec_t speed_meter_usec_old; /* 832 8 */
FirewallContext * fw_ctx; /* 840 8 */
_Bool request_queued; /* 848 1 */
/* XXX 7 bytes hole, try to pack */
OrderedSet * request_queue; /* 856 8 */
OrderedSet * remove_request_queue; /* 864 8 */
Hashmap * tuntap_fds_by_name; /* 872 8 */
unsigned int reloading; /* 880 4 */
int serialization_fd; /* 884 4 */
int ip_forwarding[2]; /* 888 8 */
/* size: 896, cachelines: 14, members: 74 */
/* sum members: 860, holes: 7, sum holes: 36 */
struct Manager {
sd_event * event; /* 0 8 */
Set * workers_fixed; /* 8 8 */
Set * workers_dynamic; /* 16 8 */
int listen_fd; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
RateLimit worker_ratelimit; /* 32 24 */
sd_event_source * deferred_start_worker_event_source; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
int registry_fd; /* 64 4 */
/* size: 72, cachelines: 2, members: 7 */
/* sum members: 64, holes: 1, sum holes: 4 */
/* padding: 4 */
/* last cacheline: 8 bytes */
struct Manager {
sd_bus * bus; /* 0 8 */
sd_event * event; /* 8 8 */
Hashmap * polkit_registry; /* 16 8 */
_Bool dry_run; /* 24 1 */
/* XXX 3 bytes hole, try to pack */
int swap_used_limit_permyriad; /* 28 4 */
loadavg_t default_mem_pressure_limit; /* 32 8 */
usec_t default_mem_pressure_duration_usec; /* 40 8 */
Hashmap * monitored_swap_cgroup_contexts; /* 48 8 */
Hashmap * monitored_mem_pressure_cgroup_contexts; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
Hashmap * monitored_mem_pressure_cgroup_contexts_candidates; /* 64 8 */
OomdSystemContext system_context; /* 72 32 */
usec_t mem_pressure_post_action_delay_start; /* 104 8 */
sd_event_source * swap_context_event_source; /* 112 8 */
sd_event_source * mem_pressure_context_event_source; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
sd_varlink * varlink_client; /* 128 8 */
sd_varlink_server * varlink_server; /* 136 8 */
/* size: 144, cachelines: 3, members: 16 */
/* sum members: 141, holes: 1, sum holes: 3 */
/* last cacheline: 16 bytes */
struct Manager {
sd_event * event; /* 0 8 */
sd_bus * bus; /* 8 8 */
Hashmap * polkit_registry; /* 16 8 */
Hashmap * image_cache; /* 24 8 */
sd_event_source * image_cache_defer_event; /* 32 8 */
Operation * operations; /* 40 8 */
unsigned int n_operations; /* 48 4 */
RuntimeScope runtime_scope; /* 52 4 */
/* size: 56, cachelines: 1, members: 8 */
/* last cacheline: 56 bytes */
struct Manager {
sd_event * event; /* 0 8 */
ResolveSupport llmnr_support; /* 8 4 */
ResolveSupport mdns_support; /* 12 4 */
DnssecMode dnssec_mode; /* 16 4 */
DnsOverTlsMode dns_over_tls_mode; /* 20 4 */
DnsCacheMode enable_cache; /* 24 4 */
_Bool cache_from_localhost; /* 28 1 */
/* XXX 3 bytes hole, try to pack */
DnsStubListenerMode dns_stub_listener_mode; /* 32 4 */
/* XXX 4 bytes hole, try to pack */
usec_t stale_retention_usec; /* 40 8 */
DnsTlsManagerData dnstls_data; /* 48 8 */
Hashmap * links; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
sd_netlink * rtnl; /* 64 8 */
sd_event_source * rtnl_event_source; /* 72 8 */
sd_network_monitor * network_monitor; /* 80 8 */
sd_event_source * network_event_source; /* 88 8 */
Hashmap * dns_transactions; /* 96 8 */
DnsQuery * dns_queries; /* 104 8 */
unsigned int n_dns_queries; /* 112 4 */
/* XXX 4 bytes hole, try to pack */
Hashmap * stub_queries_by_packet; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
DnsStream * dns_streams; /* 128 8 */
unsigned int n_dns_streams[4]; /* 136 16 */
DnsServer * dns_servers; /* 152 8 */
DnsServer * fallback_dns_servers; /* 160 8 */
unsigned int n_dns_servers; /* 168 4 */
/* XXX 4 bytes hole, try to pack */
DnsServer * current_dns_server; /* 176 8 */
DnsSearchDomain * search_domains; /* 184 8 */
/* --- cacheline 3 boundary (192 bytes) --- */
unsigned int n_search_domains; /* 192 4 */
_Bool need_builtin_fallbacks; /* 196 1 */
_Bool read_resolv_conf; /* 197 1 */
_Bool resolve_unicast_single_label; /* 198 1 */
/* XXX 1 byte hole, try to pack */
struct stat resolv_conf_stat; /* 200 144 */
/* --- cacheline 5 boundary (320 bytes) was 24 bytes ago --- */
DnsTrustAnchor trust_anchor; /* 344 24 */
DnsScope * dns_scopes; /* 368 8 */
DnsScope * unicast_scope; /* 376 8 */
/* --- cacheline 6 boundary (384 bytes) --- */
int llmnr_ipv4_udp_fd; /* 384 4 */
int llmnr_ipv6_udp_fd; /* 388 4 */
int llmnr_ipv4_tcp_fd; /* 392 4 */
int llmnr_ipv6_tcp_fd; /* 396 4 */
sd_event_source * llmnr_ipv4_udp_event_source; /* 400 8 */
sd_event_source * llmnr_ipv6_udp_event_source; /* 408 8 */
sd_event_source * llmnr_ipv4_tcp_event_source; /* 416 8 */
sd_event_source * llmnr_ipv6_tcp_event_source; /* 424 8 */
int mdns_ipv4_fd; /* 432 4 */
int mdns_ipv6_fd; /* 436 4 */
sd_event_source * mdns_ipv4_event_source; /* 440 8 */
/* --- cacheline 7 boundary (448 bytes) --- */
sd_event_source * mdns_ipv6_event_source; /* 448 8 */
Hashmap * dnssd_services; /* 456 8 */
sd_bus * bus; /* 464 8 */
char * full_hostname; /* 472 8 */
char * llmnr_hostname; /* 480 8 */
char * mdns_hostname; /* 488 8 */
DnsResourceKey * llmnr_host_ipv4_key; /* 496 8 */
DnsResourceKey * llmnr_host_ipv6_key; /* 504 8 */
/* --- cacheline 8 boundary (512 bytes) --- */
DnsResourceKey * mdns_host_ipv4_key; /* 512 8 */
DnsResourceKey * mdns_host_ipv6_key; /* 520 8 */
int hostname_fd; /* 528 4 */
/* XXX 4 bytes hole, try to pack */
sd_event_source * hostname_event_source; /* 536 8 */
unsigned int n_transactions_total; /* 544 4 */
unsigned int n_timeouts_total; /* 548 4 */
unsigned int n_timeouts_served_stale_total; /* 552 4 */
unsigned int n_failure_responses_total; /* 556 4 */
unsigned int n_failure_responses_served_stale_total; /* 560 4 */
unsigned int n_dnssec_verdict[4]; /* 564 16 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 9 boundary (576 bytes) was 8 bytes ago --- */
EtcHosts etc_hosts; /* 584 24 */
usec_t etc_hosts_last; /* 608 8 */
struct stat etc_hosts_stat; /* 616 144 */
/* --- cacheline 11 boundary (704 bytes) was 56 bytes ago --- */
_Bool read_etc_hosts; /* 760 1 */
/* XXX 7 bytes hole, try to pack */
/* --- cacheline 12 boundary (768 bytes) --- */
Set * refuse_record_types; /* 768 8 */
OrderedSet * dns_extra_stub_listeners; /* 776 8 */
sd_event_source * dns_stub_udp_event_source; /* 784 8 */
sd_event_source * dns_stub_tcp_event_source; /* 792 8 */
sd_event_source * dns_proxy_stub_udp_event_source; /* 800 8 */
sd_event_source * dns_proxy_stub_tcp_event_source; /* 808 8 */
Hashmap * polkit_registry; /* 816 8 */
sd_varlink_server * varlink_server; /* 824 8 */
/* --- cacheline 13 boundary (832 bytes) --- */
sd_varlink_server * varlink_monitor_server; /* 832 8 */
Set * varlink_query_results_subscription; /* 840 8 */
Set * varlink_dns_configuration_subscription; /* 848 8 */
sd_json_variant * dns_configuration_json; /* 856 8 */
sd_netlink_slot * netlink_new_route_slot; /* 864 8 */
sd_netlink_slot * netlink_del_route_slot; /* 872 8 */
sd_event_source * clock_change_event_source; /* 880 8 */
SocketGraveyard * socket_graveyard; /* 888 8 */
/* --- cacheline 14 boundary (896 bytes) --- */
SocketGraveyard * socket_graveyard_oldest; /* 896 8 */
size_t n_socket_graveyard; /* 904 8 */
struct sigrtmin18_info sigrtmin18_info; /* 912 16 */
/* size: 928, cachelines: 15, members: 86 */
/* sum members: 897, holes: 8, sum holes: 31 */
/* last cacheline: 32 bytes */
struct Manager {
sd_event * event; /* 0 8 */
sd_bus * bus; /* 8 8 */
Hashmap * targets; /* 16 8 */
uint64_t last_job_id; /* 24 8 */
Hashmap * jobs; /* 32 8 */
Hashmap * polkit_registry; /* 40 8 */
char * notify_socket_path; /* 48 8 */
RuntimeScope runtime_scope; /* 56 4 */
/* size: 64, cachelines: 1, members: 8 */
/* padding: 4 */
struct Manager {
sd_bus * bus; /* 0 8 */
sd_event * event; /* 8 8 */
sd_resolve * resolve; /* 16 8 */
ServerName * system_servers; /* 24 8 */
ServerName * link_servers; /* 32 8 */
ServerName * runtime_servers; /* 40 8 */
ServerName * fallback_servers; /* 48 8 */
RateLimit ratelimit; /* 56 24 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
_Bool exhausted_servers; /* 80 1 */
_Bool have_fallbacks; /* 81 1 */
/* XXX 6 bytes hole, try to pack */
sd_event_source * network_event_source; /* 88 8 */
sd_network_monitor * network_monitor; /* 96 8 */
sd_resolve_query * resolve_query; /* 104 8 */
sd_event_source * event_receive; /* 112 8 */
ServerName * current_server_name; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
ServerAddress * current_server_address; /* 128 8 */
int server_socket; /* 136 4 */
int missed_replies; /* 140 4 */
uint64_t packet_count; /* 144 8 */
sd_event_source * event_timeout; /* 152 8 */
_Bool talking; /* 160 1 */
/* XXX 7 bytes hole, try to pack */
Hashmap * polkit_registry; /* 168 8 */
struct timespec trans_time_mon; /* 176 16 */
/* --- cacheline 3 boundary (192 bytes) --- */
struct timespec trans_time; /* 192 16 */
struct ntp_ts request_nonce; /* 208 8 */
usec_t retry_interval; /* 216 8 */
usec_t connection_retry_usec; /* 224 8 */
_Bool pending; /* 232 1 */
/* XXX 7 bytes hole, try to pack */
sd_event_source * event_timer; /* 240 8 */
usec_t poll_interval_usec; /* 248 8 */
/* --- cacheline 4 boundary (256 bytes) --- */
usec_t poll_interval_min_usec; /* 256 8 */
usec_t poll_interval_max_usec; /* 264 8 */
_Bool poll_resync; /* 272 1 */
/* XXX 7 bytes hole, try to pack */
struct {
double offset; /* 280 8 */
double delay; /* 288 8 */
} samples[8]; /* 280 128 */
struct {
double offset; /* 0 8 */
double delay; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
struct Manager {
sd_bus * bus; /* 0 8 */
sd_event * event; /* 8 8 */
sd_resolve * resolve; /* 16 8 */
ServerName * system_servers; /* 24 8 */
ServerName * link_servers; /* 32 8 */
ServerName * runtime_servers; /* 40 8 */
ServerName * fallback_servers; /* 48 8 */
RateLimit ratelimit; /* 56 24 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
_Bool exhausted_servers; /* 80 1 */
_Bool have_fallbacks; /* 81 1 */
/* XXX 6 bytes hole, try to pack */
sd_event_source * network_event_source; /* 88 8 */
sd_network_monitor * network_monitor; /* 96 8 */
sd_resolve_query * resolve_query; /* 104 8 */
sd_event_source * event_receive; /* 112 8 */
ServerName * current_server_name; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
ServerAddress * current_server_address; /* 128 8 */
int server_socket; /* 136 4 */
int missed_replies; /* 140 4 */
uint64_t packet_count; /* 144 8 */
sd_event_source * event_timeout; /* 152 8 */
_Bool talking; /* 160 1 */
/* XXX 7 bytes hole, try to pack */
Hashmap * polkit_registry; /* 168 8 */
struct timespec trans_time_mon; /* 176 16 */
/* --- cacheline 3 boundary (192 bytes) --- */
struct timespec trans_time; /* 192 16 */
struct ntp_ts request_nonce; /* 208 8 */
usec_t retry_interval; /* 216 8 */
usec_t connection_retry_usec; /* 224 8 */
_Bool pending; /* 232 1 */
/* XXX 7 bytes hole, try to pack */
sd_event_source * event_timer; /* 240 8 */
usec_t poll_interval_usec; /* 248 8 */
/* --- cacheline 4 boundary (256 bytes) --- */
usec_t poll_interval_min_usec; /* 256 8 */
usec_t poll_interval_max_usec; /* 264 8 */
_Bool poll_resync; /* 272 1 */
/* XXX 7 bytes hole, try to pack */
struct {
double offset; /* 280 8 */
double delay; /* 288 8 */
} samples[8]; /* 280 128 */
struct {
double offset; /* 0 8 */
double delay; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
struct Manager {
sd_bus * bus; /* 0 8 */
sd_event * event; /* 8 8 */
sd_resolve * resolve; /* 16 8 */
ServerName * system_servers; /* 24 8 */
ServerName * link_servers; /* 32 8 */
ServerName * runtime_servers; /* 40 8 */
ServerName * fallback_servers; /* 48 8 */
RateLimit ratelimit; /* 56 24 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
_Bool exhausted_servers; /* 80 1 */
_Bool have_fallbacks; /* 81 1 */
/* XXX 6 bytes hole, try to pack */
sd_event_source * network_event_source; /* 88 8 */
sd_network_monitor * network_monitor; /* 96 8 */
sd_resolve_query * resolve_query; /* 104 8 */
sd_event_source * event_receive; /* 112 8 */
ServerName * current_server_name; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
ServerAddress * current_server_address; /* 128 8 */
int server_socket; /* 136 4 */
int missed_replies; /* 140 4 */
uint64_t packet_count; /* 144 8 */
sd_event_source * event_timeout; /* 152 8 */
_Bool talking; /* 160 1 */
/* XXX 7 bytes hole, try to pack */
Hashmap * polkit_registry; /* 168 8 */
struct timespec trans_time_mon; /* 176 16 */
/* --- cacheline 3 boundary (192 bytes) --- */
struct timespec trans_time; /* 192 16 */
struct ntp_ts request_nonce; /* 208 8 */
usec_t retry_interval; /* 216 8 */
usec_t connection_retry_usec; /* 224 8 */
_Bool pending; /* 232 1 */
/* XXX 7 bytes hole, try to pack */
sd_event_source * event_timer; /* 240 8 */
usec_t poll_interval_usec; /* 248 8 */
/* --- cacheline 4 boundary (256 bytes) --- */
usec_t poll_interval_min_usec; /* 256 8 */
usec_t poll_interval_max_usec; /* 264 8 */
_Bool poll_resync; /* 272 1 */
/* XXX 7 bytes hole, try to pack */
struct {
double offset; /* 280 8 */
double delay; /* 288 8 */
} samples[8]; /* 280 128 */
struct {
double offset; /* 0 8 */
double delay; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
struct Manager {
sd_bus * bus; /* 0 8 */
sd_event * event; /* 8 8 */
sd_resolve * resolve; /* 16 8 */
ServerName * system_servers; /* 24 8 */
ServerName * link_servers; /* 32 8 */
ServerName * runtime_servers; /* 40 8 */
ServerName * fallback_servers; /* 48 8 */
RateLimit ratelimit; /* 56 24 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
_Bool exhausted_servers; /* 80 1 */
_Bool have_fallbacks; /* 81 1 */
/* XXX 6 bytes hole, try to pack */
sd_event_source * network_event_source; /* 88 8 */
sd_network_monitor * network_monitor; /* 96 8 */
sd_resolve_query * resolve_query; /* 104 8 */
sd_event_source * event_receive; /* 112 8 */
ServerName * current_server_name; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
ServerAddress * current_server_address; /* 128 8 */
int server_socket; /* 136 4 */
int missed_replies; /* 140 4 */
uint64_t packet_count; /* 144 8 */
sd_event_source * event_timeout; /* 152 8 */
_Bool talking; /* 160 1 */
/* XXX 7 bytes hole, try to pack */
Hashmap * polkit_registry; /* 168 8 */
struct timespec trans_time_mon; /* 176 16 */
/* --- cacheline 3 boundary (192 bytes) --- */
struct timespec trans_time; /* 192 16 */
struct ntp_ts request_nonce; /* 208 8 */
usec_t retry_interval; /* 216 8 */
usec_t connection_retry_usec; /* 224 8 */
_Bool pending; /* 232 1 */
/* XXX 7 bytes hole, try to pack */
sd_event_source * event_timer; /* 240 8 */
usec_t poll_interval_usec; /* 248 8 */
/* --- cacheline 4 boundary (256 bytes) --- */
usec_t poll_interval_min_usec; /* 256 8 */
usec_t poll_interval_max_usec; /* 264 8 */
_Bool poll_resync; /* 272 1 */
/* XXX 7 bytes hole, try to pack */
struct {
double offset; /* 280 8 */
double delay; /* 288 8 */
} samples[8]; /* 280 128 */
struct {
double offset; /* 0 8 */
double delay; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
struct Manager {
sd_bus * bus; /* 0 8 */
sd_event * event; /* 8 8 */
sd_resolve * resolve; /* 16 8 */
ServerName * system_servers; /* 24 8 */
ServerName * link_servers; /* 32 8 */
ServerName * runtime_servers; /* 40 8 */
ServerName * fallback_servers; /* 48 8 */
RateLimit ratelimit; /* 56 24 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
_Bool exhausted_servers; /* 80 1 */
_Bool have_fallbacks; /* 81 1 */
/* XXX 6 bytes hole, try to pack */
sd_event_source * network_event_source; /* 88 8 */
sd_network_monitor * network_monitor; /* 96 8 */
sd_resolve_query * resolve_query; /* 104 8 */
sd_event_source * event_receive; /* 112 8 */
ServerName * current_server_name; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
ServerAddress * current_server_address; /* 128 8 */
int server_socket; /* 136 4 */
int missed_replies; /* 140 4 */
uint64_t packet_count; /* 144 8 */
sd_event_source * event_timeout; /* 152 8 */
_Bool talking; /* 160 1 */
/* XXX 7 bytes hole, try to pack */
Hashmap * polkit_registry; /* 168 8 */
struct timespec trans_time_mon; /* 176 16 */
/* --- cacheline 3 boundary (192 bytes) --- */
struct timespec trans_time; /* 192 16 */
struct ntp_ts request_nonce; /* 208 8 */
usec_t retry_interval; /* 216 8 */
usec_t connection_retry_usec; /* 224 8 */
_Bool pending; /* 232 1 */
/* XXX 7 bytes hole, try to pack */
sd_event_source * event_timer; /* 240 8 */
usec_t poll_interval_usec; /* 248 8 */
/* --- cacheline 4 boundary (256 bytes) --- */
usec_t poll_interval_min_usec; /* 256 8 */
usec_t poll_interval_max_usec; /* 264 8 */
_Bool poll_resync; /* 272 1 */
/* XXX 7 bytes hole, try to pack */
struct {
double offset; /* 280 8 */
double delay; /* 288 8 */
} samples[8]; /* 280 128 */
struct {
double offset; /* 0 8 */
double delay; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
struct Manager {
sd_event * event; /* 0 8 */
Set * workers_fixed; /* 8 8 */
Set * workers_dynamic; /* 16 8 */
int listen_fd; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
RateLimit worker_ratelimit; /* 32 24 */
sd_event_source * deferred_start_worker_event_source; /* 56 8 */
/* size: 64, cachelines: 1, members: 6 */
/* sum members: 60, holes: 1, sum holes: 4 */
struct Manager {
sd_bus * bus; /* 0 8 */
sd_event * event; /* 8 8 */
sd_resolve * resolve; /* 16 8 */
ServerName * system_servers; /* 24 8 */
ServerName * link_servers; /* 32 8 */
ServerName * runtime_servers; /* 40 8 */
ServerName * fallback_servers; /* 48 8 */
RateLimit ratelimit; /* 56 24 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
_Bool exhausted_servers; /* 80 1 */
_Bool have_fallbacks; /* 81 1 */
/* XXX 6 bytes hole, try to pack */
sd_event_source * network_event_source; /* 88 8 */
sd_network_monitor * network_monitor; /* 96 8 */
sd_resolve_query * resolve_query; /* 104 8 */
sd_event_source * event_receive; /* 112 8 */
ServerName * current_server_name; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
ServerAddress * current_server_address; /* 128 8 */
int server_socket; /* 136 4 */
int missed_replies; /* 140 4 */
uint64_t packet_count; /* 144 8 */
sd_event_source * event_timeout; /* 152 8 */
_Bool talking; /* 160 1 */
/* XXX 7 bytes hole, try to pack */
Hashmap * polkit_registry; /* 168 8 */
struct timespec trans_time_mon; /* 176 16 */
/* --- cacheline 3 boundary (192 bytes) --- */
struct timespec trans_time; /* 192 16 */
struct ntp_ts request_nonce; /* 208 8 */
usec_t retry_interval; /* 216 8 */
usec_t connection_retry_usec; /* 224 8 */
_Bool pending; /* 232 1 */
/* XXX 7 bytes hole, try to pack */
sd_event_source * event_timer; /* 240 8 */
usec_t poll_interval_usec; /* 248 8 */
/* --- cacheline 4 boundary (256 bytes) --- */
usec_t poll_interval_min_usec; /* 256 8 */
usec_t poll_interval_max_usec; /* 264 8 */
_Bool poll_resync; /* 272 1 */
/* XXX 7 bytes hole, try to pack */
struct {
double offset; /* 280 8 */
double delay; /* 288 8 */
} samples[8]; /* 280 128 */
struct {
double offset; /* 0 8 */
double delay; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
struct Manager {
sd_event * event; /* 0 8 */
Hashmap * workers; /* 8 8 */
Event * events; /* 16 8 */
Event * last_event; /* 24 8 */
char * cgroup; /* 32 8 */
UdevRules * rules; /* 40 8 */
Hashmap * properties; /* 48 8 */
sd_device_monitor * monitor; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
UdevCtrl * ctrl; /* 64 8 */
sd_varlink_server * varlink_server; /* 72 8 */
char * worker_notify_socket_path; /* 80 8 */
int inotify_fd; /* 88 4 */
/* XXX 4 bytes hole, try to pack */
sd_event_source * inotify_event; /* 96 8 */
Set * synthesize_change_child_event_sources; /* 104 8 */
sd_event_source * kill_workers_event; /* 112 8 */
Hashmap * locked_events_by_disk; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
Prioq * locked_events_by_time; /* 128 8 */
sd_event_source * requeue_locked_events_timer_event_source; /* 136 8 */
usec_t last_usec; /* 144 8 */
UdevConfig config_by_udev_conf; /* 152 40 */
/* --- cacheline 3 boundary (192 bytes) --- */
UdevConfig config_by_command; /* 192 40 */
UdevConfig config_by_kernel; /* 232 40 */
/* --- cacheline 4 boundary (256 bytes) was 16 bytes ago --- */
UdevConfig config_by_control; /* 272 40 */
UdevConfig config; /* 312 40 */
/* --- cacheline 5 boundary (320 bytes) was 32 bytes ago --- */
_Bool queue_file_created; /* 352 1 */
_Bool stop_exec_queue; /* 353 1 */
_Bool exit; /* 354 1 */
/* size: 360, cachelines: 6, members: 27 */
/* sum members: 351, holes: 1, sum holes: 4 */
/* padding: 5 */
/* last cacheline: 40 bytes */
struct GroupRecord {
unsigned int n_ref; /* 0 4 */
UserRecordMask mask; /* 4 4 */
_Bool incomplete; /* 8 1 */
/* XXX 7 bytes hole, try to pack */
char * group_name; /* 16 8 */
char * realm; /* 24 8 */
char * group_name_and_realm_auto; /* 32 8 */
sd_id128_t uuid; /* 40 16 */
char * description; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
UserDisposition disposition; /* 64 4 */
/* XXX 4 bytes hole, try to pack */
uint64_t last_change_usec; /* 72 8 */
gid_t gid; /* 80 4 */
/* XXX 4 bytes hole, try to pack */
char * * members; /* 88 8 */
char * service; /* 96 8 */
char * * administrators; /* 104 8 */
char * * hashed_password; /* 112 8 */
sd_json_variant * json; /* 120 8 */
/* size: 128, cachelines: 2, members: 16 */
/* sum members: 113, holes: 3, sum holes: 15 */
struct Group {
char * path; /* 0 8 */
_Bool n_tasks_valid; /* 8 1 */
_Bool cpu_valid; /* 9 1 */
_Bool memory_valid; /* 10 1 */
_Bool io_valid; /* 11 1 */
/* XXX 4 bytes hole, try to pack */
uint64_t n_tasks; /* 16 8 */
unsigned int cpu_iteration; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
nsec_t cpu_usage; /* 32 8 */
nsec_t cpu_timestamp; /* 40 8 */
double cpu_fraction; /* 48 8 */
uint64_t memory; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
unsigned int io_iteration; /* 64 4 */
/* XXX 4 bytes hole, try to pack */
uint64_t io_input; /* 72 8 */
uint64_t io_output; /* 80 8 */
nsec_t io_timestamp; /* 88 8 */
uint64_t io_input_bps; /* 96 8 */
uint64_t io_output_bps; /* 104 8 */
/* size: 112, cachelines: 2, members: 17 */
/* sum members: 100, holes: 3, sum holes: 12 */
/* last cacheline: 48 bytes */
struct PickFilter {
uint32_t type_mask; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
const char * basename; /* 8 8 */
const char * version; /* 16 8 */
Architecture architecture; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
char * const * suffix; /* 32 8 */
/* size: 40, cachelines: 1, members: 5 */
/* sum members: 32, holes: 2, sum holes: 8 */
/* last cacheline: 40 bytes */
struct Wiphy {
Manager * manager; /* 0 8 */
uint32_t index; /* 8 4 */
/* XXX 4 bytes hole, try to pack */
char * name; /* 16 8 */
sd_device * dev; /* 24 8 */
sd_device * rfkill; /* 32 8 */
RFKillState rfkill_state; /* 40 4 */
/* size: 48, cachelines: 1, members: 6 */
/* sum members: 40, holes: 1, sum holes: 4 */
/* padding: 4 */
/* last cacheline: 48 bytes */
struct Server {
int epoll_fd; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
Fifo * fifos; /* 8 8 */
unsigned int n_fifos; /* 16 4 */
/* XXX 4 bytes hole, try to pack */
sd_bus * bus; /* 24 8 */
_Bool quit; /* 32 1 */
/* size: 40, cachelines: 1, members: 5 */
/* sum members: 25, holes: 2, sum holes: 8 */
/* padding: 7 */
/* last cacheline: 40 bytes */
struct Server {
char * namespace; /* 0 8 */
int syslog_fd; /* 8 4 */
int native_fd; /* 12 4 */
int stdout_fd; /* 16 4 */
int dev_kmsg_fd; /* 20 4 */
int audit_fd; /* 24 4 */
int hostname_fd; /* 28 4 */
int notify_fd; /* 32 4 */
int forward_socket_fd; /* 36 4 */
sd_event * event; /* 40 8 */
sd_event_source * syslog_event_source; /* 48 8 */
sd_event_source * native_event_source; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
sd_event_source * stdout_event_source; /* 64 8 */
sd_event_source * dev_kmsg_event_source; /* 72 8 */
sd_event_source * audit_event_source; /* 80 8 */
sd_event_source * sync_event_source; /* 88 8 */
sd_event_source * sigusr1_event_source; /* 96 8 */
sd_event_source * sigusr2_event_source; /* 104 8 */
sd_event_source * sigterm_event_source; /* 112 8 */
sd_event_source * sigint_event_source; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
sd_event_source * sigrtmin1_event_source; /* 128 8 */
sd_event_source * hostname_event_source; /* 136 8 */
sd_event_source * notify_event_source; /* 144 8 */
sd_event_source * watchdog_event_source; /* 152 8 */
sd_event_source * idle_event_source; /* 160 8 */
struct sigrtmin18_info sigrtmin18_info; /* 168 16 */
JournalFile * runtime_journal; /* 184 8 */
/* --- cacheline 3 boundary (192 bytes) --- */
JournalFile * system_journal; /* 192 8 */
OrderedHashmap * user_journals; /* 200 8 */
SeqnumData * seqnum; /* 208 8 */
char * buffer; /* 216 8 */
OrderedHashmap * ratelimit_groups_by_id; /* 224 8 */
usec_t sync_interval_usec; /* 232 8 */
usec_t ratelimit_interval; /* 240 8 */
unsigned int ratelimit_burst; /* 248 4 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 4 boundary (256 bytes) --- */
JournalStorage runtime_storage; /* 256 104 */
/* --- cacheline 5 boundary (320 bytes) was 40 bytes ago --- */
JournalStorage system_storage; /* 360 104 */
/* --- cacheline 7 boundary (448 bytes) was 16 bytes ago --- */
JournalCompressOptions compress; /* 464 16 */
_Bool seal; /* 480 1 */
_Bool read_kmsg; /* 481 1 */
/* XXX 2 bytes hole, try to pack */
int set_audit; /* 484 4 */
_Bool forward_to_kmsg; /* 488 1 */
_Bool forward_to_syslog; /* 489 1 */
_Bool forward_to_console; /* 490 1 */
_Bool forward_to_wall; /* 491 1 */
/* XXX 4 bytes hole, try to pack */
SocketAddress forward_to_socket; /* 496 144 */
/* --- cacheline 10 boundary (640 bytes) --- */
unsigned int n_forward_syslog_missed; /* 640 4 */
/* XXX 4 bytes hole, try to pack */
usec_t last_warn_forward_syslog_missed; /* 648 8 */
usec_t max_retention_usec; /* 656 8 */
usec_t max_file_usec; /* 664 8 */
usec_t oldest_file_usec; /* 672 8 */
StdoutStream * stdout_streams; /* 680 8 */
StdoutStream * stdout_streams_notify_queue; /* 688 8 */
unsigned int n_stdout_streams; /* 696 4 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 11 boundary (704 bytes) --- */
char * tty_path; /* 704 8 */
int max_level_store; /* 712 4 */
int max_level_syslog; /* 716 4 */
int max_level_kmsg; /* 720 4 */
int max_level_console; /* 724 4 */
int max_level_wall; /* 728 4 */
int max_level_socket; /* 732 4 */
Storage storage; /* 736 4 */
SplitMode split_mode; /* 740 4 */
MMapCache * mmap; /* 744 8 */
Set * deferred_closes; /* 752 8 */
uint64_t * kernel_seqnum; /* 760 8 */
/* --- cacheline 12 boundary (768 bytes) --- */
RateLimit kmsg_own_ratelimit; /* 768 24 */
_Bool send_watchdog:1; /* 792: 0 1 */
_Bool sent_notify_ready:1; /* 792: 1 1 */
_Bool sync_scheduled:1; /* 792: 2 1 */
/* XXX 5 bits hole, try to pack */
char machine_id_field[45]; /* 793 45 */
/* --- cacheline 13 boundary (832 bytes) was 6 bytes ago --- */
char boot_id_field[42]; /* 838 42 */
char * hostname_field; /* 880 8 */
char * namespace_field; /* 888 8 */
/* --- cacheline 14 boundary (896 bytes) --- */
char * runtime_directory; /* 896 8 */
char * cgroup_root; /* 904 8 */
usec_t watchdog_usec; /* 912 8 */
usec_t last_realtime_clock; /* 920 8 */
size_t line_max; /* 928 8 */
Hashmap * client_contexts; /* 936 8 */
Prioq * client_contexts_lru; /* 944 8 */
usec_t last_cache_pid_flush; /* 952 8 */
/* --- cacheline 15 boundary (960 bytes) --- */
ClientContext * my_context; /* 960 8 */
ClientContext * pid1_context; /* 968 8 */
sd_varlink_server * varlink_server; /* 976 8 */
usec_t native_timestamp; /* 984 8 */
usec_t syslog_timestamp; /* 992 8 */
usec_t dev_kmsg_timestamp; /* 1000 8 */
Prioq * sync_req_realtime_prioq; /* 1008 8 */
Prioq * sync_req_boottime_prioq; /* 1016 8 */
/* --- cacheline 16 boundary (1024 bytes) --- */
SyncReq * sync_req_pending_rqlen; /* 1024 8 */
/* size: 1032, cachelines: 17, members: 91 */
/* sum members: 1013, holes: 5, sum holes: 18 */
/* sum bitfield members: 3 bits, bit holes: 1, sum bit holes: 5 bits */
/* last cacheline: 8 bytes */
struct ServerAddress {
ServerName * name; /* 0 8 */
union sockaddr_union sockaddr; /* 8 128 */
/* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
socklen_t socklen; /* 136 4 */
/* XXX 4 bytes hole, try to pack */
ServerAddress * addresses_next; /* 144 8 */
ServerAddress * addresses_prev; /* 152 8 */
/* size: 160, cachelines: 3, members: 5 */
/* sum members: 156, holes: 1, sum holes: 4 */
/* last cacheline: 32 bytes */
struct ServerName {
Manager * manager; /* 0 8 */
_Bool marked; /* 8 1 */
/* XXX 3 bytes hole, try to pack */
ServerType type; /* 12 4 */
char * string; /* 16 8 */
ServerAddress * addresses; /* 24 8 */
ServerName * names_next; /* 32 8 */
ServerName * names_prev; /* 40 8 */
/* size: 48, cachelines: 1, members: 7 */
/* sum members: 45, holes: 1, sum holes: 3 */
/* last cacheline: 48 bytes */
struct ClockState {
int timerfd_fd; /* 0 4 */
int adjtime_state; /* 4 4 */
sd_event_source * timerfd_event_source; /* 8 8 */
int inotify_fd; /* 16 4 */
/* XXX 4 bytes hole, try to pack */
sd_event_source * inotify_event_source; /* 24 8 */
int run_systemd_wd; /* 32 4 */
int run_systemd_timesync_wd; /* 36 4 */
_Bool has_watchfile; /* 40 1 */
/* size: 48, cachelines: 1, members: 8 */
/* sum members: 37, holes: 1, sum holes: 4 */
/* padding: 7 */
/* last cacheline: 48 bytes */
struct HierarchyTokenBucketClass {
TClass meta; /* 0 56 */
uint32_t priority; /* 56 4 */
uint32_t quantum; /* 60 4 */
/* --- cacheline 1 boundary (64 bytes) --- */
uint32_t mtu; /* 64 4 */
uint16_t overhead; /* 68 2 */
/* XXX 2 bytes hole, try to pack */
uint64_t rate; /* 72 8 */
uint32_t buffer; /* 80 4 */
/* XXX 4 bytes hole, try to pack */
uint64_t ceil_rate; /* 88 8 */
uint32_t ceil_buffer; /* 96 4 */
/* size: 104, cachelines: 2, members: 9 */
/* sum members: 94, holes: 2, sum holes: 6 */
/* padding: 4 */
/* last cacheline: 40 bytes */
struct QDiscVTable {
size_t object_size; /* 0 8 */
const char * tca_kind; /* 8 8 */
int (*init)(QDisc *); /* 16 8 */
int (*fill_message)(Link *, QDisc *, sd_netlink_message *); /* 24 8 */
int (*verify)(QDisc *); /* 32 8 */
int (*is_ready)(QDisc *, Link *); /* 40 8 */
/* size: 48, cachelines: 1, members: 6 */
/* last cacheline: 48 bytes */
struct QDisc {
Link * link; /* 0 8 */
Network * network; /* 8 8 */
ConfigSection * section; /* 16 8 */
NetworkConfigSource source; /* 24 4 */
NetworkConfigState state; /* 28 4 */
unsigned int n_ref; /* 32 4 */
uint32_t handle; /* 36 4 */
uint32_t parent; /* 40 4 */
/* XXX 4 bytes hole, try to pack */
char * tca_kind; /* 48 8 */
QDiscKind kind; /* 56 4 */
/* size: 64, cachelines: 1, members: 10 */
/* sum members: 56, holes: 1, sum holes: 4 */
/* padding: 4 */
struct ControlledDelay {
QDisc meta; /* 0 64 */
/* --- cacheline 1 boundary (64 bytes) --- */
uint32_t packet_limit; /* 64 4 */
/* XXX 4 bytes hole, try to pack */
usec_t interval_usec; /* 72 8 */
usec_t target_usec; /* 80 8 */
usec_t ce_threshold_usec; /* 88 8 */
int ecn; /* 96 4 */
/* size: 104, cachelines: 2, members: 6 */
/* sum members: 96, holes: 1, sum holes: 4 */
/* padding: 4 */
/* last cacheline: 40 bytes */
struct Spawn {
sd_device * device; /* 0 8 */
const char * cmd; /* 8 8 */
PidRef pidref; /* 16 16 */
usec_t timeout_warn_usec; /* 32 8 */
usec_t timeout_usec; /* 40 8 */
int timeout_signal; /* 48 4 */
/* XXX 4 bytes hole, try to pack */
usec_t event_birth_usec; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
usec_t cmd_birth_usec; /* 64 8 */
_Bool accept_failure; /* 72 1 */
/* XXX 3 bytes hole, try to pack */
int fd_stdout; /* 76 4 */
int fd_stderr; /* 80 4 */
/* XXX 4 bytes hole, try to pack */
char * result; /* 88 8 */
size_t result_size; /* 96 8 */
size_t result_len; /* 104 8 */
_Bool truncated; /* 112 1 */
/* size: 120, cachelines: 2, members: 15 */
/* sum members: 102, holes: 3, sum holes: 11 */
/* padding: 7 */
/* last cacheline: 56 bytes */
struct UserNamespaceInfo {
uid_t owner; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
char * name; /* 8 8 */
uint64_t userns_inode; /* 16 8 */
uint32_t size; /* 24 4 */
uid_t start_uid; /* 28 4 */
uid_t target_uid; /* 32 4 */
gid_t start_gid; /* 36 4 */
gid_t target_gid; /* 40 4 */
/* XXX 4 bytes hole, try to pack */
uint64_t * cgroups; /* 48 8 */
size_t n_cgroups; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
char * * netifs; /* 64 8 */
/* size: 72, cachelines: 2, members: 11 */
/* sum members: 64, holes: 2, sum holes: 8 */
/* last cacheline: 8 bytes */
struct RequestMeta {
sd_journal * journal; /* 0 8 */
OutputMode mode; /* 8 4 */
/* XXX 4 bytes hole, try to pack */
char * cursor; /* 16 8 */
usec_t since; /* 24 8 */
usec_t until; /* 32 8 */
int64_t n_skip; /* 40 8 */
uint64_t n_entries; /* 48 8 */
_Bool n_entries_set; /* 56 1 */
_Bool since_set; /* 57 1 */
_Bool until_set; /* 58 1 */
/* XXX 5 bytes hole, try to pack */
/* --- cacheline 1 boundary (64 bytes) --- */
FILE * tmp; /* 64 8 */
uint64_t delta; /* 72 8 */
uint64_t size; /* 80 8 */
int argument_parse_error; /* 88 4 */
_Bool follow; /* 92 1 */
_Bool discrete; /* 93 1 */
/* size: 96, cachelines: 2, members: 16 */
/* sum members: 85, holes: 2, sum holes: 9 */
/* padding: 2 */
/* last cacheline: 32 bytes */
struct sd_ndisc_router {
unsigned int n_ref; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
ICMP6Packet * packet; /* 8 8 */
uint8_t hop_limit; /* 16 1 */
uint8_t flags; /* 17 1 */
uint8_t preference; /* 18 1 */
/* XXX 5 bytes hole, try to pack */
usec_t lifetime_usec; /* 24 8 */
usec_t reachable_time_usec; /* 32 8 */
usec_t retransmission_time_usec; /* 40 8 */
Set * options; /* 48 8 */
Iterator iterator; /* 56 16 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
sd_ndisc_option * current_option; /* 72 8 */
/* size: 80, cachelines: 2, members: 11 */
/* sum members: 71, holes: 2, sum holes: 9 */
/* last cacheline: 16 bytes */ |
@bluca, I did not find all the modified structures in the object files in the build folder. |
ICMP6Packet *packet; | ||
|
||
unsigned n_ref; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
as mentioned, please don't move n_ref around
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
as mentioned, please don't move n_ref around
sorry, I didn't notice about n_ref, maybe I should move flags higher, behind packet?
char **states[_SLEEP_OPERATION_CONFIG_MAX]; | ||
char **modes[_SLEEP_OPERATION_CONFIG_MAX]; /* Power mode after writing hibernation image (/sys/power/disk) */ | ||
char **mem_modes; /* /sys/power/mem_sleep */ | ||
|
||
usec_t hibernate_delay_usec; | ||
bool allow[_SLEEP_OPERATION_MAX]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this should remain at the beginning
@@ -27,15 +27,15 @@ typedef struct Spawn { | ||
usec_t timeout_warn_usec; | ||
usec_t timeout_usec; | ||
int timeout_signal; | ||
bool accept_failure; | ||
bool truncated; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
truncated
should stay at the end, close to result_len
bool partition_type_set; | ||
char *path; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we want path <-> path_auto and partition_type <-> _set association. so not desirable here
bool partition_uuid_set; | ||
bool partition_flags_set; | ||
usec_t mtime; | ||
mode_t mode; | ||
usec_t mtime; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
also here, please don't
uint64_t size; | ||
uint64_t used; | ||
int priority; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this matches the order of /proc/swaps entries. shouldn't be moved
Affected structs: - CGroupInfo 72 to 64 bytes - LoopDevice 96 to 88 bytes - load_cred_args 56 to 48 bytes - SSHInfo 24 to 16 bytes - machine_info 72 to 64 bytes - ManagedOOMMessage 40 to 32 bytes - NTPStatusInfo 160 to 152 bytes - DNSServer 48 to 40 bytes - SyncReq 88 to 80 bytes - repart/Context 144 to 136 bytes - BatmanAdvanced 160 to 152 bytes - sysupdate/Feature 48 to 40 bytes - LogContext 72 to 64 bytes - repart/PartitionTarget 40 to 32 bytes - resolvectl/server_state 96 to 88 bytes - hibernate-util/SwapEntry 56 to 48 bytes - sysupdate/InstanceMetadata 136 to 120 bytes - sysupdate/Resource 96 to 88 bytes - BaseFilesystem 40 to 32 bytes - ServiceFDStore 56 to 48 bytes - CommonApplicationsKeptEnhanced 144 to 136 bytes - SleepConfig 88 to 80 bytes - sd_dns_resolver 56 to 48 bytes - write_queue_item 40 to 32 bytes - nsresourced/Manager 72 to 64 bytes - cgtop/Group 112 to 104 bytes - vpick/PickFilter 40 to 32 bytes - networkd/Wiphy 48 to 40 bytes - initctl/Server 40 to 32 bytes - ClockState 48 to 40 bytes - HierarchyTokenBucketClass 104 to 96 bytes - QDisc 64 to 56 bytes - ControlledDelay 104 to 96 bytes - udev/Spawn 120 to 104 bytes !!! - UserNamespaceInfo 72 to 64 bytes - sd_ndisc_neighbor 48 to 40 bytes - journal-gatewayd/RequestMeta 96 to 88 bytes - ImportCredentialContext 24 to 16 bytes - sd_ndisc_router 80 to 72 bytes
@GermanAizek Please do not merge the main branch, but rebase the commit. |
I think this change will be very useful because systemd is widely used in most Linux distributions. I think this will reduce minimum requirements for hardware in amount RAM, and it will decrease costs copying, moving, and creating object-structures only for common 64bit processors due to the 8-byte data alignment.
Smaller size structure or class, higher chance putting into cpu cache, changes require checking using yours benchmark, I haven't figured out how to run bench in your project yet.
An easy way to check initialization speed system first. I wonder if my PR will help me get a little closer to OpenRC in terms of speed? But the task was originally different.
Most processors are already 64 bit, so the change won't make it any worse.
Info about technique:
https://stackoverflow.com/a/20882083
https://zijishi.xyz/post/optimization-technique/learning-to-use-data-alignment/
https://wr.informatik.uni-hamburg.de/_media/teaching/wintersemester_2013_2014/epc-14-haase-svenhendrik-alignmentinc-presentation.pdf
https://hpc.rz.rptu.de/Tutorials/AVX/alignment.shtml
https://en.wikipedia.org/wiki/Data_structure_alignment
Affected structs: