Re: [PATCH 4/4] rseq/selftests: Implement MIPS support

From: Mathieu Desnoyers
Date: Fri Jun 15 2018 - 13:37:26 EST


----- On Jun 15, 2018, at 6:58 AM, James Hogan jhogan@xxxxxxxxxx wrote:

> On Thu, Jun 14, 2018 at 04:52:10PM -0700, Paul Burton wrote:
>> +#define __RSEQ_ASM_DEFINE_TABLE(version, flags, start_ip, \
>
> Nit: technically all these \'s are on 81st column...
>
>> +#define __RSEQ_ASM_DEFINE_ABORT(table_label, label, teardown, \
>> + abort_label, version, flags, \
>> + start_ip, post_commit_offset, abort_ip) \
>> + ".balign 32\n\t" \
>
> ARM doesn't do this for DEFINE_ABORT. Is it intentional that we do for
> MIPS?

Given that include/uapi/linux/rseq.h declares struct rseq_cs as
__attribute__((aligned(4 * sizeof(__u64)))), and considering this
comment:

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

The .balign 32 is the right thing to do here. I will add a .balign 32
to ARM selftests code as well.

Thanks,

Mathieu

>
> Thanks
> James

--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com