From: David Gibson <david@gibson.dropbear.id.au>
To: "Cédric Le Goater" <clg@kaod.org>
Cc: kvm@vger.kernel.org, kvm-ppc@vger.kernel.org,
Paul Mackerras <paulus@samba.org>,
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH 04/19] KVM: PPC: Book3S HV: export services for the XIVE native exploitation device
Date: Fri, 11 Jan 2019 04:09:57 +0000 [thread overview]
Message-ID: <20190111040957.GA1927@umbus.fritz.box> (raw)
In-Reply-To: <20190107184331.8429-5-clg@kaod.org>
[-- Attachment #1: Type: text/plain, Size: 8687 bytes --]
On Mon, Jan 07, 2019 at 07:43:16PM +0100, Cédric Le Goater wrote:
> The KVM device for the XIVE native exploitation mode will reuse the
> structures of the XICS-over-XIVE glue implementation. Some code will
> also be shared : source block creation and destruction, target
> selection and escalation attachment.
>
> Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
> ---
> arch/powerpc/kvm/book3s_xive.h | 11 +++++
> arch/powerpc/kvm/book3s_xive.c | 89 +++++++++++++++++++---------------
> 2 files changed, 62 insertions(+), 38 deletions(-)
>
> diff --git a/arch/powerpc/kvm/book3s_xive.h b/arch/powerpc/kvm/book3s_xive.h
> index a08ae6fd4c51..10c4aa5cd010 100644
> --- a/arch/powerpc/kvm/book3s_xive.h
> +++ b/arch/powerpc/kvm/book3s_xive.h
> @@ -248,5 +248,16 @@ extern int (*__xive_vm_h_ipi)(struct kvm_vcpu *vcpu, unsigned long server,
> extern int (*__xive_vm_h_cppr)(struct kvm_vcpu *vcpu, unsigned long cppr);
> extern int (*__xive_vm_h_eoi)(struct kvm_vcpu *vcpu, unsigned long xirr);
>
> +/*
> + * Common Xive routines for XICS-over-XIVE and XIVE native
> + */
> +struct kvmppc_xive_src_block *kvmppc_xive_create_src_block(
> + struct kvmppc_xive *xive, int irq);
> +void kvmppc_xive_free_sources(struct kvmppc_xive_src_block *sb);
> +int kvmppc_xive_select_target(struct kvm *kvm, u32 *server, u8 prio);
> +void kvmppc_xive_disable_vcpu_interrupts(struct kvm_vcpu *vcpu);
> +int kvmppc_xive_attach_escalation(struct kvm_vcpu *vcpu, u8 prio);
> +int kvmppc_xive_debug_show_queues(struct seq_file *m, struct kvm_vcpu *vcpu);
> +
> #endif /* CONFIG_KVM_XICS */
> #endif /* _KVM_PPC_BOOK3S_XICS_H */
> diff --git a/arch/powerpc/kvm/book3s_xive.c b/arch/powerpc/kvm/book3s_xive.c
> index 8a4fa45f07f8..bb5d32f7e4e6 100644
> --- a/arch/powerpc/kvm/book3s_xive.c
> +++ b/arch/powerpc/kvm/book3s_xive.c
> @@ -166,7 +166,7 @@ static irqreturn_t xive_esc_irq(int irq, void *data)
> return IRQ_HANDLED;
> }
>
> -static int xive_attach_escalation(struct kvm_vcpu *vcpu, u8 prio)
> +int kvmppc_xive_attach_escalation(struct kvm_vcpu *vcpu, u8 prio)
> {
> struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu;
> struct xive_q *q = &xc->queues[prio];
> @@ -291,7 +291,7 @@ static int xive_check_provisioning(struct kvm *kvm, u8 prio)
> continue;
> rc = xive_provision_queue(vcpu, prio);
> if (rc == 0 && !xive->single_escalation)
> - xive_attach_escalation(vcpu, prio);
> + kvmppc_xive_attach_escalation(vcpu, prio);
> if (rc)
> return rc;
> }
> @@ -342,7 +342,7 @@ static int xive_try_pick_queue(struct kvm_vcpu *vcpu, u8 prio)
> return atomic_add_unless(&q->count, 1, max) ? 0 : -EBUSY;
> }
>
> -static int xive_select_target(struct kvm *kvm, u32 *server, u8 prio)
> +int kvmppc_xive_select_target(struct kvm *kvm, u32 *server, u8 prio)
> {
> struct kvm_vcpu *vcpu;
> int i, rc;
> @@ -535,7 +535,7 @@ static int xive_target_interrupt(struct kvm *kvm,
> * priority. The count for that new target will have
> * already been incremented.
> */
> - rc = xive_select_target(kvm, &server, prio);
> + rc = kvmppc_xive_select_target(kvm, &server, prio);
>
> /*
> * We failed to find a target ? Not much we can do
> @@ -1055,7 +1055,7 @@ int kvmppc_xive_clr_mapped(struct kvm *kvm, unsigned long guest_irq,
> }
> EXPORT_SYMBOL_GPL(kvmppc_xive_clr_mapped);
>
> -static void kvmppc_xive_disable_vcpu_interrupts(struct kvm_vcpu *vcpu)
> +void kvmppc_xive_disable_vcpu_interrupts(struct kvm_vcpu *vcpu)
> {
> struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu;
> struct kvm *kvm = vcpu->kvm;
> @@ -1225,7 +1225,7 @@ int kvmppc_xive_connect_vcpu(struct kvm_device *dev,
> if (xive->qmap & (1 << i)) {
> r = xive_provision_queue(vcpu, i);
> if (r == 0 && !xive->single_escalation)
> - xive_attach_escalation(vcpu, i);
> + kvmppc_xive_attach_escalation(vcpu, i);
> if (r)
> goto bail;
> } else {
> @@ -1240,7 +1240,7 @@ int kvmppc_xive_connect_vcpu(struct kvm_device *dev,
> }
>
> /* If not done above, attach priority 0 escalation */
> - r = xive_attach_escalation(vcpu, 0);
> + r = kvmppc_xive_attach_escalation(vcpu, 0);
> if (r)
> goto bail;
>
> @@ -1491,8 +1491,8 @@ static int xive_get_source(struct kvmppc_xive *xive, long irq, u64 addr)
> return 0;
> }
>
> -static struct kvmppc_xive_src_block *xive_create_src_block(struct kvmppc_xive *xive,
> - int irq)
> +struct kvmppc_xive_src_block *kvmppc_xive_create_src_block(
> + struct kvmppc_xive *xive, int irq)
> {
> struct kvm *kvm = xive->kvm;
> struct kvmppc_xive_src_block *sb;
> @@ -1571,7 +1571,7 @@ static int xive_set_source(struct kvmppc_xive *xive, long irq, u64 addr)
> sb = kvmppc_xive_find_source(xive, irq, &idx);
> if (!sb) {
> pr_devel("No source, creating source block...\n");
> - sb = xive_create_src_block(xive, irq);
> + sb = kvmppc_xive_create_src_block(xive, irq);
> if (!sb) {
> pr_devel("Failed to create block...\n");
> return -ENOMEM;
> @@ -1795,7 +1795,7 @@ static void kvmppc_xive_cleanup_irq(u32 hw_num, struct xive_irq_data *xd)
> xive_cleanup_irq_data(xd);
> }
>
> -static void kvmppc_xive_free_sources(struct kvmppc_xive_src_block *sb)
> +void kvmppc_xive_free_sources(struct kvmppc_xive_src_block *sb)
> {
> int i;
>
> @@ -1824,6 +1824,8 @@ static void kvmppc_xive_free(struct kvm_device *dev)
>
> debugfs_remove(xive->dentry);
>
> + pr_devel("Destroying xive for partition\n");
> +
> if (kvm)
> kvm->arch.xive = NULL;
>
> @@ -1889,6 +1891,43 @@ static int kvmppc_xive_create(struct kvm_device *dev, u32 type)
> return 0;
> }
>
> +int kvmppc_xive_debug_show_queues(struct seq_file *m, struct kvm_vcpu *vcpu)
> +{
> + struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu;
> + unsigned int i;
> +
> + for (i = 0; i < KVMPPC_XIVE_Q_COUNT; i++) {
> + struct xive_q *q = &xc->queues[i];
> + u32 i0, i1, idx;
> +
> + if (!q->qpage && !xc->esc_virq[i])
> + continue;
> +
> + seq_printf(m, " [q%d]: ", i);
> +
> + if (q->qpage) {
> + idx = q->idx;
> + i0 = be32_to_cpup(q->qpage + idx);
> + idx = (idx + 1) & q->msk;
> + i1 = be32_to_cpup(q->qpage + idx);
> + seq_printf(m, "T=%d %08x %08x...\n", q->toggle,
> + i0, i1);
> + }
> + if (xc->esc_virq[i]) {
> + struct irq_data *d = irq_get_irq_data(xc->esc_virq[i]);
> + struct xive_irq_data *xd =
> + irq_data_get_irq_handler_data(d);
> + u64 pq = xive_vm_esb_load(xd, XIVE_ESB_GET);
> +
> + seq_printf(m, "E:%c%c I(%d:%llx:%llx)",
> + (pq & XIVE_ESB_VAL_P) ? 'P' : 'p',
> + (pq & XIVE_ESB_VAL_Q) ? 'Q' : 'q',
> + xc->esc_virq[i], pq, xd->eoi_page);
> + seq_puts(m, "\n");
> + }
> + }
> + return 0;
> +}
>
> static int xive_debug_show(struct seq_file *m, void *private)
> {
> @@ -1914,7 +1953,6 @@ static int xive_debug_show(struct seq_file *m, void *private)
>
> kvm_for_each_vcpu(i, vcpu, kvm) {
> struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu;
> - unsigned int i;
>
> if (!xc)
> continue;
> @@ -1924,33 +1962,8 @@ static int xive_debug_show(struct seq_file *m, void *private)
> xc->server_num, xc->cppr, xc->hw_cppr,
> xc->mfrr, xc->pending,
> xc->stat_rm_h_xirr, xc->stat_vm_h_xirr);
> - for (i = 0; i < KVMPPC_XIVE_Q_COUNT; i++) {
> - struct xive_q *q = &xc->queues[i];
> - u32 i0, i1, idx;
>
> - if (!q->qpage && !xc->esc_virq[i])
> - continue;
> -
> - seq_printf(m, " [q%d]: ", i);
> -
> - if (q->qpage) {
> - idx = q->idx;
> - i0 = be32_to_cpup(q->qpage + idx);
> - idx = (idx + 1) & q->msk;
> - i1 = be32_to_cpup(q->qpage + idx);
> - seq_printf(m, "T=%d %08x %08x... \n", q->toggle, i0, i1);
> - }
> - if (xc->esc_virq[i]) {
> - struct irq_data *d = irq_get_irq_data(xc->esc_virq[i]);
> - struct xive_irq_data *xd = irq_data_get_irq_handler_data(d);
> - u64 pq = xive_vm_esb_load(xd, XIVE_ESB_GET);
> - seq_printf(m, "E:%c%c I(%d:%llx:%llx)",
> - (pq & XIVE_ESB_VAL_P) ? 'P' : 'p',
> - (pq & XIVE_ESB_VAL_Q) ? 'Q' : 'q',
> - xc->esc_virq[i], pq, xd->eoi_page);
> - seq_printf(m, "\n");
> - }
> - }
> + kvmppc_xive_debug_show_queues(m, vcpu);
>
> t_rm_h_xirr += xc->stat_rm_h_xirr;
> t_rm_h_ipoll += xc->stat_rm_h_ipoll;
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: David Gibson <david@gibson.dropbear.id.au>
To: "Cédric Le Goater" <clg@kaod.org>
Cc: kvm@vger.kernel.org, kvm-ppc@vger.kernel.org,
Paul Mackerras <paulus@samba.org>,
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH 04/19] KVM: PPC: Book3S HV: export services for the XIVE native exploitation device
Date: Fri, 11 Jan 2019 15:09:57 +1100 [thread overview]
Message-ID: <20190111040957.GA1927@umbus.fritz.box> (raw)
In-Reply-To: <20190107184331.8429-5-clg@kaod.org>
[-- Attachment #1: Type: text/plain, Size: 8687 bytes --]
On Mon, Jan 07, 2019 at 07:43:16PM +0100, Cédric Le Goater wrote:
> The KVM device for the XIVE native exploitation mode will reuse the
> structures of the XICS-over-XIVE glue implementation. Some code will
> also be shared : source block creation and destruction, target
> selection and escalation attachment.
>
> Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
> ---
> arch/powerpc/kvm/book3s_xive.h | 11 +++++
> arch/powerpc/kvm/book3s_xive.c | 89 +++++++++++++++++++---------------
> 2 files changed, 62 insertions(+), 38 deletions(-)
>
> diff --git a/arch/powerpc/kvm/book3s_xive.h b/arch/powerpc/kvm/book3s_xive.h
> index a08ae6fd4c51..10c4aa5cd010 100644
> --- a/arch/powerpc/kvm/book3s_xive.h
> +++ b/arch/powerpc/kvm/book3s_xive.h
> @@ -248,5 +248,16 @@ extern int (*__xive_vm_h_ipi)(struct kvm_vcpu *vcpu, unsigned long server,
> extern int (*__xive_vm_h_cppr)(struct kvm_vcpu *vcpu, unsigned long cppr);
> extern int (*__xive_vm_h_eoi)(struct kvm_vcpu *vcpu, unsigned long xirr);
>
> +/*
> + * Common Xive routines for XICS-over-XIVE and XIVE native
> + */
> +struct kvmppc_xive_src_block *kvmppc_xive_create_src_block(
> + struct kvmppc_xive *xive, int irq);
> +void kvmppc_xive_free_sources(struct kvmppc_xive_src_block *sb);
> +int kvmppc_xive_select_target(struct kvm *kvm, u32 *server, u8 prio);
> +void kvmppc_xive_disable_vcpu_interrupts(struct kvm_vcpu *vcpu);
> +int kvmppc_xive_attach_escalation(struct kvm_vcpu *vcpu, u8 prio);
> +int kvmppc_xive_debug_show_queues(struct seq_file *m, struct kvm_vcpu *vcpu);
> +
> #endif /* CONFIG_KVM_XICS */
> #endif /* _KVM_PPC_BOOK3S_XICS_H */
> diff --git a/arch/powerpc/kvm/book3s_xive.c b/arch/powerpc/kvm/book3s_xive.c
> index 8a4fa45f07f8..bb5d32f7e4e6 100644
> --- a/arch/powerpc/kvm/book3s_xive.c
> +++ b/arch/powerpc/kvm/book3s_xive.c
> @@ -166,7 +166,7 @@ static irqreturn_t xive_esc_irq(int irq, void *data)
> return IRQ_HANDLED;
> }
>
> -static int xive_attach_escalation(struct kvm_vcpu *vcpu, u8 prio)
> +int kvmppc_xive_attach_escalation(struct kvm_vcpu *vcpu, u8 prio)
> {
> struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu;
> struct xive_q *q = &xc->queues[prio];
> @@ -291,7 +291,7 @@ static int xive_check_provisioning(struct kvm *kvm, u8 prio)
> continue;
> rc = xive_provision_queue(vcpu, prio);
> if (rc == 0 && !xive->single_escalation)
> - xive_attach_escalation(vcpu, prio);
> + kvmppc_xive_attach_escalation(vcpu, prio);
> if (rc)
> return rc;
> }
> @@ -342,7 +342,7 @@ static int xive_try_pick_queue(struct kvm_vcpu *vcpu, u8 prio)
> return atomic_add_unless(&q->count, 1, max) ? 0 : -EBUSY;
> }
>
> -static int xive_select_target(struct kvm *kvm, u32 *server, u8 prio)
> +int kvmppc_xive_select_target(struct kvm *kvm, u32 *server, u8 prio)
> {
> struct kvm_vcpu *vcpu;
> int i, rc;
> @@ -535,7 +535,7 @@ static int xive_target_interrupt(struct kvm *kvm,
> * priority. The count for that new target will have
> * already been incremented.
> */
> - rc = xive_select_target(kvm, &server, prio);
> + rc = kvmppc_xive_select_target(kvm, &server, prio);
>
> /*
> * We failed to find a target ? Not much we can do
> @@ -1055,7 +1055,7 @@ int kvmppc_xive_clr_mapped(struct kvm *kvm, unsigned long guest_irq,
> }
> EXPORT_SYMBOL_GPL(kvmppc_xive_clr_mapped);
>
> -static void kvmppc_xive_disable_vcpu_interrupts(struct kvm_vcpu *vcpu)
> +void kvmppc_xive_disable_vcpu_interrupts(struct kvm_vcpu *vcpu)
> {
> struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu;
> struct kvm *kvm = vcpu->kvm;
> @@ -1225,7 +1225,7 @@ int kvmppc_xive_connect_vcpu(struct kvm_device *dev,
> if (xive->qmap & (1 << i)) {
> r = xive_provision_queue(vcpu, i);
> if (r == 0 && !xive->single_escalation)
> - xive_attach_escalation(vcpu, i);
> + kvmppc_xive_attach_escalation(vcpu, i);
> if (r)
> goto bail;
> } else {
> @@ -1240,7 +1240,7 @@ int kvmppc_xive_connect_vcpu(struct kvm_device *dev,
> }
>
> /* If not done above, attach priority 0 escalation */
> - r = xive_attach_escalation(vcpu, 0);
> + r = kvmppc_xive_attach_escalation(vcpu, 0);
> if (r)
> goto bail;
>
> @@ -1491,8 +1491,8 @@ static int xive_get_source(struct kvmppc_xive *xive, long irq, u64 addr)
> return 0;
> }
>
> -static struct kvmppc_xive_src_block *xive_create_src_block(struct kvmppc_xive *xive,
> - int irq)
> +struct kvmppc_xive_src_block *kvmppc_xive_create_src_block(
> + struct kvmppc_xive *xive, int irq)
> {
> struct kvm *kvm = xive->kvm;
> struct kvmppc_xive_src_block *sb;
> @@ -1571,7 +1571,7 @@ static int xive_set_source(struct kvmppc_xive *xive, long irq, u64 addr)
> sb = kvmppc_xive_find_source(xive, irq, &idx);
> if (!sb) {
> pr_devel("No source, creating source block...\n");
> - sb = xive_create_src_block(xive, irq);
> + sb = kvmppc_xive_create_src_block(xive, irq);
> if (!sb) {
> pr_devel("Failed to create block...\n");
> return -ENOMEM;
> @@ -1795,7 +1795,7 @@ static void kvmppc_xive_cleanup_irq(u32 hw_num, struct xive_irq_data *xd)
> xive_cleanup_irq_data(xd);
> }
>
> -static void kvmppc_xive_free_sources(struct kvmppc_xive_src_block *sb)
> +void kvmppc_xive_free_sources(struct kvmppc_xive_src_block *sb)
> {
> int i;
>
> @@ -1824,6 +1824,8 @@ static void kvmppc_xive_free(struct kvm_device *dev)
>
> debugfs_remove(xive->dentry);
>
> + pr_devel("Destroying xive for partition\n");
> +
> if (kvm)
> kvm->arch.xive = NULL;
>
> @@ -1889,6 +1891,43 @@ static int kvmppc_xive_create(struct kvm_device *dev, u32 type)
> return 0;
> }
>
> +int kvmppc_xive_debug_show_queues(struct seq_file *m, struct kvm_vcpu *vcpu)
> +{
> + struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu;
> + unsigned int i;
> +
> + for (i = 0; i < KVMPPC_XIVE_Q_COUNT; i++) {
> + struct xive_q *q = &xc->queues[i];
> + u32 i0, i1, idx;
> +
> + if (!q->qpage && !xc->esc_virq[i])
> + continue;
> +
> + seq_printf(m, " [q%d]: ", i);
> +
> + if (q->qpage) {
> + idx = q->idx;
> + i0 = be32_to_cpup(q->qpage + idx);
> + idx = (idx + 1) & q->msk;
> + i1 = be32_to_cpup(q->qpage + idx);
> + seq_printf(m, "T=%d %08x %08x...\n", q->toggle,
> + i0, i1);
> + }
> + if (xc->esc_virq[i]) {
> + struct irq_data *d = irq_get_irq_data(xc->esc_virq[i]);
> + struct xive_irq_data *xd =
> + irq_data_get_irq_handler_data(d);
> + u64 pq = xive_vm_esb_load(xd, XIVE_ESB_GET);
> +
> + seq_printf(m, "E:%c%c I(%d:%llx:%llx)",
> + (pq & XIVE_ESB_VAL_P) ? 'P' : 'p',
> + (pq & XIVE_ESB_VAL_Q) ? 'Q' : 'q',
> + xc->esc_virq[i], pq, xd->eoi_page);
> + seq_puts(m, "\n");
> + }
> + }
> + return 0;
> +}
>
> static int xive_debug_show(struct seq_file *m, void *private)
> {
> @@ -1914,7 +1953,6 @@ static int xive_debug_show(struct seq_file *m, void *private)
>
> kvm_for_each_vcpu(i, vcpu, kvm) {
> struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu;
> - unsigned int i;
>
> if (!xc)
> continue;
> @@ -1924,33 +1962,8 @@ static int xive_debug_show(struct seq_file *m, void *private)
> xc->server_num, xc->cppr, xc->hw_cppr,
> xc->mfrr, xc->pending,
> xc->stat_rm_h_xirr, xc->stat_vm_h_xirr);
> - for (i = 0; i < KVMPPC_XIVE_Q_COUNT; i++) {
> - struct xive_q *q = &xc->queues[i];
> - u32 i0, i1, idx;
>
> - if (!q->qpage && !xc->esc_virq[i])
> - continue;
> -
> - seq_printf(m, " [q%d]: ", i);
> -
> - if (q->qpage) {
> - idx = q->idx;
> - i0 = be32_to_cpup(q->qpage + idx);
> - idx = (idx + 1) & q->msk;
> - i1 = be32_to_cpup(q->qpage + idx);
> - seq_printf(m, "T=%d %08x %08x... \n", q->toggle, i0, i1);
> - }
> - if (xc->esc_virq[i]) {
> - struct irq_data *d = irq_get_irq_data(xc->esc_virq[i]);
> - struct xive_irq_data *xd = irq_data_get_irq_handler_data(d);
> - u64 pq = xive_vm_esb_load(xd, XIVE_ESB_GET);
> - seq_printf(m, "E:%c%c I(%d:%llx:%llx)",
> - (pq & XIVE_ESB_VAL_P) ? 'P' : 'p',
> - (pq & XIVE_ESB_VAL_Q) ? 'Q' : 'q',
> - xc->esc_virq[i], pq, xd->eoi_page);
> - seq_printf(m, "\n");
> - }
> - }
> + kvmppc_xive_debug_show_queues(m, vcpu);
>
> t_rm_h_xirr += xc->stat_rm_h_xirr;
> t_rm_h_ipoll += xc->stat_rm_h_ipoll;
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2019-01-11 4:09 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 [this message]
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 ` [PATCH 16/19] KVM: PPC: Book3S HV: add get/set accessors for the EQ configuration Cédric Le Goater
2019-01-07 18:43 ` 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=20190111040957.GA1927@umbus.fritz.box \
--to=david@gibson.dropbear.id.au \
--cc=clg@kaod.org \
--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: 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.