All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bharata B Rao <bharata@linux.vnet.ibm.com>
To: Alexey Kardashevskiy <aik@ozlabs.ru>
Cc: thuth@redhat.com, mdroth@linux.vnet.ibm.com, agraf@suse.de,
	qemu-devel@nongnu.org, qemu-ppc@nongnu.org,
	tyreld@linux.vnet.ibm.com, nfont@linux.vnet.ibm.com,
	david@gibson.dropbear.id.au
Subject: Re: [Qemu-devel] [PATCH v4 8/8] xics_kvm: Add cpu_destroy method to XICS
Date: Fri, 5 Jun 2015 14:45:59 +0530	[thread overview]
Message-ID: <20150605091559.GD25832@in.ibm.com> (raw)
In-Reply-To: <55715942.2090201@ozlabs.ru>

On Fri, Jun 05, 2015 at 06:09:38PM +1000, Alexey Kardashevskiy wrote:
> On 06/05/2015 02:25 PM, Bharata B Rao wrote:
> >XICS is setup for each CPU during initialization. Provide a routine
> >to undo the same when CPU is unplugged. Also ensure xics reset doesn't set
> >irq for CPUs that are already unplugged.
> >
> >This allows reboot of a VM that has undergone CPU hotplug and unplug
> >to work correctly.
> >
> >Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com>
> >---
> >  hw/intc/xics.c        | 14 ++++++++++++++
> >  hw/intc/xics_kvm.c    | 15 +++++++++++++--
> >  include/hw/ppc/xics.h |  2 ++
> >  3 files changed, 29 insertions(+), 2 deletions(-)
> >
> >diff --git a/hw/intc/xics.c b/hw/intc/xics.c
> >index 924b1ae..3f87f82 100644
> >--- a/hw/intc/xics.c
> >+++ b/hw/intc/xics.c
> >@@ -44,6 +44,20 @@ static int get_cpu_index_by_dt_id(int cpu_dt_id)
> >      return -1;
> >  }
> >
> >+void xics_cpu_destroy(XICSState *icp, PowerPCCPU *cpu)
> 
> 
> xics_cpu_destroy() is not used by anything, may be push it later with the
> stuff which needs it?

Yeah it is not used in this patchset, will leave to David/agraf
to see if they want this dropped from this series.

> 
> 
> >+{
> >+    CPUState *cs = CPU(cpu);
> >+    XICSStateClass *info = XICS_COMMON_GET_CLASS(icp);
> >+    ICPState *ss = &icp->ss[cs->cpu_index];
> >+
> >+    assert(cs->cpu_index < icp->nr_servers);
> >+
> >+    ss->output = NULL;
> >+    if (info->cpu_destroy) {
> >+        info->cpu_destroy(icp, cpu);
> >+    }
> >+}
> >+
> >  void xics_cpu_setup(XICSState *icp, PowerPCCPU *cpu)
> >  {
> >      CPUState *cs = CPU(cpu);
> >diff --git a/hw/intc/xics_kvm.c b/hw/intc/xics_kvm.c
> >index d58729c..e35f319 100644
> >--- a/hw/intc/xics_kvm.c
> >+++ b/hw/intc/xics_kvm.c
> >@@ -109,8 +109,10 @@ static void icp_kvm_reset(DeviceState *dev)
> >      icp->pending_priority = 0xff;
> >      icp->mfrr = 0xff;
> >
> >-    /* Make all outputs are deasserted */
> >-    qemu_set_irq(icp->output, 0);
> >+    /* Make all outputs are deasserted only if the CPU thread is in use */
> >+    if (icp->output) {
> >+        qemu_set_irq(icp->output, 0);
> >+    }
> 
> 
> This feels unrelated to what the patch claims that it does. Or
> xics_cpu_destroy() somehow indirectly calls icp_kvm_reset()?

When a VM is rebooted, device_reset of icp device will result in
icp_kvm_reset() which will do qemu_set_irq(). This shouldn't happen for
a CPU that is already removed. So above check ensures that we
don't try to desssert irq for a removed CPU.

Regards,
Bharata.

  reply	other threads:[~2015-06-05  9:16 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-05  4:25 [Qemu-devel] [PATCH v4 0/8] sPAPR CPU hotplug pre-requisites Bharata B Rao
2015-06-05  4:25 ` [Qemu-devel] [PATCH v4 1/8] spapr: Consider max_cpus during xics initialization Bharata B Rao
2015-06-05  5:30   ` Alexey Kardashevskiy
2015-06-05  7:07     ` Bharata B Rao
2015-06-05  8:01       ` Alexey Kardashevskiy
2015-06-15  6:55         ` David Gibson
2015-06-05  4:25 ` [Qemu-devel] [PATCH v4 2/8] spapr: Support ibm, lrdr-capacity device tree property Bharata B Rao
2015-06-15  6:56   ` David Gibson
2015-06-05  4:25 ` [Qemu-devel] [PATCH v4 3/8] cpus: Add a macro to walk CPUs in reverse Bharata B Rao
2015-06-05 14:39   ` Andreas Färber
2015-06-15  6:41     ` David Gibson
2015-06-05  4:25 ` [Qemu-devel] [PATCH v4 4/8] spapr: Reorganize CPU dt generation code Bharata B Rao
2015-06-05  6:09   ` Alexey Kardashevskiy
2015-06-05  7:06     ` Bharata B Rao
2015-06-05  7:55       ` Alexey Kardashevskiy
2015-06-15  6:57         ` David Gibson
2015-06-05  4:25 ` [Qemu-devel] [PATCH v4 5/8] spapr: Consolidate cpu init code into a routine Bharata B Rao
2015-06-15  6:59   ` David Gibson
2015-06-15  8:15     ` Thomas Huth
2015-06-16  5:40       ` David Gibson
2015-06-16  6:36         ` Thomas Huth
2015-06-17  4:43           ` David Gibson
2015-06-05  4:25 ` [Qemu-devel] [PATCH v4 6/8] ppc: Update cpu_model in MachineState Bharata B Rao
2015-06-05  4:25 ` [Qemu-devel] [PATCH v4 7/8] xics_kvm: Don't enable KVM_CAP_IRQ_XICS if already enabled Bharata B Rao
2015-06-15  6:59   ` David Gibson
2015-06-05  4:25 ` [Qemu-devel] [PATCH v4 8/8] xics_kvm: Add cpu_destroy method to XICS Bharata B Rao
2015-06-05  8:09   ` Alexey Kardashevskiy
2015-06-05  9:15     ` Bharata B Rao [this message]
2015-06-15  7:00       ` David Gibson

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=20150605091559.GD25832@in.ibm.com \
    --to=bharata@linux.vnet.ibm.com \
    --cc=agraf@suse.de \
    --cc=aik@ozlabs.ru \
    --cc=david@gibson.dropbear.id.au \
    --cc=mdroth@linux.vnet.ibm.com \
    --cc=nfont@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=thuth@redhat.com \
    --cc=tyreld@linux.vnet.ibm.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.