Commit 5ff926a4 authored by Akilesh Kailash's avatar Akilesh Kailash
Browse files

ANDROID: fixup ABI break in io_uring_types.h



Move new field "retry_llist" by using the padding.

Before adding the field "retry_llist":

        /* --- cacheline 7 boundary (448 bytes) --- */
        struct {
                struct llist_head  work_llist;           /*     0     8 */
                unsigned long      check_cq;             /*     8     8 */
                atomic_t           cq_wait_nr;           /*    16     4 */
                atomic_t           cq_timeouts;          /*    20     4 */
                struct wait_queue_head cq_wait;          /*    24    24 */
        } __attribute__((__aligned__(64))) __attribute__((__aligned__(64)));              /*   448    64 */

        /* XXX last struct has 16 bytes of padding */
        struct {
                struct llist_head          work_llist;           /*     0     8 */
                unsigned long              check_cq;             /*     8     8 */
                atomic_t                   cq_wait_nr;           /*    16     4 */
                atomic_t                   cq_timeouts;          /*    20     4 */
                struct wait_queue_head     cq_wait;              /*    24    24 */

                /* size: 64, cachelines: 1, members: 5 */
                /* padding: 16 */
        } __attribute__((__aligned__(64)));

        /* size: 1536, cachelines: 24, members: 49 */
        /* sum members: 1493, holes: 6, sum holes: 27 */
        /* padding: 16 */
        /* paddings: 7, sum paddings: 100 */
        /* forced alignments: 6, forced holes: 1, sum forced holes: 7 */

After adding the field "retry_llist":

        /* --- cacheline 7 boundary (448 bytes) --- */
        struct {
                struct llist_head  work_llist;           /*     0     8 */
                unsigned long      check_cq;             /*     8     8 */
                atomic_t           cq_wait_nr;           /*    16     4 */
                atomic_t           cq_timeouts;          /*    20     4 */
                struct wait_queue_head cq_wait;          /*    24    24 */
                struct llist_head  retry_llist;          /*    48     8 */
        } __attribute__((__aligned__(64))) __attribute__((__aligned__(64)));              /*   448    64 */

        /* XXX last struct has 8 bytes of padding */
        struct {
                struct llist_head          work_llist;           /*     0     8 */
                unsigned long              check_cq;             /*     8     8 */
                atomic_t                   cq_wait_nr;           /*    16     4 */
                atomic_t                   cq_timeouts;          /*    20     4 */
                struct wait_queue_head     cq_wait;              /*    24    24 */
                struct llist_head          retry_llist;          /*    48     8 */

                /* size: 64, cachelines: 1, members: 6 */
                /* padding: 8 */
        } __attribute__((__aligned__(64)));

        /* size: 1536, cachelines: 24, members: 49 */
        /* sum members: 1493, holes: 6, sum holes: 27 */
        /* padding: 16 */
        /* paddings: 7, sum paddings: 92 */
        /* forced alignments: 6, forced holes: 1, sum forced holes: 7 */

Bug: 297114355
Change-Id: Ic1a8b71fcd41d4caf516e94463d77b5acaf50899
Signed-off-by: default avatarAkilesh Kailash <akailash@google.com>
parent 00cb3683
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment