From nobody Mon Feb 9 14:23:19 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1654875717; cv=none; d=zohomail.com; s=zohoarc; b=mrQw6BuIbvLOn+h6EgnwwUuMXIT4vFdeCDal3DYZ0GkCM0oLZsMtBBENdCgmm9yRgMba++o5MvUwpYznLKIZQxVxNu6JN70SW7gT9IjOJ9KEvG74l89WmXkaYV2qwu+upsoH9TNLqfiXV0jLJ28OkC/TqlTNUCrrxWr7dQXnvEk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1654875717; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=RzYJ3ADO8B5IeLwis6gFlwQIfqK+5ucvmMnVP4vhTF8=; b=MnRx+rBOwjl/n8mb9W8rXO8n2tk8RHXqfmxBYpgSx2gaTB2QISwXIrFFzSZI069ETDsIHVGAPNCVlUkfPXaCoFopXCaY5bRBVEZ02zI8PgQr7zrSyOLGXJ9Un8tWuRu+wNYYyBAkU4PrQ9PkgSGrZTz05ZpgIplmsqJugZ3R0ww= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1654875717412501.2235613177205; Fri, 10 Jun 2022 08:41:57 -0700 (PDT) Received: from localhost ([::1]:58716 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nzgln-00081g-Fu for importer@patchew.org; Fri, 10 Jun 2022 11:41:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60216) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nzgkh-000783-9K for qemu-devel@nongnu.org; Fri, 10 Jun 2022 11:40:47 -0400 Received: from mail-ed1-x532.google.com ([2a00:1450:4864:20::532]:43638) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nzgkf-0003E0-FL for qemu-devel@nongnu.org; Fri, 10 Jun 2022 11:40:46 -0400 Received: by mail-ed1-x532.google.com with SMTP id x62so35801148ede.10 for ; Fri, 10 Jun 2022 08:40:45 -0700 (PDT) Received: from zen.linaroharston ([51.148.130.216]) by smtp.gmail.com with ESMTPSA id w7-20020a056402070700b0042aa153e73esm16298783edx.12.2022.06.10.08.40.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Jun 2022 08:40:42 -0700 (PDT) Received: from zen.lan (localhost [127.0.0.1]) by zen.linaroharston (Postfix) with ESMTP id C4CAA1FFB7; Fri, 10 Jun 2022 16:40:41 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=RzYJ3ADO8B5IeLwis6gFlwQIfqK+5ucvmMnVP4vhTF8=; b=EXvgQ/T/MjaAa+1BW0YRUQY1LrfekKpOhVyCoL/E6wv5K27VhCeBKTH1PmS7d4nkuC pzvkIxKQzg/csX3cyuGWyXtekjnKy4uR5TTIAcZFniXp/j2aoLr5quaC6xO8ECCBmjbg N/6o7F85bhA0DYeuenpbOchkf6YO0ePRGCyhkdbLUDMJUsiM6p7ANk5FptoSgPig1t3K uwIY7gBSDRDX+tXnO2CF/9bUsFlQyyJwyVlRiB6EmB98gUME2+5mwnLMQgimywyXOXFb Zfu936U8b//krx95k/z9XjilPaIacVpkRhXbqvL2Rp/CuNBJjyrp8TOlP4f7O6r3m66A VpSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=RzYJ3ADO8B5IeLwis6gFlwQIfqK+5ucvmMnVP4vhTF8=; b=nDndbuagK4ff6krLi/sBMseAzWBIceszoyCdRw+cYOX+Aa14QxfhVvzknnve6uRUWT CW3utLGgAvUsxh07i5fg9S/YFKDQmdVylFc02FX1w7yueEiJ439Y04p5dwHn09cupkgC WQnyAW8GmF5lrQS3PWELrJ3nmudEp7LVAZqPSMlFhfmwOZcD4pIH9VMQ1Wsffqlm6x6i 5GyfJ3NUh6DhwiQElXLZAiy3tz+yLKEgDv2f9yNDuED5Tr3OAvZuPs2Sg3Ci4behDov8 A4/Rqc3EW0FzNMw9wLaxDPTBKEw+iJ8yQIcRKLd1G2NnTCj39ez1jANGIAzM+eo0q11k 5Cdg== X-Gm-Message-State: AOAM531RhN7FRm6PZX93n91aSvNfbFKiFVQJ6TZiSIai0W4a+GcLUJOt lHiLf7OKvOv4BQf9YXRxGX8Npw== X-Google-Smtp-Source: ABdhPJyFX9It2VjezbMe0rC+iq8n95oLQxje8m/I7M9FpY6Qzy+lsIdEsNeeJgnhqHrF8qVi78SojQ== X-Received: by 2002:a05:6402:528a:b0:42d:e116:fab8 with SMTP id en10-20020a056402528a00b0042de116fab8mr50584633edb.134.1654875643559; Fri, 10 Jun 2022 08:40:43 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, agorglouk@gmail.com, =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org (open list:ARM TCG CPUs) Subject: [RFC PATCH] target/arm: de-duplicate our register XML definitions Date: Fri, 10 Jun 2022 16:40:36 +0100 Message-Id: <20220610154036.1253158-1-alex.bennee@linaro.org> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::532; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x532.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1654875718883100001 We generate the XML for each vCPU we create which for heavily threaded linux-user runs can add up to a lot of memory. Unfortunately we can't only do it once as we may have vCPUs with different capabilities in different cores but we can at least free duplicate definitions if we find them. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1070 Signed-off-by: Alex Benn=C3=A9e --- target/arm/gdbstub.c | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/target/arm/gdbstub.c b/target/arm/gdbstub.c index 2f806512d0..85ef6dc6db 100644 --- a/target/arm/gdbstub.c +++ b/target/arm/gdbstub.c @@ -318,7 +318,24 @@ int arm_gen_dynamic_sysreg_xml(CPUState *cs, int base_= reg) g_string_append_printf(s, ""); g_hash_table_foreach(cpu->cp_regs, arm_register_sysreg_for_xml, ¶m= ); g_string_append_printf(s, ""); - cpu->dyn_sysreg_xml.desc =3D g_string_free(s, false); + + /* De-duplicate system register descriptions */ + if (cs !=3D first_cpu) { + CPUState *other_cs; + CPU_FOREACH(other_cs) { + ARMCPU *other_arm =3D ARM_CPU(other_cs); + if (g_strcmp0(other_arm->dyn_sysreg_xml.desc, s->str) =3D=3D 0= ) { + cpu->dyn_sysreg_xml.desc =3D other_arm->dyn_sysreg_xml.des= c; + g_string_free(s, true); + s =3D NULL; + break; + } + } + } + + if (s) { + cpu->dyn_sysreg_xml.desc =3D g_string_free(s, false); + } return cpu->dyn_sysreg_xml.num; } =20 @@ -436,7 +453,24 @@ int arm_gen_dynamic_svereg_xml(CPUState *cs, int base_= reg) base_reg++); info->num +=3D 2; g_string_append_printf(s, ""); - cpu->dyn_svereg_xml.desc =3D g_string_free(s, false); + + /* De-duplicate SVE register descriptions */ + if (cs !=3D first_cpu) { + CPUState *other_cs; + CPU_FOREACH(other_cs) { + ARMCPU *other_arm =3D ARM_CPU(other_cs); + if (g_strcmp0(other_arm->dyn_svereg_xml.desc, s->str) =3D=3D 0= ) { + cpu->dyn_sysreg_xml.desc =3D other_arm->dyn_svereg_xml.des= c; + g_string_free(s, true); + s =3D NULL; + break; + } + } + } + + if (s) { + cpu->dyn_svereg_xml.desc =3D g_string_free(s, false); + } =20 return cpu->dyn_svereg_xml.num; } --=20 2.30.2