get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/811534/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 811534,
    "url": "http://patchwork.ozlabs.org/api/patches/811534/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170908103558.31632-41-david@gibson.dropbear.id.au/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20170908103558.31632-41-david@gibson.dropbear.id.au>",
    "list_archive_url": null,
    "date": "2017-09-08T10:35:58",
    "name": "[PULL,40/40] ppc: spapr: Move VCPU ID calculation into sPAPR",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "4777f6a47ec8920e7174275213c6564ff2da8a43",
    "submitter": {
        "id": 47,
        "url": "http://patchwork.ozlabs.org/api/people/47/?format=api",
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170908103558.31632-41-david@gibson.dropbear.id.au/mbox/",
    "series": [
        {
            "id": 2179,
            "url": "http://patchwork.ozlabs.org/api/series/2179/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=2179",
            "date": "2017-09-08T10:35:20",
            "name": "[PULL,01/40] hw/ppc/spapr_drc.c: change spapr_drc_needed to use drc->dev",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/2179/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/811534/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/811534/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org",
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)",
            "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=gibson.dropbear.id.au\n\theader.i=@gibson.dropbear.id.au header.b=\"MQrYX9w7\"; \n\tdkim-atps=neutral"
        ],
        "Received": [
            "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xpZJx4Nnwz9sDB\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri,  8 Sep 2017 21:06:57 +1000 (AEST)",
            "from localhost ([::1]:44541 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dqGwu-0002wD-D0\n\tfor incoming@patchwork.ozlabs.org; Fri, 08 Sep 2017 06:55:48 -0400",
            "from eggs.gnu.org ([2001:4830:134:3::10]:58905)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <dgibson@ozlabs.org>) id 1dqGeF-0002HG-5R\n\tfor qemu-devel@nongnu.org; Fri, 08 Sep 2017 06:36:42 -0400",
            "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <dgibson@ozlabs.org>) id 1dqGe6-0003Mn-K8\n\tfor qemu-devel@nongnu.org; Fri, 08 Sep 2017 06:36:31 -0400",
            "from ozlabs.org ([103.22.144.67]:43071)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <dgibson@ozlabs.org>)\n\tid 1dqGe6-0003Jb-9J; Fri, 08 Sep 2017 06:36:22 -0400",
            "by ozlabs.org (Postfix, from userid 1007)\n\tid 3xpYdQ1cTyz9t6N; Fri,  8 Sep 2017 20:36:09 +1000 (AEST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n\td=gibson.dropbear.id.au; s=201602; t=1504866970;\n\tbh=Ki0F2uvpPsF1FvkXjAx2J7ey2GKd8jejlTvOOmghSCY=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=MQrYX9w7W7zLwQ+K0YWYWhcSQbm1/XAzXcbB+NQjDp8ohDx2bhpEDLOrEaurIPhXZ\n\tnZH+Tg1ibSKC4FxZ3afGg3u45SlyEvlLdjnyCWSv2E0kkwfRG9k/JHezJLRPjeNMeJ\n\tiz58N9ynaBVjwEoiKF36f31x+BKExWC5FJ7X7npY=",
        "From": "David Gibson <david@gibson.dropbear.id.au>",
        "To": "peter.maydell@linaro.org",
        "Date": "Fri,  8 Sep 2017 20:35:58 +1000",
        "Message-Id": "<20170908103558.31632-41-david@gibson.dropbear.id.au>",
        "X-Mailer": "git-send-email 2.13.5",
        "In-Reply-To": "<20170908103558.31632-1-david@gibson.dropbear.id.au>",
        "References": "<20170908103558.31632-1-david@gibson.dropbear.id.au>",
        "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]",
        "X-Received-From": "103.22.144.67",
        "Subject": "[Qemu-devel] [PULL 40/40] ppc: spapr: Move VCPU ID calculation into\n\tsPAPR",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.21",
        "Precedence": "list",
        "List-Id": "<qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.nongnu.org/archive/html/qemu-devel/>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Cc": "qemu-devel@nongnu.org, aik@ozlabs.ru, agraf@suse.de,\n\tmdroth@linux.vnet.ibm.com, qemu-ppc@nongnu.org,\n\timammedo@redhat.com, sam.bobroff@au1.ibm.com,\n\tDavid Gibson <david@gibson.dropbear.id.au>",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"
    },
    "content": "From: Sam Bobroff <sam.bobroff@au1.ibm.com>\n\nMove the calculation of a CPU's VCPU ID out of the generic PPC code\n(ppc_cpu_realizefn()) and into sPAPR specific code\n(spapr_cpu_core_realize()) where it belongs.\n\nUnfortunately, due to the way things are ordered, we still need to\ndefault the VCPU ID in ppc_cpu_realizfn() but at least doing that\ndoesn't require any interaction with sPAPR.\n\nSigned-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com>\nReviewed-by: Greg Kurz <groug@kaod.org>\nSigned-off-by: David Gibson <david@gibson.dropbear.id.au>\n---\n hw/ppc/spapr_cpu_core.c     | 11 +++++++++++\n target/ppc/translate_init.c | 18 +++---------------\n 2 files changed, 14 insertions(+), 15 deletions(-)",
    "diff": "diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c\nindex 92bec033b3..85037ef71e 100644\n--- a/hw/ppc/spapr_cpu_core.c\n+++ b/hw/ppc/spapr_cpu_core.c\n@@ -213,6 +213,7 @@ error:\n \n static void spapr_cpu_core_realize(DeviceState *dev, Error **errp)\n {\n+    sPAPRMachineState *spapr = SPAPR_MACHINE(qdev_get_machine());\n     sPAPRCPUCore *sc = SPAPR_CPU_CORE(OBJECT(dev));\n     sPAPRCPUCoreClass *scc = SPAPR_CPU_CORE_GET_CLASS(OBJECT(dev));\n     CPUCore *cc = CPU_CORE(OBJECT(dev));\n@@ -239,6 +240,16 @@ static void spapr_cpu_core_realize(DeviceState *dev, Error **errp)\n         cs = CPU(obj);\n         cpu = POWERPC_CPU(cs);\n         cs->cpu_index = cc->core_id + i;\n+        cpu->vcpu_id = (cc->core_id * spapr->vsmt / smp_threads) + i;\n+        if (kvm_enabled() && !kvm_vcpu_id_is_valid(cpu->vcpu_id)) {\n+            error_setg(&local_err, \"Can't create CPU with id %d in KVM\",\n+                       cpu->vcpu_id);\n+            error_append_hint(&local_err, \"Adjust the number of cpus to %d \"\n+                              \"or try to raise the number of threads per core\\n\",\n+                              cpu->vcpu_id * smp_threads / spapr->vsmt);\n+            goto err;\n+        }\n+\n \n         /* Set NUMA node for the threads belonged to core  */\n         cpu->node_id = sc->node_id;\ndiff --git a/target/ppc/translate_init.c b/target/ppc/translate_init.c\nindex 3e24cddb86..c827d1e388 100644\n--- a/target/ppc/translate_init.c\n+++ b/target/ppc/translate_init.c\n@@ -9904,28 +9904,15 @@ static void ppc_cpu_realizefn(DeviceState *dev, Error **errp)\n     PowerPCCPU *cpu = POWERPC_CPU(dev);\n     PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu);\n     Error *local_err = NULL;\n-#if !defined(CONFIG_USER_ONLY)\n-    int max_smt = kvmppc_smt_threads();\n-#endif\n \n     cpu_exec_realizefn(cs, &local_err);\n     if (local_err != NULL) {\n         error_propagate(errp, local_err);\n         return;\n     }\n-\n-#if !defined(CONFIG_USER_ONLY)\n-    cpu->vcpu_id = (cs->cpu_index / smp_threads) * max_smt\n-        + (cs->cpu_index % smp_threads);\n-\n-    if (kvm_enabled() && !kvm_vcpu_id_is_valid(cpu->vcpu_id)) {\n-        error_setg(errp, \"Can't create CPU with id %d in KVM\", cpu->vcpu_id);\n-        error_append_hint(errp, \"Adjust the number of cpus to %d \"\n-                          \"or try to raise the number of threads per core\\n\",\n-                          cpu->vcpu_id * smp_threads / max_smt);\n-        goto unrealize;\n+    if (cpu->vcpu_id == UNASSIGNED_CPU_INDEX) {\n+        cpu->vcpu_id = cs->cpu_index;\n     }\n-#endif\n \n     if (tcg_enabled()) {\n         if (ppc_fixup_cpu(cpu) != 0) {\n@@ -10576,6 +10563,7 @@ static void ppc_cpu_initfn(Object *obj)\n     CPUPPCState *env = &cpu->env;\n \n     cs->env_ptr = env;\n+    cpu->vcpu_id = UNASSIGNED_CPU_INDEX;\n \n     env->msr_mask = pcc->msr_mask;\n     env->mmu_model = pcc->mmu_model;\n",
    "prefixes": [
        "PULL",
        "40/40"
    ]
}