All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
To: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will.deacon@arm.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Paul E . McKenney" <paulmck@linux.vnet.ibm.com>,
	Boqun Feng <boqun.feng@gmail.com>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-api <linux-api@vger.kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Andy Lutomirski <luto@amacapital.net>,
	Dave Watson <davejwatson@fb.com>, Paul Turner <pjt@google.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Russell King <linux@arm.linux.org.uk>,
	Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
	Andi Kleen <andi@firstfloor.org>, Chris Lameter <cl@linux.com>,
	Ben Maurer <bmaurer@fb.com>, rostedt <rostedt@goodmis.org>,
	Josh Triplett <josh@joshtriplett.org>,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [RFC PATCH for 5.2 08/10] rseq/selftests: aarch64 code signature: handle big-endian environment
Date: Wed, 24 Apr 2019 13:02:59 -0400 (EDT)	[thread overview]
Message-ID: <2087640779.608.1556125379269.JavaMail.zimbra@efficios.com> (raw)
In-Reply-To: <697611694.604.1556125254852.JavaMail.zimbra@efficios.com>

----- On Apr 24, 2019, at 1:00 PM, Mathieu Desnoyers mathieu.desnoyers@efficios.com wrote:

> ----- On Apr 24, 2019, at 12:51 PM, Mark Rutland mark.rutland@arm.com wrote:
> 
>> On Wed, Apr 24, 2019 at 05:45:38PM +0100, Will Deacon wrote:
>>> On Wed, Apr 24, 2019 at 11:25:00AM -0400, Mathieu Desnoyers wrote:
>>> > +/*
>>> > + * aarch64 -mbig-endian generates mixed endianness code vs data:
>>> > + * little-endian code and big-endian data. Ensure the RSEQ_SIG signature
>>> > + * matches code endianness.
>>> > + */
>>> > +#define RSEQ_SIG_CODE	0xd428bc00	/* BRK #0x45E0.  */
>>> > +
>>> > +#ifdef __AARCH64EB__
>>> > +#define RSEQ_SIG_DATA	0x00bc28d4	/* BRK #0x45E0.  */
>>> 
>>> It would be neater to implement swab32 and use that with RSEQ_SIG_CODE,
>> 
>> If possible, marginally neater than that would be using
>> le32_to_cpu(RSEQ_SIG_CODE), without any ifdeffery necessary.
>> 
>> It looks like that's defined in tools/include/linux/kernel.h, but I'm
>> not sure if that gets pulled into your include path.
> 
> Considering that those RSEQ_SIG* define will end up in public bits/rseq.h
> headers within glibc, I'm tempted to keep the amount of dependencies on
> external headers to a minimum, if it's OK with you.

Also, I'm not sure the le32_to_cpu() approach would work in __ASSEMBLER__
builds.

Thanks,

Mathieu

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

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

WARNING: multiple messages have this Message-ID (diff)
From: mathieu.desnoyers at efficios.com (Mathieu Desnoyers)
Subject: [RFC PATCH for 5.2 08/10] rseq/selftests: aarch64 code signature: handle big-endian environment
Date: Wed, 24 Apr 2019 13:02:59 -0400 (EDT)	[thread overview]
Message-ID: <2087640779.608.1556125379269.JavaMail.zimbra@efficios.com> (raw)
In-Reply-To: <697611694.604.1556125254852.JavaMail.zimbra@efficios.com>

----- On Apr 24, 2019, at 1:00 PM, Mathieu Desnoyers mathieu.desnoyers at efficios.com wrote:

> ----- On Apr 24, 2019, at 12:51 PM, Mark Rutland mark.rutland at arm.com wrote:
> 
>> On Wed, Apr 24, 2019 at 05:45:38PM +0100, Will Deacon wrote:
>>> On Wed, Apr 24, 2019 at 11:25:00AM -0400, Mathieu Desnoyers wrote:
>>> > +/*
>>> > + * aarch64 -mbig-endian generates mixed endianness code vs data:
>>> > + * little-endian code and big-endian data. Ensure the RSEQ_SIG signature
>>> > + * matches code endianness.
>>> > + */
>>> > +#define RSEQ_SIG_CODE	0xd428bc00	/* BRK #0x45E0.  */
>>> > +
>>> > +#ifdef __AARCH64EB__
>>> > +#define RSEQ_SIG_DATA	0x00bc28d4	/* BRK #0x45E0.  */
>>> 
>>> It would be neater to implement swab32 and use that with RSEQ_SIG_CODE,
>> 
>> If possible, marginally neater than that would be using
>> le32_to_cpu(RSEQ_SIG_CODE), without any ifdeffery necessary.
>> 
>> It looks like that's defined in tools/include/linux/kernel.h, but I'm
>> not sure if that gets pulled into your include path.
> 
> Considering that those RSEQ_SIG* define will end up in public bits/rseq.h
> headers within glibc, I'm tempted to keep the amount of dependencies on
> external headers to a minimum, if it's OK with you.

