Hi James,
On Mon, Nov 27, 2017 at 11:11:20AM +, James Morse wrote:
> On 23/11/17 20:59, Christoffer Dall wrote:
> > On Thu, Oct 12, 2017 at 04:49:44PM +0100, Marc Zyngier wrote:
> >> On 12/10/17 11:41, Christoffer Dall wrote:
> >>> We already have the percpu area for the host cpu state, which
On Wed, Nov 29, 2017 at 06:39:00PM +0100, Christoffer Dall wrote:
> On Mon, Nov 27, 2017 at 05:50:12PM +0100, Andrew Jones wrote:
> > On Fri, Oct 27, 2017 at 10:34:40AM +0200, Christoffer Dall wrote:
> > > diff --git a/virt/kvm/arm/arm.c b/virt/kvm/arm/arm.c
> > > index 132d39a..14c50d1 100644
> >
Hi Raz,
On Mon, Nov 27, 2017 at 09:10:56PM +, Raz wrote:
> Hey
> in mmu.c unmap_ptes() you invalidate *pte but not the pte itself. This
> leads to inconsistency in el2 translation tables. ie; the pte entry is
> cleared in the cached memory but not in the RAM, so the entry may still be
> valid
On 29.11.2017 17:41, Christoffer Dall wrote:
> Move vcpu_load() and vcpu_put() into the architecture specific
> implementations of kvm_arch_vcpu_ioctl_get_mpstate().
>
> Signed-off-by: Christoffer Dall
> ---
> arch/s390/kvm/kvm-s390.c | 11 +--
> arch/x86/kvm/x86.c | 3 +++
> virt
On 29.11.2017 17:41, Christoffer Dall wrote:
> Move vcpu_load() and vcpu_put() into the architecture specific
> implementations of kvm_arch_vcpu_ioctl_set_mpstate().
>
> Signed-off-by: Christoffer Dall
> ---
> arch/s390/kvm/kvm-s390.c | 3 +++
> arch/x86/kvm/x86.c | 15 ---
>
On 29.11.2017 17:41, Christoffer Dall wrote:
> Move vcpu_load() and vcpu_put() into the architecture specific
> implementations of kvm_arch_vcpu_ioctl_translate().
>
> Signed-off-by: Christoffer Dall
> ---
> arch/powerpc/kvm/booke.c | 2 ++
> arch/x86/kvm/x86.c | 3 +++
> virt/kvm/kvm_main
On 29.11.2017 17:41, Christoffer Dall wrote:
> Move vcpu_load() and vcpu_put() into the architecture specific
> implementations of kvm_arch_vcpu_ioctl_set_guest_debug().
>
> Signed-off-by: Christoffer Dall
> ---
> arch/arm64/kvm/guest.c| 15 ---
> arch/powerpc/kvm/book3s.c | 2 +
On 29.11.2017 17:41, Christoffer Dall wrote:
> Move vcpu_load() and vcpu_put() into the architecture specific
> implementations of kvm_arch_vcpu_ioctl_get_fpu().
>
> Signed-off-by: Christoffer Dall
> ---
> arch/s390/kvm/kvm-s390.c | 4
> arch/x86/kvm/x86.c | 7 +--
> virt/kvm/kvm_
On Mon, Nov 27, 2017 at 05:50:12PM +0100, Andrew Jones wrote:
> On Fri, Oct 27, 2017 at 10:34:40AM +0200, Christoffer Dall wrote:
> > diff --git a/virt/kvm/arm/arm.c b/virt/kvm/arm/arm.c
> > index 132d39a..14c50d1 100644
> > --- a/virt/kvm/arm/arm.c
> > +++ b/virt/kvm/arm/arm.c
> > @@ -656,7 +656,6
On 29.11.2017 17:41, Christoffer Dall wrote:
> Move vcpu_load() and vcpu_put() into the architecture specific
> implementations of kvm_arch_vcpu_ioctl_set_fpu().
>
> Signed-off-by: Christoffer Dall
> ---
> arch/s390/kvm/kvm-s390.c | 15 ---
> arch/x86/kvm/x86.c | 8 ++--
>
On Wed, Nov 29, 2017 at 5:22 PM, David Hildenbrand wrote:
> On 29.11.2017 18:20, Paolo Bonzini wrote:
>> On 29/11/2017 18:17, David Hildenbrand wrote:
>>> On 29.11.2017 17:41, Christoffer Dall wrote:
As we're about to call vcpu_load() from architecture-specific
implementations of the KVM
On Wed, Nov 29, 2017 at 5:30 PM, David Hildenbrand wrote:
>
>> +++ b/virt/kvm/arm/arm.c
>> @@ -381,14 +381,11 @@ static void vcpu_power_off(struct kvm_vcpu *vcpu)
>> int kvm_arch_vcpu_ioctl_get_mpstate(struct kvm_vcpu *vcpu,
>> struct kvm_mp_state *mp_state)
>>
> +++ b/virt/kvm/arm/arm.c
> @@ -381,14 +381,11 @@ static void vcpu_power_off(struct kvm_vcpu *vcpu)
> int kvm_arch_vcpu_ioctl_get_mpstate(struct kvm_vcpu *vcpu,
> struct kvm_mp_state *mp_state)
> {
> - vcpu_load(vcpu);
> -
> if (vcpu->arch.power_off)
On 29.11.2017 17:41, Christoffer Dall wrote:
> In preparation for moving calls to vcpu_load() and vcpu_put() into the
> architecture specific implementations of the KVM vcpu ioctls, move the
> calls in the main kvm_vcpu_ioctl() dispatcher function to each case
> of the ioctl select statement. This
On Sat, Nov 25, 2017 at 06:40:31PM +0100, Andrew Jones wrote:
> Since commit 93390c0a1b20 ("arm64: KVM: Hide unsupported AArch64 CPU
> features from guests") we can hide cpu features from guests. Apply
> this to a long standing issue where guests see a PMU available, but
> it's not, because it was
On 29.11.2017 18:20, Paolo Bonzini wrote:
> On 29/11/2017 18:17, David Hildenbrand wrote:
>> On 29.11.2017 17:41, Christoffer Dall wrote:
>>> As we're about to call vcpu_load() from architecture-specific
>>> implementations of the KVM vcpu ioctls, but yet we access data
>>> structures protected by
On 29/11/2017 18:17, David Hildenbrand wrote:
> On 29.11.2017 17:41, Christoffer Dall wrote:
>> As we're about to call vcpu_load() from architecture-specific
>> implementations of the KVM vcpu ioctls, but yet we access data
>> structures protected by the vcpu->mutex in the generic code, factor
>> t
On 29.11.2017 17:41, Christoffer Dall wrote:
> As we're about to call vcpu_load() from architecture-specific
> implementations of the KVM vcpu ioctls, but yet we access data
> structures protected by the vcpu->mutex in the generic code, factor
> this logic out from vcpu_load().
>
> Signed-off-by:
On Tue, Nov 28, 2017 at 03:18:19PM +, Ard Biesheuvel wrote:
> Since it is perfectly legal to run the kernel at EL1, it is not
> actually an error if HYP mode is not available when attempting to
> initialize KVM, given that KVM support cannot be built as a module.
> So demote the kvm_err() to kv
Move the calls to vcpu_load() and vcpu_put() in to the architecture
specific implementations of kvm_arch_vcpu_ioctl() which dispatches
further architecture-specific ioctls on to other functions.
Some architectures support asynchronous vcpu ioctls which cannot call
vcpu_load() or take the vcpu->mut
Moving the call to vcpu_load() in kvm_arch_vcpu_ioctl_run() to after
we've called kvm_vcpu_first_run_init() simplifies some of the vgic and
there is also no need to do vcpu_load() for things such as handling the
immediate_exit flag.
Signed-off-by: Christoffer Dall
---
virt/kvm/arm/arch_timer.c
Calling vcpu_load() registers preempt notifiers for this vcpu and calls
kvm_arch_vcpu_load(). The latter will soon be doing a lot of heavy
lifting on arm/arm64 and will try to do things such as enabling the
virtual timer and setting us up to handle interrupts from the timer
hardware.
Loading stat
Move vcpu_load() and vcpu_put() into the architecture specific
implementations of kvm_arch_vcpu_ioctl_run().
Signed-off-by: Christoffer Dall
---
arch/mips/kvm/mips.c | 3 +++
arch/powerpc/kvm/powerpc.c | 6 +-
arch/s390/kvm/kvm-s390.c | 10 --
arch/x86/kvm/x86.c |
Move vcpu_load() and vcpu_put() into the architecture specific
implementations of kvm_arch_vcpu_ioctl_set_regs().
Signed-off-by: Christoffer Dall
---
arch/mips/kvm/mips.c | 3 +++
arch/powerpc/kvm/book3s.c | 3 +++
arch/powerpc/kvm/booke.c | 3 +++
arch/s390/kvm/kvm-s390.c | 2 ++
arch/x8
Move vcpu_load() and vcpu_put() into the architecture specific
implementations of kvm_arch_vcpu_ioctl_set_sregs().
Signed-off-by: Christoffer Dall
---
arch/powerpc/kvm/book3s.c | 8 +++-
arch/powerpc/kvm/booke.c | 15 +++
arch/s390/kvm/kvm-s390.c | 4
arch/x86/kvm/x86.c
Move vcpu_load() and vcpu_put() into the architecture specific
implementations of kvm_arch_vcpu_ioctl_get_regs().
Signed-off-by: Christoffer Dall
---
arch/mips/kvm/mips.c | 3 +++
arch/powerpc/kvm/book3s.c | 3 +++
arch/powerpc/kvm/booke.c | 3 +++
arch/s390/kvm/kvm-s390.c | 2 ++
arch/x8
In preparation for moving calls to vcpu_load() and vcpu_put() into the
architecture specific implementations of the KVM vcpu ioctls, move the
calls in the main kvm_vcpu_ioctl() dispatcher function to each case
of the ioctl select statement. This allows us to move the vcpu_load()
and vcpu_put() cal
Move vcpu_load() and vcpu_put() into the architecture specific
implementations of kvm_arch_vcpu_ioctl_translate().
Signed-off-by: Christoffer Dall
---
arch/powerpc/kvm/booke.c | 2 ++
arch/x86/kvm/x86.c | 3 +++
virt/kvm/kvm_main.c | 2 --
3 files changed, 5 insertions(+), 2 deletions
Move vcpu_load() and vcpu_put() into the architecture specific
implementations of kvm_arch_vcpu_ioctl_set_fpu().
Signed-off-by: Christoffer Dall
---
arch/s390/kvm/kvm-s390.c | 15 ---
arch/x86/kvm/x86.c | 8 ++--
virt/kvm/kvm_main.c | 2 --
3 files changed, 18 insert
Move vcpu_load() and vcpu_put() into the architecture specific
implementations of kvm_arch_vcpu_ioctl_get_fpu().
Signed-off-by: Christoffer Dall
---
arch/s390/kvm/kvm-s390.c | 4
arch/x86/kvm/x86.c | 7 +--
virt/kvm/kvm_main.c | 2 --
3 files changed, 9 insertions(+), 4 delet
Move vcpu_load() and vcpu_put() into the architecture specific
implementations of kvm_arch_vcpu_ioctl_set_guest_debug().
Signed-off-by: Christoffer Dall
---
arch/arm64/kvm/guest.c| 15 ---
arch/powerpc/kvm/book3s.c | 2 ++
arch/powerpc/kvm/booke.c | 19 +--
arch
Move vcpu_load() and vcpu_put() into the architecture specific
implementations of kvm_arch_vcpu_ioctl_set_mpstate().
Signed-off-by: Christoffer Dall
---
arch/s390/kvm/kvm-s390.c | 3 +++
arch/x86/kvm/x86.c | 15 ---
virt/kvm/arm/arm.c | 9 +++--
virt/kvm/kvm_main.c
As we're about to call vcpu_load() from architecture-specific
implementations of the KVM vcpu ioctls, but yet we access data
structures protected by the vcpu->mutex in the generic code, factor
this logic out from vcpu_load().
Signed-off-by: Christoffer Dall
---
arch/x86/kvm/vmx.c | 4 +---
Move vcpu_load() and vcpu_put() into the architecture specific
implementations of kvm_arch_vcpu_ioctl_get_mpstate().
Signed-off-by: Christoffer Dall
---
arch/s390/kvm/kvm-s390.c | 11 +--
arch/x86/kvm/x86.c | 3 +++
virt/kvm/arm/arm.c | 3 +++
virt/kvm/kvm_main.c | 2
Move vcpu_load() and vcpu_put() into the architecture specific
implementations of kvm_arch_vcpu_ioctl_get_sregs().
Signed-off-by: Christoffer Dall
---
arch/powerpc/kvm/book3s.c | 8 +++-
arch/powerpc/kvm/booke.c | 9 -
arch/s390/kvm/kvm-s390.c | 4
arch/x86/kvm/x86.c|
Some architectures may decide to do different things during
kvm_arch_vcpu_load depending on the ioctl being executed. For example,
arm64 is about to do significant work in vcpu load/put when running a
vcpu, but it's problematic to do this for any other vcpu ioctl than
KVM_RUN.
Further, while it m
The timer optimization patches inadvertendly changed the logic to always
load the timer state as if we have a vgic, even if we don't have a vgic.
Fix this by doing the usual irqchip_in_kernel() check and call the
appropriate load function.
Signed-off-by: Christoffer Dall
---
I'm aware that this
On 23/11/17 12:11, Alex Bennée wrote:
> Hi,
>
> This is now split into two patches as the first case of SError is
> separate from behaviour of stepping instructions.
>
> Alex Bennée (2):
> kvm: arm64: handle single-step during SError exceptions
> kvm: arm64: handle single-step of hyp emulated
On Wed, Nov 29, 2017 at 03:21:40PM +, Will Deacon wrote:
> On Wed, Nov 29, 2017 at 03:04:12PM +, Alex Bennée wrote:
> >
> > Dave Martin writes:
> >
> > > This series implements Linux kernel support for the ARM Scalable Vector
> > > Extension (SVE). [1] It supersedes the previous v3: see
On Wed, Nov 29, 2017 at 03:04:12PM +, Alex Bennée wrote:
>
> Dave Martin writes:
>
> > This series implements Linux kernel support for the ARM Scalable Vector
> > Extension (SVE). [1] It supersedes the previous v3: see [3] for link
> > and full cover letter.
> >
> > This is a minor update t
On 17/11/17 18:52, Jean-Philippe Brucker wrote:
[...]
> +struct viommu_domain {
> + struct iommu_domain domain;
> + struct viommu_dev *viommu;
> + struct mutexmutex;
> + unsigned intid;
> +
> + spinlock_t
On 17/11/17 18:52, Jean-Philippe Brucker wrote:
> To describe the virtual topology in relation to a virtio-iommu device,
> ACPI-based systems use a "paravirtualized IOMMU" IORT node. Add support
> for it.
>
> This is a RFC because the IORT specification doesn't describe the
> paravirtualized node
On Mon, Nov 20, 2017 at 08:16:48PM +0100, Christoffer Dall wrote:
> The VGIC can now support the life-cycle of mapped level-triggered
> interrupts, and we no longer have to read back the timer state on every
> exit from the VM if we had an asserted timer interrupt signal, because
> the VGIC already
On Mon, Nov 20, 2017 at 08:16:47PM +0100, Christoffer Dall wrote:
> For mapped IRQs (with the HW bit set in the LR) we have to follow some
> rules of the architecture. One of these rules is that VM must not be
> allowed to deactivate a virtual interrupt with the HW bit set unless the
> physical in
Dave Martin writes:
> This series implements Linux kernel support for the ARM Scalable Vector
> Extension (SVE). [1] It supersedes the previous v3: see [3] for link
> and full cover letter.
>
> This is a minor update to v4, but does contain a couple of important
> fixes.
I seem to have run in
On Thu, Nov 30, 2017 at 04:48:44AM +0800, Dongjiu Geng wrote:
> For the RAS Synchronous External Abort, there are two types.
> One is memory access, it will be handled by host APEI driver.
> Another is translation table walk, in essence, it is hardware
> memory error on stage1 or stage2 page table.
For the RAS Synchronous External Abort, there are two types.
One is memory access, it will be handled by host APEI driver.
Another is translation table walk, in essence, it is hardware
memory error on stage1 or stage2 page table.
For the guest stage1 translation table error, if host APEI
driver ha
Fix ptr_ret.cocci warnings:
virt/kvm/arm/vgic/vgic-its.c:971:1-3: WARNING: PTR_ERR_OR_ZERO can be used
Use PTR_ERR_OR_ZERO rather than if(IS_ERR(...)) + PTR_ERR
Generated by: scripts/coccinelle/api/ptr_ret.cocci
Signed-off-by: Vasyl Gomonovych
---
virt/kvm/arm/vgic/vgic-its.c | 4 +---
1 file
48 matches
Mail list logo