{"id":1850832,"url":"http://patchwork.ozlabs.org/api/patches/1850832/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20231018130716.286638-13-thuth@redhat.com/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/projects/14/?format=json","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":"<20231018130716.286638-13-thuth@redhat.com>","list_archive_url":null,"date":"2023-10-18T13:07:03","name":"[PULL,12/25] qapi/s390x/cpu topology: CPU_POLARIZATION_CHANGE QAPI event","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"435683f1fb4b98d04454b3be2cbd2686edcfc3d0","submitter":{"id":66152,"url":"http://patchwork.ozlabs.org/api/people/66152/?format=json","name":"Thomas Huth","email":"thuth@redhat.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20231018130716.286638-13-thuth@redhat.com/mbox/","series":[{"id":378180,"url":"http://patchwork.ozlabs.org/api/series/378180/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=378180","date":"2023-10-18T13:06:52","name":"[PULL,01/25] qapi: machine.json: change docs regarding CPU topology","version":1,"mbox":"http://patchwork.ozlabs.org/series/378180/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/1850832/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/1850832/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@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=IQgS0X0K;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4S9WbT5lY9z20Pd\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 19 Oct 2023 00:17:09 +1100 (AEDT)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1qt6HW-0004Yz-VE; Wed, 18 Oct 2023 09:08:16 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <thuth@redhat.com>) id 1qt6H8-0004T5-Uz\n for qemu-devel@nongnu.org; Wed, 18 Oct 2023 09:07:51 -0400","from us-smtp-delivery-124.mimecast.com ([170.10.133.124])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <thuth@redhat.com>) id 1qt6H6-0007zA-HQ\n for qemu-devel@nongnu.org; Wed, 18 Oct 2023 09:07:49 -0400","from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])\n by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n us-mta-18-7fugZRR9O66O--aXpadBWw-1; Wed, 18 Oct 2023 09:07:41 -0400","from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com\n [10.11.54.4])\n (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n (No client certificate requested)\n by mimecast-mx02.redhat.com (Postfix) with ESMTPS id C050B3C1CC57;\n Wed, 18 Oct 2023 13:07:39 +0000 (UTC)","from thuth-p1g4.redhat.com (unknown [10.39.192.109])\n by smtp.corp.redhat.com (Postfix) with ESMTP id 518A020268C8;\n Wed, 18 Oct 2023 13:07:38 +0000 (UTC)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1697634467;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=o4afa8553lIACKbUuVcfDOObUe6gw9OiGGfB0C0cO/s=;\n b=IQgS0X0Kriz+iJ9cCAeYX4kYFnZ07NarNqLyxXNykhZMkuqplgF21CfoQJD375+SxDLJgr\n QYikR9b9WzR0Y1br3i/5eAOwCHsS67XQGs7Tm7XDszg0GKF1ArTgwbj5+NakKFTF4Zi0gd\n Tmh8ZXLmpd86tceU3dR6EOcgIyxYiZA=","X-MC-Unique":"7fugZRR9O66O--aXpadBWw-1","From":"Thomas Huth <thuth@redhat.com>","To":"qemu-devel@nongnu.org","Cc":"Stefan Hajnoczi <stefanha@redhat.com>, qemu-s390x@nongnu.org,\n Nina Schoetterl-Glausch <nsg@linux.ibm.com>","Subject":"[PULL 12/25] qapi/s390x/cpu topology: CPU_POLARIZATION_CHANGE QAPI\n event","Date":"Wed, 18 Oct 2023 15:07:03 +0200","Message-ID":"<20231018130716.286638-13-thuth@redhat.com>","In-Reply-To":"<20231018130716.286638-1-thuth@redhat.com>","References":"<20231018130716.286638-1-thuth@redhat.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-Scanned-By":"MIMEDefang 3.4.1 on 10.11.54.4","Received-SPF":"pass client-ip=170.10.133.124; envelope-from=thuth@redhat.com;\n helo=us-smtp-delivery-124.mimecast.com","X-Spam_score_int":"-20","X-Spam_score":"-2.1","X-Spam_bar":"--","X-Spam_report":"(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001,\n SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://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 <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"},"content":"From: Pierre Morel <pmorel@linux.ibm.com>\n\nWhen the guest asks to change the polarization this change\nis forwarded to the upper layer using QAPI.\nThe upper layer is supposed to take according decisions concerning\nCPU provisioning.\n\nSigned-off-by: Pierre Morel <pmorel@linux.ibm.com>\nReviewed-by: Thomas Huth <thuth@redhat.com>\nReviewed-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com>\nCo-developed-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com>\nAcked-by: Markus Armbruster <armbru@redhat.com>\nSigned-off-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com>\nMessage-ID: <20231016183925.2384704-13-nsg@linux.ibm.com>\nSigned-off-by: Thomas Huth <thuth@redhat.com>\n---\n qapi/machine-target.json | 35 +++++++++++++++++++++++++++++++++++\n hw/s390x/cpu-topology.c  |  2 ++\n 2 files changed, 37 insertions(+)","diff":"diff --git a/qapi/machine-target.json b/qapi/machine-target.json\nindex 7688f32ffa..ac93a5f82c 100644\n--- a/qapi/machine-target.json\n+++ b/qapi/machine-target.json\n@@ -417,3 +417,38 @@\n   'features': [ 'unstable' ],\n   'if': { 'all': [ 'TARGET_S390X' , 'CONFIG_KVM' ] }\n }\n+\n+##\n+# @CPU_POLARIZATION_CHANGE:\n+#\n+# Emitted when the guest asks to change the polarization.\n+#\n+# The guest can tell the host (via the PTF instruction) whether the\n+# CPUs should be provisioned using horizontal or vertical polarization.\n+#\n+# On horizontal polarization the host is expected to provision all vCPUs\n+# equally.\n+#\n+# On vertical polarization the host can provision each vCPU differently.\n+# The guest will get information on the details of the provisioning\n+# the next time it uses the STSI(15) instruction.\n+#\n+# @polarization: polarization specified by the guest\n+#\n+# Features:\n+#\n+# @unstable: This event is experimental.\n+#\n+# Since: 8.2\n+#\n+# Example:\n+#\n+# <- { \"event\": \"CPU_POLARIZATION_CHANGE\",\n+#      \"data\": { \"polarization\": \"horizontal\" },\n+#      \"timestamp\": { \"seconds\": 1401385907, \"microseconds\": 422329 } }\n+##\n+{ 'event': 'CPU_POLARIZATION_CHANGE',\n+  'data': { 'polarization': 'CpuS390Polarization' },\n+  'features': [ 'unstable' ],\n+  'if': { 'all': [ 'TARGET_S390X', 'CONFIG_KVM' ] }\n+}\ndiff --git a/hw/s390x/cpu-topology.c b/hw/s390x/cpu-topology.c\nindex f3771f5045..327bccea4f 100644\n--- a/hw/s390x/cpu-topology.c\n+++ b/hw/s390x/cpu-topology.c\n@@ -24,6 +24,7 @@\n #include \"hw/s390x/s390-virtio-ccw.h\"\n #include \"hw/s390x/cpu-topology.h\"\n #include \"qapi/qapi-commands-machine-target.h\"\n+#include \"qapi/qapi-events-machine-target.h\"\n \n /*\n  * s390_topology is used to keep the topology information.\n@@ -136,6 +137,7 @@ void s390_handle_ptf(S390CPU *cpu, uint8_t r1, uintptr_t ra)\n         } else {\n             s390_topology.polarization = polarization;\n             s390_cpu_topology_set_changed(true);\n+            qapi_event_send_cpu_polarization_change(polarization);\n             setcc(cpu, 0);\n         }\n         break;\n","prefixes":["PULL","12/25"]}