Also, I'm not sure the le32_to_cpu() approach would work in __ASSEMBLER__
builds.

Thanks,

Mathieu

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

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

WARNING: multiple messages have this Message-ID (diff)
From: mathieu.desnoyers@efficios.com (Mathieu Desnoyers)
Subject: [RFC PATCH for 5.2 08/10] rseq/selftests: aarch64 code signature: handle big-endian environment
Date: Wed, 24 Apr 2019 13:02:59 -0400 (EDT)	[thread overview]
Message-ID: <2087640779.608.1556125379269.JavaMail.zimbra@efficios.com> (raw)
Message-ID: <20190424170259.bhcnzteuMD-WyRI5uRx9AwNzpYoaUoLe257DT01TMfs@z> (raw)
In-Reply-To: <697611694.604.1556125254852.JavaMail.zimbra@efficios.com>

----- On Apr 24, 2019,@1:00 PM, Mathieu Desnoyers mathieu.desnoyers@efficios.com wrote:

> ----- On Apr 24, 2019,@12:51 PM, Mark Rutland mark.rutland@arm.com wrote:
> 
>> On Wed, Apr 24, 2019@05:45:38PM +0100, Will Deacon wrote:
>>> On Wed, Apr 24, 2019@11:25:00AM -0400, Mathieu Desnoyers wrote:
>>> > +/*
>>> > + * aarch64 -mbig-endian generates mixed endianness code vs data:
>>> > + * little-endian code and big-endian data. Ensure the RSEQ_SIG signature
>>> > + * matches code endianness.
>>> > + */
>>> > +#define RSEQ_SIG_CODE	0xd428bc00	/* BRK #0x45E0.  */
>>> > +
>>> > +#ifdef __AARCH64EB__
>>> > +#define RSEQ_SIG_DATA	0x00bc28d4	/* BRK #0x45E0.  */
>>> 
>>> It would be neater to implement swab32 and use that with RSEQ_SIG_CODE,
>> 
>> If possible, marginally neater than that would be using
>> le32_to_cpu(RSEQ_SIG_CODE), without any ifdeffery necessary.
>> 
>> It looks like that's defined in tools/include/linux/kernel.h, but I'm
>> not sure if that gets pulled into your include path.
> 
> Considering that those RSEQ_SIG* define will end up in public bits/rseq.h
> headers within glibc, I'm tempted to keep the amount of dependencies on
> external headers to a minimum, if it's OK with you.

Also, I'm not sure the le32_to_cpu() approach would work in __ASSEMBLER__
builds.

Thanks,

Mathieu

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

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

WARNING: multiple messages have this Message-ID (diff)
From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
To: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will.deacon@arm.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Paul E . McKenney" <paulmck@linux.vnet.ibm.com>,
	Boqun Feng <boqun.feng@gmail.com>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-api <linux-api@vger.kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Andy Lutomirski <luto@amacapital.net>,
	Dave Watson <davejwatson@fb.com>, Paul Turner <pjt@google.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Russell King <linux@arm.linux.org.uk>,
	Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
	Andi Kleen <andi@firstfloor.org>, Chris Lameter <cl@linux.com>,
	Ben Maurer <bmaurer@fb.com>, rostedt <rostedt@goodmis.org>,
	Josh Triplett <josh@joshtriplett.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Michael Kerrisk <mtk.manpages@gmail.com>,
	Joel Fernandes <joelaf@google.com>, shuah <shuah@kernel.org>,
	linux-kselftest <linux-kselftest@vger.kernel.org>
