From: "Cédric Le Goater" <clg@kaod.org> To: kvm-ppc@vger.kernel.org Cc: kvm@vger.kernel.org, "Paul Mackerras" <paulus@samba.org>, "Cédric Le Goater" <clg@kaod.org>, linuxppc-dev@lists.ozlabs.org, "David Gibson" <david@gibson.dropbear.id.au> Subject: [PATCH 16/19] KVM: PPC: Book3S HV: add get/set accessors for the EQ configuration Date: Mon, 7 Jan 2019 19:43:28 +0100 [thread overview] Message-ID: <20190107184331.8429-17-clg@kaod.org> (raw) In-Reply-To: <20190107184331.8429-1-clg@kaod.org> These are used to capture the XIVE END table of the KVM device. It relies on an OPAL call to retrieve from the XIVE IC the EQ toggle bit and index which are updated by the HW when events are enqueued in the guest RAM. Signed-off-by: Cédric Le Goater <clg@kaod.org> --- arch/powerpc/include/uapi/asm/kvm.h | 21 ++++ arch/powerpc/kvm/book3s_xive_native.c | 166 ++++++++++++++++++++++++++ 2 files changed, 187 insertions(+) diff --git a/arch/powerpc/include/uapi/asm/kvm.h b/arch/powerpc/include/uapi/asm/kvm.h index faf024f39858..95302558ce10 100644 --- a/arch/powerpc/include/uapi/asm/kvm.h +++ b/arch/powerpc/include/uapi/asm/kvm.h @@ -684,6 +684,7 @@ struct kvm_ppc_cpu_char { #define KVM_DEV_XIVE_GRP_SOURCES 2 /* 64-bit source attributes */ #define KVM_DEV_XIVE_GRP_SYNC 3 /* 64-bit source attributes */ #define KVM_DEV_XIVE_GRP_EAS 4 /* 64-bit eas attributes */ +#define KVM_DEV_XIVE_GRP_EQ 5 /* 64-bit eq attributes */ /* Layout of 64-bit XIVE source attribute values */ #define KVM_XIVE_LEVEL_SENSITIVE (1ULL << 0) @@ -699,4 +700,24 @@ struct kvm_ppc_cpu_char { #define KVM_XIVE_EAS_EISN_SHIFT 33 #define KVM_XIVE_EAS_EISN_MASK 0xfffffffe00000000ULL +/* Layout of 64-bit eq attribute */ +#define KVM_XIVE_EQ_PRIORITY_SHIFT 0 +#define KVM_XIVE_EQ_PRIORITY_MASK 0x7 +#define KVM_XIVE_EQ_SERVER_SHIFT 3 +#define KVM_XIVE_EQ_SERVER_MASK 0xfffffff8ULL + +/* Layout of 64-bit eq attribute values */ +struct kvm_ppc_xive_eq { + __u32 flags; + __u32 qsize; + __u64 qpage; + __u32 qtoggle; + __u32 qindex; +}; + +#define KVM_XIVE_EQ_FLAG_ENABLED 0x00000001 +#define KVM_XIVE_EQ_FLAG_ALWAYS_NOTIFY 0x00000002 +#define KVM_XIVE_EQ_FLAG_ESCALATE 0x00000004 + + #endif /* __LINUX_KVM_POWERPC_H */ diff --git a/arch/powerpc/kvm/book3s_xive_native.c b/arch/powerpc/kvm/book3s_xive_native.c index 0468b605baa7..f4eb71eafc57 100644 --- a/arch/powerpc/kvm/book3s_xive_native.c +++ b/arch/powerpc/kvm/book3s_xive_native.c @@ -607,6 +607,164 @@ static int kvmppc_xive_native_get_eas(struct kvmppc_xive *xive, long irq, return 0; } +static int kvmppc_xive_native_set_queue(struct kvmppc_xive *xive, long eq_idx, + u64 addr) +{ + struct kvm *kvm = xive->kvm; + struct kvm_vcpu *vcpu; + struct kvmppc_xive_vcpu *xc; + void __user *ubufp = (u64 __user *) addr; + u32 server; + u8 priority; + struct kvm_ppc_xive_eq kvm_eq; + int rc; + __be32 *qaddr = 0; + struct page *page; + struct xive_q *q; + + /* + * Demangle priority/server tuple from the EQ index + */ + priority = (eq_idx & KVM_XIVE_EQ_PRIORITY_MASK) >> + KVM_XIVE_EQ_PRIORITY_SHIFT; + server = (eq_idx & KVM_XIVE_EQ_SERVER_MASK) >> + KVM_XIVE_EQ_SERVER_SHIFT; + + if (copy_from_user(&kvm_eq, ubufp, sizeof(kvm_eq))) + return -EFAULT; + + vcpu = kvmppc_xive_find_server(kvm, server); + if (!vcpu) { + pr_err("Can't find server %d\n", server); + return -ENOENT; + } + xc = vcpu->arch.xive_vcpu; + + if (priority != xive_prio_from_guest(priority)) { + pr_err("Trying to restore invalid queue %d for VCPU %d\n", + priority, server); + return -EINVAL; + } + q = &xc->queues[priority]; + + pr_devel("%s VCPU %d priority %d fl:%x sz:%d addr:%llx g:%d idx:%d\n", + __func__, server, priority, kvm_eq.flags, + kvm_eq.qsize, kvm_eq.qpage, kvm_eq.qtoggle, kvm_eq.qindex); + + rc = xive_native_validate_queue_size(kvm_eq.qsize); + if (rc || !kvm_eq.qsize) { + pr_err("invalid queue size %d\n", kvm_eq.qsize); + return rc; + } + + page = gfn_to_page(kvm, gpa_to_gfn(kvm_eq.qpage)); + if (is_error_page(page)) { + pr_warn("Couldn't get guest page for %llx!\n", kvm_eq.qpage); + return -ENOMEM; + } + qaddr = page_to_virt(page) + (kvm_eq.qpage & ~PAGE_MASK); + + /* Backup queue page guest address for migration */ + q->guest_qpage = kvm_eq.qpage; + q->guest_qsize = kvm_eq.qsize; + + rc = xive_native_configure_queue(xc->vp_id, q, priority, + (__be32 *) qaddr, kvm_eq.qsize, true); + if (rc) { + pr_err("Failed to configure queue %d for VCPU %d: %d\n", + priority, xc->server_num, rc); + put_page(page); + return rc; + } + + rc = xive_native_set_queue_state(xc->vp_id, priority, kvm_eq.qtoggle, + kvm_eq.qindex); + if (rc) + goto error; + + rc = kvmppc_xive_attach_escalation(vcpu, priority); +error: + if (rc) + xive_native_cleanup_queue(vcpu, priority); + return rc; +} + +static int kvmppc_xive_native_get_queue(struct kvmppc_xive *xive, long eq_idx, + u64 addr) +{ + struct kvm *kvm = xive->kvm; + struct kvm_vcpu *vcpu; + struct kvmppc_xive_vcpu *xc; + struct xive_q *q; + void __user *ubufp = (u64 __user *) addr; + u32 server; + u8 priority; + struct kvm_ppc_xive_eq kvm_eq; + u64 qpage; + u64 qsize; + u64 qeoi_page; + u32 escalate_irq; + u64 qflags; + int rc; + + /* + * Demangle priority/server tuple from the EQ index + */ + priority = (eq_idx & KVM_XIVE_EQ_PRIORITY_MASK) >> + KVM_XIVE_EQ_PRIORITY_SHIFT; + server = (eq_idx & KVM_XIVE_EQ_SERVER_MASK) >> + KVM_XIVE_EQ_SERVER_SHIFT; + + vcpu = kvmppc_xive_find_server(kvm, server); + if (!vcpu) { + pr_err("Can't find server %d\n", server); + return -ENOENT; + } + xc = vcpu->arch.xive_vcpu; + + if (priority != xive_prio_from_guest(priority)) { + pr_err("invalid priority for queue %d for VCPU %d\n", + priority, server); + return -EINVAL; + } + q = &xc->queues[priority]; + + memset(&kvm_eq, 0, sizeof(kvm_eq)); + + if (!q->qpage) + return 0; + + rc = xive_native_get_queue_info(xc->vp_id, priority, &qpage, &qsize, + &qeoi_page, &escalate_irq, &qflags); + if (rc) + return rc; + + kvm_eq.flags = 0; + if (qflags & OPAL_XIVE_EQ_ENABLED) + kvm_eq.flags |= KVM_XIVE_EQ_FLAG_ENABLED; + if (qflags & OPAL_XIVE_EQ_ALWAYS_NOTIFY) + kvm_eq.flags |= KVM_XIVE_EQ_FLAG_ALWAYS_NOTIFY; + if (qflags & OPAL_XIVE_EQ_ESCALATE) + kvm_eq.flags |= KVM_XIVE_EQ_FLAG_ESCALATE; + + kvm_eq.qsize = q->guest_qsize; + kvm_eq.qpage = q->guest_qpage; + + rc = xive_native_get_queue_state(xc->vp_id, priority, &kvm_eq.qtoggle, + &kvm_eq.qindex); + if (rc) + return rc; + + pr_devel("%s VCPU %d priority %d fl:%x sz:%d addr:%llx g:%d idx:%d\n", + __func__, server, priority, kvm_eq.flags, + kvm_eq.qsize, kvm_eq.qpage, kvm_eq.qtoggle, kvm_eq.qindex); + + if (copy_to_user(ubufp, &kvm_eq, sizeof(kvm_eq))) + return -EFAULT; + + return 0; +} + static int kvmppc_xive_native_set_attr(struct kvm_device *dev, struct kvm_device_attr *attr) { @@ -628,6 +786,9 @@ static int kvmppc_xive_native_set_attr(struct kvm_device *dev, return kvmppc_xive_native_sync(xive, attr->attr, attr->addr); case KVM_DEV_XIVE_GRP_EAS: return kvmppc_xive_native_set_eas(xive, attr->attr, attr->addr); + case KVM_DEV_XIVE_GRP_EQ: + return kvmppc_xive_native_set_queue(xive, attr->attr, + attr->addr); } return -ENXIO; } @@ -650,6 +811,9 @@ static int kvmppc_xive_native_get_attr(struct kvm_device *dev, break; case KVM_DEV_XIVE_GRP_EAS: return kvmppc_xive_native_get_eas(xive, attr->attr, attr->addr); + case KVM_DEV_XIVE_GRP_EQ: + return kvmppc_xive_native_get_queue(xive, attr->attr, + attr->addr); } return -ENXIO; } @@ -674,6 +838,8 @@ static int kvmppc_xive_native_has_attr(struct kvm_device *dev, attr->attr < KVMPPC_XIVE_NR_IRQS) return 0; break; + case KVM_DEV_XIVE_GRP_EQ: + return 0; } return -ENXIO; } -- 2.20.1
WARNING: multiple messages have this Message-ID (diff)
From: "Cédric Le Goater" <clg@kaod.org> To: kvm-ppc@vger.kernel.org Cc: kvm@vger.kernel.org, "Paul Mackerras" <paulus@samba.org>, "Cédric Le Goater" <clg@kaod.org>, linuxppc-dev@lists.ozlabs.org, "David Gibson" <david@gibson.dropbear.id.au> Subject: [PATCH 16/19] KVM: PPC: Book3S HV: add get/set accessors for the EQ configuration Date: Mon, 07 Jan 2019 18:43:28 +0000 [thread overview] Message-ID: <20190107184331.8429-17-clg@kaod.org> (raw) In-Reply-To: <20190107184331.8429-1-clg@kaod.org> These are used to capture the XIVE END table of the KVM device. It relies on an OPAL call to retrieve from the XIVE IC the EQ toggle bit and index which are updated by the HW when events are enqueued in the guest RAM. Signed-off-by: Cédric Le Goater <clg@kaod.org> --- arch/powerpc/include/uapi/asm/kvm.h | 21 ++++ arch/powerpc/kvm/book3s_xive_native.c | 166 ++++++++++++++++++++++++++ 2 files changed, 187 insertions(+) diff --git a/arch/powerpc/include/uapi/asm/kvm.h b/arch/powerpc/include/uapi/asm/kvm.h index faf024f39858..95302558ce10 100644 --- a/arch/powerpc/include/uapi/asm/kvm.h +++ b/arch/powerpc/include/uapi/asm/kvm.h @@ -684,6 +684,7 @@ struct kvm_ppc_cpu_char { #define KVM_DEV_XIVE_GRP_SOURCES 2 /* 64-bit source attributes */ #define KVM_DEV_XIVE_GRP_SYNC 3 /* 64-bit source attributes */ #define KVM_DEV_XIVE_GRP_EAS 4 /* 64-bit eas attributes */ +#define KVM_DEV_XIVE_GRP_EQ 5 /* 64-bit eq attributes */ /* Layout of 64-bit XIVE source attribute values */ #define KVM_XIVE_LEVEL_SENSITIVE (1ULL << 0) @@ -699,4 +700,24 @@ struct kvm_ppc_cpu_char { #define KVM_XIVE_EAS_EISN_SHIFT 33 #define KVM_XIVE_EAS_EISN_MASK 0xfffffffe00000000ULL +/* Layout of 64-bit eq attribute */ +#define KVM_XIVE_EQ_PRIORITY_SHIFT 0 +#define KVM_XIVE_EQ_PRIORITY_MASK 0x7 +#define KVM_XIVE_EQ_SERVER_SHIFT 3 +#define KVM_XIVE_EQ_SERVER_MASK 0xfffffff8ULL + +/* Layout of 64-bit eq attribute values */ +struct kvm_ppc_xive_eq { + __u32 flags; + __u32 qsize; + __u64 qpage; + __u32 qtoggle; + __u32 qindex; +}; + +#define KVM_XIVE_EQ_FLAG_ENABLED 0x00000001 +#define KVM_XIVE_EQ_FLAG_ALWAYS_NOTIFY 0x00000002 +#define KVM_XIVE_EQ_FLAG_ESCALATE 0x00000004 + + #endif /* __LINUX_KVM_POWERPC_H */ diff --git a/arch/powerpc/kvm/book3s_xive_native.c b/arch/powerpc/kvm/book3s_xive_native.c index 0468b605baa7..f4eb71eafc57 100644 --- a/arch/powerpc/kvm/book3s_xive_native.c +++ b/arch/powerpc/kvm/book3s_xive_native.c @@ -607,6 +607,164 @@ static int kvmppc_xive_native_get_eas(struct kvmppc_xive *xive, long irq, return 0; } +static int kvmppc_xive_native_set_queue(struct kvmppc_xive *xive, long eq_idx, + u64 addr) +{ + struct kvm *kvm = xive->kvm; + struct kvm_vcpu *vcpu; + struct kvmppc_xive_vcpu *xc; + void __user *ubufp = (u64 __user *) addr; + u32 server; + u8 priority; + struct kvm_ppc_xive_eq kvm_eq; + int rc; + __be32 *qaddr = 0; + struct page *page; + struct xive_q *q; + + /* + * Demangle priority/server tuple from the EQ index + */ + priority = (eq_idx & KVM_XIVE_EQ_PRIORITY_MASK) >> + KVM_XIVE_EQ_PRIORITY_SHIFT; + server = (eq_idx & KVM_XIVE_EQ_SERVER_MASK) >> + KVM_XIVE_EQ_SERVER_SHIFT; + + if (copy_from_user(&kvm_eq, ubufp, sizeof(kvm_eq))) + return -EFAULT; + + vcpu = kvmppc_xive_find_server(kvm, server); + if (!vcpu) { + pr_err("Can't find server %d\n", server); + return -ENOENT; + } + xc = vcpu->arch.xive_vcpu; + + if (priority != xive_prio_from_guest(priority)) { + pr_err("Trying to restore invalid queue %d for VCPU %d\n", + priority, server); + return -EINVAL; + } + q = &xc->queues[priority]; + + pr_devel("%s VCPU %d priority %d fl:%x sz:%d addr:%llx g:%d idx:%d\n", + __func__, server, priority, kvm_eq.flags, + kvm_eq.qsize, kvm_eq.qpage, kvm_eq.qtoggle, kvm_eq.qindex); + + rc = xive_native_validate_queue_size(kvm_eq.qsize); + if (rc || !kvm_eq.qsize) { + pr_err("invalid queue size %d\n", kvm_eq.qsize); + return rc; + } + + page = gfn_to_page(kvm, gpa_to_gfn(kvm_eq.qpage)); + if (is_error_page(page)) { + pr_warn("Couldn't get guest page for %llx!\n", kvm_eq.qpage); + return -ENOMEM; + } + qaddr = page_to_virt(page) + (kvm_eq.qpage & ~PAGE_MASK); + + /* Backup queue page guest address for migration */ + q->guest_qpage = kvm_eq.qpage; + q->guest_qsize = kvm_eq.qsize; + + rc = xive_native_configure_queue(xc->vp_id, q, priority, + (__be32 *) qaddr, kvm_eq.qsize, true); + if (rc) { + pr_err("Failed to configure queue %d for VCPU %d: %d\n", + priority, xc->server_num, rc); + put_page(page); + return rc; + } + + rc = xive_native_set_queue_state(xc->vp_id, priority, kvm_eq.qtoggle, + kvm_eq.qindex); + if (rc) + goto error; + + rc = kvmppc_xive_attach_escalation(vcpu, priority); +error: + if (rc) + xive_native_cleanup_queue(vcpu, priority); + return rc; +} + +static int kvmppc_xive_native_get_queue(struct kvmppc_xive *xive, long eq_idx, + u64 addr) +{ + struct kvm *kvm = xive->kvm; + struct kvm_vcpu *vcpu; + struct kvmppc_xive_vcpu *xc; + struct xive_q *q; + void __user *ubufp = (u64 __user *) addr; + u32 server; + u8 priority; + struct kvm_ppc_xive_eq kvm_eq; + u64 qpage; + u64 qsize; + u64 qeoi_page; + u32 escalate_irq; + u64 qflags; + int rc; + + /* + * Demangle priority/server tuple from the EQ index + */ + priority = (eq_idx & KVM_XIVE_EQ_PRIORITY_MASK) >> + KVM_XIVE_EQ_PRIORITY_SHIFT; + server = (eq_idx & KVM_XIVE_EQ_SERVER_MASK) >> + KVM_XIVE_EQ_SERVER_SHIFT; + + vcpu = kvmppc_xive_find_server(kvm, server); + if (!vcpu) { + pr_err("Can't find server %d\n", server); + return -ENOENT; + } + xc = vcpu->arch.xive_vcpu; + + if (priority != xive_prio_from_guest(priority)) { + pr_err("invalid priority for queue %d for VCPU %d\n", + priority, server); + return -EINVAL; + } + q = &xc->queues[priority]; + + memset(&kvm_eq, 0, sizeof(kvm_eq)); + + if (!q->qpage) + return 0; + + rc = xive_native_get_queue_info(xc->vp_id, priority, &qpage, &qsize, + &qeoi_page, &escalate_irq, &qflags); + if (rc) + return rc; + + kvm_eq.flags = 0; + if (qflags & OPAL_XIVE_EQ_ENABLED) + kvm_eq.flags |= KVM_XIVE_EQ_FLAG_ENABLED; + if (qflags & OPAL_XIVE_EQ_ALWAYS_NOTIFY) + kvm_eq.flags |= KVM_XIVE_EQ_FLAG_ALWAYS_NOTIFY; + if (qflags & OPAL_XIVE_EQ_ESCALATE) + kvm_eq.flags |= KVM_XIVE_EQ_FLAG_ESCALATE; + + kvm_eq.qsize = q->guest_qsize; + kvm_eq.qpage = q->guest_qpage; + + rc = xive_native_get_queue_state(xc->vp_id, priority, &kvm_eq.qtoggle, + &kvm_eq.qindex); + if (rc) + return rc; + + pr_devel("%s VCPU %d priority %d fl:%x sz:%d addr:%llx g:%d idx:%d\n", + __func__, server, priority, kvm_eq.flags, + kvm_eq.qsize, kvm_eq.qpage, kvm_eq.qtoggle, kvm_eq.qindex); + + if (copy_to_user(ubufp, &kvm_eq, sizeof(kvm_eq))) + return -EFAULT; + + return 0; +} + static int kvmppc_xive_native_set_attr(struct kvm_device *dev, struct kvm_device_attr *attr) { @@ -628,6 +786,9 @@ static int kvmppc_xive_native_set_attr(struct kvm_device *dev, return kvmppc_xive_native_sync(xive, attr->attr, attr->addr); case KVM_DEV_XIVE_GRP_EAS: return kvmppc_xive_native_set_eas(xive, attr->attr, attr->addr); + case KVM_DEV_XIVE_GRP_EQ: + return kvmppc_xive_native_set_queue(xive, attr->attr, + attr->addr); } return -ENXIO; } @@ -650,6 +811,9 @@ static int kvmppc_xive_native_get_attr(struct kvm_device *dev, break; case KVM_DEV_XIVE_GRP_EAS: return kvmppc_xive_native_get_eas(xive, attr->attr, attr->addr); + case KVM_DEV_XIVE_GRP_EQ: + return kvmppc_xive_native_get_queue(xive, attr->attr, + attr->addr); } return -ENXIO; } @@ -674,6 +838,8 @@ static int kvmppc_xive_native_has_attr(struct kvm_device *dev, attr->attr < KVMPPC_XIVE_NR_IRQS) return 0; break; + case KVM_DEV_XIVE_GRP_EQ: + return 0; } return -ENXIO; } -- 2.20.1
next prev parent reply other threads:[~2019-01-07 18:43 UTC|newest] Thread overview: 271+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-01-07 18:43 [PATCH 00/19] KVM: PPC: Book3S HV: add XIVE native exploitation mode Cédric Le Goater 2019-01-07 18:43 ` Cédric Le Goater 2019-01-07 18:43 ` [PATCH 01/19] powerpc/xive: export flags for the XIVE native exploitation mode hcalls Cédric Le Goater 2019-01-07 18:43 ` Cédric Le Goater 2019-01-09 3:33 ` David Gibson 2019-01-09 3:33 ` David Gibson 2019-01-09 13:08 ` Michael Ellerman 2019-01-09 13:08 ` Michael Ellerman 2019-01-09 13:38 ` Cédric Le Goater 2019-01-09 13:38 ` Cédric Le Goater 2019-01-07 18:43 ` [PATCH 02/19] powerpc/xive: add OPAL extensions for the XIVE native exploitation support Cédric Le Goater 2019-01-07 18:43 ` Cédric Le Goater 2019-01-09 4:26 ` David Gibson 2019-01-09 4:26 ` David Gibson 2019-01-07 18:43 ` [PATCH 03/19] KVM: PPC: Book3S HV: check the IRQ controller type Cédric Le Goater 2019-01-07 18:43 ` Cédric Le Goater 2019-01-09 4:27 ` David Gibson 2019-01-09 4:27 ` David Gibson 2019-01-22 4:56 ` Paul Mackerras 2019-01-22 4:56 ` Paul Mackerras 2019-01-23 16:24 ` Cédric Le Goater 2019-01-23 16:24 ` Cédric Le Goater 2019-02-04 0:50 ` David Gibson 2019-02-04 0:50 ` David Gibson 2019-02-04 10:16 ` Cédric Le Goater 2019-02-04 10:16 ` Cédric Le Goater 2019-01-07 18:43 ` [PATCH 04/19] KVM: PPC: Book3S HV: export services for the XIVE native exploitation device Cédric Le Goater 2019-01-07 18:43 ` Cédric Le Goater 2019-01-11 4:09 ` David Gibson 2019-01-11 4:09 ` David Gibson 2019-01-07 18:43 ` [PATCH 05/19] KVM: PPC: Book3S HV: add a new KVM device for the XIVE native exploitation mode Cédric Le Goater 2019-01-07 18:43 ` Cédric Le Goater 2019-01-22 5:05 ` Paul Mackerras 2019-01-22 5:05 ` Paul Mackerras 2019-01-23 16:28 ` Cédric Le Goater 2019-01-23 16:28 ` Cédric Le Goater 2019-01-28 17:35 ` Cédric Le Goater 2019-01-28 17:35 ` Cédric Le Goater 2019-01-30 4:29 ` Paul Mackerras 2019-01-30 4:29 ` Paul Mackerras 2019-01-30 7:01 ` Cédric Le Goater 2019-01-30 7:01 ` Cédric Le Goater 2019-01-31 3:01 ` Paul Mackerras 2019-01-31 3:01 ` Paul Mackerras 2019-02-01 17:03 ` Cédric Le Goater 2019-02-01 17:03 ` Cédric Le Goater 2019-02-04 4:25 ` David Gibson 2019-02-04 4:25 ` David Gibson 2019-02-04 11:19 ` Cédric Le Goater 2019-02-04 11:19 ` Cédric Le Goater 2019-02-05 5:26 ` David Gibson 2019-02-05 5:26 ` David Gibson 2019-01-07 18:43 ` [PATCH 06/19] KVM: PPC: Book3S HV: add a GET_ESB_FD control to the XIVE native device Cédric Le Goater 2019-01-07 18:43 ` Cédric Le Goater 2019-01-22 5:09 ` Paul Mackerras 2019-01-22 5:09 ` Paul Mackerras 2019-01-23 16:48 ` Cédric Le Goater 2019-01-23 16:48 ` Cédric Le Goater 2019-02-04 4:45 ` David Gibson 2019-02-04 4:45 ` David Gibson 2019-02-04 11:30 ` Cédric Le Goater 2019-02-04 11:30 ` Cédric Le Goater 2019-02-05 5:28 ` David Gibson 2019-02-05 5:28 ` David Gibson 2019-02-05 12:55 ` Cédric Le Goater 2019-02-05 12:55 ` Cédric Le Goater 2019-02-06 1:23 ` David Gibson 2019-02-06 1:23 ` David Gibson 2019-02-06 7:21 ` Cédric Le Goater 2019-02-06 7:21 ` Cédric Le Goater 2019-02-07 2:49 ` David Gibson 2019-02-07 2:49 ` David Gibson 2019-02-07 9:03 ` Cédric Le Goater 2019-02-07 9:03 ` Cédric Le Goater 2019-02-07 9:03 ` Cédric Le Goater 2019-02-08 5:15 ` David Gibson 2019-02-08 5:15 ` David Gibson 2019-02-08 7:58 ` Cédric Le Goater 2019-02-08 7:58 ` Cédric Le Goater 2019-02-08 21:53 ` Paul Mackerras 2019-02-08 21:53 ` Paul Mackerras 2019-02-09 9:41 ` Cédric Le Goater 2019-02-09 9:41 ` Cédric Le Goater 2019-02-11 2:38 ` David Gibson 2019-02-11 2:38 ` David Gibson 2019-02-11 6:42 ` Benjamin Herrenschmidt 2019-02-11 6:42 ` Benjamin Herrenschmidt 2019-02-12 22:07 ` Cédric Le Goater 2019-02-12 22:07 ` Cédric Le Goater 2019-01-07 18:43 ` [PATCH 07/19] KVM: PPC: Book3S HV: add a GET_TIMA_FD control to " Cédric Le Goater 2019-01-07 18:43 ` Cédric Le Goater 2019-01-07 18:43 ` [PATCH 08/19] KVM: PPC: Book3S HV: add a VC_BASE control to the " Cédric Le Goater 2019-01-07 18:43 ` Cédric Le Goater 2019-01-22 5:14 ` Paul Mackerras 2019-01-22 5:14 ` Paul Mackerras 2019-01-23 16:56 ` Cédric Le Goater 2019-01-23 16:56 ` Cédric Le Goater 2019-02-04 4:49 ` David Gibson 2019-02-04 4:49 ` David Gibson 2019-02-04 15:36 ` Cédric Le Goater 2019-02-04 15:36 ` Cédric Le Goater 2019-01-07 18:43 ` [PATCH 09/19] KVM: PPC: Book3S HV: add a SET_SOURCE " Cédric Le Goater 2019-01-07 18:43 ` Cédric Le Goater 2019-02-04 4:57 ` David Gibson 2019-02-04 4:57 ` David Gibson 2019-02-04 19:07 ` Cédric Le Goater 2019-02-04 19:07 ` Cédric Le Goater 2019-02-05 5:35 ` David Gibson 2019-02-05 5:35 ` David Gibson 2019-02-05 13:39 ` Cédric Le Goater 2019-02-05 13:39 ` Cédric Le Goater 2019-01-07 18:43 ` [PATCH 10/19] KVM: PPC: Book3S HV: add a EISN attribute to kvmppc_xive_irq_state Cédric Le Goater 2019-01-07 18:43 ` Cédric Le Goater 2019-01-07 18:43 ` [PATCH 11/19] KVM: PPC: Book3S HV: add support for the XIVE native exploitation mode hcalls Cédric Le Goater 2019-01-07 18:43 ` Cédric Le Goater 2019-01-22 5:23 ` Paul Mackerras 2019-01-22 5:23 ` Paul Mackerras 2019-01-23 6:44 ` Benjamin Herrenschmidt 2019-01-23 6:44 ` Benjamin Herrenschmidt 2019-01-23 8:48 ` Cédric Le Goater 2019-01-23 8:48 ` Cédric Le Goater 2019-01-23 10:26 ` Paul Mackerras 2019-01-23 10:26 ` Paul Mackerras 2019-01-23 10:48 ` Cédric Le Goater 2019-01-23 10:48 ` Cédric Le Goater 2019-01-23 21:23 ` Benjamin Herrenschmidt 2019-01-23 21:23 ` Benjamin Herrenschmidt 2019-01-07 18:43 ` [PATCH 12/19] KVM: PPC: Book3S HV: record guest queue page address Cédric Le Goater 2019-01-07 18:43 ` Cédric Le Goater 2019-02-04 5:15 ` David Gibson 2019-02-04 5:15 ` David Gibson 2019-02-04 15:37 ` Cédric Le Goater 2019-02-04 15:37 ` Cédric Le Goater 2019-01-07 18:43 ` [PATCH 13/19] KVM: PPC: Book3S HV: add a SYNC control for the XIVE native migration Cédric Le Goater 2019-01-07 18:43 ` Cédric Le Goater 2019-02-04 5:17 ` David Gibson 2019-02-04 5:17 ` David Gibson 2019-02-04 15:39 ` Cédric Le Goater 2019-02-04 15:39 ` Cédric Le Goater 2019-01-07 18:43 ` [PATCH 14/19] KVM: PPC: Book3S HV: add a control to make the XIVE EQ pages dirty Cédric Le Goater 2019-01-07 18:43 ` Cédric Le Goater 2019-02-04 5:18 ` David Gibson 2019-02-04 5:18 ` David Gibson 2019-02-04 15:46 ` Cédric Le Goater 2019-02-04 15:46 ` Cédric Le Goater 2019-02-05 5:30 ` David Gibson 2019-02-05 5:30 ` David Gibson 2019-01-07 18:43 ` [PATCH 15/19] KVM: PPC: Book3S HV: add get/set accessors for the source configuration Cédric Le Goater 2019-01-07 18:43 ` Cédric Le Goater 2019-02-04 5:21 ` David Gibson 2019-02-04 5:21 ` David Gibson 2019-02-04 16:07 ` Cédric Le Goater 2019-02-04 16:07 ` Cédric Le Goater 2019-02-05 5:32 ` David Gibson 2019-02-05 5:32 ` David Gibson 2019-02-05 13:03 ` Cédric Le Goater 2019-02-05 13:03 ` Cédric Le Goater 2019-02-06 1:23 ` David Gibson 2019-02-06 1:23 ` David Gibson 2019-02-06 1:24 ` David Gibson 2019-02-06 1:24 ` David Gibson 2019-02-06 7:07 ` Cédric Le Goater 2019-02-06 7:07 ` Cédric Le Goater 2019-02-07 2:48 ` David Gibson 2019-02-07 2:48 ` David Gibson 2019-02-07 9:13 ` Cédric Le Goater 2019-02-07 9:13 ` Cédric Le Goater 2019-02-08 5:15 ` David Gibson 2019-02-08 5:15 ` David Gibson 2019-02-14 16:50 ` Cédric Le Goater 2019-02-14 16:50 ` Cédric Le Goater 2019-01-07 18:43 ` Cédric Le Goater [this message] 2019-01-07 18:43 ` [PATCH 16/19] KVM: PPC: Book3S HV: add get/set accessors for the EQ configuration Cédric Le Goater 2019-02-04 5:24 ` David Gibson 2019-02-04 5:24 ` David Gibson 2019-02-05 17:45 ` Cédric Le Goater 2019-02-05 17:45 ` Cédric Le Goater 2019-01-07 19:10 ` [PATCH 17/19] KVM: PPC: Book3S HV: add get/set accessors for the VP XIVE state Cédric Le Goater 2019-01-07 19:10 ` Cédric Le Goater 2019-01-07 19:10 ` [PATCH 18/19] KVM: PPC: Book3S HV: add passthrough support Cédric Le Goater 2019-01-07 19:10 ` Cédric Le Goater 2019-01-22 5:26 ` Paul Mackerras 2019-01-22 5:26 ` Paul Mackerras 2019-01-23 6:45 ` Benjamin Herrenschmidt 2019-01-23 6:45 ` Benjamin Herrenschmidt 2019-01-23 10:30 ` Paul Mackerras 2019-01-23 10:30 ` Paul Mackerras 2019-01-23 11:07 ` Cédric Le Goater 2019-01-23 11:07 ` Cédric Le Goater 2019-01-28 6:13 ` Paul Mackerras 2019-01-28 6:13 ` Paul Mackerras 2019-01-28 18:26 ` Cédric Le Goater 2019-01-28 18:26 ` Cédric Le Goater 2019-01-29 2:45 ` Paul Mackerras 2019-01-29 2:45 ` Paul Mackerras 2019-01-29 13:47 ` Cédric Le Goater 2019-01-29 13:47 ` Cédric Le Goater 2019-01-30 6:20 ` Paul Mackerras 2019-01-30 6:20 ` Paul Mackerras 2019-01-30 15:54 ` Cédric Le Goater 2019-01-30 15:54 ` Cédric Le Goater 2019-01-31 2:48 ` Paul Mackerras 2019-01-31 2:48 ` Paul Mackerras 2019-01-29 4:12 ` Paul Mackerras 2019-01-29 4:12 ` Paul Mackerras 2019-01-29 17:44 ` Cédric Le Goater 2019-01-29 17:44 ` Cédric Le Goater 2019-01-30 5:55 ` Paul Mackerras 2019-01-30 5:55 ` Paul Mackerras 2019-01-30 7:06 ` Cédric Le Goater 2019-01-30 7:06 ` Cédric Le Goater 2019-01-23 21:25 ` Benjamin Herrenschmidt 2019-01-23 21:25 ` Benjamin Herrenschmidt 2019-01-24 8:41 ` Cédric Le Goater 2019-01-24 8:41 ` Cédric Le Goater 2019-01-28 4:43 ` Paul Mackerras 2019-01-28 4:43 ` Paul Mackerras 2019-01-29 13:46 ` Cédric Le Goater 2019-01-29 13:46 ` Cédric Le Goater 2019-01-07 19:10 ` [PATCH 19/19] KVM: introduce a KVM_DELETE_DEVICE ioctl Cédric Le Goater 2019-01-07 19:10 ` Cédric Le Goater 2019-01-22 5:42 ` Paul Mackerras 2019-01-22 5:42 ` Paul Mackerras 2019-01-23 18:39 ` Cédric Le Goater 2019-01-23 18:39 ` Cédric Le Goater 2019-01-23 21:32 ` Benjamin Herrenschmidt 2019-01-23 21:32 ` Benjamin Herrenschmidt 2019-02-04 5:26 ` [PATCH 17/19] KVM: PPC: Book3S HV: add get/set accessors for the VP XIVE state David Gibson 2019-02-04 5:26 ` David Gibson 2019-02-04 18:57 ` Cédric Le Goater 2019-02-04 18:57 ` Cédric Le Goater 2019-02-05 5:33 ` David Gibson 2019-02-05 5:33 ` David Gibson 2019-02-05 11:58 ` Cédric Le Goater 2019-02-05 11:58 ` Cédric Le Goater 2019-02-06 1:19 ` David Gibson 2019-02-06 1:19 ` David Gibson 2019-01-22 4:46 ` [PATCH 00/19] KVM: PPC: Book3S HV: add XIVE native exploitation mode Paul Mackerras 2019-01-22 4:46 ` Paul Mackerras 2019-01-23 19:07 ` Cédric Le Goater 2019-01-23 19:07 ` Cédric Le Goater 2019-01-23 21:35 ` Benjamin Herrenschmidt 2019-01-23 21:35 ` Benjamin Herrenschmidt 2019-01-26 8:25 ` Cédric Le Goater 2019-01-26 8:25 ` Cédric Le Goater 2019-02-04 5:36 ` David Gibson 2019-02-04 5:36 ` David Gibson 2019-02-05 11:31 ` Cédric Le Goater 2019-02-05 11:31 ` Cédric Le Goater 2019-02-05 22:13 ` Paul Mackerras 2019-02-05 22:13 ` Paul Mackerras 2019-02-06 1:18 ` David Gibson 2019-02-06 1:18 ` David Gibson 2019-02-06 7:35 ` Cédric Le Goater 2019-02-06 7:35 ` Cédric Le Goater 2019-02-07 2:51 ` David Gibson 2019-02-07 2:51 ` David Gibson 2019-02-07 8:31 ` Cédric Le Goater 2019-02-07 8:31 ` Cédric Le Goater 2019-02-08 5:07 ` David Gibson 2019-02-08 5:07 ` David Gibson 2019-02-08 7:38 ` Cédric Le Goater 2019-02-08 7:38 ` Cédric Le Goater 2019-01-28 5:51 ` Paul Mackerras 2019-01-28 5:51 ` Paul Mackerras 2019-01-29 13:51 ` Cédric Le Goater 2019-01-29 13:51 ` Cédric Le Goater 2019-01-30 5:40 ` Paul Mackerras 2019-01-30 5:40 ` Paul Mackerras 2019-01-30 15:36 ` Cédric Le Goater 2019-01-30 15:36 ` Cédric Le Goater
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=20190107184331.8429-17-clg@kaod.org \ --to=clg@kaod.org \ --cc=david@gibson.dropbear.id.au \ --cc=kvm-ppc@vger.kernel.org \ --cc=kvm@vger.kernel.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=paulus@samba.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: linkBe 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.