From: Marc Zyngier <maz@kernel.org>
To: James Morse <james.morse@arm.com>
Cc: linux-arm-kernel@lists.infradead.org, kvm@vger.kernel.org,
kernel-team@android.com, Will Deacon <will@kernel.org>,
kvmarm@lists.cs.columbia.edu
Subject: Re: [PATCH 08/11] KVM: arm64: Inject AArch32 exceptions from HYP
Date: Wed, 28 Oct 2020 20:24:37 +0000 [thread overview]
Message-ID: <9c130c8e438f59ecd0072feea9addbcc@kernel.org> (raw)
In-Reply-To: <3691596f-fb42-a6e0-8aca-5a1605219c23@arm.com>
On 2020-10-28 19:20, James Morse wrote:
> Hi Marc,
>
> On 27/10/2020 19:21, Marc Zyngier wrote:
>>>> +static inline u32 __vcpu_read_cp15(const struct kvm_vcpu *vcpu, int
>>>> reg)
>>>> +{
>>>> + return __vcpu_read_sys_reg(vcpu, reg / 2);
>>>> +}
>
>>> Doesn't this re-implement the issue 3204be4109ad biased?
>
>> I don't think it does. The issue existed when accessing the 32bit
>> shadow,
>> and we had to pick which side of the 64bit register had our 32bit
>> value.
>> Here, we directly access the 64bit file, which is safe.
>
> Because its not accessing the copro union, and the two users are both
> straight forward aliases.
>
> ...
>
> What do I get if I call:
> | __vcpu_read_cp15(vcpu, c6_IFAR);
>
> Won't this return the value of c6_DFAR instead as they live in the
> same 64 bit register.
Yes, that would break. Not in this bit of code though.
>
>
>> But thinking of it, we may as well change the call sites to directly
>> use the 64bit enum, rather than playing games
>
> Great!
Yeah, and there is a bunch of ... crap around this aliasing.
Unfortunately, I just noticed that 32bit guests are borked in -rc1.
Debug time.
M.
--
Jazz is not dead. It just smells funny...
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: James Morse <james.morse@arm.com>
Cc: linux-arm-kernel@lists.infradead.org, kvm@vger.kernel.org,
Suzuki K Poulose <suzuki.poulose@arm.com>,
kernel-team@android.com, Quentin Perret <qperret@google.com>,
Andrew Scull <ascull@google.com>,
David Brazdil <dbrazdil@google.com>,
Will Deacon <will@kernel.org>,
kvmarm@lists.cs.columbia.edu,
Julien Thierry <julien.thierry.kdev@gmail.com>
Subject: Re: [PATCH 08/11] KVM: arm64: Inject AArch32 exceptions from HYP
Date: Wed, 28 Oct 2020 20:24:37 +0000 [thread overview]
Message-ID: <9c130c8e438f59ecd0072feea9addbcc@kernel.org> (raw)
In-Reply-To: <3691596f-fb42-a6e0-8aca-5a1605219c23@arm.com>
On 2020-10-28 19:20, James Morse wrote:
> Hi Marc,
>
> On 27/10/2020 19:21, Marc Zyngier wrote:
>>>> +static inline u32 __vcpu_read_cp15(const struct kvm_vcpu *vcpu, int
>>>> reg)
>>>> +{
>>>> + return __vcpu_read_sys_reg(vcpu, reg / 2);
>>>> +}
>
>>> Doesn't this re-implement the issue 3204be4109ad biased?
>
>> I don't think it does. The issue existed when accessing the 32bit
>> shadow,
>> and we had to pick which side of the 64bit register had our 32bit
>> value.
>> Here, we directly access the 64bit file, which is safe.
>
> Because its not accessing the copro union, and the two users are both
> straight forward aliases.
>
> ...
>
> What do I get if I call:
> | __vcpu_read_cp15(vcpu, c6_IFAR);
>
> Won't this return the value of c6_DFAR instead as they live in the
> same 64 bit register.
Yes, that would break. Not in this bit of code though.
>
>
>> But thinking of it, we may as well change the call sites to directly
>> use the 64bit enum, rather than playing games
>
> Great!
Yeah, and there is a bunch of ... crap around this aliasing.
Unfortunately, I just noticed that 32bit guests are borked in -rc1.
Debug time.
M.
--
Jazz is not dead. It just smells funny...
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: James Morse <james.morse@arm.com>
Cc: linux-arm-kernel@lists.infradead.org,
kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org,
Julien Thierry <julien.thierry.kdev@gmail.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Andrew Scull <ascull@google.com>, Will Deacon <will@kernel.org>,
Quentin Perret <qperret@google.com>,
David Brazdil <dbrazdil@google.com>,
kernel-team@android.com
Subject: Re: [PATCH 08/11] KVM: arm64: Inject AArch32 exceptions from HYP
Date: Wed, 28 Oct 2020 20:24:37 +0000 [thread overview]
Message-ID: <9c130c8e438f59ecd0072feea9addbcc@kernel.org> (raw)
In-Reply-To: <3691596f-fb42-a6e0-8aca-5a1605219c23@arm.com>
On 2020-10-28 19:20, James Morse wrote:
> Hi Marc,
>
> On 27/10/2020 19:21, Marc Zyngier wrote:
>>>> +static inline u32 __vcpu_read_cp15(const struct kvm_vcpu *vcpu, int
>>>> reg)
>>>> +{
>>>> + return __vcpu_read_sys_reg(vcpu, reg / 2);
>>>> +}
>
>>> Doesn't this re-implement the issue 3204be4109ad biased?
>
>> I don't think it does. The issue existed when accessing the 32bit
>> shadow,
>> and we had to pick which side of the 64bit register had our 32bit
>> value.
>> Here, we directly access the 64bit file, which is safe.
>
> Because its not accessing the copro union, and the two users are both
> straight forward aliases.
>
> ...
>
> What do I get if I call:
> | __vcpu_read_cp15(vcpu, c6_IFAR);
>
> Won't this return the value of c6_DFAR instead as they live in the
> same 64 bit register.
Yes, that would break. Not in this bit of code though.
>
>
>> But thinking of it, we may as well change the call sites to directly
>> use the 64bit enum, rather than playing games
>
> Great!
Yeah, and there is a bunch of ... crap around this aliasing.
Unfortunately, I just noticed that 32bit guests are borked in -rc1.
Debug time.
M.
--
Jazz is not dead. It just smells funny...
next prev parent reply other threads:[~2020-10-28 20:24 UTC|newest]
Thread overview: 102+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-26 13:34 [PATCH 00/11] KVM: arm64: Move PC/ELR/SPSR/PSTATE updatess to EL2 Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 13:34 ` [PATCH 01/11] KVM: arm64: Don't adjust PC on SError during SMC trap Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 13:53 ` Mark Rutland
2020-10-26 13:53 ` Mark Rutland
2020-10-26 13:53 ` Mark Rutland
2020-10-26 14:08 ` Marc Zyngier
2020-10-26 14:08 ` Marc Zyngier
2020-10-26 14:08 ` Marc Zyngier
2020-10-26 14:22 ` Mark Rutland
2020-10-26 14:22 ` Mark Rutland
2020-10-26 14:22 ` Mark Rutland
2020-10-26 13:34 ` [PATCH 02/11] KVM: arm64: Move kvm_vcpu_trap_il_is32bit into kvm_skip_instr32() Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 13:55 ` Mark Rutland
2020-10-26 13:55 ` Mark Rutland
2020-10-26 13:55 ` Mark Rutland
2020-10-26 13:34 ` [PATCH 03/11] KVM: arm64: Make kvm_skip_instr() and co private to HYP Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 14:04 ` Mark Rutland
2020-10-26 14:04 ` Mark Rutland
2020-10-26 14:04 ` Mark Rutland
2020-10-27 16:17 ` Marc Zyngier
2020-10-27 16:17 ` Marc Zyngier
2020-10-27 16:17 ` Marc Zyngier
2020-10-27 10:55 ` Suzuki K Poulose
2020-10-27 10:55 ` Suzuki K Poulose
2020-10-27 10:55 ` Suzuki K Poulose
2020-10-27 11:08 ` Marc Zyngier
2020-10-27 11:08 ` Marc Zyngier
2020-10-27 11:08 ` Marc Zyngier
2020-10-26 13:34 ` [PATCH 04/11] KVM: arm64: Move PC rollback on SError " Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 14:06 ` Mark Rutland
2020-10-26 14:06 ` Mark Rutland
2020-10-26 14:06 ` Mark Rutland
2020-10-27 14:56 ` James Morse
2020-10-27 14:56 ` James Morse
2020-10-27 14:56 ` James Morse
2020-10-27 14:59 ` Marc Zyngier
2020-10-27 14:59 ` Marc Zyngier
2020-10-27 14:59 ` Marc Zyngier
2020-10-26 13:34 ` [PATCH 05/11] KVM: arm64: Move VHE direct sysreg accessors into kvm_host.h Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 14:07 ` Mark Rutland
2020-10-26 14:07 ` Mark Rutland
2020-10-26 14:07 ` Mark Rutland
2020-10-26 13:34 ` [PATCH 06/11] KVM: arm64: Add basic hooks for injecting exceptions from EL2 Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 13:34 ` [PATCH 07/11] KVM: arm64: Inject AArch64 exceptions from HYP Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 14:22 ` Mark Rutland
2020-10-26 14:22 ` Mark Rutland
2020-10-26 14:22 ` Mark Rutland
2020-10-27 16:21 ` Marc Zyngier
2020-10-27 16:21 ` Marc Zyngier
2020-10-27 16:21 ` Marc Zyngier
2020-10-27 17:41 ` James Morse
2020-10-27 17:41 ` James Morse
2020-10-27 17:41 ` James Morse
2020-10-27 18:49 ` Marc Zyngier
2020-10-27 18:49 ` Marc Zyngier
2020-10-27 18:49 ` Marc Zyngier
2020-10-26 13:34 ` [PATCH 08/11] KVM: arm64: Inject AArch32 " Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 14:26 ` Mark Rutland
2020-10-26 14:26 ` Mark Rutland
2020-10-26 14:26 ` Mark Rutland
2020-10-27 17:41 ` James Morse
2020-10-27 17:41 ` James Morse
2020-10-27 17:41 ` James Morse
2020-10-27 19:21 ` Marc Zyngier
2020-10-27 19:21 ` Marc Zyngier
2020-10-27 19:21 ` Marc Zyngier
2020-10-28 19:20 ` James Morse
2020-10-28 19:20 ` James Morse
2020-10-28 19:20 ` James Morse
2020-10-28 20:24 ` Marc Zyngier [this message]
2020-10-28 20:24 ` Marc Zyngier
2020-10-28 20:24 ` Marc Zyngier
2020-10-26 13:34 ` [PATCH 09/11] KVM: arm64: Remove SPSR manipulation primitives Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 14:30 ` Mark Rutland
2020-10-26 14:30 ` Mark Rutland
2020-10-26 14:30 ` Mark Rutland
2020-10-26 13:34 ` [PATCH 10/11] KVM: arm64: Consolidate exception injection Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 13:34 ` [PATCH 11/11] KVM: arm64: Get rid of the AArch32 register mapping code Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
2020-10-26 13:34 ` Marc Zyngier
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=9c130c8e438f59ecd0072feea9addbcc@kernel.org \
--to=maz@kernel.org \
--cc=james.morse@arm.com \
--cc=kernel-team@android.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=will@kernel.org \
/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.