Subject: Re: [RFC PATCH for 5.2 08/10] rseq/selftests: aarch64 code signature: handle big-endian environment
Date: Wed, 24 Apr 2019 13:02:59 -0400 (EDT)	[thread overview]
Message-ID: <2087640779.608.1556125379269.JavaMail.zimbra@efficios.com> (raw)
In-Reply-To: <697611694.604.1556125254852.JavaMail.zimbra@efficios.com>

----- On Apr 24, 2019, at 1:00 PM, Mathieu Desnoyers mathieu.desnoyers@efficios.com wrote:

> ----- On Apr 24, 2019, at 12:51 PM, Mark Rutland mark.rutland@arm.com wrote:
> 
>> On Wed, Apr 24, 2019 at 05:45:38PM +0100, Will Deacon wrote:
>>> On Wed, Apr 24, 2019 at 11:25:00AM -0400, Mathieu Desnoyers wrote:
>>> > +/*
>>> > + * aarch64 -mbig-endian generates mixed endianness code vs data:
>>> > + * little-endian code and big-endian data. Ensure the RSEQ_SIG signature
>>> > + * matches code endianness.
>>> > + */
>>> > +#define RSEQ_SIG_CODE	0xd428bc00	/* BRK #0x45E0.  */
>>> > +
>>> > +#ifdef __AARCH64EB__
>>> > +#define RSEQ_SIG_DATA	0x00bc28d4	/* BRK #0x45E0.  */
>>> 
>>> It would be neater to implement swab32 and use that with RSEQ_SIG_CODE,
>> 
>> If possible, marginally neater than that would be using
>> le32_to_cpu(RSEQ_SIG_CODE), without any ifdeffery necessary.
>> 
>> It looks like that's defined in tools/include/linux/kernel.h, but I'm
>> not sure if that gets pulled into your include path.
> 
> Considering that those RSEQ_SIG* define will end up in public bits/rseq.h
> headers within glibc, I'm tempted to keep the amount of dependencies on
> external headers to a minimum, if it's OK with you.

Also, I'm not sure the le32_to_cpu() approach would work in __ASSEMBLER__
builds.

Thanks,

