All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Auger <eric.auger@redhat.com>
To: eric.auger.pro@gmail.com, eric.auger@redhat.com,
	peter.maydell@linaro.org, qemu-arm@nongnu.org,
	qemu-devel@nongnu.org, wanghaibin.wang@huawei.com
Cc: wei@redhat.com, drjones@redhat.com, vijay.kilari@gmail.com,
	quintela@redhat.com, dgilbert@redhat.com, wu.wubin@huawei.com,
	christoffer.dall@linaro.org
Subject: [Qemu-devel] [RFC v3 4/4] hw/intc/arm_gicv3_its: Implement full reset
Date: Thu, 23 Nov 2017 15:56:15 +0100	[thread overview]
Message-ID: <1511448975-28326-5-git-send-email-eric.auger@redhat.com> (raw)
In-Reply-To: <1511448975-28326-1-git-send-email-eric.auger@redhat.com>

Voiding the ITS caches is not supposed to happen via
individual register writes. So we introduced a dedicated
ITS KVM device ioctl to perform a cold reset of the ITS:
KVM_DEV_ARM_VGIC_GRP_CTRL/KVM_DEV_ARM_ITS_CTRL_RESET. Let's
use this latter if the kernel supports it.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
---
 hw/intc/arm_gicv3_its_kvm.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/hw/intc/arm_gicv3_its_kvm.c b/hw/intc/arm_gicv3_its_kvm.c
index 83e5268..bad593f 100644
--- a/hw/intc/arm_gicv3_its_kvm.c
+++ b/hw/intc/arm_gicv3_its_kvm.c
@@ -204,6 +204,13 @@ static void kvm_arm_its_reset(DeviceState *dev)
 
     c->parent_reset(dev);
 
+    if (kvm_device_check_attr(s->dev_fd, KVM_DEV_ARM_VGIC_GRP_CTRL,
+                               KVM_DEV_ARM_ITS_CTRL_RESET)) {
+        kvm_device_access(s->dev_fd, KVM_DEV_ARM_VGIC_GRP_CTRL,
+                          KVM_DEV_ARM_ITS_CTRL_RESET, NULL, true, &error_abort);
+        return;
+    }
+
     error_report("ITS KVM: full reset is not supported by the host kernel");
 
     if (!kvm_device_check_attr(s->dev_fd, KVM_DEV_ARM_VGIC_GRP_ITS_REGS,
-- 
2.5.5


WARNING: multiple messages have this Message-ID (diff)
From: Eric Auger <eric.auger@redhat.com>
To: eric.auger.pro@gmail.com, eric.auger@redhat.com,
	peter.maydell@linaro.org, qemu-arm@nongnu.org,
	qemu-devel@nongnu.org, wanghaibin.wang@huawei.com
Cc: vijay.kilari@gmail.com, drjones@redhat.com, wei@redhat.com,
	quintela@redhat.com, dgilbert@redhat.com,
	christoffer.dall@linaro.org, wu.wubin@huawei.com
Subject: [Qemu-devel] [RFC v3 4/4] hw/intc/arm_gicv3_its: Implement full reset
Date: Thu, 23 Nov 2017 15:56:15 +0100	[thread overview]
Message-ID: <1511448975-28326-5-git-send-email-eric.auger@redhat.com> (raw)
In-Reply-To: <1511448975-28326-1-git-send-email-eric.auger@redhat.com>

Voiding the ITS caches is not supposed to happen via
individual register writes. So we introduced a dedicated
ITS KVM device ioctl to perform a cold reset of the ITS:
KVM_DEV_ARM_VGIC_GRP_CTRL/KVM_DEV_ARM_ITS_CTRL_RESET. Let's
use this latter if the kernel supports it.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
---
 hw/intc/arm_gicv3_its_kvm.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/hw/intc/arm_gicv3_its_kvm.c b/hw/intc/arm_gicv3_its_kvm.c
index 83e5268..bad593f 100644
--- a/hw/intc/arm_gicv3_its_kvm.c
+++ b/hw/intc/arm_gicv3_its_kvm.c
@@ -204,6 +204,13 @@ static void kvm_arm_its_reset(DeviceState *dev)
 
     c->parent_reset(dev);
 
+    if (kvm_device_check_attr(s->dev_fd, KVM_DEV_ARM_VGIC_GRP_CTRL,
+                               KVM_DEV_ARM_ITS_CTRL_RESET)) {
+        kvm_device_access(s->dev_fd, KVM_DEV_ARM_VGIC_GRP_CTRL,
+                          KVM_DEV_ARM_ITS_CTRL_RESET, NULL, true, &error_abort);
+        return;
+    }
+
     error_report("ITS KVM: full reset is not supported by the host kernel");
 
     if (!kvm_device_check_attr(s->dev_fd, KVM_DEV_ARM_VGIC_GRP_ITS_REGS,
-- 
2.5.5

  parent reply	other threads:[~2017-11-23 14:59 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-23 14:56 [Qemu-arm] [RFC v3 0/4] vITS Reset Eric Auger
2017-11-23 14:56 ` [Qemu-devel] " Eric Auger
2017-11-23 14:56 ` [Qemu-arm] [RFC v3 1/4] hw/intc/arm_gicv3_its: Don't call post_load on reset Eric Auger
2017-11-23 14:56   ` [Qemu-devel] " Eric Auger
2017-11-23 14:56 ` [Qemu-arm] [RFC v3 2/4] hw/intc/arm_gicv3_its: Implement a minimalist reset Eric Auger
2017-11-23 14:56   ` [Qemu-devel] " Eric Auger
2017-11-23 14:56 ` [Qemu-arm] [RFC v3 3/4] linux-headers: Partial header update for ITS reset Eric Auger
2017-11-23 14:56   ` [Qemu-devel] " Eric Auger
2017-11-23 14:56 ` Eric Auger [this message]
2017-11-23 14:56   ` [Qemu-devel] [RFC v3 4/4] hw/intc/arm_gicv3_its: Implement full reset Eric Auger
2017-11-23 15:19 ` [Qemu-arm] [RFC v3 0/4] vITS Reset Peter Maydell
2017-11-23 15:19   ` [Qemu-devel] " Peter Maydell
2017-11-23 16:05   ` [Qemu-arm] " Auger Eric
2017-11-23 16:05     ` Auger Eric
2017-11-23 17:01     ` Peter Maydell
2017-11-23 17:01       ` Peter Maydell
2017-11-23 17:14       ` [Qemu-arm] " Cornelia Huck
2017-11-23 17:14         ` Cornelia Huck
2017-11-23 17:44         ` [Qemu-arm] " Auger Eric
2017-11-23 17:44           ` Auger Eric
2017-11-23 18:01           ` Christian Borntraeger
2017-11-23 18:01             ` Christian Borntraeger
2017-11-24  8:17             ` [Qemu-arm] " Auger Eric
2017-11-24  8:17               ` Auger Eric
2017-11-24  9:55             ` [Qemu-arm] " Cornelia Huck
2017-11-24  9:55               ` Cornelia Huck

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=1511448975-28326-5-git-send-email-eric.auger@redhat.com \
    --to=eric.auger@redhat.com \
    --cc=christoffer.dall@linaro.org \
    --cc=dgilbert@redhat.com \
    --cc=drjones@redhat.com \
    --cc=eric.auger.pro@gmail.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=vijay.kilari@gmail.com \
    --cc=wanghaibin.wang@huawei.com \
    --cc=wei@redhat.com \
    --cc=wu.wubin@huawei.com \
    /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.