pipewire/spa/plugins/support
Barnabás Pőcze e2287f35db spa: support: loop: move struct members
Move the boolean members of `struct source_impl` to the end
of the struct. This changes the size of the struct from
104 bytes to 96 bytes on x86-64.

Before:

struct source_impl {
        struct spa_source          source;               /*     0    48 */
        struct impl *              impl;                 /*    48     8 */
        struct spa_list            link;                 /*    56    16 */
        /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
        _Bool                      close;                /*    72     1 */

        /* XXX 7 bytes hole, try to pack */

        union {
                spa_source_io_func_t io;                 /*    80     8 */
                spa_source_idle_func_t idle;             /*    80     8 */
                spa_source_event_func_t event;           /*    80     8 */
                spa_source_timer_func_t timer;           /*    80     8 */
                spa_source_signal_func_t signal;         /*    80     8 */
        } func;                                          /*    80     8 */
        _Bool                      enabled;              /*    88     1 */

        /* XXX 7 bytes hole, try to pack */

        struct spa_source *        fallback;             /*    96     8 */

        /* size: 104, cachelines: 2, members: 7 */
        /* sum members: 90, holes: 2, sum holes: 14 */
        /* last cacheline: 40 bytes */
};

After:

struct source_impl {
        struct spa_source          source;               /*     0    48 */
        struct impl *              impl;                 /*    48     8 */
        struct spa_list            link;                 /*    56    16 */
        /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
        union {
                spa_source_io_func_t io;                 /*    72     8 */
                spa_source_idle_func_t idle;             /*    72     8 */
                spa_source_event_func_t event;           /*    72     8 */
                spa_source_timer_func_t timer;           /*    72     8 */
                spa_source_signal_func_t signal;         /*    72     8 */
        } func;                                          /*    72     8 */
        struct spa_source *        fallback;             /*    80     8 */
        _Bool                      close;                /*    88     1 */
        _Bool                      enabled;              /*    89     1 */

        /* size: 96, cachelines: 2, members: 7 */
        /* padding: 6 */
        /* last cacheline: 32 bytes */
};
2022-03-06 18:40:43 +00:00
..
cpu-arm.c cpu: disable VFP asm when not available 2021-10-25 16:32:16 +02:00
cpu-x86.c cpu: only run SSE code when supported 2021-11-02 20:12:35 +01:00
cpu.c cpu: fix compilation on some architectures 2021-10-21 11:09:48 +02:00
dbus.c dbuf: use log topic 2021-10-03 12:27:20 +02:00
evl-plugin.c Add evl system support 2019-06-24 09:42:05 +02:00
evl-system.c treewide: replace strcmp() == 0 with spa_streq() 2021-05-18 22:10:27 +10:00
journal.c spa: support: do not include C source file 2021-09-29 15:07:36 +00:00
log-patterns.c json: spa_json_get_string() writes up to len chars or fail 2022-01-04 10:42:32 +01:00
log-patterns.h spa: support: do not include C source file 2021-09-29 15:07:36 +00:00
logger.c support: close log file when we opened it 2022-02-08 11:30:39 +01:00
loop.c spa: support: loop: move struct members 2022-03-06 18:40:43 +00:00
meson.build treewide: meson.build: use feature.allowed() 2022-02-04 00:15:59 +01:00
node-driver.c support: add property to configure clock name 2021-12-10 11:22:23 +01:00
null-audio-sink.c Use configured quantum_limit instead of hardcoded value 2022-01-12 17:50:12 +01:00
plugin.c support: add null audio sink 2020-08-20 18:00:00 +02:00
system.c spa: sprinkle more log topics into spa 2021-09-28 09:35:39 +02:00