Mathieu

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

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

  reply	other threads:[~2019-04-24 17:02 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-24 15:24 [RFC PATCH for 5.2 00/10] Restartable Sequences selftests updates Mathieu Desnoyers
2019-04-24 15:24 ` Mathieu Desnoyers
2019-04-24 15:24 ` [RFC PATCH for 5.2 01/10] rseq/selftests: Add __rseq_exit_point_array section for debuggers Mathieu Desnoyers
2019-04-24 15:24   ` Mathieu Desnoyers
2019-04-24 15:24   ` Mathieu Desnoyers
2019-04-24 15:24   ` mathieu.desnoyers
2019-04-24 15:24 ` [RFC PATCH for 5.2 02/10] rseq/selftests: Introduce __rseq_cs_ptr_array, rename __rseq_table to __rseq_cs Mathieu Desnoyers
2019-04-24 15:24   ` Mathieu Desnoyers
2019-04-24 15:24   ` Mathieu Desnoyers
2019-04-24 15:24   ` mathieu.desnoyers
2019-04-24 15:24 ` [RFC PATCH for 5.2 03/10] rseq/selftests: Use __rseq_handled symbol to coexist with glibc Mathieu Desnoyers
2019-04-24 15:24   ` Mathieu Desnoyers
2019-04-24 15:24 ` [RFC PATCH for 5.2 04/10] rseq/selftests: s390: use jg instruction for jumps outside of the asm Mathieu Desnoyers
2019-04-24 15:24   ` Mathieu Desnoyers
2019-04-24 15:24   ` Mathieu Desnoyers
2019-04-24 15:24   ` mathieu.desnoyers
2019-04-24 15:24 ` [RFC PATCH for 5.2 05/10] rseq/selftests: x86: use ud1 instruction as RSEQ_SIG opcode Mathieu Desnoyers
2019-04-24 15:24   ` Mathieu Desnoyers
2019-04-24 15:24   ` Mathieu Desnoyers
2019-04-24 15:24   ` mathieu.desnoyers
2019-04-24 15:24 ` [RFC PATCH for 5.2 06/10] rseq/selftests: s390: use trap4 for RSEQ_SIG Mathieu Desnoyers
2019-04-24 15:24   ` Mathieu Desnoyers
2019-04-24 15:24 ` [RFC PATCH for 5.2 07/10] rseq/selftests: arm: use udf instruction " Mathieu Desnoyers
2019-04-24 15:24   ` Mathieu Desnoyers
2019-04-24 15:24   ` Mathieu Desnoyers
2019-04-24 15:24   ` mathieu.desnoyers
2019-04-24 15:25 ` [RFC PATCH for 5.2 08/10] rseq/selftests: aarch64 code signature: handle big-endian environment Mathieu Desnoyers
2019-04-24 15:25   ` Mathieu Desnoyers
2019-04-24 15:25   ` Mathieu Desnoyers
2019-04-24 15:25   ` mathieu.desnoyers
2019-04-24 16:40   ` Mark Rutland
2019-04-24 16:40     ` Mark Rutland
2019-04-24 16:40     ` Mark Rutland
2019-04-24 16:40     ` mark.rutland
2019-04-24 16:44     ` Will Deacon
2019-04-24 16:44       ` Will Deacon
2019-04-24 16:44       ` Will Deacon
2019-04-24 16:44       ` will.deacon
2019-04-24 16:45     ` Mark Rutland
2019-04-24 16:45       ` Mark Rutland
2019-04-24 16:45       ` Mark Rutland
2019-04-24 16:45       ` mark.rutland
2019-04-24 16:45   ` Will Deacon
2019-04-24 16:45     ` Will Deacon
2019-04-24 16:45     ` Will Deacon
2019-04-24 16:45     ` will.deacon
2019-04-24 16:51     ` Mark Rutland
2019-04-24 16:51       ` Mark Rutland
2019-04-24 16:51       ` Mark Rutland
2019-04-24 16:51       ` mark.rutland
2019-04-24 17:00       ` Mathieu Desnoyers
2019-04-24 17:00         ` Mathieu Desnoyers
2019-04-24 17:00         ` Mathieu Desnoyers
2019-04-24 17:00         ` mathieu.desnoyers
2019-04-24 17:02         ` Mathieu Desnoyers [this message]
2019-04-24 17:02           ` Mathieu Desnoyers
2019-04-24 17:02           ` Mathieu Desnoyers
2019-04-24 17:02           ` mathieu.desnoyers
2019-04-24 15:25 ` [RFC PATCH for 5.2 09/10] rseq/selftests: powerpc code signature: generate valid instructions Mathieu Desnoyers
2019-04-24 15:25   ` Mathieu Desnoyers
2019-04-24 15:25   ` Mathieu Desnoyers
2019-04-24 15:25 ` [RFC PATCH for 5.2 10/10] rseq/selftests: mips: use break instruction for RSEQ_SIG Mathieu Desnoyers
2019-04-24 15:25   ` Mathieu Desnoyers
2019-04-24 22:06   ` Paul Burton
2019-04-24 22:06     ` Paul Burton
2019-04-24 23:12     ` Mathieu Desnoyers
2019-04-24 23:12       ` Mathieu Desnoyers
2019-04-24 23:17       ` Paul Burton
2019-04-24 23:17         ` Paul Burton
2019-04-24 23:22         ` Mathieu Desnoyers
2019-04-24 23:22           ` Mathieu Desnoyers
2019-04-25 14:21     ` Mathieu Desnoyers
2019-04-25 14:21       ` Mathieu Desnoyers
2019-04-29 22:31       ` Paul Burton
2019-04-29 22:31         ` Paul Burton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2087640779.608.1556125379269.JavaMail.zimbra@efficios.com \
    --to=mathieu.desnoyers@efficios.com \
    --cc=akpm@linux-foundation.org \
    --cc=andi@firstfloor.org \
    --cc=bmaurer@fb.com \
    --cc=boqun.feng@gmail.com \
    --cc=cl@linux.com \
    --cc=davejwatson@fb.com \
    --cc=hpa@zytor.com \
    --cc=josh@joshtriplett.org \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=luto@amacapital.net \
    --cc=mark.rutland@arm.com \
    --cc=mingo@redhat.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=peterz@infradead.org \
    --cc=pjt@google.com \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=will.deacon@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.