From nobody Fri May 3 02:15:40 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1599181553; cv=none; d=zohomail.com; s=zohoarc; b=iJiPDOoPblEUowy7PRzzF/oJYDjV0C+Pw1OHG1Kfe4k2DLnhgUDmBrvfSPY0Rfv+GkaoQyEKNnxr7W6k+Y33Z8Ap6lle/8CoqASYVYmBSscn6QomH+3O2QMGAiGp2Uw9vJ2wTzYwW6Gi3Ey/QG8VnqXnc6+t8d91I8THjNzA80w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599181553; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=yaXUGx5Z0/GOHdtMl0ca+JpE0hz+CrwFr6VPmXocPbo=; b=fhIiI1pJWBFxCY2sBQtlw5tmHq3QnekWggd3HdySzL1ykEKyRK4Gg2UTHxFRaAlObDZO7TxNPyCPOp2JfP5ZMRONBrV2/jOP1nN2PU0Rkmt8KiIAzoJ27roeNAa5hXDxhHDBIGFEtugFJ6/AJGT5UFFL5KGD8lhNY2peOcVMhOY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599181553939270.6533442007636; Thu, 3 Sep 2020 18:05:53 -0700 (PDT) Received: from localhost ([::1]:53320 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kE0Ar-0003hx-26 for importer@patchew.org; Thu, 03 Sep 2020 21:05:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53994) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kE09x-0002O7-Nt; Thu, 03 Sep 2020 21:04:57 -0400 Received: from mail-il1-x141.google.com ([2607:f8b0:4864:20::141]:44507) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kE09w-0002jy-1Z; Thu, 03 Sep 2020 21:04:57 -0400 Received: by mail-il1-x141.google.com with SMTP id h11so4915442ilj.11; Thu, 03 Sep 2020 18:04:55 -0700 (PDT) Received: from rekt.ibmuc.com ([2804:431:c7c6:1dc:ffbd:d3fb:97ff:aaca]) by smtp.gmail.com with ESMTPSA id o18sm205907ilj.77.2020.09.03.18.04.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Sep 2020 18:04:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=yaXUGx5Z0/GOHdtMl0ca+JpE0hz+CrwFr6VPmXocPbo=; b=RYD8Yoxa8/9UI2F2/n6ZRCKjACDMtiXMtsbwBqMF6DyD4+KBQSKkbDojgQKzXUI7n8 q71Ko51puobJ9viGEolopvgQbpd4qBAqLb4B4eGfOJKSauk1vV3E+Y9wnkNUmjgeg8ci d00aT1+K1KFiwBBRbedgKxvAQQFe7exMIQPHXD3yYq5dLkkNIOxVluDW+sr6kVi6+qLJ lz1KGKSq7Psk2rc8FIBLnIbmLppmlqF2pjUeOgDk7RbCr474EeneXN4QZwAD3qu/87cs KudUsKOmuvtDcVuJOzUZFbxQOaU4IN3SuRFEl6m+f1TNi7w4M84fJK3ik4tyqVGhN2H/ 4ixw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=yaXUGx5Z0/GOHdtMl0ca+JpE0hz+CrwFr6VPmXocPbo=; b=GlmGO+nwTLLua0kScD6hUfB9bDcVTdyC7Brmv2AE6S/2lqsiC2Q2nAJkZcdhOah1KI TLUmF6yCjZ5iR9xMrRXaK5OQTKzfAl+G7Znu6fw1F+b9UQuvCIGfTe/sYRBZSVG6OQBH bWBttH6/a7TZ57R2iANmUhFvuF8BHCSyew4CAkirhCvgJyQ7bR7QTevUChpevUn1pbNG uITMSoJuyIUOM/juc/wDJZ7CWje0dkDogA2Ac3LN45a8sUN2fmWBiYBAeRDEJE/9oCSK IwVdDRECwPulm5JWF9ZcuvWq8s9ZzTTu9+UHBuonoUhpPabOT7yV56LdbxytUx9NBF+/ zRpg== X-Gm-Message-State: AOAM531lalJKXytgp9uYFxSMmE1ERI2ZGVxU+H/+1xVDuvCJE9mtyTex w/Sp6l+8y66UAmQOztXEB7arNkn+WHM= X-Google-Smtp-Source: ABdhPJzdQToa1ScAuXiim/oa4IxWq5vLhdF+UN758CkxOWJx3s/bU2GUREFXtU5LYlOXvlvC04lZQQ== X-Received: by 2002:a92:98c5:: with SMTP id a66mr5900709ill.50.1599181494505; Thu, 03 Sep 2020 18:04:54 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Subject: [PATCH v4 1/3] spapr: move h_home_node_associativity to spapr_numa.c Date: Thu, 3 Sep 2020 22:04:37 -0300 Message-Id: <20200904010439.581957-2-danielhb413@gmail.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200904010439.581957-1-danielhb413@gmail.com> References: <20200904010439.581957-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::141; envelope-from=danielhb413@gmail.com; helo=mail-il1-x141.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Henrique Barboza , qemu-ppc@nongnu.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The implementation of this hypercall will be modified to use spapr->numa_assoc_arrays input. Moving it to spapr_numa.c makes make more sense. Signed-off-by: Daniel Henrique Barboza --- hw/ppc/spapr_hcall.c | 40 --------------------------------------- hw/ppc/spapr_numa.c | 45 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 40 deletions(-) diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c index c1d01228c6..c2776b6a7d 100644 --- a/hw/ppc/spapr_hcall.c +++ b/hw/ppc/spapr_hcall.c @@ -1873,42 +1873,6 @@ static target_ulong h_client_architecture_support(Po= werPCCPU *cpu, return ret; } =20 -static target_ulong h_home_node_associativity(PowerPCCPU *cpu, - SpaprMachineState *spapr, - target_ulong opcode, - target_ulong *args) -{ - target_ulong flags =3D args[0]; - target_ulong procno =3D args[1]; - PowerPCCPU *tcpu; - int idx; - - /* only support procno from H_REGISTER_VPA */ - if (flags !=3D 0x1) { - return H_FUNCTION; - } - - tcpu =3D spapr_find_cpu(procno); - if (tcpu =3D=3D NULL) { - return H_P2; - } - - /* sequence is the same as in the "ibm,associativity" property */ - - idx =3D 0; -#define ASSOCIATIVITY(a, b) (((uint64_t)(a) << 32) | \ - ((uint64_t)(b) & 0xffffffff)) - args[idx++] =3D ASSOCIATIVITY(0, 0); - args[idx++] =3D ASSOCIATIVITY(0, tcpu->node_id); - args[idx++] =3D ASSOCIATIVITY(procno, -1); - for ( ; idx < 6; idx++) { - args[idx] =3D -1; - } -#undef ASSOCIATIVITY - - return H_SUCCESS; -} - static target_ulong h_get_cpu_characteristics(PowerPCCPU *cpu, SpaprMachineState *spapr, target_ulong opcode, @@ -2139,10 +2103,6 @@ static void hypercall_register_types(void) spapr_register_hypercall(KVMPPC_H_CAS, h_client_architecture_support); =20 spapr_register_hypercall(KVMPPC_H_UPDATE_DT, h_update_dt); - - /* Virtual Processor Home Node */ - spapr_register_hypercall(H_HOME_NODE_ASSOCIATIVITY, - h_home_node_associativity); } =20 type_init(hypercall_register_types) diff --git a/hw/ppc/spapr_numa.c b/hw/ppc/spapr_numa.c index 93a000b729..368c1a494d 100644 --- a/hw/ppc/spapr_numa.c +++ b/hw/ppc/spapr_numa.c @@ -165,3 +165,48 @@ void spapr_numa_write_rtas_dt(SpaprMachineState *spapr= , void *fdt, int rtas) _FDT(fdt_setprop(fdt, rtas, "ibm,max-associativity-domains", maxdomains, sizeof(maxdomains))); } + +static target_ulong h_home_node_associativity(PowerPCCPU *cpu, + SpaprMachineState *spapr, + target_ulong opcode, + target_ulong *args) +{ + target_ulong flags =3D args[0]; + target_ulong procno =3D args[1]; + PowerPCCPU *tcpu; + int idx; + + /* only support procno from H_REGISTER_VPA */ + if (flags !=3D 0x1) { + return H_FUNCTION; + } + + tcpu =3D spapr_find_cpu(procno); + if (tcpu =3D=3D NULL) { + return H_P2; + } + + /* sequence is the same as in the "ibm,associativity" property */ + + idx =3D 0; +#define ASSOCIATIVITY(a, b) (((uint64_t)(a) << 32) | \ + ((uint64_t)(b) & 0xffffffff)) + args[idx++] =3D ASSOCIATIVITY(0, 0); + args[idx++] =3D ASSOCIATIVITY(0, tcpu->node_id); + args[idx++] =3D ASSOCIATIVITY(procno, -1); + for ( ; idx < 6; idx++) { + args[idx] =3D -1; + } +#undef ASSOCIATIVITY + + return H_SUCCESS; +} + +static void spapr_numa_register_types(void) +{ + /* Virtual Processor Home Node */ + spapr_register_hypercall(H_HOME_NODE_ASSOCIATIVITY, + h_home_node_associativity); +} + +type_init(spapr_numa_register_types) --=20 2.26.2 From nobody Fri May 3 02:15:40 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1599181615; cv=none; d=zohomail.com; s=zohoarc; b=a6eH5jeb+szp4anVIN019Ea/fD7sUQfoVUjdFtHV227senhDjOAUhlMof+uwfPfR3AxFgAGBVPqmAKo7eg0D0AB90TqLXV7DhOayRWX6028AjKcp9etXLh3gtKN1sSIKQkZ1Jr8yLGy8z8wZvkNY82NMh+RaD0wuCbMnQE0gOR4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599181615; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=l8hA6A+tm06gP00jolVs7Fv1lM2u7W2UYOunpzAJwCY=; b=hNGE+LMA0F7wy2StUJnDmaIytmv1x4tM2fX4mhiNz5Mf0Y1CiOa0IPMfXQg2+Qw1+MpcFFb98E+HdyVfKFCsjOvZHHdikxsZknPk6YYsdPhbz0eLDDeGIic6sgyDrtxbIHd05+QTiU9MvEuCOLjZlC07UpQcdVH9qosxI87PvJs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599181615840998.5191194487433; Thu, 3 Sep 2020 18:06:55 -0700 (PDT) Received: from localhost ([::1]:58664 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kE0Br-0005ra-57 for importer@patchew.org; Thu, 03 Sep 2020 21:06:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54018) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kE09z-0002Rk-LI; Thu, 03 Sep 2020 21:04:59 -0400 Received: from mail-il1-x143.google.com ([2607:f8b0:4864:20::143]:42952) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kE09y-0002kE-1d; Thu, 03 Sep 2020 21:04:59 -0400 Received: by mail-il1-x143.google.com with SMTP id t13so4921046ile.9; Thu, 03 Sep 2020 18:04:57 -0700 (PDT) Received: from rekt.ibmuc.com ([2804:431:c7c6:1dc:ffbd:d3fb:97ff:aaca]) by smtp.gmail.com with ESMTPSA id o18sm205907ilj.77.2020.09.03.18.04.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Sep 2020 18:04:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=l8hA6A+tm06gP00jolVs7Fv1lM2u7W2UYOunpzAJwCY=; b=sWzQjXUYwtwQOND70k9caF6CZplXeNAxEslfRn2eXESe0Yp5yO5J4rz8/c+rsuWkov uSne8FLzswP+QbdrG5TgQeJwh1pbBpkgBVVofsgdJcpVTbRQDoA/qIa9G28B0ezXtTE7 8MCVYfC7JsDDYj/N6bxr2BQLBJxbd9EUKL4u0AILKbbciaraa2BQhTAWsSKW3EtG6Hc+ IeH+IOoxoAChTRMonovBPGB2LjBAOMjMAg/bDt/10+VzP2e5gmQZoUpgLyV5No1/F6k4 fQ7i9KB0TbacpDKMsTKukCTxLqF6f3Z06p+/9vTFvFY6n1fxbm0icewO4qFFzXnWmBEq JfIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=l8hA6A+tm06gP00jolVs7Fv1lM2u7W2UYOunpzAJwCY=; b=YP+2CAnyVXrXX9vN3VqFojGVdVWeX51xSH+ADLS0ywooAAw1X6gYaZFl/8wr2lmIAI YAWNaSxRFjptpN9LtWtblJ27Ad83f82AK/DNnxXtJIQ832hTY2fs01hVMSfj27uwuII4 ZN3qFJJGyOGr8Ose8eESvibaaNLxdj+m0UAFsKhuHoITT0qVguxi+etJzBS2fYtGHkVh r25Dh/W2mPhIz7V+ptCfAU9pFe0im1NQZjthrDNlsmrZpcR6f0zpq6uPQtIvf+J2d68B hXhTgv/kuDG/yH003q5IOukQ7ckhvIupq0h9usM9kkjMRFtLORUfwQB+Sn4xf75qrbp7 Dmmw== X-Gm-Message-State: AOAM530PBAaztKkZ2C9I3hGxJKVdaQGVowzFVXT+2udTJVak0e6n+1BJ XrH7z0NLV2QPiXXW6Y6ypt999Wz8jsk= X-Google-Smtp-Source: ABdhPJxI/GOVULQ9va9WpRu1SFClwhDmVn3hIJy26XtzAWiE6btbMQF9Ds481ff7E0dHLyQR9K6t/w== X-Received: by 2002:a92:7754:: with SMTP id s81mr5535730ilc.304.1599181496449; Thu, 03 Sep 2020 18:04:56 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Subject: [PATCH v4 2/3] spapr_numa: create a vcpu associativity helper Date: Thu, 3 Sep 2020 22:04:38 -0300 Message-Id: <20200904010439.581957-3-danielhb413@gmail.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200904010439.581957-1-danielhb413@gmail.com> References: <20200904010439.581957-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::143; envelope-from=danielhb413@gmail.com; helo=mail-il1-x143.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Henrique Barboza , qemu-ppc@nongnu.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The work to be done in h_home_node_associativity() intersects with what is already done in spapr_numa_fixup_cpu_dt(). This patch creates a new helper, spapr_numa_get_vcpu_assoc(), to be used for both spapr_numa_fixup_cpu_dt() and h_home_node_associativity(). While we're at it, use memcpy() instead of loop assignment to created the returned array. Signed-off-by: Daniel Henrique Barboza --- hw/ppc/spapr_numa.c | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/hw/ppc/spapr_numa.c b/hw/ppc/spapr_numa.c index 368c1a494d..980a6488bf 100644 --- a/hw/ppc/spapr_numa.c +++ b/hw/ppc/spapr_numa.c @@ -71,13 +71,15 @@ void spapr_numa_write_associativity_dt(SpaprMachineStat= e *spapr, void *fdt, sizeof(spapr->numa_assoc_array[nodeid])))); } =20 -int spapr_numa_fixup_cpu_dt(SpaprMachineState *spapr, void *fdt, - int offset, PowerPCCPU *cpu) +static uint32_t *spapr_numa_get_vcpu_assoc(SpaprMachineState *spapr, + PowerPCCPU *cpu, + uint *vcpu_assoc_size) { - uint vcpu_assoc_size =3D NUMA_ASSOC_SIZE + 1; - uint32_t vcpu_assoc[vcpu_assoc_size]; + uint32_t *vcpu_assoc =3D NULL; int index =3D spapr_get_vcpu_id(cpu); - int i; + + *vcpu_assoc_size =3D (NUMA_ASSOC_SIZE + 1) * sizeof(uint32_t); + vcpu_assoc =3D g_malloc(*vcpu_assoc_size); =20 /* * VCPUs have an extra 'cpu_id' value in ibm,associativity @@ -86,16 +88,24 @@ int spapr_numa_fixup_cpu_dt(SpaprMachineState *spapr, v= oid *fdt, * cpu_id last. */ vcpu_assoc[0] =3D cpu_to_be32(MAX_DISTANCE_REF_POINTS + 1); + memcpy(vcpu_assoc + 1, spapr->numa_assoc_array[cpu->node_id], + MAX_DISTANCE_REF_POINTS); + vcpu_assoc[MAX_DISTANCE_REF_POINTS + 1] =3D cpu_to_be32(index); =20 - for (i =3D 1; i <=3D MAX_DISTANCE_REF_POINTS; i++) { - vcpu_assoc[i] =3D spapr->numa_assoc_array[cpu->node_id][i]; - } + return vcpu_assoc; +} + +int spapr_numa_fixup_cpu_dt(SpaprMachineState *spapr, void *fdt, + int offset, PowerPCCPU *cpu) +{ + g_autofree uint32_t *vcpu_assoc =3D NULL; + uint vcpu_assoc_size; =20 - vcpu_assoc[vcpu_assoc_size - 1] =3D cpu_to_be32(index); + vcpu_assoc =3D spapr_numa_get_vcpu_assoc(spapr, cpu, &vcpu_assoc_size); =20 /* Advertise NUMA via ibm,associativity */ return fdt_setprop(fdt, offset, "ibm,associativity", - vcpu_assoc, sizeof(vcpu_assoc)); + vcpu_assoc, vcpu_assoc_size); } =20 =20 --=20 2.26.2 From nobody Fri May 3 02:15:40 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1599181652; cv=none; d=zohomail.com; s=zohoarc; b=hnKq5siOHIBdZfmkW2ayFufgHfAEzDuWSWMJcMEinOjXyBXwoDQ0P+H79dbnYB8I+V9AAFDCH7oi991HJ+0YVcJEoA/fILBbo7K8fwBV1b99b0OUsrf60nmEg9gTb00IwpyfrDgsMHA8roPEVNGWV4dA8iO3jwZQUlq1HwkD9wQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599181652; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=DPxxBWeC4FEvN6MAD2yhRYDcWf1dgWl/eqzDkL21hmc=; b=KM9+GgBYqidNOJkH63OQniWJaT5vBqN3/FPvU/wae4ALLtshH85gI6qZ4d1byMEoDgvuFzatVEfm2vJQeLdkiQqsSkZCPYR0WVDWukPO03MB9kQjhnrkrso4TI8nZZBkkogT+6b+rwmOMrq5T5sRcpApRFDytOwmCZrT4Wh5urc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 159918165236015.415065940908221; Thu, 3 Sep 2020 18:07:32 -0700 (PDT) Received: from localhost ([::1]:33140 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kE0CR-0006vM-Lw for importer@patchew.org; Thu, 03 Sep 2020 21:07:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54030) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kE0A1-0002Wn-MT; Thu, 03 Sep 2020 21:05:01 -0400 Received: from mail-il1-x144.google.com ([2607:f8b0:4864:20::144]:41536) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kE09z-0002kP-VH; Thu, 03 Sep 2020 21:05:01 -0400 Received: by mail-il1-x144.google.com with SMTP id w8so4938267ilj.8; Thu, 03 Sep 2020 18:04:59 -0700 (PDT) Received: from rekt.ibmuc.com ([2804:431:c7c6:1dc:ffbd:d3fb:97ff:aaca]) by smtp.gmail.com with ESMTPSA id o18sm205907ilj.77.2020.09.03.18.04.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Sep 2020 18:04:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=DPxxBWeC4FEvN6MAD2yhRYDcWf1dgWl/eqzDkL21hmc=; b=umH80TQA95CeA3tNVazBrDNksqHOGtpELXgK/wqy4lUj2O0aYvVQ+Mqk0dVpzFKWi8 uEHMRouQdDeLxXsUMpHHY9kQTTCz+3Pr/gCf/M5d5zBt6QNrLwhgKkHdPUkO1CIc7g35 wzPeRWYULkoAxCVXMhdCDP5G7kV2RqOYeqBcmtbCEOYQwYIRWazZlak4fFu7cOvva8iY RBC3ZfH3Uf1GzH298z9iJCtmD6g8hSBdGEFeIYiQS4jqITPQCi7P6JtyIqM34k3idVYz iyj3Uu/xGbboTHMYALLdkTbQY59v5Oql/gfZGWgJnHIZ/a1QE45BXpvAVItZV9lZY4/F RdGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=DPxxBWeC4FEvN6MAD2yhRYDcWf1dgWl/eqzDkL21hmc=; b=m7LNEvT62oL5fI8TpmL+jjtES0c9+TYIQFz+tob7ftTt4YcjxZk1isxMEoyjOF+8P0 wVBj2r0BiV4pcOajIAFTxkyIlVsMIx9UZDrozJfgqLjMb4K4xg+aD7bI0nk9QDvEchNE YZgVLo/plAOks1LUXvIgzW6rdSW91ckQ00zOg4gYCB5KEM9uf0rKWiYFYVoBucW062Qt wB6NOkYqLNltjdZ4llb5tz7Rz/chaBPPmiJqWL1OnNJbBz84WKq/S1EAX3agbe4cM4WU KeNVtnxjEd5SYAyUAoxTEfEG9223jd6FReykSkMY2JDYw9MX+P5hxpgrgsgWdXqZBAU/ /7Fg== X-Gm-Message-State: AOAM533JywSox96+LisBDEniEexusXaAz73y9YatkxHzle5k+O1e0QVB D9FNJ7tjC5rk+tv+T7wa63iTteQL5bY= X-Google-Smtp-Source: ABdhPJzn+u3OW8do4dAEjQfcrKWLvZBttD6+KTOjyGpnrpHRtc/AlRhwQ9ssxwDaS/4elNXUs2Hhrw== X-Received: by 2002:a05:6e02:1107:: with SMTP id u7mr5723047ilk.165.1599181498361; Thu, 03 Sep 2020 18:04:58 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Subject: [PATCH v4 3/3] spapr_numa: use spapr_numa_get_vcpu_assoc() in home_node hcall Date: Thu, 3 Sep 2020 22:04:39 -0300 Message-Id: <20200904010439.581957-4-danielhb413@gmail.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200904010439.581957-1-danielhb413@gmail.com> References: <20200904010439.581957-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::144; envelope-from=danielhb413@gmail.com; helo=mail-il1-x144.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Henrique Barboza , qemu-ppc@nongnu.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The current implementation of h_home_node_associativity hard codes the values of associativity domains of the vcpus. Let's make it consider the values already initialized in spapr->numa_assoc_array, via the spapr_numa_get_vcpu_assoc() helper. We want to set it and forget it, and for that we also need to assert that we don't overflow the registers of the hypercall. From R4 to R9 we can squeeze in 12 associativity domains, so let's assert that MAX_DISTANCE_REF_POINTS isn't greater than that. Signed-off-by: Daniel Henrique Barboza --- hw/ppc/spapr_numa.c | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/hw/ppc/spapr_numa.c b/hw/ppc/spapr_numa.c index 980a6488bf..0a7e07fe60 100644 --- a/hw/ppc/spapr_numa.c +++ b/hw/ppc/spapr_numa.c @@ -181,10 +181,12 @@ static target_ulong h_home_node_associativity(PowerPC= CPU *cpu, target_ulong opcode, target_ulong *args) { + g_autofree uint32_t *vcpu_assoc =3D NULL; target_ulong flags =3D args[0]; target_ulong procno =3D args[1]; PowerPCCPU *tcpu; - int idx; + uint vcpu_assoc_size; + int idx, assoc_idx; =20 /* only support procno from H_REGISTER_VPA */ if (flags !=3D 0x1) { @@ -196,16 +198,31 @@ static target_ulong h_home_node_associativity(PowerPC= CPU *cpu, return H_P2; } =20 - /* sequence is the same as in the "ibm,associativity" property */ + /* + * Given that we want to be flexible with the sizes and indexes, + * we must consider that there is a hard limit of how many + * associativities domain we can fit in R4 up to R9, which + * would be 12. Assert and bail if that's not the case. + */ + G_STATIC_ASSERT(MAX_DISTANCE_REF_POINTS <=3D 12); + + vcpu_assoc =3D spapr_numa_get_vcpu_assoc(spapr, tcpu, &vcpu_assoc_size= ); + vcpu_assoc_size /=3D sizeof(uint32_t); + /* assoc_idx starts at 1 to skip associativity size */ + assoc_idx =3D 1; =20 - idx =3D 0; #define ASSOCIATIVITY(a, b) (((uint64_t)(a) << 32) | \ ((uint64_t)(b) & 0xffffffff)) - args[idx++] =3D ASSOCIATIVITY(0, 0); - args[idx++] =3D ASSOCIATIVITY(0, tcpu->node_id); - args[idx++] =3D ASSOCIATIVITY(procno, -1); - for ( ; idx < 6; idx++) { - args[idx] =3D -1; + + for (idx =3D 0; idx < 6; idx++) { + int32_t a, b; + + a =3D assoc_idx < vcpu_assoc_size ? + be32_to_cpu(vcpu_assoc[assoc_idx++]) : -1; + b =3D assoc_idx < vcpu_assoc_size ? + be32_to_cpu(vcpu_assoc[assoc_idx++]) : -1; + + args[idx] =3D ASSOCIATIVITY(a, b); } #undef ASSOCIATIVITY =20 --=20 2.26.2