Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

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

Open
wants to merge 2 commits into
base: main
Choose a base branch
Loading
from

Conversation

GermanAizek
Copy link

@GermanAizek GermanAizek commented May 13, 2025

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:

  • 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 !!! (reduced by 16 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

Copy link
Member

@YHNdnzj YHNdnzj left a 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;
Copy link
Member

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

Copy link
Author

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;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also here

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fix it 5fddc47

@@ -93,8 +93,8 @@ typedef enum TpmStateMode {
} TpmStateMode;

typedef struct SSHInfo {
unsigned cid;
char *private_key_path;
Copy link
Member

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

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fix it 5fddc47

@YHNdnzj
Copy link
Member

YHNdnzj commented May 14, 2025

So, hmm, please drop all such changes to n_ref field. Placing it atop clearly indicates that a struct is refcounted.

@GermanAizek
Copy link
Author

GermanAizek commented May 14, 2025

ordering matters regarding readability

@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

@bluca
Copy link
Member

bluca commented May 14, 2025

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

@poettering
Copy link
Member

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.

@keszybz keszybz added reviewed/needs-rework 🔨 PR has been reviewed and needs another round of reworks and removed needs-discussion 🤔 please-review PR is ready for (re-)review by a maintainer labels May 14, 2025
@GermanAizek
Copy link
Author

There are tools such as pahole that can show how structs actually get packed in memory

Hello dear maintainers and contributors.
Yes, I can provide pahole output on all changed structures in this PR.

@GermanAizek
Copy link
Author

PR

struct 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 */

@GermanAizek
Copy link
Author

Master

struct 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 */

@GermanAizek
Copy link
Author

@bluca, I did not find all the modified structures in the object files in the build folder.

ICMP6Packet *packet;

unsigned n_ref;
Copy link
Member

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

Copy link
Author

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];
Copy link
Member

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;
Copy link
Member

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

Comment on lines +84 to +85
bool partition_type_set;
char *path;
Copy link
Member

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

Comment on lines +23 to +26
bool partition_uuid_set;
bool partition_flags_set;
usec_t mtime;
mode_t mode;
usec_t mtime;
Copy link
Member

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

@github-actions github-actions bot added please-review PR is ready for (re-)review by a maintainer and removed reviewed/needs-rework 🔨 PR has been reviewed and needs another round of reworks labels May 14, 2025
uint64_t size;
uint64_t used;
int priority;
Copy link
Member

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
@yuwata yuwata added reviewed/needs-rework 🔨 PR has been reviewed and needs another round of reworks needs-rebase and removed please-review PR is ready for (re-)review by a maintainer labels May 16, 2025
@github-actions github-actions bot added please-review PR is ready for (re-)review by a maintainer and removed reviewed/needs-rework 🔨 PR has been reviewed and needs another round of reworks needs-rebase labels May 20, 2025
@yuwata yuwata added needs-rebase and removed please-review PR is ready for (re-)review by a maintainer labels May 20, 2025
@yuwata
Copy link
Member

yuwata commented May 20, 2025

@GermanAizek Please do not merge the main branch, but rebase the commit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

6 participants
Morty Proxy This is a proxified and sanitized view of the page, visit original site.