[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Minios-devel] [UNIKRAFT PATCHv4 15/43] uk/arch: Add necessary header files for Arm64

On 16.07.2018 04:41, Wei Chen wrote:
Hi Simon,

-----Original Message-----
From: Simon Kuenzer <simon.kuenzer@xxxxxxxxx>
Sent: 2018年7月13日 18:32
To: Julien Grall <Julien.Grall@xxxxxxx>; Wei Chen <Wei.Chen@xxxxxxx>; minios-
Cc: Kaly Xin <Kaly.Xin@xxxxxxx>; nd <nd@xxxxxxx>
Subject: Re: [Minios-devel] [UNIKRAFT PATCHv4 15/43] uk/arch: Add necessary
header files for Arm64

Hi all,

On 13.07.2018 11:36, Julien Grall wrote:

On 13/07/18 10:13, Wei Chen wrote:
+#ifndef __UKARCH_LCPU_H__
+#error Do not include this header directly
+struct __regs {
+    /* Generic Purpose registers, from x0 ~ x29 */
+    unsigned long x[30];
+    /* Link Register (x30) */
+    unsigned long lr;
+    /* Exception Link Register */
+    unsigned long elr_el1;
+    /* Processor State Register */
+    unsigned long spsr_el1;
+    /* Exception Status Register */
+    unsigned long esr_el1;
+    /* Stack Pointer */
+    unsigned long sp;
+#define isb()   __asm__ __volatile("isb" ::: "memory")

What is this intended for?

This is for instruction memory barrier.

Just to clarify, isb is not a memory barrier ;). It is an instruction
synchronization barrier. Any instructions in program order after the isb
will only be fetched from cache/memory once the instruction has
completed. This is used to ensure the effect of modification such as TLB
invalidation, system registers have been taken into account.

I am not aware of any equivalent on x86.


Nice, now I learned something more about Arm. ;-) I like the
explicitness of the architecture. It is giving you much more control
about when and what should happen on the hardware.

My question: Is it clear for an Arm developer what "isb()" is or should
we add a short comment to this definition?

Generally speaking it's enough. As you have such concern, I will add
Some comments for it ; )

Then this is totally fine without a comment. We also did not comment the memory barriers. I let it up to you. ;-)

Minios-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.