* [PATCH] tools/xen-foreign: Update the size for vcpu_guest_{core_regs, context}
@ 2021-07-06 13:20 Julien Grall
2021-07-06 13:37 ` Bertrand Marquis
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Julien Grall @ 2021-07-06 13:20 UTC (permalink / raw)
To: xen-devel; +Cc: julien, Julien Grall, Ian Jackson, Wei Liu, michal.orzel, olaf
From: Julien Grall <jgrall@amazon.com>
Commit 918b8842a852 ("arm64: Change type of hsr, cpsr, spsr_el1 to
uint64_t") updated the size of the structure vcpu_guest_core_regs and
indirectly vcpu_guest_context.
On Arm, the two structures are only accessible to the tools and the
hypervisor (and therefore stable). However, they are still checked
by the scripts in tools/include/xen-foreign are not able to understand
that.
Ideally we should rework the scripts so we don't have to update
the size for non-stable structure. But I don't have limited time
to spend on the issue. So chose the simple solution and update
the size accordingly.
Note that we need to keep vcpu_guest_core_regs around because
the structure is used by vcpu_guest_context and therefore the
scripts expects the generated header to contain it.
Fixes: 918b8842a852 ("arm64: Change type of hsr, cpsr, spsr_el1 to uint64_t")
Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Julien Grall <jgrall@amazon.com>
---
Cc: michal.orzel@arm.com
Cc: olaf@aepfle.de
---
tools/include/xen-foreign/reference.size | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/include/xen-foreign/reference.size b/tools/include/xen-foreign/reference.size
index a0409db5c458..11a06a7a432c 100644
--- a/tools/include/xen-foreign/reference.size
+++ b/tools/include/xen-foreign/reference.size
@@ -4,8 +4,8 @@ structs | arm32 arm64 x86_32 x86_64
start_info | - - 1112 1168
trap_info | - - 8 16
cpu_user_regs | - - 68 200
-vcpu_guest_core_regs | 304 304 - -
-vcpu_guest_context | 344 344 2800 5168
+vcpu_guest_core_regs | 312 312 - -
+vcpu_guest_context | 352 352 2800 5168
arch_vcpu_info | 0 0 24 16
vcpu_time_info | 32 32 32 32
vcpu_info | 48 48 64 64
--
2.17.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] tools/xen-foreign: Update the size for vcpu_guest_{core_regs, context}
2021-07-06 13:20 [PATCH] tools/xen-foreign: Update the size for vcpu_guest_{core_regs, context} Julien Grall
@ 2021-07-06 13:37 ` Bertrand Marquis
2021-07-06 14:07 ` Jan Beulich
2021-07-07 7:44 ` Michal Orzel
2 siblings, 0 replies; 7+ messages in thread
From: Bertrand Marquis @ 2021-07-06 13:37 UTC (permalink / raw)
To: Julien Grall
Cc: xen-devel, Julien Grall, Ian Jackson, Wei Liu, Michal Orzel, olaf
Hi Julien,
> On 6 Jul 2021, at 14:20, Julien Grall <julien@xen.org> wrote:
>
> From: Julien Grall <jgrall@amazon.com>
>
> Commit 918b8842a852 ("arm64: Change type of hsr, cpsr, spsr_el1 to
> uint64_t") updated the size of the structure vcpu_guest_core_regs and
> indirectly vcpu_guest_context.
>
> On Arm, the two structures are only accessible to the tools and the
> hypervisor (and therefore stable). However, they are still checked
> by the scripts in tools/include/xen-foreign are not able to understand
> that.
>
> Ideally we should rework the scripts so we don't have to update
> the size for non-stable structure. But I don't have limited time
> to spend on the issue. So chose the simple solution and update
> the size accordingly.
>
> Note that we need to keep vcpu_guest_core_regs around because
> the structure is used by vcpu_guest_context and therefore the
> scripts expects the generated header to contain it.
>
> Fixes: 918b8842a852 ("arm64: Change type of hsr, cpsr, spsr_el1 to uint64_t")
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Julien Grall <jgrall@amazon.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
But I have other issues now:
xg_dom_arm.c:143:15: error: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'uint64_t' {aka 'long long unsigned int'} [-Werror=format=]
143 | DOMPRINTF("Initial state CPSR %#"PRIx32" PC %#"PRIx32,
| ^~~~~~~~~~~~~~~~~~~~~~~
144 | ctxt->user_regs.cpsr, ctxt->user_regs.pc32);
| ~~~~~~~~~~~~~~~~~~~~
| |
| uint64_t {aka long long unsigned int}
We will work on a patch to fix those.
Cheers
Bertrand
>
> ---
>
> Cc: michal.orzel@arm.com
> Cc: olaf@aepfle.de
> ---
> tools/include/xen-foreign/reference.size | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tools/include/xen-foreign/reference.size b/tools/include/xen-foreign/reference.size
> index a0409db5c458..11a06a7a432c 100644
> --- a/tools/include/xen-foreign/reference.size
> +++ b/tools/include/xen-foreign/reference.size
> @@ -4,8 +4,8 @@ structs | arm32 arm64 x86_32 x86_64
> start_info | - - 1112 1168
> trap_info | - - 8 16
> cpu_user_regs | - - 68 200
> -vcpu_guest_core_regs | 304 304 - -
> -vcpu_guest_context | 344 344 2800 5168
> +vcpu_guest_core_regs | 312 312 - -
> +vcpu_guest_context | 352 352 2800 5168
> arch_vcpu_info | 0 0 24 16
> vcpu_time_info | 32 32 32 32
> vcpu_info | 48 48 64 64
> --
> 2.17.1
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] tools/xen-foreign: Update the size for vcpu_guest_{core_regs, context}
2021-07-06 13:20 [PATCH] tools/xen-foreign: Update the size for vcpu_guest_{core_regs, context} Julien Grall
2021-07-06 13:37 ` Bertrand Marquis
@ 2021-07-06 14:07 ` Jan Beulich
2021-07-06 14:24 ` Julien Grall
2021-07-07 7:44 ` Michal Orzel
2 siblings, 1 reply; 7+ messages in thread
From: Jan Beulich @ 2021-07-06 14:07 UTC (permalink / raw)
To: Julien Grall
Cc: Julien Grall, Ian Jackson, Wei Liu, michal.orzel, olaf, xen-devel
On 06.07.2021 15:20, Julien Grall wrote:
> From: Julien Grall <jgrall@amazon.com>
>
> Commit 918b8842a852 ("arm64: Change type of hsr, cpsr, spsr_el1 to
> uint64_t") updated the size of the structure vcpu_guest_core_regs and
> indirectly vcpu_guest_context.
>
> On Arm, the two structures are only accessible to the tools and the
> hypervisor (and therefore stable). However, they are still checked
I suppose s/stable/not stable/ and ...
> by the scripts in tools/include/xen-foreign are not able to understand
> that.
>
> Ideally we should rework the scripts so we don't have to update
> the size for non-stable structure. But I don't have limited time
... s/don't/only/ ?
> to spend on the issue. So chose the simple solution and update
> the size accordingly.
>
> Note that we need to keep vcpu_guest_core_regs around because
> the structure is used by vcpu_guest_context and therefore the
> scripts expects the generated header to contain it.
If vcpu_guest_context is also tools-only, why does it need keeping
(for Arm)? IOW can't you drop vcpu_guest_core_regs from the scripts
altogether, and mark vcpu_guest_context with valid sizes for x86
only?
Jan
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] tools/xen-foreign: Update the size for vcpu_guest_{core_regs, context}
2021-07-06 14:07 ` Jan Beulich
@ 2021-07-06 14:24 ` Julien Grall
2021-07-06 15:10 ` Jan Beulich
0 siblings, 1 reply; 7+ messages in thread
From: Julien Grall @ 2021-07-06 14:24 UTC (permalink / raw)
To: Jan Beulich
Cc: Julien Grall, Ian Jackson, Wei Liu, michal.orzel, olaf, xen-devel
Hi,
On 06/07/2021 15:07, Jan Beulich wrote:
> On 06.07.2021 15:20, Julien Grall wrote:
>> From: Julien Grall <jgrall@amazon.com>
>>
>> Commit 918b8842a852 ("arm64: Change type of hsr, cpsr, spsr_el1 to
>> uint64_t") updated the size of the structure vcpu_guest_core_regs and
>> indirectly vcpu_guest_context.
>>
>> On Arm, the two structures are only accessible to the tools and the
>> hypervisor (and therefore stable). However, they are still checked
>
> I suppose s/stable/not stable/ and ...
>
>> by the scripts in tools/include/xen-foreign are not able to understand
>> that.
>>
>> Ideally we should rework the scripts so we don't have to update
>> the size for non-stable structure. But I don't have limited time
>
> ... s/don't/only/ ?
Yes I will update.
>
>> to spend on the issue. So chose the simple solution and update
>> the size accordingly.
>>
>> Note that we need to keep vcpu_guest_core_regs around because
>> the structure is used by vcpu_guest_context and therefore the
>> scripts expects the generated header to contain it.
>
> If vcpu_guest_context is also tools-only, why does it need keeping
> (for Arm)? IOW can't you drop vcpu_guest_core_regs from the scripts
> altogether, and mark vcpu_guest_context with valid sizes for x86
> only?
I have tried to use "-" in place of the size but the checker is still
not happy. I didn't find another way without modifying the script...
I don't know the script and I don't have a lot of time to work on the
bug fix. So this is not something I could do this week.
So this leave us to the following options:
1) Someone volunteer to fix the script
2) Revert the patch that broke the build
3) Accept this patch
I would prefer 3) so we have more time to work on making the script a
lot smarter.
Cheers,
--
Julien Grall
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] tools/xen-foreign: Update the size for vcpu_guest_{core_regs, context}
2021-07-06 14:24 ` Julien Grall
@ 2021-07-06 15:10 ` Jan Beulich
2021-07-06 15:23 ` Julien Grall
0 siblings, 1 reply; 7+ messages in thread
From: Jan Beulich @ 2021-07-06 15:10 UTC (permalink / raw)
To: Julien Grall
Cc: Julien Grall, Ian Jackson, Wei Liu, michal.orzel, olaf, xen-devel
On 06.07.2021 16:24, Julien Grall wrote:
> On 06/07/2021 15:07, Jan Beulich wrote:
>> On 06.07.2021 15:20, Julien Grall wrote:
>>> From: Julien Grall <jgrall@amazon.com>
>>>
>>> Commit 918b8842a852 ("arm64: Change type of hsr, cpsr, spsr_el1 to
>>> uint64_t") updated the size of the structure vcpu_guest_core_regs and
>>> indirectly vcpu_guest_context.
>>>
>>> On Arm, the two structures are only accessible to the tools and the
>>> hypervisor (and therefore stable). However, they are still checked
>>
>> I suppose s/stable/not stable/ and ...
>>
>>> by the scripts in tools/include/xen-foreign are not able to understand
>>> that.
>>>
>>> Ideally we should rework the scripts so we don't have to update
>>> the size for non-stable structure. But I don't have limited time
>>
>> ... s/don't/only/ ?
>
> Yes I will update.
>
>>
>>> to spend on the issue. So chose the simple solution and update
>>> the size accordingly.
>>>
>>> Note that we need to keep vcpu_guest_core_regs around because
>>> the structure is used by vcpu_guest_context and therefore the
>>> scripts expects the generated header to contain it.
>>
>> If vcpu_guest_context is also tools-only, why does it need keeping
>> (for Arm)? IOW can't you drop vcpu_guest_core_regs from the scripts
>> altogether, and mark vcpu_guest_context with valid sizes for x86
>> only?
> I have tried to use "-" in place of the size but the checker is still
> not happy. I didn't find another way without modifying the script...
>
> I don't know the script and I don't have a lot of time to work on the
> bug fix. So this is not something I could do this week.
>
> So this leave us to the following options:
> 1) Someone volunteer to fix the script
> 2) Revert the patch that broke the build
> 3) Accept this patch
>
> I would prefer 3) so we have more time to work on making the script a
> lot smarter.
Well, if we have no-one who knows the script, and the simple thing
of removing the one obvious line doesn't help, then I agree we want
to go with 3) for now, even if it looks odd to adjust number for
something that's not supposed to be checked in the first place. Of
course I also wouldn't mind 2), as it seems pretty clear that the
patch was insufficiently build-tested.
Jan
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] tools/xen-foreign: Update the size for vcpu_guest_{core_regs, context}
2021-07-06 15:10 ` Jan Beulich
@ 2021-07-06 15:23 ` Julien Grall
0 siblings, 0 replies; 7+ messages in thread
From: Julien Grall @ 2021-07-06 15:23 UTC (permalink / raw)
To: Jan Beulich
Cc: Julien Grall, Ian Jackson, Wei Liu, michal.orzel, olaf, xen-devel
Hi Jan,
On 06/07/2021 16:10, Jan Beulich wrote:
> On 06.07.2021 16:24, Julien Grall wrote:
>> On 06/07/2021 15:07, Jan Beulich wrote:
>>> On 06.07.2021 15:20, Julien Grall wrote:
>>>> From: Julien Grall <jgrall@amazon.com>
>>>>
>>>> Commit 918b8842a852 ("arm64: Change type of hsr, cpsr, spsr_el1 to
>>>> uint64_t") updated the size of the structure vcpu_guest_core_regs and
>>>> indirectly vcpu_guest_context.
>>>>
>>>> On Arm, the two structures are only accessible to the tools and the
>>>> hypervisor (and therefore stable). However, they are still checked
>>>
>>> I suppose s/stable/not stable/ and ...
>>>
>>>> by the scripts in tools/include/xen-foreign are not able to understand
>>>> that.
>>>>
>>>> Ideally we should rework the scripts so we don't have to update
>>>> the size for non-stable structure. But I don't have limited time
>>>
>>> ... s/don't/only/ ?
>>
>> Yes I will update.
>>
>>>
>>>> to spend on the issue. So chose the simple solution and update
>>>> the size accordingly.
>>>>
>>>> Note that we need to keep vcpu_guest_core_regs around because
>>>> the structure is used by vcpu_guest_context and therefore the
>>>> scripts expects the generated header to contain it.
>>>
>>> If vcpu_guest_context is also tools-only, why does it need keeping
>>> (for Arm)? IOW can't you drop vcpu_guest_core_regs from the scripts
>>> altogether, and mark vcpu_guest_context with valid sizes for x86
>>> only?
>> I have tried to use "-" in place of the size but the checker is still
>> not happy. I didn't find another way without modifying the script...
>>
>> I don't know the script and I don't have a lot of time to work on the
>> bug fix. So this is not something I could do this week.
>>
>> So this leave us to the following options:
>> 1) Someone volunteer to fix the script
>> 2) Revert the patch that broke the build
>> 3) Accept this patch
>>
>> I would prefer 3) so we have more time to work on making the script a
>> lot smarter.
>
> Well, if we have no-one who knows the script, and the simple thing
> of removing the one obvious line doesn't help, then I agree we want
> to go with 3) for now, even if it looks odd to adjust number for
> something that's not supposed to be checked in the first place. Of
> course I also wouldn't mind 2), as it seems pretty clear that the
> patch was insufficiently build-tested.
The series has dragged on for quite a while on the ML. So I would like
to avoid a revert and wait for further rework in the tools side.
Also Bertrand pointed out there is a second fix necessary (I think they
should still live separately). I will wait him to confirm that the
toolstack is building for 32-bit and 64-bit after the two patches are
applied.
Cheers,
--
Julien Grall
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] tools/xen-foreign: Update the size for vcpu_guest_{core_regs, context}
2021-07-06 13:20 [PATCH] tools/xen-foreign: Update the size for vcpu_guest_{core_regs, context} Julien Grall
2021-07-06 13:37 ` Bertrand Marquis
2021-07-06 14:07 ` Jan Beulich
@ 2021-07-07 7:44 ` Michal Orzel
2 siblings, 0 replies; 7+ messages in thread
From: Michal Orzel @ 2021-07-07 7:44 UTC (permalink / raw)
To: Julien Grall, xen-devel; +Cc: Julien Grall, Ian Jackson, Wei Liu, olaf
On 06.07.2021 15:20, Julien Grall wrote:
> From: Julien Grall <jgrall@amazon.com>
>
> Commit 918b8842a852 ("arm64: Change type of hsr, cpsr, spsr_el1 to
> uint64_t") updated the size of the structure vcpu_guest_core_regs and
> indirectly vcpu_guest_context.
>
> On Arm, the two structures are only accessible to the tools and the
> hypervisor (and therefore stable). However, they are still checked
> by the scripts in tools/include/xen-foreign are not able to understand
> that.
>
> Ideally we should rework the scripts so we don't have to update
> the size for non-stable structure. But I don't have limited time
> to spend on the issue. So chose the simple solution and update
> the size accordingly.
>
> Note that we need to keep vcpu_guest_core_regs around because
> the structure is used by vcpu_guest_context and therefore the
> scripts expects the generated header to contain it.
>
> Fixes: 918b8842a852 ("arm64: Change type of hsr, cpsr, spsr_el1 to uint64_t")
Sorry for this inconvenience due to the lack of xen-tools testing.
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Julien Grall <jgrall@amazon.com>
>
Reviewed-by: Michal Orzel <michal.orzel@arm.com>
Tested-by: Michal Orzel <michal.orzel@arm.com>
> ---
>
> Cc: michal.orzel@arm.com
> Cc: olaf@aepfle.de
> ---
> tools/include/xen-foreign/reference.size | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tools/include/xen-foreign/reference.size b/tools/include/xen-foreign/reference.size
> index a0409db5c458..11a06a7a432c 100644
> --- a/tools/include/xen-foreign/reference.size
> +++ b/tools/include/xen-foreign/reference.size
> @@ -4,8 +4,8 @@ structs | arm32 arm64 x86_32 x86_64
> start_info | - - 1112 1168
> trap_info | - - 8 16
> cpu_user_regs | - - 68 200
> -vcpu_guest_core_regs | 304 304 - -
> -vcpu_guest_context | 344 344 2800 5168
> +vcpu_guest_core_regs | 312 312 - -
> +vcpu_guest_context | 352 352 2800 5168
> arch_vcpu_info | 0 0 24 16
> vcpu_time_info | 32 32 32 32
> vcpu_info | 48 48 64 64
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-07-07 7:45 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-06 13:20 [PATCH] tools/xen-foreign: Update the size for vcpu_guest_{core_regs, context} Julien Grall
2021-07-06 13:37 ` Bertrand Marquis
2021-07-06 14:07 ` Jan Beulich
2021-07-06 14:24 ` Julien Grall
2021-07-06 15:10 ` Jan Beulich
2021-07-06 15:23 ` Julien Grall
2021-07-07 7:44 ` Michal Orzel
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.