Re: [PATCH v3 03/32] arm64: KVM: HYP mode idmap support

2013-04-24 Thread Marc Zyngier
On 23/04/13 23:57, Christoffer Dall wrote:
> 
> 
> On Mon, Apr 8, 2013 at 9:17 AM, Marc Zyngier  wrote:
>> Add the necessary infrastructure for identity-mapped HYP page
>> tables. Idmap-ed code must be in the ".hyp.idmap.text" linker
>> section.
>>
>> The rest of the HYP ends up in ".hyp.text".
>>
>> Signed-off-by: Marc Zyngier 
>> ---
>>  arch/arm64/kernel/vmlinux.lds.S | 16 
>>  1 file changed, 16 insertions(+)
>>
>> diff --git a/arch/arm64/kernel/vmlinux.lds.S 
>> b/arch/arm64/kernel/vmlinux.lds.S
>> index 3fae2be..855d43d 100644
>> --- a/arch/arm64/kernel/vmlinux.lds.S
>> +++ b/arch/arm64/kernel/vmlinux.lds.S
>> @@ -17,6 +17,15 @@ ENTRY(stext)
>>
>>  jiffies = jiffies_64;
>>
>> +#define HYPERVISOR_TEXT\
>> +   . = ALIGN(2048);\
> 
> why align to 2048?  Comment?

Vectors require a 2kB alignment. I'll add a comment to that effect.

> are you changing this to the same idea as for the 32-bit code to reduce the 
> kernel size?

The mechanism is exactly the same indeed. Only the alignment
requirements are (massively) different.

Thanks,

M.
-- 
Jazz is not dead. It just smells funny...

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 03/32] arm64: KVM: HYP mode idmap support

2013-04-23 Thread Christoffer Dall


On Mon, Apr 8, 2013 at 9:17 AM, Marc Zyngier  wrote:
> Add the necessary infrastructure for identity-mapped HYP page
> tables. Idmap-ed code must be in the ".hyp.idmap.text" linker
> section.
>
> The rest of the HYP ends up in ".hyp.text".
>
> Signed-off-by: Marc Zyngier 
> ---
>  arch/arm64/kernel/vmlinux.lds.S | 16 
>  1 file changed, 16 insertions(+)
>
> diff --git a/arch/arm64/kernel/vmlinux.lds.S b/arch/arm64/kernel/vmlinux.lds.S
> index 3fae2be..855d43d 100644
> --- a/arch/arm64/kernel/vmlinux.lds.S
> +++ b/arch/arm64/kernel/vmlinux.lds.S
> @@ -17,6 +17,15 @@ ENTRY(stext)
>
>  jiffies = jiffies_64;
>
> +#define HYPERVISOR_TEXT\
> +   . = ALIGN(2048);\

why align to 2048?  Comment?

are you changing this to the same idea as for the 32-bit code to reduce the 
kernel size?

> +   VMLINUX_SYMBOL(__hyp_idmap_text_start) = .; \
> +   *(.hyp.idmap.text)  \
> +   VMLINUX_SYMBOL(__hyp_idmap_text_end) = .;   \
> +   VMLINUX_SYMBOL(__hyp_text_start) = .;   \
> +   *(.hyp.text)\
> +   VMLINUX_SYMBOL(__hyp_text_end) = .;
> +
>  SECTIONS
>  {
> /*
> @@ -49,6 +58,7 @@ SECTIONS
> TEXT_TEXT
> SCHED_TEXT
> LOCK_TEXT
> +   HYPERVISOR_TEXT
> *(.fixup)
> *(.gnu.warning)
> . = ALIGN(16);
> @@ -124,3 +134,9 @@ SECTIONS
> STABS_DEBUG
> .comment 0 : { *(.comment) }
>  }
> +
> +/*
> + * The HYP init code can't be more than a page long.
> + */
> +ASSERT(((__hyp_idmap_text_start + PAGE_SIZE) >= __hyp_idmap_text_end),
> +   "HYP init code too big")
> --
> 1.8.1.4
>
>
>
> ___
> kvmarm mailing list
> kvm...@lists.cs.columbia.edu
> https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v3 03/32] arm64: KVM: HYP mode idmap support

2013-04-08 Thread Marc Zyngier
Add the necessary infrastructure for identity-mapped HYP page
tables. Idmap-ed code must be in the ".hyp.idmap.text" linker
section.

The rest of the HYP ends up in ".hyp.text".

Signed-off-by: Marc Zyngier 
---
 arch/arm64/kernel/vmlinux.lds.S | 16 
 1 file changed, 16 insertions(+)

diff --git a/arch/arm64/kernel/vmlinux.lds.S b/arch/arm64/kernel/vmlinux.lds.S
index 3fae2be..855d43d 100644
--- a/arch/arm64/kernel/vmlinux.lds.S
+++ b/arch/arm64/kernel/vmlinux.lds.S
@@ -17,6 +17,15 @@ ENTRY(stext)
 
 jiffies = jiffies_64;
 
+#define HYPERVISOR_TEXT\
+   . = ALIGN(2048);\
+   VMLINUX_SYMBOL(__hyp_idmap_text_start) = .; \
+   *(.hyp.idmap.text)  \
+   VMLINUX_SYMBOL(__hyp_idmap_text_end) = .;   \
+   VMLINUX_SYMBOL(__hyp_text_start) = .;   \
+   *(.hyp.text)\
+   VMLINUX_SYMBOL(__hyp_text_end) = .;
+
 SECTIONS
 {
/*
@@ -49,6 +58,7 @@ SECTIONS
TEXT_TEXT
SCHED_TEXT
LOCK_TEXT
+   HYPERVISOR_TEXT
*(.fixup)
*(.gnu.warning)
. = ALIGN(16);
@@ -124,3 +134,9 @@ SECTIONS
STABS_DEBUG
.comment 0 : { *(.comment) }
 }
+
+/*
+ * The HYP init code can't be more than a page long.
+ */
+ASSERT(((__hyp_idmap_text_start + PAGE_SIZE) >= __hyp_idmap_text_end),
+   "HYP init code too big")
-- 
1.8.1.4


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html