Re: [RFC PATCH for 4.17 02/21] rseq: Introduce restartable sequences system call (v12)

From: Peter Zijlstra
Date: Wed Mar 28 2018 - 07:22:51 EST


On Tue, Mar 27, 2018 at 12:05:23PM -0400, Mathieu Desnoyers wrote:
> +/*
> + * struct rseq_cs is aligned on 4 * 8 bytes to ensure it is always
> + * contained within a single cache-line. It is usually declared as
> + * link-time constant data.
> + */
> +struct rseq_cs {
> + /* Version of this structure. */
> + uint32_t version;
> + /* enum rseq_cs_flags */
> + uint32_t flags;
> + LINUX_FIELD_u32_u64(start_ip);
> + /* Offset from start_ip. */
> + LINUX_FIELD_u32_u64(post_commit_offset);
> + LINUX_FIELD_u32_u64(abort_ip);
> +} __attribute__((aligned(4 * sizeof(uint64_t))));

What's with the uint32_t ? The normal Linux API type is __u32 afaik.