Re: Non-reproducible AIO failure
От | Thomas Munro |
---|---|
Тема | Re: Non-reproducible AIO failure |
Дата | |
Msg-id | CA+hUKGJHrNoO9N92rseOb2p9vQKLVTcJmadSxxrUFrjYHrnFXA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Non-reproducible AIO failure (Thomas Munro <thomas.munro@gmail.com>) |
Ответы |
Re: Non-reproducible AIO failure
|
Список | pgsql-hackers |
On Mon, Aug 25, 2025 at 1:52 PM Thomas Munro <thomas.munro@gmail.com> wrote: > > struct { PgAioHandleState v:8; } state; > > This preserves type safety and compiles to strb two properties we > want, but it seems to waste space (look at the offsets for the > stores): > > a.out[0x1000005f8] <+140>: ldr x8, [sp, #0x8] > a.out[0x1000005fc] <+144>: strb wzr, [x8, #0x8] > a.out[0x100000600] <+148>: ldr x8, [sp, #0x8] > a.out[0x100000604] <+152>: strb wzr, [x8, #0x4] Sorry, I didn't make that very clear: that's open source clang 17 compiling assignment of zero to two neighbouring wrapped bitfields with your trick. Probably easier to look at the struct layout with pahole or printf offsetof(...) or sizeof() to see that PgAioHandle grows by 9 bytes of padding, something Andres obviously felt pretty strongly about if he felt the need to summon bitfields...
В списке pgsql-hackers по дате отправления: