From nobody Fri Mar 29 05:24:57 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1685024531; cv=none; d=zohomail.com; s=zohoarc; b=KuPwh2t+JcU0EwfLrTwKwavCEtIuDpqHl48YQlVGP09QLspDYbTQfruWejcfcoiivVto5sRYIJ2K+nKIfB72+a+h3CGemI5HyVJBPlvmZ+ftXX5Xm33TQgXxaFCcdrYTLnKDmeQ69z3lrxwkvUAZCkSN5HhFN+Vf1JrQVrgWYU4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685024531; h=Content-Type: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=ky77ChaYoDEEJhaunbK7Hu6dsIrRUOupt2rqtAIhDx8=; b=MQGRiDRjXaRZCeSILn0QXbJ25JkQXOpPDN9s4GyVV/OgCB4+IrQl+8d1yHshSvZyb9uQEznM+m2JneAcBYGW7Ze6yGaZjdWFt/MLiHyjJ+QEzi9yhEJ5xSlokzEL8dH4NmZ8tDyU8ztssosO++aIz2AEbIjGP/rfbcEXToviWg0= 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 16850245315486.252540334562013; Thu, 25 May 2023 07:22:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2Bkq-0004Pd-6h; Thu, 25 May 2023 10:15:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bkk-0004N0-Ga for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:42 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bki-0007Wp-Qr for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:42 -0400 Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-114-kxZR4q-GOSOni0P2WM8_sg-1; Thu, 25 May 2023 10:15:36 -0400 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-94a35b0d4ceso70711966b.3 for ; Thu, 25 May 2023 07:15:36 -0700 (PDT) Received: from [192.168.10.117] ([2001:b07:6468:f312:48f9:bea:a04c:3dfe]) by smtp.gmail.com with ESMTPSA id j11-20020a170906410b00b0096f689848desm893371ejk.195.2023.05.25.07.15.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 07:15:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685024139; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ky77ChaYoDEEJhaunbK7Hu6dsIrRUOupt2rqtAIhDx8=; b=SocOczRyt0IxvEcmuZ5LxXDm5GXXGUPgAdE6q+gVZ7P/2y9NenInsBuG59uJKs12V8tnTd JXvQOZ5IcEEw4y3DLBC87cHcbo3cB6LpgAWFtG9FiYlNFfzfXZLZSpjPQCzVesvbO1tKcy mxt0wxvwGDMYpSSM1frcA/BzndZEDk8= X-MC-Unique: kxZR4q-GOSOni0P2WM8_sg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024135; x=1687616135; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ky77ChaYoDEEJhaunbK7Hu6dsIrRUOupt2rqtAIhDx8=; b=PT8mrTXr8St1JBx2lSjUf1RUilUzygGyOLfDWM12Bp+gfzfuIq888FwmNtJ8OV6Jhl xl3srmiV/iszV8PmQCobaCgBs+evtHBbMck9oSK0ZBpQEzej0UEf6UTPDa58VsmGPiET jnWtE0p0CmRVDI0xLVioOXzixd5iS8AkMFKPy163kWE57NYztzfwakwfbs7ejNobPkZs 6n3NKFcvDi5MvTc6WL8KgxUkAQHgaJFySbgvipVJCIcM4J7dhaYogRL3YRfi2gXRGDAy P7RwzuBQ+2qHuLxyMnoE977LPOJGe58bdXIpjcAij+uMXqll5bUiBEzFV2AKP8/Jhki4 aWzw== X-Gm-Message-State: AC+VfDw2hiunGs9POIgrUIjaZMWdhWaqTDmr1+z6yDVDZVhGEeJac0A7 7jmvKsAHV8wBJLP+nd5YCHHuYP8g5utVY/YdV+B5IW3boD4ni7jCdg4kijqggIaPJ69xO322cgc iC0MyxHz/Amy6OgU4FLxXLU4RNvYwReR3EdkqPXdG6ZeDfK839ucd4Y+6Jsv6IcvOHZbTVbX02V g= X-Received: by 2002:a17:906:4794:b0:96a:48ed:5333 with SMTP id cw20-20020a170906479400b0096a48ed5333mr1988114ejc.50.1685024134795; Thu, 25 May 2023 07:15:34 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5OgAv0uw90VUZ/0e6xEIgA3IyhNagbmAzj+1dZngdwklPaUByrgqsNLHcdH9fcR8lUWwh9dg== X-Received: by 2002:a17:906:4794:b0:96a:48ed:5333 with SMTP id cw20-20020a170906479400b0096a48ed5333mr1988084ejc.50.1685024134380; Thu, 25 May 2023 07:15:34 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Maksim Davydov Subject: [PULL 01/20] target/i386: EPYC-Rome model without XSAVES Date: Thu, 25 May 2023 16:15:13 +0200 Message-Id: <20230525141532.295817-2-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230525141532.295817-1-pbonzini@redhat.com> References: <20230525141532.295817-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; 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, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1685024532694100001 Content-Type: text/plain; charset="utf-8" From: Maksim Davydov Based on the kernel commit "b0563468ee x86/CPU/AMD: Disable XSAVES on AMD family 0x17", host system with EPYC-Rome can clear XSAVES capability bit. In another words, EPYC-Rome host without XSAVES can occur. Thus, we need an EPYC-Rome cpu model (without this feature) that matches the solution of fixing this erratum Signed-off-by: Maksim Davydov Message-Id: <20230524213748.8918-1-davydov-max@yandex-team.ru> Signed-off-by: Paolo Bonzini --- target/i386/cpu.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index a61cd6d99d1f..1242bd541a53 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -4466,6 +4466,16 @@ static const X86CPUDefinition builtin_x86_defs[] =3D= { }, .cache_info =3D &epyc_rome_v3_cache_info }, + { + .version =3D 4, + .props =3D (PropValue[]) { + /* Erratum 1386 */ + { "model-id", + "AMD EPYC-Rome-v4 Processor (no XSAVES)" }, + { "xsaves", "off" }, + { /* end of list */ } + }, + }, { /* end of list */ } } }, --=20 2.40.1 From nobody Fri Mar 29 05:24:57 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1685024717; cv=none; d=zohomail.com; s=zohoarc; b=LMmvIycoLzpQcZ7cE/FZM+xrnyscSmTYozGSmZOMXbS8lv7sFYIkR5uIJrpx++upi9jM5J2irJdCHs45IrIzwuMgHOq1IqSJpSAFcbJLxrKAHGA+9RhiqNL2DjBZyg7T5qb44DHvkuaRkj2w+Dpxwbe/Aa/OeIjjWlr9LRW4+dY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685024717; h=Content-Type: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=6rWFKlVMy0k6QsZKVGs7nbdEOS1yECUynhVrbATw6mE=; b=jo1HHp2sTqRXrif9r0H2gokCxErD/Z7JHQHM8oYi26wVrT8vmdEj8e1rDtpwEsma/fdOlE04dEouN/bSJGQBuDW25U0jiRI6KtxrxD3PQjDKoAkMrCQpAU07wvKQzlps/3JIseOcHVblTVdfteZmUIAJwG0Y9jNWdf+E05QDP7I= 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 1685024717594328.6519083679068; Thu, 25 May 2023 07:25:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2Bkq-0004Qt-6p; Thu, 25 May 2023 10:15:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bkl-0004NO-L8 for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:44 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bkj-0007Wz-9g for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:43 -0400 Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-461-vwj1a1wBOQiBN5bSTRRvyw-1; Thu, 25 May 2023 10:15:38 -0400 Received: by mail-ej1-f69.google.com with SMTP id a640c23a62f3a-96f9aa23593so69026166b.1 for ; Thu, 25 May 2023 07:15:37 -0700 (PDT) Received: from [192.168.10.117] ([2001:b07:6468:f312:48f9:bea:a04c:3dfe]) by smtp.gmail.com with ESMTPSA id z11-20020a170906714b00b0096f89fd4bf8sm900032ejj.122.2023.05.25.07.15.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 07:15:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685024140; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6rWFKlVMy0k6QsZKVGs7nbdEOS1yECUynhVrbATw6mE=; b=jTVof/mgM46xQHGiCi8hzTKjjm0E76Qqm2kmnI89ofrKr0VHVAhIabgNQWYkxMgsxbxUy2 e54TkLZV1pOHCRAphIjO8qL634mSJV7PTRFOHeSxy6Tt2I2ES1K3dxMXmXcnh9SPjIq5Aj +9lcNwlzE34m2mDWMAmt6fxBhAGvLnU= X-MC-Unique: vwj1a1wBOQiBN5bSTRRvyw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024136; x=1687616136; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6rWFKlVMy0k6QsZKVGs7nbdEOS1yECUynhVrbATw6mE=; b=XHGdEZf1Gayq7jeWh4mzn/bYfwaXOA8Gkb71Dy5BMoW7fUkHlQdPnDVJrAvX3GK66J y7PEiPNQVENyTsVMlO3cElcQgwigLBQfB638y+3SPj4TKjFy0oIx+mkqY3uya2zCUoWD p1OMdeBGwegVLCpYsROKpgF+CS4tWbH1VFCob7GvjaD4He0W1qSrQ6YDkWsW3uZKSteZ Ymk24bR+pm/QIDrJrB+4XVMZJpyjKSvRZrkOG/KQ0qFx86Q8aVm83DoOW+ss4qIDc9c+ ifUTbNw9Auxvj1jmy49b4800TU3/nKLcRfnFHNWR2LaxhOPllx2sOskcMAdHVR9qIKkS ma3g== X-Gm-Message-State: AC+VfDxBHGNGIhRML7uPbI7WxB05n/8l5z5nVWHzJdaI6PAjAxcIm2I1 zp9DAIIHtnP5pMeC+KwkA2zIeGKxTmEtSTRKSG0chHYSMmOMXjQyL+9uG+er4gvfsSAkah12Q0N Z8MOiaXTaq6cJi9LyOj0BqjIljCXgx5EVPGmEXD6YX/DvKQ4SkVOCZHuT3zI3vCokH507AxcWgG A= X-Received: by 2002:a17:907:7288:b0:94f:4102:25c8 with SMTP id dt8-20020a170907728800b0094f410225c8mr2007805ejc.61.1685024136465; Thu, 25 May 2023 07:15:36 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4zmLoTpFvXAEsM791/Ongute9HpMDYoxaU9v3+f8yfXQcTGXTZ/dVmrW22l38EffjvYDNdVQ== X-Received: by 2002:a17:907:7288:b0:94f:4102:25c8 with SMTP id dt8-20020a170907728800b0094f410225c8mr2007783ejc.61.1685024136123; Thu, 25 May 2023 07:15:36 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Nicolas Saenz Julienne , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 02/20] meson.build: Fix glib -Wno-unused-function workaround Date: Thu, 25 May 2023 16:15:14 +0200 Message-Id: <20230525141532.295817-3-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230525141532.295817-1-pbonzini@redhat.com> References: <20230525141532.295817-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=170.10.129.124; envelope-from=pbonzini@redhat.com; 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, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1685024719950100003 From: Nicolas Saenz Julienne We want to only enable '-Wno-unused-function' if glib's version is smaller than '2.57.2' and has a G_DEFINE_AUTOPTR_CLEANUP_FUNC() implementation that doesn't take into account unused functions. But the compilation test isn't working as intended as '-Wunused-function' isn't enabled while running it. Let's enable it. Fixes: fc9a809e0d28 ("build: move glib detection and workarounds to meson") Signed-off-by: Nicolas Saenz Julienne Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230524173123.66483-1-nsaenz@amazon.com> Signed-off-by: Paolo Bonzini --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 0a5cdefd4d3d..448b71ad5b5c 100644 --- a/meson.build +++ b/meson.build @@ -770,7 +770,7 @@ if not cc.compiles(''' g_free(f); } G_DEFINE_AUTOPTR_CLEANUP_FUNC(Foo, foo_free) - int main(void) { return 0; }''', dependencies: glib_pc, args: ['-Werror'= ]) + int main(void) { return 0; }''', dependencies: glib_pc, args: ['-Wunused= -function', '-Werror']) glib_cflags +=3D cc.get_supported_arguments('-Wno-unused-function') endif glib =3D declare_dependency(dependencies: [glib_pc, gmodule], --=20 2.40.1 From nobody Fri Mar 29 05:24:57 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1685025160; cv=none; d=zohomail.com; s=zohoarc; b=EenGwRw3gG/lt+ruDAf4QpQRTv5C5+S5tA3APsAg+IvBivuW0VX6au2AeN/mDxIddqC5namEMOkazuPcuoOXoDpjToaSbmCqCKiOgzvQmY92n6/mO3BiC7rHPLWB8g6ubhonhpfdU/JmgRLS32E4PYjBiVkZyuyIiwMwQQAghno= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685025160; h=Content-Type:Content-Transfer-Encoding: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=CbaiOJ+X9dPem4hTQLiSjkY45220lj4bM9vCCks40hU=; b=YFsNPRcxzVYussi2dPni/hSiACw/euSsTRWishSSEjvNyf8K7SHTdX9XDwi73MZ30xAqcdSo8Ih1SqatMd37EzoXfYXmgOx+Z3K+5jop0p80pcdwvPGoepJLk8IbGEq0qsO4euYGvmDB0qGZxVWcMQxatDJVuQSP3blqQAjWYqI= 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 1685025160284398.97182963658656; Thu, 25 May 2023 07:32:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2Bl6-0004f3-23; Thu, 25 May 2023 10:16:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bks-0004WZ-N3 for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:51 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bkr-0007ZX-79 for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:50 -0400 Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-190-K5Pt6cZgNuicshNX-XV2bQ-1; Thu, 25 May 2023 10:15:39 -0400 Received: by mail-ed1-f71.google.com with SMTP id 4fb4d7f45d1cf-513f4c301e8so2758181a12.2 for ; Thu, 25 May 2023 07:15:39 -0700 (PDT) Received: from [192.168.10.117] ([2001:b07:6468:f312:48f9:bea:a04c:3dfe]) by smtp.gmail.com with ESMTPSA id d8-20020a50fb08000000b00502689a06b2sm583730edq.91.2023.05.25.07.15.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 07:15:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685024148; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=CbaiOJ+X9dPem4hTQLiSjkY45220lj4bM9vCCks40hU=; b=hTAbNcFdQAyy8W5VIzeQEx80cDFPtl8y6kkxX9d8j4F4g3BWa+cmsT4ZB4Rq54pbU4pdRG pbQa5Pft4VsCgwSCDRq1VX/eAf59og0X4kiwflp4ZOHWHD7GlbqJ5n2s/2vhutE2tdyxFp uayDU4AXYgbAfwvIwZq718Bb4Tw4wb0= X-MC-Unique: K5Pt6cZgNuicshNX-XV2bQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024138; x=1687616138; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CbaiOJ+X9dPem4hTQLiSjkY45220lj4bM9vCCks40hU=; b=WYwtC9oBjbQZ/sXtVnc2DYvtBY7SVCXxESdaSa8cAY72Pz1FDjvULgmLa5BGeyJ8M4 n07JeNjRX/Kk6cnG9qM8D3+TG6RZRBqwcS2M3Xj38dDgiKyQywbPBmN7p5S0LmOxWD1b bqBAnbXK0fuFqGYB27tJwM8CZtOadDvG6PGI7DNJLPwR52rNzgGYyTRlDYZH5CYVSB8N mlDQlFaAC8fIHZY513a9iHTSJ31PuedTL1wrOhKQezGvb0MLSB+MUwMyB2Sg0c7ZIIpk y4RWETOqljdrKjjOwiGUv8E2aPdtxg8FdmdXDBdQX5meB8q+toyFS9wf7AAA1RN+XxQi qfvw== X-Gm-Message-State: AC+VfDyD4OzxPQZywVLLVKdi0GhDBSpTEYz70KPtE6wElIAFfR67z+lb 8PUUOoSwm9ipY43X79byM7gWrgG4fRAJI/EMqXidG1Dh1/RBNfsnEcuXHATzOo0HdOa398uU7x6 LW1bA3SPnAfiAckAfXwC3mU2wcyKotkPBd97zGfij6z3lzb4dRc1ct9ZnC/8bIcmEAgTohI9qp5 4= X-Received: by 2002:aa7:d448:0:b0:509:d7d0:d71a with SMTP id q8-20020aa7d448000000b00509d7d0d71amr5074986edr.26.1685024138006; Thu, 25 May 2023 07:15:38 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4ohVSuPlRq9hKLYVvwpQu99Byyl4T1ent/ynfk2oV/YRPbwfvYgtrZpWbMrILwhJsh6tTyNw== X-Received: by 2002:aa7:d448:0:b0:509:d7d0:d71a with SMTP id q8-20020aa7d448000000b00509d7d0d71amr5074973edr.26.1685024137774; Thu, 25 May 2023 07:15:37 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 03/20] meson: fix rule for qemu-ga installer Date: Thu, 25 May 2023 16:15:15 +0200 Message-Id: <20230525141532.295817-4-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230525141532.295817-1-pbonzini@redhat.com> References: <20230525141532.295817-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; 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, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1685025161471100001 Content-Type: text/plain; charset="utf-8" The bindir variable is not available in the "glib" variable, which is an in= ternal dependency (created with "declare_dependency"). Use glib_pc instead, which= contains the variable as it is instantiated from glib-2.0.pc. Signed-off-by: Paolo Bonzini --- qga/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qga/meson.build b/qga/meson.build index 622b5f94a232..d3291b4376cb 100644 --- a/qga/meson.build +++ b/qga/meson.build @@ -154,7 +154,7 @@ if targetos =3D=3D 'windows' qemu_ga_msi_arch[cpu], qemu_ga_msi_vss, '-D', 'BUILD_DIR=3D' + meson.project_build_r= oot(), - '-D', 'BIN_DIR=3D' + glib.get_variable('bind= ir'), + '-D', 'BIN_DIR=3D' + glib_pc.get_variable('b= indir'), '-D', 'QEMU_GA_VERSION=3D' + config_host['QE= MU_GA_VERSION'], '-D', 'QEMU_GA_MANUFACTURER=3D' + config_hos= t['QEMU_GA_MANUFACTURER'], '-D', 'QEMU_GA_DISTRO=3D' + config_host['QEM= U_GA_DISTRO'], --=20 2.40.1 From nobody Fri Mar 29 05:24:57 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1685028293; cv=none; d=zohomail.com; s=zohoarc; b=LripHhbr/riuHXVkyJ23Axc9dn5vch6toR6j6vZ3phy4AzvpeVCP/9EEPbmDy17h5gIc2S9h71NC87FXqNjcHyhoPaVApmAukAeOoXFsXW+PncLZEwgABq4QKWENY5SiIMFW16CcFYfSHdC8z6iApZ7s54PnCWhZ3WJ3d/cAa78= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685028293; h=Content-Type:Content-Transfer-Encoding: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=Ue2IISUToeEGa1zJJrZYBh+J7bbH46VZA+Gd1EDOEyQ=; b=W+2zl+JM3G/DmQcPx01bIGzA8OcWhu49n2p9JLVsLNHhhxBXqaDvpuiSPeKS/6SOFZwOa+9jktO2nhMaXyjdSM7ARzzrLL4wnhky9ulQTME0A1abPILh0eP31LxqTIq6zvVmS7aLj0/1NEX1oHdNFDiP/wIprAx9VAsBCGxTuYE= 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 1685028293501827.6700807451751; Thu, 25 May 2023 08:24:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2Bkv-0004Yk-Rq; Thu, 25 May 2023 10:15:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bkr-0004WV-BD for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:51 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bko-0007YF-RQ for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:49 -0400 Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-451-uAMTOqJuNHCJOQG__m1PAg-1; Thu, 25 May 2023 10:15:41 -0400 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-96f46e5897eso85654366b.3 for ; Thu, 25 May 2023 07:15:40 -0700 (PDT) Received: from [192.168.10.117] ([2001:b07:6468:f312:48f9:bea:a04c:3dfe]) by smtp.gmail.com with ESMTPSA id t14-20020a170906948e00b0096f8d8bd046sm889250ejx.187.2023.05.25.07.15.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 07:15:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685024145; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Ue2IISUToeEGa1zJJrZYBh+J7bbH46VZA+Gd1EDOEyQ=; b=NBUOqvm3xusWjawmKF8fEjFIQAGlvb197TB7C+fgCw+T8+jFI3woSj9+vLjVftZmvZ5t/S GsBHzs+0mKreY8QPMsFIyknNEtEpJp9nWSX1dQ8IfDoxZAfG3D4fHkN+l0tABu7+g4g7JC dpQrBUgHMHC8Gy/banQ5xF6bOZJ2Dj8= X-MC-Unique: uAMTOqJuNHCJOQG__m1PAg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024139; x=1687616139; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ue2IISUToeEGa1zJJrZYBh+J7bbH46VZA+Gd1EDOEyQ=; b=eL75luDgcSnumlEqktMv+Za7uhbo8jNPa+j9ohEGlThHF0LLEHO1De7ACc+NK4UAK+ Vr3+DxYHEH54s6yiXABDzan0wgLd1fe2/zbp5sfHvGlDDwmuwPJYKJzOAEJphigzKrGx oh8DWOySScclK9oMDxAcPs4sruB+OzTBEIlEalI68+tKLKbxJ6CFyvT9A4r9WsbiwyJP xOUeQkljJA/CpNukqv7afsq5s4fjw+JmVe/CEnKD78DxVZ1i3DgcEr9S5jWlQiJQJv1O rjrg6Wlo9KL9pt6sMuyhrjTZATvyNArhQ0UyrmfYvIoQk4JKpWA1G68D1bUO8IJnuRX9 rFHQ== X-Gm-Message-State: AC+VfDwGTJPwnVQBClhOiT8B88zOwfbyoEHYDFcVs2WCDcYSZYAIDiCy wLhqInMJzdqmhWybuFtCzgJGuDpUmJOq5EXzpiZny/CCnh/16i6S8/aONyoR0g48mYj7g2HdmdF oqo728/mHcLhhEF0oKKUZk/DPGCRZOFnRH4oBYBrZ2s3Ne0J9DmoDIwKrcbCqq4IymSLwnaxbNp M= X-Received: by 2002:a17:907:60cc:b0:970:132f:698f with SMTP id hv12-20020a17090760cc00b00970132f698fmr2386779ejc.2.1685024139543; Thu, 25 May 2023 07:15:39 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5EtY2hCqm9r+Bh5dftpTRBSduBwcdXSMnk3iEa4aQb+dV8+MNOuDqLw4vXllhzOW8ZCDMDig== X-Received: by 2002:a17:907:60cc:b0:970:132f:698f with SMTP id hv12-20020a17090760cc00b00970132f698fmr2386738ejc.2.1685024139094; Thu, 25 May 2023 07:15:39 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 04/20] meson: move -no-pie from linker to compiler Date: Thu, 25 May 2023 16:15:16 +0200 Message-Id: <20230525141532.295817-5-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230525141532.295817-1-pbonzini@redhat.com> References: <20230525141532.295817-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; 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, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1685028295148100003 Content-Type: text/plain; charset="utf-8" The large comment in the patch says it all; the -no-pie flag is broken and this is why it was not included in QEMU_LDFLAGS before commit a988b4c5614 ("build: move remaining compiler flag tests to meson", 2023-05-18). And some distros made things even worse, so we have to add it to the compiler command line. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1664 Signed-off-by: Paolo Bonzini --- meson.build | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/meson.build b/meson.build index 448b71ad5b5c..2e47608353d1 100644 --- a/meson.build +++ b/meson.build @@ -265,12 +265,21 @@ endif =20 # Meson currently only handles pie as a boolean for now, so if the user # has explicitly disabled PIE we need to extend our cflags. +# +# -no-pie is supposedly a linker flag that has no effect on the compiler +# command line, but some distros, that didn't quite know what they were +# doing, made local changes to gcc's specs file that turned it into +# a compiler command-line flag. +# +# What about linker flags? For a static build, no PIE is implied by -stat= ic +# which we added above (and if it's not because of the same specs patching, +# there's nothing we can do: compilation will fail, report a bug to your +# distro and do not use --disable-pie in the meanwhile). For dynamic link= ing, +# instead, we can't add -no-pie because it overrides -shared: the linker t= hen +# tries to build an executable instead of a shared library and fails. So +# don't add -no-pie anywhere and cross fingers. :( if not get_option('b_pie') - qemu_common_flags +=3D cc.get_supported_arguments('-fno-pie') - if not get_option('prefer_static') - # No PIE is implied by -static which we added above. - qemu_ldflags +=3D cc.get_supported_link_arguments('-no-pie') - endif + qemu_common_flags +=3D cc.get_supported_arguments('-fno-pie', '-no-pie') endif =20 if not get_option('stack_protector').disabled() --=20 2.40.1 From nobody Fri Mar 29 05:24:57 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1685024494; cv=none; d=zohomail.com; s=zohoarc; b=L3Sr2IztCCMgsTCasofBUVfX1PpYp7/Ar7tZ2gkgyxIo5MLprSzHQeVf1svWqIJ/j6sy1Ot2KClKAp1dVTVeWX3DuRiIpyJE7jVSCdzsD37Xq8XrRFjZnhmZOg2ROuQ6R3Nt5RCjPetockTQhK9p8ubPEvwo9Qy5QZjoFGIc8vU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685024494; h=Content-Type: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=PY7zMTVVpyEJMUHIwvD7udn+W7XfH9WjAVo65QyNQzY=; b=mb5klY05JUxt48d7oe1k9ADrR2aIarV8mHXFYNtEBJ4DQIwuaeVTottZlN59o9VuicvgWP/mubijLi3rYtwZIhnqRwMdV2GPSw63Ee5jQOVIF+gAvX9RT3JWqAXYUM8Xn4DyGELwL70Q0BPavjo0sSZBiJQ+14ed3mYRE7h9Keg= 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 1685024494679693.5674219207842; Thu, 25 May 2023 07:21:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2Bkw-0004Zv-SH; Thu, 25 May 2023 10:15:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bkr-0004WT-4D for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:51 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bkp-0007YQ-HA for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:48 -0400 Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-210-Ply1kpZ7N7mKYyCbskqb4w-1; Thu, 25 May 2023 10:15:42 -0400 Received: by mail-ed1-f70.google.com with SMTP id 4fb4d7f45d1cf-510ddadbec6so2730358a12.3 for ; Thu, 25 May 2023 07:15:42 -0700 (PDT) Received: from [192.168.10.117] ([2001:b07:6468:f312:48f9:bea:a04c:3dfe]) by smtp.gmail.com with ESMTPSA id e10-20020a1709061e8a00b0094ebc041e20sm893345ejj.46.2023.05.25.07.15.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 07:15:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685024146; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=PY7zMTVVpyEJMUHIwvD7udn+W7XfH9WjAVo65QyNQzY=; b=i0G+Uo99jg7Y7qcScIBC73G2K7ZQbGDZTVRrdX+Qq8ZvHNOnWHKcMHtV/kFfZXvTXQZ8Bw zQC0Sjs5oeTp46kBkVARlQZrw/cg/rszDNuyw5O5di2f2mfjhCMWyW6q/SkWn1Ph4wTVqw OQxFoapSG5EF2QMNKZU/afEPfetwufk= X-MC-Unique: Ply1kpZ7N7mKYyCbskqb4w-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024141; x=1687616141; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PY7zMTVVpyEJMUHIwvD7udn+W7XfH9WjAVo65QyNQzY=; b=Q7lOrPEJGV4w8UPnYVxH3zj4VNDGzeuSLvPhbK0PcZJEjl/25MCz91RZ7VQZ6219Z0 QAmWPfNlHgZw3hVfa+bgT6U7699h4hNOl3/QOkkdMmz912LagSRhAigpJh/pNeNHIDa4 jQqMTwQfBzw1XzCNaLtr4h7hGQyj2CBqf39tbBVyifRlmSeas6e8914ioF1bA6K/qi2/ so8w1nCmlAk7k/k2DfDd1uCqcxFrCAE3lBXV56kgQvk/PrCoS98ay193f8jCg57A1R+F gRJG2Yldk50GwjoUr59IirM3xSDiVJlxY+6lRdruUe1NxuFcTDRECPjdSEvjA8JscOPb 3uzA== X-Gm-Message-State: AC+VfDxUPF1nC4SL9if6V1hlUYHukgvLlOhtVDyNzZZT/3XxlS4LWcjw Pqq9MzywUC6xQlkAAjFowu0qyVKwPrhSJmEoMYCfoqfMPvyuXjPgBL8iC6yS7Y/f8JrYiyso0HE lJEhD41XdmghGVYLWAmNCnyz7Du/wYc1G8f4n1xjhRnSWw14+pZ1n80GydsgjxUp8iH1rIZKujD I= X-Received: by 2002:a17:907:807:b0:96a:246b:c65d with SMTP id wv7-20020a170907080700b0096a246bc65dmr1690874ejb.12.1685024140909; Thu, 25 May 2023 07:15:40 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5M2I2lMSz3QGkQdapxFJz43F5PvQEq5CXosVp7LL49fMTlC6UUeexQ6Yx3Ho4wUkKJBr9dJw== X-Received: by 2002:a17:907:807:b0:96a:246b:c65d with SMTP id wv7-20020a170907080700b0096a246bc65dmr1690847ejb.12.1685024140582; Thu, 25 May 2023 07:15:40 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PULL 05/20] tests/docker: simplify HOST_ARCH definition Date: Thu, 25 May 2023 16:15:17 +0200 Message-Id: <20230525141532.295817-6-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230525141532.295817-1-pbonzini@redhat.com> References: <20230525141532.295817-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=170.10.133.124; envelope-from=pbonzini@redhat.com; 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, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1685024496922100003 ARCH is always empty, so just define HOST_ARCH as the result of uname. Acked-by: Alex Benn=C3=A9e Signed-off-by: Paolo Bonzini --- tests/docker/Makefile.include | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 94015253254c..142e8605eee9 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -6,7 +6,7 @@ NULL :=3D SPACE :=3D $(NULL) # COMMA :=3D , =20 -HOST_ARCH =3D $(if $(ARCH),$(ARCH),$(shell uname -m)) +HOST_ARCH =3D $(shell uname -m) USER =3D $(if $(NOUSER),,$(shell id -un)) UID =3D $(if $(NOUSER),,$(shell id -u)) =20 --=20 2.40.1 From nobody Fri Mar 29 05:24:57 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1685025619; cv=none; d=zohomail.com; s=zohoarc; b=mkFLjS5DnnLpP6ir1zy05W6izS99pmpZ9JOsmQRHDAxKT+bFo+bQnPo2TNyxqBElOf5O6qId75jMuChpt5zfTkgAfVvKZCZl6hFzlBSTvmgAVvVO+Aas7CJyhYIBM0zRcyX1X/0ljkua6KbGvoCTy7fV0FIQiVMZ9L8dg2cIzO8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685025619; h=Content-Type: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=p/jNkPoTNc33RHmtgQTu7JrJl3cHFubTvj/jW5MYZE4=; b=WnDgW68MBXJT2fWSSPZf670yPXS3OFNdH9vCO4r48kBa0VwpYvQuhdeUQaoXbSBsXOlJJDAE6vvaI8ZDZJbrAUj5ks2Nra5mxPi7KxgvIg/In+fMhMsxFuljwmmrmJ4lwNwiZ/Bri+ryy3nRgK/8x1SHNlo44GBkLrar0o4zVyo= 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 1685025619728675.6395177206866; Thu, 25 May 2023 07:40:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2Bkw-0004ZT-6B; Thu, 25 May 2023 10:15:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bkq-0004WS-Tx for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:51 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bko-0007Y8-A5 for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:48 -0400 Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-312-tSbud7NnO-KzgkP-zgaWtQ-1; Thu, 25 May 2023 10:15:43 -0400 Received: by mail-ej1-f69.google.com with SMTP id a640c23a62f3a-96f4d917e06so76542966b.1 for ; Thu, 25 May 2023 07:15:43 -0700 (PDT) Received: from [192.168.10.117] ([2001:b07:6468:f312:48f9:bea:a04c:3dfe]) by smtp.gmail.com with ESMTPSA id d19-20020aa7ce13000000b0050bd4b8ca8fsm589171edv.14.2023.05.25.07.15.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 07:15:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685024145; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=p/jNkPoTNc33RHmtgQTu7JrJl3cHFubTvj/jW5MYZE4=; b=G9hzzhuxa1kcaQZvgcefNbbigT8ghbTxJ79h6p3ZMnTajqD+JgI+ridM3dSQd8wpkUmkbP z755U8tHokOmKUjA3txV/1Rz+j/JECiya05ydKmYYpH3g2z1n01loSTl4SdETlx8oYIzUB OvuzvjtYrGJcedrYdJ1LBFmji5aE5Js= X-MC-Unique: tSbud7NnO-KzgkP-zgaWtQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024142; x=1687616142; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=p/jNkPoTNc33RHmtgQTu7JrJl3cHFubTvj/jW5MYZE4=; b=jKUxGs+AadICFeywfReP0qan6uIvkoRbSkur6q4Cn5bEK417peg8Zduhp5w7PZRHTo 0Va1BvGkbNE5evX4ypXEjCp1zKFj6+Aftt1FJnHjtvOxGjZKNR/MYLK3CUpIpj6Xsm5T uo63XzAENbQZ+5aa8ZtLMTHkzSOLxGfV7em7BFG9H7M1+QjVL8RI8012jwZ1qia2vybd nBA0zx1p8FNqLdTMQA+n7pqk8gqUAx9lk4vZTcU66shghPz3Tn8tF1bv2AfFoEl0yrMw Xz94Oizg+zOmUCwQEugrzpZFw39owAvuR385WkuHDhNEP+5Po09Lbn7JCT7ikSVnbKiF pFZg== X-Gm-Message-State: AC+VfDz0Dg2O1abpXtkBLjz4nuyD8r/e91QbCxPG9l1utqQTTgEWyqGk OzDWjad9Jmnfliw+HsX27J7Hfu1WlJwqzWcITNfzooyJF0v0wmSWX215kA85o6EA6ocD11svNau QpKh6eqiNWZMOE8iXs/nQ11Bt6ME43pj9vmWSB85Q/cB1TOTigZWCU71bjcR9oAQrW82gKcwVY7 c= X-Received: by 2002:a05:6402:27d4:b0:50d:56f3:76ed with SMTP id c20-20020a05640227d400b0050d56f376edmr2618624ede.11.1685024142480; Thu, 25 May 2023 07:15:42 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ70JKTzCF01ORrMpfMGlS6XP123V5WNV8uCRQsETdS+Thi1N6BFuvGSDcJzZqXr0QOpliq1tA== X-Received: by 2002:a05:6402:27d4:b0:50d:56f3:76ed with SMTP id c20-20020a05640227d400b0050d56f376edmr2618603ede.11.1685024142170; Thu, 25 May 2023 07:15:42 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: John Snow , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PULL 06/20] tests/vm: fix and simplify HOST_ARCH definition Date: Thu, 25 May 2023 16:15:18 +0200 Message-Id: <20230525141532.295817-7-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230525141532.295817-1-pbonzini@redhat.com> References: <20230525141532.295817-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=170.10.133.124; envelope-from=pbonzini@redhat.com; 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, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1685025621108100003 ARCH is always empty, so just define HOST_ARCH as the result of uname. The incorrect definition was not being used because the "ifeq" statement is wrong; replace it with the same idiom based on $(realpath) that the main Makefile uses. With this change, vm-build-netbsd in a configured tree will not use the PYTHONPATH hack. Reported-by: John Snow Reviewed-by: Alex Benn=C3=A9e Signed-off-by: Paolo Bonzini --- tests/vm/Makefile.include | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include index 2cc2203d0916..c2a8ca1c175a 100644 --- a/tests/vm/Makefile.include +++ b/tests/vm/Makefile.include @@ -1,14 +1,12 @@ # Makefile for VM tests =20 # Hack to allow running in an unconfigured build tree -ifeq ($(wildcard $(SRC_PATH)/config-host.mak),) +ifeq ($(realpath $(SRC_PATH)),$(realpath .)) VM_PYTHON =3D PYTHONPATH=3D$(SRC_PATH)/python /usr/bin/env python3 VM_VENV =3D -HOST_ARCH :=3D $(shell uname -m) else VM_PYTHON =3D $(TESTS_PYTHON) VM_VENV =3D check-venv -HOST_ARCH =3D $(ARCH) endif =20 .PHONY: vm-build-all vm-clean-all @@ -23,6 +21,7 @@ ARM64_IMAGES +=3D ubuntu.aarch64 centos.aarch64 endif endif =20 +HOST_ARCH =3D $(shell uname -m) ifeq ($(HOST_ARCH),x86_64) IMAGES=3D$(X86_IMAGES) $(if $(USE_TCG),$(ARM64_IMAGES)) else ifeq ($(HOST_ARCH),aarch64) --=20 2.40.1 From nobody Fri Mar 29 05:24:57 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1685024673; cv=none; d=zohomail.com; s=zohoarc; b=LVHst5cztVCtfJER+r2RKEnTurBKzbE7Gcovpdp6IXj4rO56fh6kdzmMTvFAyDbwKU3prMHFMfTuUdjFEYiJ2y9n3vwpOmqCNJFucWaSm3jmoKJ3x3eyKW7uy++Ak3TGYaVvC7pXxf6qyeO9tS7zU1J5dD8HmpPLfks2S3ORBUw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685024673; h=Content-Type: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=Fzs0h2LMkCyS2RcHmjcBAfl2R0ztIYcRkkcOdDDYgWk=; b=J+mj3bbjQJIVYm1bfGjhKt7zk6F5tHud76jILb2SMkpBrRBM8jvr0YoN4bkydvQBs10gVRMzacncWfNXepwxqJUvtBS3XXajh9nWbQr0A1zZZ+KfrjCyCV3MRrO9Gw/8cT+DunqXsgFAT8Z1ziDigiM7jKUamsbuTVNrxXQmYdU= 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 1685024673526942.3011962436768; Thu, 25 May 2023 07:24:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2Bkx-0004aj-Mx; Thu, 25 May 2023 10:15:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bkr-0004WU-97 for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:51 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bkp-0007Yl-Mu for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:49 -0400 Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-502-tVHd1N4oPnKWi8oSrI6yIg-1; Thu, 25 May 2023 10:15:45 -0400 Received: by mail-ed1-f72.google.com with SMTP id 4fb4d7f45d1cf-510d8e4416cso2868218a12.3 for ; Thu, 25 May 2023 07:15:45 -0700 (PDT) Received: from [192.168.10.117] ([2001:b07:6468:f312:48f9:bea:a04c:3dfe]) by smtp.gmail.com with ESMTPSA id bq13-20020a170906d0cd00b00965c6c63ea3sm903763ejb.35.2023.05.25.07.15.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 07:15:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685024147; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Fzs0h2LMkCyS2RcHmjcBAfl2R0ztIYcRkkcOdDDYgWk=; b=HurCLQw0hU1NMwAr91tL1RnVM4qhTvQOK1jSCveykKeFtE3zNY69vBQsQIuzYQjY1FxxUW Mx76c4uv4h29SiOE31443Wt7zI+UBYtg8kczMSVjsk+bo7lsuhQNKWkUsLtKMzY6A+voFb y7ZNOeUDwj6nqSB8F17bhFt7cHbxlPM= X-MC-Unique: tVHd1N4oPnKWi8oSrI6yIg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024144; x=1687616144; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Fzs0h2LMkCyS2RcHmjcBAfl2R0ztIYcRkkcOdDDYgWk=; b=AAFs2Bqr/p/p96+fABhDuzxhD1ScD8zBeJ0YNHHj07kLtvtIHG29xC2b/DNp6wMFsk Q5ViOq/HtD31dKCSigaXAf6kMzKa2ehWvb27SbqR0uPs1dqCXH59nmCZoWzIyiF8GITl 2BzvcnZBMb9c5wCzdr4GpDSrqbiLoI46WaKmqusGlZxSWhbgvJKiU86yko42e3mfS80+ j9CjIEpxBOvPYVVqsZM3aJFvIOzc13px3LK5aAjMXwqA5//UIhEBVmzTYyCAwivqJjVr ckWLLYijObgu/4l5DMgXs6sjLBBlrbRmW2dy4jtUtcTUD9962H0c0qqluq5tuZewh/0o QqCQ== X-Gm-Message-State: AC+VfDziCLupGYbai3io5zDgB834IaEcHbpXVPNuURQ5WgrcDGmTHILV AnR6XHa0rE6dkOcUzaVAzldjuOSxXhV2/GUMLvtXTKeSJ22vItYu0cYWMDV/PCYEIvwmRal9rV3 /+OBA9x08tr/CalQomSyOqd33Fh1ZM1mJ3kFbrRAd0maQGWj/xVeR8yI+WXQMZTFz2b3rJvFkp7 8= X-Received: by 2002:a17:907:6d94:b0:96f:bab6:4db5 with SMTP id sb20-20020a1709076d9400b0096fbab64db5mr1741731ejc.28.1685024143947; Thu, 25 May 2023 07:15:43 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6yb+yMvoihMNSulHTm8GWjfey/Lr0T32EJfSwRZS/kc8ltDAkiliLvZ/y4gTm4uBLqnQfhWA== X-Received: by 2002:a17:907:6d94:b0:96f:bab6:4db5 with SMTP id sb20-20020a1709076d9400b0096fbab64db5mr1741707ejc.28.1685024143636; Thu, 25 May 2023 07:15:43 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PULL 07/20] Makefile: remove $(TESTS_PYTHON) Date: Thu, 25 May 2023 16:15:19 +0200 Message-Id: <20230525141532.295817-8-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230525141532.295817-1-pbonzini@redhat.com> References: <20230525141532.295817-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=170.10.133.124; envelope-from=pbonzini@redhat.com; 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, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1685024674064100005 It is now the same as $(PYTHON), since the latter always points at pyvenv/b= in/python3. Reviewed-by: Alex Benn=C3=A9e Signed-off-by: Paolo Bonzini --- tests/Makefile.include | 8 +++----- tests/vm/Makefile.include | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/tests/Makefile.include b/tests/Makefile.include index 5b838ec438b0..0184ef223737 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -89,11 +89,9 @@ distclean-tcg: $(DISTCLEAN_TCG_TARGET_RULES) # Build up our target list from the filtered list of ninja targets TARGETS=3D$(patsubst libqemu-%.fa, %, $(filter libqemu-%.fa, $(ninja-targe= ts))) =20 -TESTS_VENV_DIR=3D$(BUILD_DIR)/pyvenv TESTS_VENV_TOKEN=3D$(BUILD_DIR)/pyvenv/tests.group TESTS_VENV_REQ=3D$(SRC_PATH)/tests/requirements.txt TESTS_RESULTS_DIR=3D$(BUILD_DIR)/tests/results -TESTS_PYTHON=3D$(TESTS_VENV_DIR)/bin/python3 ifndef AVOCADO_TESTS AVOCADO_TESTS=3Dtests/avocado endif @@ -109,7 +107,7 @@ else endif =20 quiet-venv-pip =3D $(quiet-@)$(call quiet-command-run, \ - $(TESTS_PYTHON) -m pip -q --disable-pip-version-check $1, \ + $(PYTHON) -m pip -q --disable-pip-version-check $1, \ "VENVPIP","$1") =20 $(TESTS_VENV_TOKEN): $(TESTS_VENV_REQ) @@ -131,7 +129,7 @@ FEDORA_31_DOWNLOAD=3D$(filter $(FEDORA_31_ARCHES),$(FED= ORA_31_ARCHES_CANDIDATES)) # download one specific Fedora 31 image get-vm-image-fedora-31-%: check-venv $(call quiet-command, \ - $(TESTS_PYTHON) -m avocado vmimage get \ + $(PYTHON) -m avocado vmimage get \ --distro=3Dfedora --distro-version=3D31 --arch=3D$*, \ "AVOCADO", "Downloading avocado tests VM image for $*") =20 @@ -142,7 +140,7 @@ JOBS_OPTION=3D$(lastword -j1 $(filter-out -j, $(filter = -j%,$(MAKEFLAGS)))) =20 check-avocado: check-venv $(TESTS_RESULTS_DIR) get-vm-images $(call quiet-command, \ - $(TESTS_PYTHON) -m avocado \ + $(PYTHON) -m avocado \ --show=3D$(AVOCADO_SHOW) run --job-results-dir=3D$(TESTS_RESUL= TS_DIR) \ $(if $(AVOCADO_TAGS),, \ --filter-by-tags-include-empty \ diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include index c2a8ca1c175a..f0f5d32fb0f0 100644 --- a/tests/vm/Makefile.include +++ b/tests/vm/Makefile.include @@ -5,7 +5,7 @@ ifeq ($(realpath $(SRC_PATH)),$(realpath .)) VM_PYTHON =3D PYTHONPATH=3D$(SRC_PATH)/python /usr/bin/env python3 VM_VENV =3D else -VM_PYTHON =3D $(TESTS_PYTHON) +VM_PYTHON =3D $(PYTHON) VM_VENV =3D check-venv endif =20 --=20 2.40.1 From nobody Fri Mar 29 05:24:57 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1685024563; cv=none; d=zohomail.com; s=zohoarc; b=D4ixqRerTY8goPICF+bJe+zevdJD01IxSg2UMsf+NRBMjBsDPLdo9OGlbbvhLy487i69PxPaimIjyKLBQo56icvlvf5mdm45TyQSceyzM53dsaWs0x5faxwaQnr/xn0x/Nt7jhLzV/SzgygEInu+u778/OwHl4I2AUzPgRLBxBE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685024563; h=Content-Type: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=736SfH3YIdCn6Y9xsP6/aOMOIdb4c0bbm/WlLngexMg=; b=NxYiK9gBea1AvFGgGv9E4k8KFbI7v/XbtU5AU/RsTDP36ebfjA4rKxgeQyiQiyxiXMXrlH+H92seb9JsHJUns617fKyx2x0+nFSclGHEUbzfbXBpIoc67mH4atoVpyeLOisk6cbbda0KATH4EmWngpDqp9c6rSutP89gWXz2os4= 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 1685024563346751.7228495161078; Thu, 25 May 2023 07:22:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2Bkx-0004cW-Sd; Thu, 25 May 2023 10:15:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bkv-0004XX-9N for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:53 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bkt-0007bO-BT for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:53 -0400 Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-214-MlOLFhELMS65yHmvkbt5sA-1; Thu, 25 May 2023 10:15:47 -0400 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-96f6944c529so68899166b.2 for ; Thu, 25 May 2023 07:15:47 -0700 (PDT) Received: from [192.168.10.117] ([2001:b07:6468:f312:48f9:bea:a04c:3dfe]) by smtp.gmail.com with ESMTPSA id p13-20020a170906838d00b00965d4b2bd4csm910097ejx.141.2023.05.25.07.15.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 07:15:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685024150; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=736SfH3YIdCn6Y9xsP6/aOMOIdb4c0bbm/WlLngexMg=; b=KrN0y3f90Qt/EpZyXZfQ65mBf2GK/O2M3UnL3xU0+3rk4Ck4ZK2Sm9ds/i6PqKOJkSdleC cSysjWu13u8SoLu7ZHY5nh8O2NX8hIlCX6iatjhKVdmdTmuTu0b5RnsS/epSCz4cvbm0Kf NXz6PyP92F4jHfLZhL3ZPDmJKQIeFSI= X-MC-Unique: MlOLFhELMS65yHmvkbt5sA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024146; x=1687616146; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=736SfH3YIdCn6Y9xsP6/aOMOIdb4c0bbm/WlLngexMg=; b=BrxTm77a4ZIhWUUgg7m7eUT3Qi5AvAJedaB+vzWB/a0C+iOmMwqu/znN3nnrnnQG0H 3XJbsuyqU679uJGwnwjkOb7i88Ub2SCWMF+PyUwYAD+MMtd2jtv/5a9fCU81I9ojP3M/ ILOMheIUmgPb5PImnpCotA/uovlA72zAotBNrDl0e2y/fQPj8evlXmvwxt5So5c14Vqc siFyK/qVSItC9eN8mE4K0XPbyYQwhO0cyooKcRYek+yMF+j6FyZ3WwEd4ip6EnlHhFIx TUVXhmhJA8FOAJKUYSLlDjgQr4E7HOAwcGjHEvQArtz0Y/nMyPYyGac7+ZLRq8J0Sewh gLSg== X-Gm-Message-State: AC+VfDyYBgAzNRf4UIvQRoYBDIPuasDMroYFjYOXFccUTm7o3vyIOVl+ 6Lst2T2ayjmxJ1g/AE9uhYp6t2AfkkO1jXCGh23pnCTHv4E9LUGW9Co89PnDfV35LGzXi2urHDi /t9CzebUeHptWQPF/CuWeu7ACkazVzjQBkZSHFXXQoN3EQM9kPuA/F4YKSugSRxFR7y0YABjTm4 U= X-Received: by 2002:a17:907:5c2:b0:96f:ee6d:fed5 with SMTP id wg2-20020a17090705c200b0096fee6dfed5mr1672061ejb.72.1685024145821; Thu, 25 May 2023 07:15:45 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5lcnqjgkkKwH9z5t9njcXBSqCI4wLqIZasdQpSr8q1oAHK149VIIwh9+fSDEjbN6GUehQMyg== X-Received: by 2002:a17:907:5c2:b0:96f:ee6d:fed5 with SMTP id wg2-20020a17090705c200b0096fee6dfed5mr1672044ejb.72.1685024145554; Thu, 25 May 2023 07:15:45 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Ryan Wendland Subject: [PULL 08/20] usb/ohci: Set pad to 0 after frame update Date: Thu, 25 May 2023 16:15:20 +0200 Message-Id: <20230525141532.295817-9-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230525141532.295817-1-pbonzini@redhat.com> References: <20230525141532.295817-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; 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, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1685024564960100006 Content-Type: text/plain; charset="utf-8" When the OHCI controller's framenumber is incremented, HccaPad1 register should be set to zero (Ref OHCI Spec 4.4) ReactOS uses hccaPad1 to determine if the OHCI hardware is running, consequently it fails this check in current qemu master. Signed-off-by: Ryan Wendland Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1048 Signed-off-by: Paolo Bonzini --- hw/usb/hcd-ohci.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/usb/hcd-ohci.c b/hw/usb/hcd-ohci.c index 88d2b4b13c1d..cc5cde698328 100644 --- a/hw/usb/hcd-ohci.c +++ b/hw/usb/hcd-ohci.c @@ -1239,6 +1239,8 @@ static void ohci_frame_boundary(void *opaque) /* Increment frame number and take care of endianness. */ ohci->frame_number =3D (ohci->frame_number + 1) & 0xffff; hcca.frame =3D cpu_to_le16(ohci->frame_number); + /* When the HC updates frame number, set pad to 0. Ref OHCI Spec 4.4.1= */ + hcca.pad =3D 0; =20 if (ohci->done_count =3D=3D 0 && !(ohci->intr_status & OHCI_INTR_WD)) { if (!ohci->done) { --=20 2.40.1 From nobody Fri Mar 29 05:24:57 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1685024664; cv=none; d=zohomail.com; s=zohoarc; b=nk6LjJsFI0BuAwlOPumrBiHKdSdpuRi9yyZaKiYhWZxLdA4JYYh7lCqlGVhq44wp5PHFtzdc3l5Lau40ohGZxUbVyfoqyau6+E/2X+4vjode7MlHHtwjJq+OtxsclY0xuBLkum7J92v1F/X1NeGoAR+cBGflRyn8l0gYiA953CI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685024664; h=Content-Type: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=BjeS6iLp4UjvPt5HAgjITA24epCPtONvMeAdxiTAED0=; b=YJTI+N1AkzuX5b70pO583MyxxHPgWh5PU5Iuasp6JCJBeCm68Fr4PT5DsyVrYboZTr8PuOKfggdlNaZj+OsRHGSjb5QSicXoylBmRrpKO399MjLT+pQezPC4/7fkn+oCF/uBMXVb5/8Thh5jUD+xT/Dfy32uwEWWXV/Jcu6e5zI= 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 1685024664733661.6345369576846; Thu, 25 May 2023 07:24:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2BlE-0004hj-8h; Thu, 25 May 2023 10:16:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bkx-0004a8-8C for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:55 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bkv-0007c7-Ok for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:55 -0400 Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-79-vQfWdsUVM3Cy1I2r2EOvIg-1; Thu, 25 May 2023 10:15:49 -0400 Received: by mail-ej1-f72.google.com with SMTP id a640c23a62f3a-96fae2a13a5so68292166b.2 for ; Thu, 25 May 2023 07:15:48 -0700 (PDT) Received: from [192.168.10.117] ([2001:b07:6468:f312:48f9:bea:a04c:3dfe]) by smtp.gmail.com with ESMTPSA id h17-20020a170906111100b0096f782f727esm902735eja.140.2023.05.25.07.15.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 07:15:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685024153; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=BjeS6iLp4UjvPt5HAgjITA24epCPtONvMeAdxiTAED0=; b=MBvuDXb5qp2DGtlI6lGOYT+O66uj+1RDsxszT1zLoIpgbx10QDT3SajM0TooqFsD2YRYhO U848sgu407uJC83+XX9oHqdtHwkqQEziakSqQUelQSGFv3un45N+0VSo9HBEzVgNqLcSWT 6pC5X0Zq4xy0/L8tjZ9SYHVe2vgAHwI= X-MC-Unique: vQfWdsUVM3Cy1I2r2EOvIg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024147; x=1687616147; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BjeS6iLp4UjvPt5HAgjITA24epCPtONvMeAdxiTAED0=; b=PyTBlSdQdAjYiPnT7UI3ajHTQOQRJn0BXjpo0UasOthztVzc4jg0xk+WG2lG/cxRR4 /ugyoLsjfK3hD+0g5Va7EH7upCHNn0DG3LSVOtV3hihNUSQURfON0ph8pLdxIXzRYj7m 2zVFFpY+M6Ozn8OXT5SBUmCxfTqhJ8rp/NYyDCViilu9WhCNh3Ys1g7zuWChHmPlzPtz N6ql0fFPY9tEn0dADHVyyZpy/YRj8UYG1mShaZIB4qPrFLgPoz23w3hHyvNW/Phslao4 FbBxM30QcbHHYnUWA7LKeq4pcAYfiwAI5wUUirQij9e+tTwp3nA5nJ+1Tq9gsuIGW5Nf p1rw== X-Gm-Message-State: AC+VfDyLQZNjxEx2qMAI7o0bbjo23YoQ+r1NBNMELXd4i4s1SSwIUZ86 eJ5kvAmJcc0RyEe/LTZfE4bqL/eFUNq9LvvUc4U2zcNw49PIZQFcqSLpF7vtQNZlInuLE/raBwc JUlyyVOkaq9pnVGQkKVWi5kDsSuWsnTm6xn/KrKmChdr972snjvzRxtdkmn+o3ugIAZi/S7JMYC U= X-Received: by 2002:a17:906:5d13:b0:96f:893:7f5 with SMTP id g19-20020a1709065d1300b0096f089307f5mr2250108ejt.26.1685024147466; Thu, 25 May 2023 07:15:47 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6AK+5gyTRpTPeWlhzpdkqH9OmzN4PYtoo3ek4IfgmaAdw1Tr3HTXnU5RYMy6TIF/0bkesNcQ== X-Received: by 2002:a17:906:5d13:b0:96f:893:7f5 with SMTP id g19-20020a1709065d1300b0096f089307f5mr2250078ejt.26.1685024147083; Thu, 25 May 2023 07:15:47 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 09/20] softmmu/ioport.c: allocate MemoryRegionPortioList ports on the heap Date: Thu, 25 May 2023 16:15:21 +0200 Message-Id: <20230525141532.295817-10-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230525141532.295817-1-pbonzini@redhat.com> References: <20230525141532.295817-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=170.10.129.124; envelope-from=pbonzini@redhat.com; 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, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1685024666771100004 From: Mark Cave-Ayland In order to facilitate a conversion of MemoryRegionPortioList to a QOM obje= ct move the allocation of MemoryRegionPortioList ports to the heap instead of using a variable-length member at the end of the MemoryRegionPortioList structure. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230419151652.362717-2-mark.cave-ayland@ilande.co.uk> Signed-off-by: Paolo Bonzini --- softmmu/ioport.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/softmmu/ioport.c b/softmmu/ioport.c index cb8adb0b9363..d0d5b0bcaa2d 100644 --- a/softmmu/ioport.c +++ b/softmmu/ioport.c @@ -35,7 +35,7 @@ typedef struct MemoryRegionPortioList { MemoryRegion mr; void *portio_opaque; - MemoryRegionPortio ports[]; + MemoryRegionPortio *ports; } MemoryRegionPortioList; =20 static uint64_t unassigned_io_read(void *opaque, hwaddr addr, unsigned siz= e) @@ -147,6 +147,7 @@ void portio_list_destroy(PortioList *piolist) for (i =3D 0; i < piolist->nr; ++i) { mrpio =3D container_of(piolist->regions[i], MemoryRegionPortioList= , mr); object_unparent(OBJECT(&mrpio->mr)); + g_free(mrpio->ports); g_free(mrpio); } g_free(piolist->regions); @@ -227,9 +228,9 @@ static void portio_list_add_1(PortioList *piolist, unsigned i; =20 /* Copy the sub-list and null-terminate it. */ - mrpio =3D g_malloc0(sizeof(MemoryRegionPortioList) + - sizeof(MemoryRegionPortio) * (count + 1)); + mrpio =3D g_malloc0(sizeof(MemoryRegionPortioList)); mrpio->portio_opaque =3D piolist->opaque; + mrpio->ports =3D g_malloc0(sizeof(MemoryRegionPortio) * (count + 1)); memcpy(mrpio->ports, pio_init, sizeof(MemoryRegionPortio) * count); memset(mrpio->ports + count, 0, sizeof(MemoryRegionPortio)); =20 --=20 2.40.1 From nobody Fri Mar 29 05:24:57 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1685025192; cv=none; d=zohomail.com; s=zohoarc; b=GAzIFU4xDH6spqQGmplCezVMezkGQY71hPweuNSr9OWOTq1IOIPxHc9VgFzErmAlCBulhfmwujJt7vxpg+QZx8JXAGYRY3ZO9GAE+HT/aqZh/OUGj3d4X/n++RSXjBKFS9TOileKnu+15Botgo7MjBRMt6JTxIP1luJmMNpYYNM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685025192; h=Content-Type: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=ABroPFbR5EhQZSTugO8OF0oPNv+TrnzjottPKbyENqs=; b=EP/prV6n38CejU/tVT+Mfv4lotQzCYVSJZYFEhHHShTzjWCkcOs5Il3GvzkL8T8b2/0jdU4Y0Jyi6b0+c+fUXMhVnXhE/7PRAkxv1IzlcVQkcjmdEDkNO6yClHsHrwtkBtq3b4uDnLXaK1OIewsjvlEsbMhnH487OTr6u7matT8= 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 1685025192391207.43601699903388; Thu, 25 May 2023 07:33:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2Bl9-0004gM-UM; Thu, 25 May 2023 10:16:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bkw-0004ZU-4F for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:54 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bku-0007bn-JV for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:53 -0400 Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-582-VWng_5o6MV2ItsqP7onA5w-1; Thu, 25 May 2023 10:15:50 -0400 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-9737cde2ce8so77678966b.1 for ; Thu, 25 May 2023 07:15:50 -0700 (PDT) Received: from [192.168.10.117] ([2001:b07:6468:f312:48f9:bea:a04c:3dfe]) by smtp.gmail.com with ESMTPSA id n11-20020a170906378b00b0096b4ec45e10sm891325ejc.139.2023.05.25.07.15.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 07:15:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685024152; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ABroPFbR5EhQZSTugO8OF0oPNv+TrnzjottPKbyENqs=; b=YAVfjH+Zw/pc5tfn+Kacv7JY/j+jBg0NWiIAfW/TFSHn/e1tktYrm9jOksb0w90Cezl5Ki sdFKFz8KI6qz9KBS3EZDGZADDS2rN6lxkS7AJU+akl5nnKseBXzG+kVyed7LF3CKb/JzQJ Q1Mqs4bzwF5fuB3qXFF/fwzBz5uLWkA= X-MC-Unique: VWng_5o6MV2ItsqP7onA5w-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024149; x=1687616149; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ABroPFbR5EhQZSTugO8OF0oPNv+TrnzjottPKbyENqs=; b=Az92Ke4PoCavlhGAR4tHr51uYCVv7CMnCUYyVFy9pg3UoEUpjcw4ojwntMbn+2Bo5j xtOQwdakuHe1ZrJV7GP0hO25iknctNCSCHWQnIT+MZzXx+2bo+7eITNBtmM5VemX4iNh choVVGLUTVIzQTjJ7FpnNdFXk8xVdnGp2uaxmwRVTrssswP7lVHLaVR+lgpJZgU90zfX H2aN+bOFzP/+pe0+X2z6MSD7Egf8l1ugaWZFNBPI/Vy6ZVos6+5cvpLzK14ZZ/UB92V2 ALfNLPr7jv/9lxq/WS7k/JpJAnmS3lAk05YIwRuRJ54c/EmSK6EyxUGbbT+mroZ0AdO8 Jy3Q== X-Gm-Message-State: AC+VfDy2GvRDx47PA6ug8kRr06aG2ojrlJo0h88DXSXwQ/iUfiR+Uk8z 9Znu8M/Fp5rCrzYrx7TVcAT4wml2KcMGnZPhp8yOXfK1TeU1NVVTlKq94XVr1voDiBcHGShablN s/4AtvojF0fpgKF1RfuKwLDQmOZl7wUcueE402TuPJQBf7meyU0kL0TPGY6H2LzUVbZRIiWktfE E= X-Received: by 2002:a17:906:730f:b0:971:fa86:28b with SMTP id di15-20020a170906730f00b00971fa86028bmr1989571ejc.23.1685024149119; Thu, 25 May 2023 07:15:49 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4MJrR+KYXq3Z0wu4wXCm86UZbozCQIy7JSmZzR3+IzTxar8q76UKsqI5Tc5k3/i3k7PBvkiw== X-Received: by 2002:a17:906:730f:b0:971:fa86:28b with SMTP id di15-20020a170906730f00b00971fa86028bmr1989548ejc.23.1685024148775; Thu, 25 May 2023 07:15:48 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 10/20] softmmu/ioport.c: QOMify MemoryRegionPortioList Date: Thu, 25 May 2023 16:15:22 +0200 Message-Id: <20230525141532.295817-11-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230525141532.295817-1-pbonzini@redhat.com> References: <20230525141532.295817-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=170.10.133.124; envelope-from=pbonzini@redhat.com; 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, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1685025194604100003 From: Mark Cave-Ayland The aim of QOMification is so that the lifetime of the MemoryRegionPortioLi= st structure can be managed using QOM's in-built refcounting instead of having= to handle this manually. Due to the use of an opaque pointer it isn't possible to model the new TYPE_MEMORY_REGION_PORTIO_LIST directly using QOM properties, however since use of the new object is restricted to the portio API we can simply set the opaque pointer (and the heap-allocated port list) internally. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230419151652.362717-3-mark.cave-ayland@ilande.co.uk> Signed-off-by: Paolo Bonzini --- softmmu/ioport.c | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/softmmu/ioport.c b/softmmu/ioport.c index d0d5b0bcaa2d..33720fe5664a 100644 --- a/softmmu/ioport.c +++ b/softmmu/ioport.c @@ -32,11 +32,16 @@ #include "exec/address-spaces.h" #include "trace.h" =20 -typedef struct MemoryRegionPortioList { +struct MemoryRegionPortioList { + Object obj; + MemoryRegion mr; void *portio_opaque; MemoryRegionPortio *ports; -} MemoryRegionPortioList; +}; + +#define TYPE_MEMORY_REGION_PORTIO_LIST "memory-region-portio-list" +OBJECT_DECLARE_SIMPLE_TYPE(MemoryRegionPortioList, MEMORY_REGION_PORTIO_LI= ST) =20 static uint64_t unassigned_io_read(void *opaque, hwaddr addr, unsigned siz= e) { @@ -147,8 +152,7 @@ void portio_list_destroy(PortioList *piolist) for (i =3D 0; i < piolist->nr; ++i) { mrpio =3D container_of(piolist->regions[i], MemoryRegionPortioList= , mr); object_unparent(OBJECT(&mrpio->mr)); - g_free(mrpio->ports); - g_free(mrpio); + object_unref(mrpio); } g_free(piolist->regions); } @@ -228,7 +232,8 @@ static void portio_list_add_1(PortioList *piolist, unsigned i; =20 /* Copy the sub-list and null-terminate it. */ - mrpio =3D g_malloc0(sizeof(MemoryRegionPortioList)); + mrpio =3D MEMORY_REGION_PORTIO_LIST( + object_new(TYPE_MEMORY_REGION_PORTIO_LIST)); mrpio->portio_opaque =3D piolist->opaque; mrpio->ports =3D g_malloc0(sizeof(MemoryRegionPortio) * (count + 1)); memcpy(mrpio->ports, pio_init, sizeof(MemoryRegionPortio) * count); @@ -298,3 +303,24 @@ void portio_list_del(PortioList *piolist) memory_region_del_subregion(piolist->address_space, &mrpio->mr); } } + +static void memory_region_portio_list_finalize(Object *obj) +{ + MemoryRegionPortioList *mrpio =3D MEMORY_REGION_PORTIO_LIST(obj); + + g_free(mrpio->ports); +} + +static const TypeInfo memory_region_portio_list_info =3D { + .parent =3D TYPE_OBJECT, + .name =3D TYPE_MEMORY_REGION_PORTIO_LIST, + .instance_size =3D sizeof(MemoryRegionPortioList), + .instance_finalize =3D memory_region_portio_list_finalize, +}; + +static void ioport_register_types(void) +{ + type_register_static(&memory_region_portio_list_info); +} + +type_init(ioport_register_types) --=20 2.40.1 From nobody Fri Mar 29 05:24:57 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1685024457; cv=none; d=zohomail.com; s=zohoarc; b=IxPXvpPmoEL9h+OD7u5dWQH136ewGRBsYfsNGR1fwsFGmnGI+hZGHI+JZvgGWdLw5rkCfWT9swJ3QqpzwhoitkC7XKftAHUwNt9VCh5LZ3y066lUc9oBY/0ChxlM5cEkbvu1wVLQ3uj4RjqT3zuPhavVY4ReX9j207ssUvGy+FY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685024457; h=Content-Type: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=YcyOskrg26ldLftCyL08wJ83ZLvx5fXvsC3Lu+udNq4=; b=Hi6K4AtcXxYy0VYmPBzjKmoBZnCCQ2PoRNeOj8gAbLelw90cwyot2RArUtHklYg5dPLeHPkRZiQG2U8s7xll7kt8XyLEuLmo9LOACMMYi1aTeEaPK9Bo75VqV1E+CFFvpAmxcok8FMvtHmmTnXCZ9UwTmzTgHoYVSb0AXEObuxE= 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 1685024456766246.50645833914712; Thu, 25 May 2023 07:20:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2BlJ-0004lO-8o; Thu, 25 May 2023 10:16:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bl7-0004fD-88 for qemu-devel@nongnu.org; Thu, 25 May 2023 10:16:05 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bl3-0007eK-Sw for qemu-devel@nongnu.org; Thu, 25 May 2023 10:16:03 -0400 Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-494-CH-QH4aHPNmar2QndXK2aQ-1; Thu, 25 May 2023 10:15:54 -0400 Received: by mail-ej1-f72.google.com with SMTP id a640c23a62f3a-9715654aba1so78933066b.0 for ; Thu, 25 May 2023 07:15:52 -0700 (PDT) Received: from [192.168.10.117] ([2001:b07:6468:f312:48f9:bea:a04c:3dfe]) by smtp.gmail.com with ESMTPSA id q3-20020a170906144300b00966238a202esm904624ejc.7.2023.05.25.07.15.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 07:15:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685024161; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=YcyOskrg26ldLftCyL08wJ83ZLvx5fXvsC3Lu+udNq4=; b=aCp8YAQCDJCgMdrG1R502vlnYTHmjuXi1G+ObAHipOeC5yaaAGmWaz9LTRONcYPOlSJhVv zP0L1nmHqSrimeWx1aN0pMaC5xiPgIuInxmR9Fzp9Z70RS2BeoPtCT/S686bXIaSwLYStc CkBFCFu1Lj1lrjV9YR0OEWQfxkSQ7V8= X-MC-Unique: CH-QH4aHPNmar2QndXK2aQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024151; x=1687616151; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YcyOskrg26ldLftCyL08wJ83ZLvx5fXvsC3Lu+udNq4=; b=DLgGzIHtTqgIA/R+F6HwO0NLaYOBUYvsVOwXHCx5/2cVudPs/VEk4tn4n8/lGWyWhC 4C68K+k8No+RRgRpQn0BZrPCiItG0QdmvzxavvTsHhMqF023kapCiWZJjNNhO6Ezd0Yr rdocay+DX9zuKr87wbV3wsS4PG1RQpwG8uzt6WVmRYqGkYewwKFoeZDl/VH/zTKMSiRF K9OBYqF39Ho0Gmz0BGV1SCxOoQ+vSOElKg/5Aqv1YWqzt/Xk1zoBl1io/3lYFbswS/0I F5SnjZvjGXxroDgdWueyKdjXzh7ZoxqtOmYRy0cC15vv8z48UNxr4LsHwUor62QRWOQe AWYg== X-Gm-Message-State: AC+VfDyHi1d1/Z+jqWUQpVzCq+CU3DP1x2KrZ64IVWMnOz0JtfKiJsuB oCqX30n76nLHuuy09TvmCqYpWwJcX4ihVFEbmt9EzF/d30uWSMI7jeWcn3L/ZLGf5iGQ90T2/bh dhlKGctYIUWbpj1I0V3Z1GEYJAg46jN2zrqPKCj6FfLOrdogFx5U58hnSlUAGYwvgCyAei8ST4n g= X-Received: by 2002:a17:907:2d1e:b0:969:9c0c:4c97 with SMTP id gs30-20020a1709072d1e00b009699c0c4c97mr1667502ejc.1.1685024150757; Thu, 25 May 2023 07:15:50 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6Q0BjyZC59jHG5oBx4ykEJPF+OojZbn1cDfqFtxRt2UzZ9Cey4NXWQYMryS2imjzNmeFxfRg== X-Received: by 2002:a17:907:2d1e:b0:969:9c0c:4c97 with SMTP id gs30-20020a1709072d1e00b009699c0c4c97mr1667480ejc.1.1685024150397; Thu, 25 May 2023 07:15:50 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 11/20] softmmu/ioport.c: make MemoryRegionPortioList owner of portio_list MemoryRegions Date: Thu, 25 May 2023 16:15:23 +0200 Message-Id: <20230525141532.295817-12-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230525141532.295817-1-pbonzini@redhat.com> References: <20230525141532.295817-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=170.10.133.124; envelope-from=pbonzini@redhat.com; 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, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1685024458312100001 From: Mark Cave-Ayland Currently when portio_list MemoryRegions are freed using portio_list_destro= y() the RCU thread segfaults generating a backtrace similar to that below: #0 0x5555599a34b6 in phys_section_destroy ../softmmu/physmem.c:996 #1 0x5555599a37a3 in phys_sections_free ../softmmu/physmem.c:1011 #2 0x5555599b24aa in address_space_dispatch_free ../softmmu/physmem.c:2= 430 #3 0x55555996a283 in flatview_destroy ../softmmu/memory.c:292 #4 0x55555a2cb9fb in call_rcu_thread ../util/rcu.c:284 #5 0x55555a29b71d in qemu_thread_start ../util/qemu-thread-posix.c:541 #6 0x7ffff4a0cea6 in start_thread nptl/pthread_create.c:477 #7 0x7ffff492ca2e in __clone (/lib/x86_64-linux-gnu/libc.so.6+0xfca2e) The problem here is that portio_list_destroy() unparents the portio_list MemoryRegions causing them to be freed immediately, however the flatview still has a reference to the MemoryRegion and so causes a use-after-free segfault when the RCU thread next updates the flatview. Solve the lifetime issue by making MemoryRegionPortioList the owner of the portio_list MemoryRegions, and then reparenting them to the portio_list owner. This ensures that they can be accessed as QOM children via the portio_list owner, yet the MemoryRegionPortioList owns the refcount. Update portio_list_destroy() to unparent the MemoryRegion from the portio_list owner (while keeping mrpio->mr live until finalization of the MemoryRegionPortioList), so that the portio_list MemoryRegions remain allocated until flatview_destroy() removes the final refcount upon the next flatview update. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230419151652.362717-4-mark.cave-ayland@ilande.co.uk> Signed-off-by: Paolo Bonzini --- softmmu/ioport.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/softmmu/ioport.c b/softmmu/ioport.c index 33720fe5664a..b66e0a5a8ebc 100644 --- a/softmmu/ioport.c +++ b/softmmu/ioport.c @@ -229,6 +229,8 @@ static void portio_list_add_1(PortioList *piolist, unsigned off_low, unsigned off_high) { MemoryRegionPortioList *mrpio; + Object *owner; + char *name; unsigned i; =20 /* Copy the sub-list and null-terminate it. */ @@ -245,8 +247,25 @@ static void portio_list_add_1(PortioList *piolist, mrpio->ports[i].base =3D start + off_low; } =20 - memory_region_init_io(&mrpio->mr, piolist->owner, &portio_ops, mrpio, + /* + * The MemoryRegion owner is the MemoryRegionPortioList since that man= ages + * the lifecycle via the refcount + */ + memory_region_init_io(&mrpio->mr, OBJECT(mrpio), &portio_ops, mrpio, piolist->name, off_high - off_low); + + /* Reparent the MemoryRegion to the piolist owner */ + object_ref(&mrpio->mr); + object_unparent(OBJECT(&mrpio->mr)); + if (!piolist->owner) { + owner =3D container_get(qdev_get_machine(), "/unattached"); + } else { + owner =3D piolist->owner; + } + name =3D g_strdup_printf("%s[*]", piolist->name); + object_property_add_child(owner, name, OBJECT(&mrpio->mr)); + g_free(name); + if (piolist->flush_coalesced_mmio) { memory_region_set_flush_coalesced(&mrpio->mr); } @@ -308,6 +327,7 @@ static void memory_region_portio_list_finalize(Object *= obj) { MemoryRegionPortioList *mrpio =3D MEMORY_REGION_PORTIO_LIST(obj); =20 + object_unref(&mrpio->mr); g_free(mrpio->ports); } =20 --=20 2.40.1 From nobody Fri Mar 29 05:24:57 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1685024401; cv=none; d=zohomail.com; s=zohoarc; b=nt2OoX2sgOuOQtMZI5wPRUSBbU0/ZlFiC0jc5f5il5jEtcByekzqxaLtEGyxNSL40043355TW6k+KXcc5g0dBF3eY53mQ+sDtjPpQPRq1QqjSN7IrlyZHOTlebbLKWUKUn2UKuSZ1e961H2VIh2eqtqKVxqEOpRlZKe6K/S14Uc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685024401; h=Content-Type: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=F+X2yMp/rrkiuznHlbFPis928m34/lXQlFacSTwXix4=; b=RUL1C1bufIqKu89Y7vDIY7gYVTUvs00+0s68eUgsTlp6xT5EfohSEM7+zuXR5wVIOCrCabGRoACn32MhFN55Mh+II3ppdierADK59YWsDklPZXQzAM9sVQ1GeVpoSW2Q5yA9mlqKAZnjd6rGJbB7kombPMS0jjY4/dQcceui6A8= 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 168502440166966.10239361193999; Thu, 25 May 2023 07:20:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2BlJ-0004lX-US; Thu, 25 May 2023 10:16:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bl7-0004fS-Sx for qemu-devel@nongnu.org; Thu, 25 May 2023 10:16:07 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bl5-0007ev-N6 for qemu-devel@nongnu.org; Thu, 25 May 2023 10:16:05 -0400 Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-159-Zq7ZJ6o3Myuvlec304ng2g-1; Thu, 25 May 2023 10:15:56 -0400 Received: by mail-ed1-f72.google.com with SMTP id 4fb4d7f45d1cf-50bcd245040so2776595a12.0 for ; Thu, 25 May 2023 07:15:53 -0700 (PDT) Received: from [192.168.10.117] ([2001:b07:6468:f312:48f9:bea:a04c:3dfe]) by smtp.gmail.com with ESMTPSA id y26-20020aa7c25a000000b0051421010690sm610052edo.21.2023.05.25.07.15.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 07:15:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685024163; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=F+X2yMp/rrkiuznHlbFPis928m34/lXQlFacSTwXix4=; b=g5bH0wYETyZng397sE3iWLsgxFBDF/KobJYLQqdPYt6Xqzc5fssGOVjJyOaJPt2lZf17OJ LP0eDj9X+0kxyyl8k2fwjVgY2Eyo0SbsuFRVoXP/k+h3BY9/j3mCUJlNupwLJIO5RPjPAw bF+GJANez6yVNsCHdWyOOR6Az+DGMCM= X-MC-Unique: Zq7ZJ6o3Myuvlec304ng2g-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024152; x=1687616152; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=F+X2yMp/rrkiuznHlbFPis928m34/lXQlFacSTwXix4=; b=hfINVD5cBe5sEWe/e6niFTSERyk44lm8H4bv3s+Yoc8CtY6zi4mFNXfj0tKsJmWT0K SA7ZCZ1G1VKlJrdTV1xVTSdNtlOUGtZZDF6JepQj2W9U6hHKYdVsWGMxXOH4SDz8ITSq zD8kdavj6tiaL6XbWO35jdeuVvRtRnPo7mfoyfd3Ll1m6M7Xz3EriHaIbf0sHUaWSeda XgePf2cOFd0UMamtkaWc9pH6b/xoe+tdGXkz+qFu2l32acM6WOE98OgwjpS2NUmvKbTk bcxASVYT6PI1DoVMOIWU1BMfB88ZhPX80XHzgiSxtEsb56sA2d/tNWx2k7tR0WOOkoMg tzLg== X-Gm-Message-State: AC+VfDxMrexTui7VfaTQEP6NoXZ+e5fVuwTuc4Xr4vdjqy0aU9JEhp6n jBW4S/yrMrk4uOtVuUVsH9Ib/bt8ZCWOvrQy5GC8VPG8j8EkgLrNf8RjcVXpzYdFKaBU+60+I2K 5qvoqB482rBhRLrl4CXa1J0I0kV6MQ6acHhMi+VbLclAYNNxAYK8uG3cYkZ3J37Q8D/EnTlBgog E= X-Received: by 2002:aa7:c252:0:b0:510:6217:9994 with SMTP id y18-20020aa7c252000000b0051062179994mr4539759edo.39.1685024152264; Thu, 25 May 2023 07:15:52 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4ugXZPk/qPYvhrAavxM+9kBbQa4CD4aNjYwcdrk9wIJbVJ/FYXAYT4NtU5GUAGJsURB7mPYA== X-Received: by 2002:aa7:c252:0:b0:510:6217:9994 with SMTP id y18-20020aa7c252000000b0051062179994mr4539750edo.39.1685024152008; Thu, 25 May 2023 07:15:52 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Richard Henderson Subject: [PULL 12/20] monitor: use QEMU_LOCK_GUARD a bit more Date: Thu, 25 May 2023 16:15:24 +0200 Message-Id: <20230525141532.295817-13-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230525141532.295817-1-pbonzini@redhat.com> References: <20230525141532.295817-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; 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, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1685024409959100001 Content-Type: text/plain; charset="utf-8" Reviewed-by: Richard Henderson Signed-off-by: Paolo Bonzini --- monitor/monitor.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/monitor/monitor.c b/monitor/monitor.c index 602535696c59..4b11bca2a21d 100644 --- a/monitor/monitor.c +++ b/monitor/monitor.c @@ -161,10 +161,9 @@ static gboolean monitor_unblocked(void *do_not_use, GI= OCondition cond, { Monitor *mon =3D opaque; =20 - qemu_mutex_lock(&mon->mon_lock); + QEMU_LOCK_GUARD(&mon->mon_lock); mon->out_watch =3D 0; monitor_flush_locked(mon); - qemu_mutex_unlock(&mon->mon_lock); return FALSE; } =20 @@ -203,9 +202,8 @@ static void monitor_flush_locked(Monitor *mon) =20 void monitor_flush(Monitor *mon) { - qemu_mutex_lock(&mon->mon_lock); + QEMU_LOCK_GUARD(&mon->mon_lock); monitor_flush_locked(mon); - qemu_mutex_unlock(&mon->mon_lock); } =20 /* flush at every end of line */ --=20 2.40.1 From nobody Fri Mar 29 05:24:57 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1685024280; cv=none; d=zohomail.com; s=zohoarc; b=T6yfArJ10D2Qj0hn3CzsAWS+3/FFtoBFNKCe227q3+WnGkQmVBiEMGMJC4ck6fZCUY0MuHHlZ5fWQ8gQPv+jDYq97VNv4LFCU8IDrGE7P/jjEZOxBnc/J1SURa3yo0wV3WXogZddlx/mnkNIc1mcTcJHIC4F3fP5gFvqSy9Xjms= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685024280; h=Content-Type:Content-Transfer-Encoding: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=YW2RiDVuo8s3fHdACuQ7sebR9x64p06vs4OxuqmRjaY=; b=mw7J7rJaOagg/6AhnyIQ0QMxuhtlQp5xHEhBMCoc2XszUDZVMPjSZjcDqoaVZVWf4GorUT3dt+S9zDyAv/Mcyl6wSwSTKTdN23vBPxCGeXInpQvLE5YWf8AqqSBCj5PfP5KJQZ9Dz2hUrqqgQWZCsENJwgRk55sMtVsn3ySzE/8= 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 1685024280155250.04550539931324; Thu, 25 May 2023 07:18:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2BlG-0004iH-LK; Thu, 25 May 2023 10:16:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bl2-0004e6-Lk for qemu-devel@nongnu.org; Thu, 25 May 2023 10:16:03 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bl0-0007d5-JU for qemu-devel@nongnu.org; Thu, 25 May 2023 10:15:59 -0400 Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-363-D-kYnxvUMEC8VfebLF6txg-1; Thu, 25 May 2023 10:15:55 -0400 Received: by mail-ed1-f72.google.com with SMTP id 4fb4d7f45d1cf-513fd7d56c8so2733912a12.2 for ; Thu, 25 May 2023 07:15:54 -0700 (PDT) Received: from [192.168.10.117] ([2001:b07:6468:f312:48f9:bea:a04c:3dfe]) by smtp.gmail.com with ESMTPSA id s17-20020a1709064d9100b00969f25b96basm887188eju.204.2023.05.25.07.15.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 07:15:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685024157; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=YW2RiDVuo8s3fHdACuQ7sebR9x64p06vs4OxuqmRjaY=; b=EQYI5XfbcA76sCEXrI6wFpA0aerQy8l+0gIpelAyAKhKcqoy86E7wk9Sh18URZsRDOL+v9 8Hz/KReMN/ZRr4vOr+lA41kgJteA3uIlt0s/mwIATDxu0RW7mq0RvxZUzmCOATrAh0dK2E BH75uK+y0jwx4KJmDfj6hjG/HSg+z+Y= X-MC-Unique: D-kYnxvUMEC8VfebLF6txg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024153; x=1687616153; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YW2RiDVuo8s3fHdACuQ7sebR9x64p06vs4OxuqmRjaY=; b=NEExssU2dJOoirYdNcvCSXkFw95JcGZOj+y91lEj0QsZbGSRj7yQTgOVwaXz/P6Ulm R+gEaNHvxAAzm+ET8iCjLTAjXIZL/ZTkMhnRLoI5aPkSAdFCd73nEFEEvLc6lXC59Sms rqLM8BDgAn+Ui+q6nd8TYlvVy1hpjj1JITwYCwJdZyNG3xzLiwBJ+GpA7Xlf0e797N8c dwps7m1KCX05stmqR3yjurl20MIbSMsM5LmRmTpKv3kgOHASl9R7LesF4I5DWh3ZcX6V N1+3apJrU4xJgt7KDBa5dujIF1GY9yCP5TS8dFFTNJrYO06ZBY3LBVYcd1pRZa129jBc mFqg== X-Gm-Message-State: AC+VfDwppoJY3Pvl4WkdTTgCkfCOlCiDjvT4ZaQu8KD4Vvh4VL2AK767 GT0O20sHq6LTs2e8P8+fQPh/XYwmK9gG0JG2jJvtYa94z9GgCH8+9+0k38qDmEQngnVfEhs339o aJY5brwHI6HX+/7srGhEzgvIGdRo05aXNdaWwGR1UbjEAQH9Gz6GB5nKI5TqYD89kEBtiI0eL9f M= X-Received: by 2002:a17:906:fe0e:b0:94a:35d1:59a with SMTP id wy14-20020a170906fe0e00b0094a35d1059amr1258193ejb.14.1685024153747; Thu, 25 May 2023 07:15:53 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7w9orkts2jzUftWHs9Bhwbu9PvWvYAjCSPPsAShwJQW+Vzx32r0F7IZM2HZad34QrMLXUZmA== X-Received: by 2002:a17:906:fe0e:b0:94a:35d1:59a with SMTP id wy14-20020a170906fe0e00b0094a35d1059amr1258176ejb.14.1685024153443; Thu, 25 May 2023 07:15:53 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 13/20] monitor: allow calling monitor_resume under mon_lock Date: Thu, 25 May 2023 16:15:25 +0200 Message-Id: <20230525141532.295817-14-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230525141532.295817-1-pbonzini@redhat.com> References: <20230525141532.295817-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; 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, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1685024282326100003 Content-Type: text/plain; charset="utf-8" Move monitor_resume()'s call to readline_show_prompt() outside the potentially locked section. Reuse the existing monitor_accept_input() bottom half for this purpose. Signed-off-by: Paolo Bonzini --- monitor/monitor.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/monitor/monitor.c b/monitor/monitor.c index 4b11bca2a21d..7080d2da8ec6 100644 --- a/monitor/monitor.c +++ b/monitor/monitor.c @@ -567,6 +567,12 @@ static void monitor_accept_input(void *opaque) { Monitor *mon =3D opaque; =20 + if (!monitor_is_qmp(mon)) { + MonitorHMP *hmp_mon =3D container_of(mon, MonitorHMP, common); + assert(hmp_mon->rs); + readline_show_prompt(hmp_mon->rs); + } + qemu_chr_fe_accept_input(&mon->chr); } =20 @@ -585,12 +591,6 @@ void monitor_resume(Monitor *mon) ctx =3D qemu_get_aio_context(); } =20 - if (!monitor_is_qmp(mon)) { - MonitorHMP *hmp_mon =3D container_of(mon, MonitorHMP, common); - assert(hmp_mon->rs); - readline_show_prompt(hmp_mon->rs); - } - aio_bh_schedule_oneshot(ctx, monitor_accept_input, mon); } =20 --=20 2.40.1 From nobody Fri Mar 29 05:24:57 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1685024912; cv=none; d=zohomail.com; s=zohoarc; b=gftzy0+kLpIFAzmj1SEWtQWwzDCfoG9bgLtGlcPtWHfy0b5CHS5SuEYkaKCMqx2guY6J/aBbzYVVvVa8Ay1Vk6jDeZSPZnLMxgoUNhtEbe2HzHAh2zyTi9jpkUU0qzoOlIPYR5wkuQuPoJFPCJhe8ykMojb+1iyiD+OLjcXX4lw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685024912; h=Content-Type: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=vJOHud7zDMwnpwt2q0ARIGg4F68erJAtnxVdSgsHo28=; b=Jss9I6v6y4+BCyBkCWnYJet9HgTQwKuctpbO60Z0sl5ZUafAJyJRuWe9I23qU6Lo6b04DEvXsivw2US79f8f3PEDrNPUjwfniMwBnghrjBVO0WfrT+LexJNQgOVnOk0OnpPrLmWaORoc8+H5qhu00fG060v5PGXotoYMx88l2XY= 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 168502491200450.38711074101957; Thu, 25 May 2023 07:28:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2BlC-0004gO-1W; Thu, 25 May 2023 10:16:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bl3-0004e8-Gr for qemu-devel@nongnu.org; Thu, 25 May 2023 10:16:03 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bl1-0007dh-Jb for qemu-devel@nongnu.org; Thu, 25 May 2023 10:16:01 -0400 Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-144-BdPsBxVhPHe-uplrbfJpIA-1; Thu, 25 May 2023 10:15:57 -0400 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-96fffd1ba46so68072166b.0 for ; Thu, 25 May 2023 07:15:56 -0700 (PDT) Received: from [192.168.10.117] ([2001:b07:6468:f312:48f9:bea:a04c:3dfe]) by smtp.gmail.com with ESMTPSA id dv22-20020a170906b81600b0096f78953b77sm904183ejb.147.2023.05.25.07.15.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 07:15:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685024158; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vJOHud7zDMwnpwt2q0ARIGg4F68erJAtnxVdSgsHo28=; b=SDMk3rKuoUoth5MCuH/Pa9DzDYNVfLpNAt9WvxaEKbc48fbwvB/OSvpS8+hhHm6OHxMObC QGeDethKfaX32gWbcfrk0WGDaOBLGeFlkI8T0d0WOWj+ut28F4vwrsHoZKW8C8dszj07Kc IpyK66+MfIMwvNFnsh1hYR4YNLHBr1M= X-MC-Unique: BdPsBxVhPHe-uplrbfJpIA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024155; x=1687616155; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vJOHud7zDMwnpwt2q0ARIGg4F68erJAtnxVdSgsHo28=; b=ek8sUYRvGebb1avWjaRIikV/Gll1GmJaXfH2CDw+g+NjSKr9kfE0yjyw+odgbjzctf jp3RCCDi2b0k0ZHfBpu6i5YFyciM49NxnAxb0Nll9ktFistb5CVOL1i/BKlZRchxxgCv NiuAcnIYcX/BIFam6+LiGXE9w5rAxXj+KhPXCMT/v8zedVxNNSthlwiy7qNUWwhlG999 YMbztUrJXUEI1VtXrj55vO7V29sMhcULjL7VQbFMG8XDH15Vae/9TU+U0gwHpP05zJ3J Dkhhmu0V9vT44dQpGFqzZ55O1IGgcHKKCXwiXC/eZGAMs2okL/Vie16SZYgK/lITgpO7 eM4w== X-Gm-Message-State: AC+VfDy49nwQ6cJ4x5E7OsymG67L7vAGZObuXcivqhohAn7tX1GK14l3 6qUHvd/2BqxYHVytCaVs+BQuSeX2HdbPPbxgYiI5l+XPjUh+8iY248ErHQYgrrDrxzAG4ECvYwW BJDFGLOVPJBgHlWsH6/NG0+egLLVpfEnHgcANJejLLP5qBM9ZjCmOzbJkGCcGkj/8tmjLoOlLkr 0= X-Received: by 2002:a17:906:9744:b0:94e:cf72:8147 with SMTP id o4-20020a170906974400b0094ecf728147mr2050625ejy.48.1685024155223; Thu, 25 May 2023 07:15:55 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6hQSI/MUXMAab4jt2UgQJbz4S2KaLFdsSnu0pMNlbeETao4ujeO2lQ2Afcffn4lWlFsoczRA== X-Received: by 2002:a17:906:9744:b0:94e:cf72:8147 with SMTP id o4-20020a170906974400b0094ecf728147mr2050593ejy.48.1685024154909; Thu, 25 May 2023 07:15:54 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Richard Henderson Subject: [PULL 14/20] monitor: add more *_locked() functions Date: Thu, 25 May 2023 16:15:26 +0200 Message-Id: <20230525141532.295817-15-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230525141532.295817-1-pbonzini@redhat.com> References: <20230525141532.295817-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; 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, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1685024913602100001 Content-Type: text/plain; charset="utf-8" Allow flushing and printing to the monitor while mon->mon_lock is held. This will help cleaning up the locking of mon->mux_out and mon->suspend_cnt. Reviewed-by: Richard Henderson Signed-off-by: Paolo Bonzini --- include/monitor/monitor.h | 3 +++ monitor/monitor.c | 14 ++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/include/monitor/monitor.h b/include/monitor/monitor.h index 033390f69917..965f5d545003 100644 --- a/include/monitor/monitor.h +++ b/include/monitor/monitor.h @@ -40,6 +40,9 @@ void monitor_flush(Monitor *mon); int monitor_set_cpu(Monitor *mon, int cpu_index); int monitor_get_cpu_index(Monitor *mon); =20 +int monitor_puts_locked(Monitor *mon, const char *str); +void monitor_flush_locked(Monitor *mon); + void *gpa2hva(MemoryRegion **p_mr, hwaddr addr, uint64_t size, Error **err= p); =20 void monitor_read_command(MonitorHMP *mon, int show_prompt); diff --git a/monitor/monitor.c b/monitor/monitor.c index 7080d2da8ec6..20e33e28d20d 100644 --- a/monitor/monitor.c +++ b/monitor/monitor.c @@ -154,8 +154,6 @@ static inline bool monitor_is_hmp_non_interactive(const= Monitor *mon) return !monitor_uses_readline(container_of(mon, MonitorHMP, common)); } =20 -static void monitor_flush_locked(Monitor *mon); - static gboolean monitor_unblocked(void *do_not_use, GIOCondition cond, void *opaque) { @@ -168,7 +166,7 @@ static gboolean monitor_unblocked(void *do_not_use, GIO= Condition cond, } =20 /* Caller must hold mon->mon_lock */ -static void monitor_flush_locked(Monitor *mon) +void monitor_flush_locked(Monitor *mon) { int rc; size_t len; @@ -207,12 +205,11 @@ void monitor_flush(Monitor *mon) } =20 /* flush at every end of line */ -int monitor_puts(Monitor *mon, const char *str) +int monitor_puts_locked(Monitor *mon, const char *str) { int i; char c; =20 - qemu_mutex_lock(&mon->mon_lock); for (i =3D 0; str[i]; i++) { c =3D str[i]; if (c =3D=3D '\n') { @@ -223,11 +220,16 @@ int monitor_puts(Monitor *mon, const char *str) monitor_flush_locked(mon); } } - qemu_mutex_unlock(&mon->mon_lock); =20 return i; } =20 +int monitor_puts(Monitor *mon, const char *str) +{ + QEMU_LOCK_GUARD(&mon->mon_lock); + return monitor_puts_locked(mon, str); +} + int monitor_vprintf(Monitor *mon, const char *fmt, va_list ap) { char *buf; --=20 2.40.1 From nobody Fri Mar 29 05:24:57 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1685025164; cv=none; d=zohomail.com; s=zohoarc; b=UTgW7MUTNdNi/aHN0k0aL6jJNR5e51pOutPC9pPd+RlGOplgBZhCu/ibBQCKncAFNd+MU8/GxaDg3s/fxeR+jpqoyyOCwVPTBR+ZZArrkKWxQ84lNQYqhBrLRvs/CctF45abCN4JqwOFNFfXXQpjrmAgsD45tA2v1fumVwquY9c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685025164; h=Content-Type:Content-Transfer-Encoding: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=nl9YV0klK4c1Ul2Mo+osatIzoXVRjqjEwHKUgZuQG0k=; b=cTh0jkOTSI/Zp8c9ThrWVDzdjWqHg6GNkxcHSNeTawHvYvOMa+ME1LtfVpARSk2Jb0tGh7GleJRgZg6k99v5H20i14joZbOlXFN2t62dvLXn5PZRuu3P85jskb+hPjqONWuAOi2xpDr86vfjWfetxneHTobp6TddW6gsehr8Ock= 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 1685025164390842.3328539738161; Thu, 25 May 2023 07:32:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2BlG-0004iF-IB; Thu, 25 May 2023 10:16:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2BlA-0004gN-0T for qemu-devel@nongnu.org; Thu, 25 May 2023 10:16:09 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bl7-0007fc-UN for qemu-devel@nongnu.org; Thu, 25 May 2023 10:16:07 -0400 Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-447-Cl4a1RUrMCqO22nAoYX4bQ-1; Thu, 25 May 2023 10:15:59 -0400 Received: by mail-ej1-f72.google.com with SMTP id a640c23a62f3a-96f6fee8123so71057166b.0 for ; Thu, 25 May 2023 07:15:58 -0700 (PDT) Received: from [192.168.10.117] ([2001:b07:6468:f312:48f9:bea:a04c:3dfe]) by smtp.gmail.com with ESMTPSA id v24-20020a170906b01800b0096f6e2f4d9esm880665ejy.83.2023.05.25.07.15.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 07:15:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685024165; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=nl9YV0klK4c1Ul2Mo+osatIzoXVRjqjEwHKUgZuQG0k=; b=AByi5opGCRAKHQad0otfcv1GaDtTZIrsQuvAYv84CUA6KYHq8vWKfOZFPNWhdbjdz/M5QS LB1+WvLmhnNOnuJcoYCov3SA4SzMyU8OSlrXjSejj0yPqrfpuRKjE45zSTgrZIClIOOO2k w/qXDNOokMIALrYmpandetUI8fy7Zs8= X-MC-Unique: Cl4a1RUrMCqO22nAoYX4bQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024157; x=1687616157; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nl9YV0klK4c1Ul2Mo+osatIzoXVRjqjEwHKUgZuQG0k=; b=jxpXv+dUIWp1bBO8RwqT3wSdz1YD+KP9nceiLa48sI136vKlCGCRPtRp83UEMRejz0 f7VlZXGGkgQh9hkKRuzC0fRdqPW6Y7O8hzDohPeQH8vrH5YLejqMTyWjrhE+6JghHmtv uexdpPhBMPe0QRTLRFfUoGdm8k5T7K22G4MlbizhXoz5yOoaZnxffCIY8GXqClEe8G49 j+t0vAAYmCm7kKBawjTkoYH/JpXXQ0CmW7J6X8Ezf9n4ABFhh+EAkZqBbx1MySWDZIpN RTlmKR8llLkEtgG2Vv0qvICn10ntVS7i4L0B7siPW8cFU+UfXFFnWKEAsu1qK8MJgrKQ xkYQ== X-Gm-Message-State: AC+VfDxKM5efzPQPO+AvPzJ7s0/KlxOlAaHwbgWU6B8eknl/MyV8xp1i ceTJlqi+yxvdZFVkQT9XeWj1VTUgsrLtbybTe9ITNllzooF8T8VcnElJPEeFauutbX2M0MWoENS UYMo/h2hPKMEP08F7zqv7rVxw6bIN4D58OPkREaA1zkOLxQhJyu0j+JvQafJeq1/UvGe+JhFeb5 U= X-Received: by 2002:a17:907:a0a:b0:971:5a79:29ff with SMTP id bb10-20020a1709070a0a00b009715a7929ffmr1562420ejc.48.1685024157087; Thu, 25 May 2023 07:15:57 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ76WxchKBj9jYIH4J4u/jA35DHx9fWY5rBgjwjYyYcuYxpV2kOqbFP1L79eFihFSUnwdTfGpQ== X-Received: by 2002:a17:907:a0a:b0:971:5a79:29ff with SMTP id bb10-20020a1709070a0a00b009715a7929ffmr1562389ejc.48.1685024156597; Thu, 25 May 2023 07:15:56 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 15/20] monitor: do not use mb_read/mb_set for suspend_cnt Date: Thu, 25 May 2023 16:15:27 +0200 Message-Id: <20230525141532.295817-16-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230525141532.295817-1-pbonzini@redhat.com> References: <20230525141532.295817-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; 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, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1685025165463100001 Content-Type: text/plain; charset="utf-8" Clean up monitor_event to just use monitor_suspend/monitor_resume, using mon->mux_out to protect against incorrect nesting (especially on startup). The only remaining case of reading suspend_cnt is in the can_read callback, which is just advisory and can use qatomic_read. As an extra benefit, mux_out is now simply protected by mon_lock. Also, moving the prompt to the beginning of the main loop removes it from the output in some error cases where QEMU does not actually start successfully. It is not a full fix and it would be nice to also remove the monitor heading, but this is already a small (though unintentional) improvement. Signed-off-by: Paolo Bonzini --- monitor/hmp.c | 41 ++++++++++++++++------------------- monitor/monitor-internal.h | 3 +-- monitor/monitor.c | 9 ++++++-- tests/qemu-iotests/051.out | 4 ++-- tests/qemu-iotests/051.pc.out | 20 ++++++++--------- 5 files changed, 39 insertions(+), 38 deletions(-) diff --git a/monitor/hmp.c b/monitor/hmp.c index 5cab56d355c8..69c1b7e98abb 100644 --- a/monitor/hmp.c +++ b/monitor/hmp.c @@ -1401,45 +1401,42 @@ static void monitor_read(void *opaque, const uint8_= t *buf, int size) static void monitor_event(void *opaque, QEMUChrEvent event) { Monitor *mon =3D opaque; - MonitorHMP *hmp_mon =3D container_of(mon, MonitorHMP, common); =20 switch (event) { case CHR_EVENT_MUX_IN: qemu_mutex_lock(&mon->mon_lock); - mon->mux_out =3D 0; - qemu_mutex_unlock(&mon->mon_lock); - if (mon->reset_seen) { - readline_restart(hmp_mon->rs); + if (mon->mux_out) { + mon->mux_out =3D 0; monitor_resume(mon); - monitor_flush(mon); - } else { - qatomic_mb_set(&mon->suspend_cnt, 0); } + qemu_mutex_unlock(&mon->mon_lock); break; =20 case CHR_EVENT_MUX_OUT: - if (mon->reset_seen) { - if (qatomic_mb_read(&mon->suspend_cnt) =3D=3D 0) { - monitor_printf(mon, "\n"); - } - monitor_flush(mon); - monitor_suspend(mon); - } else { - qatomic_inc(&mon->suspend_cnt); - } qemu_mutex_lock(&mon->mon_lock); - mon->mux_out =3D 1; + if (!mon->mux_out) { + if (mon->reset_seen && !mon->suspend_cnt) { + monitor_puts_locked(mon, "\n"); + } else { + monitor_flush_locked(mon); + } + monitor_suspend(mon); + mon->mux_out =3D 1; + } qemu_mutex_unlock(&mon->mon_lock); break; =20 case CHR_EVENT_OPENED: monitor_printf(mon, "QEMU %s monitor - type 'help' for more " "information\n", QEMU_VERSION); - if (!mon->mux_out) { - readline_restart(hmp_mon->rs); - readline_show_prompt(hmp_mon->rs); - } + qemu_mutex_lock(&mon->mon_lock); mon->reset_seen =3D 1; + if (!mon->mux_out) { + /* Suspend-resume forces the prompt to be printed. */ + monitor_suspend(mon); + monitor_resume(mon); + } + qemu_mutex_unlock(&mon->mon_lock); mon_refcount++; break; =20 diff --git a/monitor/monitor-internal.h b/monitor/monitor-internal.h index 53e3808054c7..61c9b6916db3 100644 --- a/monitor/monitor-internal.h +++ b/monitor/monitor-internal.h @@ -94,7 +94,6 @@ typedef struct HMPCommand { =20 struct Monitor { CharBackend chr; - int reset_seen; int suspend_cnt; /* Needs to be accessed atomically */ bool is_qmp; bool skip_flush; @@ -115,8 +114,8 @@ struct Monitor { QLIST_HEAD(, mon_fd_t) fds; GString *outbuf; guint out_watch; - /* Read under either BQL or mon_lock, written with BQL+mon_lock. */ int mux_out; + int reset_seen; }; =20 struct MonitorHMP { diff --git a/monitor/monitor.c b/monitor/monitor.c index 20e33e28d20d..15f97538ef2b 100644 --- a/monitor/monitor.c +++ b/monitor/monitor.c @@ -569,10 +569,15 @@ static void monitor_accept_input(void *opaque) { Monitor *mon =3D opaque; =20 - if (!monitor_is_qmp(mon)) { + qemu_mutex_lock(&mon->mon_lock); + if (!monitor_is_qmp(mon) && mon->reset_seen) { MonitorHMP *hmp_mon =3D container_of(mon, MonitorHMP, common); assert(hmp_mon->rs); + readline_restart(hmp_mon->rs); + qemu_mutex_unlock(&mon->mon_lock); readline_show_prompt(hmp_mon->rs); + } else { + qemu_mutex_unlock(&mon->mon_lock); } =20 qemu_chr_fe_accept_input(&mon->chr); @@ -603,7 +608,7 @@ int monitor_can_read(void *opaque) { Monitor *mon =3D opaque; =20 - return !qatomic_mb_read(&mon->suspend_cnt); + return !qatomic_read(&mon->suspend_cnt); } =20 void monitor_list_append(Monitor *mon) diff --git a/tests/qemu-iotests/051.out b/tests/qemu-iotests/051.out index e5ddb03bda1d..d46215640506 100644 --- a/tests/qemu-iotests/051.out +++ b/tests/qemu-iotests/051.out @@ -74,7 +74,7 @@ QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,node-name=3Dfoo= #12: Invalid node-name: 'fo =20 Testing: -device virtio-scsi -device scsi-hd QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: -device scsi-hd: drive property not set +QEMU_PROG: -device scsi-hd: drive property not set =20 =20 =3D=3D=3D Overriding backing file =3D=3D=3D @@ -134,7 +134,7 @@ QEMU X.Y.Z monitor - type 'help' for more information =20 Testing: -drive if=3Dvirtio QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: -drive if=3Dvirtio: Device needs media, but drive is emp= ty +QEMU_PROG: -drive if=3Dvirtio: Device needs media, but drive is empty =20 =20 =3D=3D=3D Attach to node in non-default iothread =3D=3D=3D diff --git a/tests/qemu-iotests/051.pc.out b/tests/qemu-iotests/051.pc.out index bade1ff3b929..4d4af5a486df 100644 --- a/tests/qemu-iotests/051.pc.out +++ b/tests/qemu-iotests/051.pc.out @@ -74,7 +74,7 @@ QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,node-name=3Dfoo= #12: Invalid node-name: 'fo =20 Testing: -device virtio-scsi -device scsi-hd QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: -device scsi-hd: drive property not set +QEMU_PROG: -device scsi-hd: drive property not set =20 =20 =3D=3D=3D Overriding backing file =3D=3D=3D @@ -142,11 +142,11 @@ QEMU X.Y.Z monitor - type 'help' for more information =20 Testing: -drive if=3Dide QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: Device needs media, but drive is empty +QEMU_PROG: Device needs media, but drive is empty =20 Testing: -drive if=3Dvirtio QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: -drive if=3Dvirtio: Device needs media, but drive is emp= ty +QEMU_PROG: -drive if=3Dvirtio: Device needs media, but drive is empty =20 Testing: -drive if=3Dnone,id=3Ddisk -device ide-cd,drive=3Ddisk QEMU X.Y.Z monitor - type 'help' for more information @@ -158,22 +158,22 @@ QEMU X.Y.Z monitor - type 'help' for more information =20 Testing: -drive if=3Dnone,id=3Ddisk -device ide-hd,drive=3Ddisk QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: -device ide-hd,drive=3Ddisk: Device needs media, but dri= ve is empty +QEMU_PROG: -device ide-hd,drive=3Ddisk: Device needs media, but drive is e= mpty =20 Testing: -drive if=3Dnone,id=3Ddisk -device lsi53c895a -device scsi-hd,dri= ve=3Ddisk QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: -device scsi-hd,drive=3Ddisk: Device needs media, but dr= ive is empty +QEMU_PROG: -device scsi-hd,drive=3Ddisk: Device needs media, but drive is = empty =20 =20 =3D=3D=3D Attach to node in non-default iothread =3D=3D=3D =20 Testing: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,node-name=3Ddisk -object= iothread,id=3Dthread0 -device virtio-scsi,iothread=3Dthread0,id=3Dvirtio-s= csi0 -device scsi-hd,bus=3Dvirtio-scsi0.0,drive=3Ddisk,share-rw=3Don -devic= e ide-hd,drive=3Ddisk,share-rw=3Don QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: -device ide-hd,drive=3Ddisk,share-rw=3Don: Cannot change= iothread of active block backend +QEMU_PROG: -device ide-hd,drive=3Ddisk,share-rw=3Don: Cannot change iothre= ad of active block backend =20 Testing: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,node-name=3Ddisk -object= iothread,id=3Dthread0 -device virtio-scsi,iothread=3Dthread0,id=3Dvirtio-s= csi0 -device scsi-hd,bus=3Dvirtio-scsi0.0,drive=3Ddisk,share-rw=3Don -devic= e virtio-blk-pci,drive=3Ddisk,share-rw=3Don QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: -device virtio-blk-pci,drive=3Ddisk,share-rw=3Don: Canno= t change iothread of active block backend +QEMU_PROG: -device virtio-blk-pci,drive=3Ddisk,share-rw=3Don: Cannot chang= e iothread of active block backend =20 Testing: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,node-name=3Ddisk -object= iothread,id=3Dthread0 -device virtio-scsi,iothread=3Dthread0,id=3Dvirtio-s= csi0 -device scsi-hd,bus=3Dvirtio-scsi0.0,drive=3Ddisk,share-rw=3Don -devic= e lsi53c895a,id=3Dlsi0 -device scsi-hd,bus=3Dlsi0.0,drive=3Ddisk,share-rw= =3Don QEMU X.Y.Z monitor - type 'help' for more information @@ -185,7 +185,7 @@ QEMU X.Y.Z monitor - type 'help' for more information =20 Testing: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,node-name=3Ddisk -object= iothread,id=3Dthread0 -device virtio-scsi,iothread=3Dthread0,id=3Dvirtio-s= csi0 -device scsi-hd,bus=3Dvirtio-scsi0.0,drive=3Ddisk,share-rw=3Don -devic= e virtio-blk-pci,drive=3Ddisk,iothread=3Dthread0,share-rw=3Don QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: -device virtio-blk-pci,drive=3Ddisk,iothread=3Dthread0,s= hare-rw=3Don: Cannot change iothread of active block backend +QEMU_PROG: -device virtio-blk-pci,drive=3Ddisk,iothread=3Dthread0,share-rw= =3Don: Cannot change iothread of active block backend =20 Testing: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,node-name=3Ddisk -object= iothread,id=3Dthread0 -device virtio-scsi,iothread=3Dthread0,id=3Dvirtio-s= csi0 -device scsi-hd,bus=3Dvirtio-scsi0.0,drive=3Ddisk,share-rw=3Don -devic= e virtio-scsi,id=3Dvirtio-scsi1,iothread=3Dthread0 -device scsi-hd,bus=3Dvi= rtio-scsi1.0,drive=3Ddisk,share-rw=3Don QEMU X.Y.Z monitor - type 'help' for more information @@ -204,7 +204,7 @@ QEMU X.Y.Z monitor - type 'help' for more information =20 Testing: -drive file=3DTEST_DIR/t.qcow2,if=3Dide,readonly=3Don QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: Block node is read-only +QEMU_PROG: Block node is read-only =20 Testing: -drive file=3DTEST_DIR/t.qcow2,if=3Dvirtio,readonly=3Don QEMU X.Y.Z monitor - type 'help' for more information @@ -220,7 +220,7 @@ QEMU X.Y.Z monitor - type 'help' for more information =20 Testing: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,id=3Ddisk,readonly=3Don = -device ide-hd,drive=3Ddisk QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: -device ide-hd,drive=3Ddisk: Block node is read-only +QEMU_PROG: -device ide-hd,drive=3Ddisk: Block node is read-only =20 Testing: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,id=3Ddisk,readonly=3Don = -device lsi53c895a -device scsi-hd,drive=3Ddisk QEMU X.Y.Z monitor - type 'help' for more information --=20 2.40.1 From nobody Fri Mar 29 05:24:57 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1685024664; cv=none; d=zohomail.com; s=zohoarc; b=GrT/R3LplduoKXF8AcU8+YVRblM7CfTq91v2AmacJXEUtOA8BG3vWqy/OOHok8aLbEoI7KM40VMLbvfu/yuV1sC8pMdsFIp0mhymJkVtKU1R9YjTJiIvPgWw0Qu77gQ35C3T2q+fxL86X48KGDsq4/lJoKKaENC11kTWNIsSKVw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685024664; h=Content-Type:Content-Transfer-Encoding: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=SJIcYdZiEX3LyHd3jqDR3lyTstBBflPYOIz6+wi9CP8=; b=eQ2nVrmbCZ5O0KId3Xr5j3kWqBfyFa2ckiKLkJ+3Y5nm2lZ+Ut3HbNN3K890huaHwNiqB1ZG283dtely9zQItSvf7TnX4LJ6D5URvclDbQ9MPHIn9zdNbVdvHUlZyu2HAiZdBvo8jUkMcTM4B9aqlCdoFINNqqMeKSi9oQkhCtw= 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 1685024664887791.7334224595348; Thu, 25 May 2023 07:24:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2BlL-0004mT-6K; Thu, 25 May 2023 10:16:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bl7-0004fQ-SY for qemu-devel@nongnu.org; Thu, 25 May 2023 10:16:07 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bl5-0007ez-Px for qemu-devel@nongnu.org; Thu, 25 May 2023 10:16:05 -0400 Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-279-LpJ4kMZPMr-qBc7tzOw8kQ-1; Thu, 25 May 2023 10:16:01 -0400 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-96f4f1bb838so69138866b.3 for ; Thu, 25 May 2023 07:15:59 -0700 (PDT) Received: from [192.168.10.117] ([2001:b07:6468:f312:48f9:bea:a04c:3dfe]) by smtp.gmail.com with ESMTPSA id k12-20020a170906128c00b00965a52d2bf6sm876614ejb.88.2023.05.25.07.15.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 07:15:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685024163; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=SJIcYdZiEX3LyHd3jqDR3lyTstBBflPYOIz6+wi9CP8=; b=UtZ2gzGdBMS8pfEr6uvILoptOdIQkNWwXrajh3Gmi2FS7Sr+6M5dUv7ewySOq7/zqvYWzS n1xExujEH4SoLMZknld8IXADbhBSJyWPnxIjMSrBzVzg6DINkrI6PkhE9XAXGIR+/aIT46 /gwV48doR8T63mN9M9elD2/YDjli2AI= X-MC-Unique: LpJ4kMZPMr-qBc7tzOw8kQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024158; x=1687616158; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SJIcYdZiEX3LyHd3jqDR3lyTstBBflPYOIz6+wi9CP8=; b=RSP1yu/Lyt8klckyuwMMRoP1FD72UmbW/xz+yrbvofJhrGgFXsrZRjK38H9EfbmBt4 +Z5UDwqHbfol3hJllUfQN7rpyCk5LD98HQyGp4jPzH7VDCSpZUNYp48Io9wkqXFZ1ncR lPmv+OI2J3CW2qUlIOnHsQUEMQUgu8XAHorlIqrrPj6vuIkTIo6Z9A1P4g+8YwHJy3Gj Lni1Ohj1E8fTatoS+SJWG6f2aZZt1P18DAS2IZUyqTU3gpDaQaEdV5cAOpGX/qcic1DX aemmlhCsEMCgPHOMU/rxmUQTJQ4bKtzVuCT2YrsIEPGz2MDhJP4h9SaL5a6Sguls4+Be n4xw== X-Gm-Message-State: AC+VfDzEoc8mXgK03nRzMWlDrNA6eCRAByCe/OCxIOyyIvrgG9gFm679 AbHcVXtw1jx3C7kt/uHUahzfbneLU2cQWnX0RKHm1oUuowrZwVJzRDxBEvzsg7PWVDTzHp73Sm9 gfMFR4UHFQDTOKrVlehrak0T+ryFa+CJqV86xRbyAYQvmKkKsRxJ4Yb2FFDO6fQWDoE2FnKOdSG w= X-Received: by 2002:a17:907:707:b0:96b:1608:3563 with SMTP id xb7-20020a170907070700b0096b16083563mr1767506ejb.58.1685024158138; Thu, 25 May 2023 07:15:58 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6pOLYk1iCVewesqi5FE8h4Yhkx2gKELsU1EeMazv7m6VNEnoOs4mXiV3dvgVVG96EEbBoRQg== X-Received: by 2002:a17:907:707:b0:96b:1608:3563 with SMTP id xb7-20020a170907070700b0096b16083563mr1767479ejb.58.1685024157704; Thu, 25 May 2023 07:15:57 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 16/20] monitor: cleanup detection of qmp_dispatcher_co shutting down Date: Thu, 25 May 2023 16:15:28 +0200 Message-Id: <20230525141532.295817-17-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230525141532.295817-1-pbonzini@redhat.com> References: <20230525141532.295817-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; 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, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1685024665428100001 Content-Type: text/plain; charset="utf-8" Instead of overloading qmp_dispatcher_co_busy, make the coroutine pointer NULL. This will make things break spectacularly if somebody tries to start a request after monitor_cleanup(). AIO_WAIT_WHILE_UNLOCKED() does not need qatomic_mb_read(), because the macro contains all the necessary memory barriers. Signed-off-by: Paolo Bonzini --- monitor/monitor.c | 2 +- monitor/qmp.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/monitor/monitor.c b/monitor/monitor.c index 15f97538ef2b..c4ed2547c25f 100644 --- a/monitor/monitor.c +++ b/monitor/monitor.c @@ -686,7 +686,7 @@ void monitor_cleanup(void) =20 AIO_WAIT_WHILE_UNLOCKED(NULL, (aio_poll(iohandler_get_aio_context(), false), - qatomic_mb_read(&qmp_dispatcher_co_busy))); + qatomic_read(&qmp_dispatcher_co))); =20 /* * We need to explicitly stop the I/O thread (but not destroy it), diff --git a/monitor/qmp.c b/monitor/qmp.c index 092c527b6fc9..f0cc6dc886f8 100644 --- a/monitor/qmp.c +++ b/monitor/qmp.c @@ -226,6 +226,7 @@ void coroutine_fn monitor_qmp_dispatcher_co(void *data) =20 /* On shutdown, don't take any more requests from the queue */ if (qmp_dispatcher_co_shutdown) { + qatomic_set(&qmp_dispatcher_co, NULL); return; } =20 @@ -250,6 +251,7 @@ void coroutine_fn monitor_qmp_dispatcher_co(void *data) * yielded and were reentered from monitor_cleanup() */ if (qmp_dispatcher_co_shutdown) { + qatomic_set(&qmp_dispatcher_co, NULL); return; } } --=20 2.40.1 From nobody Fri Mar 29 05:24:57 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1685024550; cv=none; d=zohomail.com; s=zohoarc; b=goPgfHagZw4qje65SPR2OpbGDRUvdoPFbyD5sERu9W+Ex6eE6kbaZ3f73O51oTNkzmDiuHrqtK5Bl1NfiXOHsyWcL4DldkNxyuhxRuR153lEAYgagnsnlUbMgbbWvJRBsMZ0K5PNAm9STgU9mMj0gO4YzIxtLdVg6k715wPeppo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685024550; h=Content-Type:Content-Transfer-Encoding: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=eiK10lJM3Fr+F6lAulMixwUliXSAcQs4di3viP4dGw0=; b=fVEMIYnBr8W3yW75ooUsZHcA+olP2nA7yth3O/gmvR8SusuTezJBU7xCV/Fj2NPYf978x3SHbK0VfPfuHsFvnNQMwsZPXRaCIeacRGVNQL0/W7qUcZO6zqnK/uJIDiGJ1KQt9AWurdrhmL1UKs9EiI2bENrINkuWGJmQMv6o/5g= 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 1685024550831542.5911709147118; Thu, 25 May 2023 07:22:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2BlI-0004jQ-Th; Thu, 25 May 2023 10:16:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2BlA-0004gQ-KU for qemu-devel@nongnu.org; Thu, 25 May 2023 10:16:09 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bl9-0007fz-2K for qemu-devel@nongnu.org; Thu, 25 May 2023 10:16:08 -0400 Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-511-mOSMhz2iM4-od70QX53O7A-1; Thu, 25 May 2023 10:16:03 -0400 Received: by mail-ed1-f71.google.com with SMTP id 4fb4d7f45d1cf-510eb233a81so2350156a12.1 for ; Thu, 25 May 2023 07:16:01 -0700 (PDT) Received: from [192.168.10.117] ([2001:b07:6468:f312:48f9:bea:a04c:3dfe]) by smtp.gmail.com with ESMTPSA id d27-20020a056402517b00b0050c0d651fb1sm594076ede.75.2023.05.25.07.15.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 07:15:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685024166; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eiK10lJM3Fr+F6lAulMixwUliXSAcQs4di3viP4dGw0=; b=AsfVU9JumCWVcY0/bA3VvypWDSdUVr18nqY8xCTxbMXD6WVymSYMIs6bVIyxuI6wft2QYF Z8ulvh/xhJ44JSZCrEb2lyMIW0LeacoZMQ69BAmgqFVhcQ/OeKu0RYuzsugvB87eF7ANSr TBa/9EzYjlmtprJiQfuTkkO7KT7BThE= X-MC-Unique: mOSMhz2iM4-od70QX53O7A-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024159; x=1687616159; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eiK10lJM3Fr+F6lAulMixwUliXSAcQs4di3viP4dGw0=; b=iS62CZX0czhMQIdOCGp8bhuXcigSfgh8wKMZ7+CL0PitDKn7umAPxTlHzL+KRLBPJt EE49uAKibZ4f5LrjueHCZkOs6QqDLRnw9xELI3agc8xxFwWwrFm+8+SuFd8JkVx5iWOZ ylp/4DgpNbDlhimCpTk+OI+PMca8j3eHQ0I734qrtuwee4Evrgzw73QyKY2uI2ZSJo9r WcICpm+6i+Tqd4ioUKroo/ycAcfad9fR5nypshmVHN866qyQ9am8OcoQ0tk7LZnrs8rE 6iUbRe7hPKxsdYHU5W6rRqSbFF87yTvaBxkBCk5+M1Dorjz4bi5c6SmYg3CT22LlTbZY LCmw== X-Gm-Message-State: AC+VfDwUcPGkvNrtwcuUPviK77KPhIM3pq+uhXn6uvf2EPSAS+V0rbra J25t3BzP8P5QGZz5A6Nj6AmvhiwVcBh4L8oLJs5T5HpQTv6l+KXE+AEdM3yD/4OB2OXEt76WQIk IRdWv5PGubZKkfUIATsvRLy3/jMd7Fqm2ppqvRKANWczL8yQGNWeOSTN+N2nKJ25QXMMFSfA6NU g= X-Received: by 2002:a05:6402:3457:b0:50b:d495:106c with SMTP id l23-20020a056402345700b0050bd495106cmr4269197edc.8.1685024159735; Thu, 25 May 2023 07:15:59 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7q4dmTyWa+2quxd0ChOihR6UaWq7uemWA10zlT2zMu7sIIepItO6/9W7R/i78duJWp9AeVlg== X-Received: by 2002:a05:6402:3457:b0:50b:d495:106c with SMTP id l23-20020a056402345700b0050bd495106cmr4269176edc.8.1685024159380; Thu, 25 May 2023 07:15:59 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 17/20] monitor: cleanup fetching of QMP requests Date: Thu, 25 May 2023 16:15:29 +0200 Message-Id: <20230525141532.295817-18-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230525141532.295817-1-pbonzini@redhat.com> References: <20230525141532.295817-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; 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, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1685024552154100007 Content-Type: text/plain; charset="utf-8" Use a continue statement so that "after going to sleep" is treated the same way as "after processing a request". Pull the monitor_lock critical section out of monitor_qmp_requests_pop_any_with_lock() and protect qmp_dispatcher_co_shutdown with the monitor_lock. The two changes are complex to separate because monitor_qmp_dispatcher_co() previously had a complicated logic to check for shutdown both before and after going to sleep. Signed-off-by: Paolo Bonzini --- monitor/monitor.c | 9 +++++++-- monitor/qmp.c | 40 +++++++++++++++------------------------- 2 files changed, 22 insertions(+), 27 deletions(-) diff --git a/monitor/monitor.c b/monitor/monitor.c index c4ed2547c25f..042a1ab918f9 100644 --- a/monitor/monitor.c +++ b/monitor/monitor.c @@ -56,7 +56,10 @@ IOThread *mon_iothread; /* Coroutine to dispatch the requests received from I/O thread */ Coroutine *qmp_dispatcher_co; =20 -/* Set to true when the dispatcher coroutine should terminate */ +/* + * Set to true when the dispatcher coroutine should terminate. Protected + * by monitor_lock. + */ bool qmp_dispatcher_co_shutdown; =20 /* @@ -679,7 +682,9 @@ void monitor_cleanup(void) * we'll just leave them in the queue without sending a response * and monitor_data_destroy() will free them. */ - qmp_dispatcher_co_shutdown =3D true; + WITH_QEMU_LOCK_GUARD(&monitor_lock) { + qmp_dispatcher_co_shutdown =3D true; + } if (!qatomic_xchg(&qmp_dispatcher_co_busy, true)) { aio_co_wake(qmp_dispatcher_co); } diff --git a/monitor/qmp.c b/monitor/qmp.c index f0cc6dc886f8..dfc215632865 100644 --- a/monitor/qmp.c +++ b/monitor/qmp.c @@ -178,8 +178,6 @@ static QMPRequest *monitor_qmp_requests_pop_any_with_lo= ck(void) Monitor *mon; MonitorQMP *qmp_mon; =20 - QEMU_LOCK_GUARD(&monitor_lock); - QTAILQ_FOREACH(mon, &mon_list, entry) { if (!monitor_is_qmp(mon)) { continue; @@ -215,6 +213,10 @@ void coroutine_fn monitor_qmp_dispatcher_co(void *data) MonitorQMP *mon; =20 while (true) { + /* + * busy must be set to true again by whoever + * rescheduled us to avoid double scheduling + */ assert(qatomic_mb_read(&qmp_dispatcher_co_busy) =3D=3D true); =20 /* @@ -224,36 +226,23 @@ void coroutine_fn monitor_qmp_dispatcher_co(void *dat= a) */ qatomic_mb_set(&qmp_dispatcher_co_busy, false); =20 - /* On shutdown, don't take any more requests from the queue */ - if (qmp_dispatcher_co_shutdown) { - qatomic_set(&qmp_dispatcher_co, NULL); - return; + WITH_QEMU_LOCK_GUARD(&monitor_lock) { + /* On shutdown, don't take any more requests from the queue */ + if (qmp_dispatcher_co_shutdown) { + return NULL; + } + + req_obj =3D monitor_qmp_requests_pop_any_with_lock(); } =20 - while (!(req_obj =3D monitor_qmp_requests_pop_any_with_lock())) { + if (!req_obj) { /* * No more requests to process. Wait to be reentered from * handle_qmp_command() when it pushes more requests, or * from monitor_cleanup() when it requests shutdown. */ - if (!qmp_dispatcher_co_shutdown) { - qemu_coroutine_yield(); - - /* - * busy must be set to true again by whoever - * rescheduled us to avoid double scheduling - */ - assert(qatomic_xchg(&qmp_dispatcher_co_busy, false) =3D=3D= true); - } - - /* - * qmp_dispatcher_co_shutdown may have changed if we - * yielded and were reentered from monitor_cleanup() - */ - if (qmp_dispatcher_co_shutdown) { - qatomic_set(&qmp_dispatcher_co, NULL); - return; - } + qemu_coroutine_yield(); + continue; } =20 trace_monitor_qmp_in_band_dequeue(req_obj, @@ -342,6 +331,7 @@ void coroutine_fn monitor_qmp_dispatcher_co(void *data) aio_co_schedule(iohandler_get_aio_context(), qmp_dispatcher_co); qemu_coroutine_yield(); } + qatomic_set(&qmp_dispatcher_co, NULL); } =20 static void handle_qmp_command(void *opaque, QObject *req, Error *err) --=20 2.40.1 From nobody Fri Mar 29 05:24:57 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1685024481; cv=none; d=zohomail.com; s=zohoarc; b=DD6OGiU0y0UznPRPwaF8mkmIZVRhWs4HA+JCMlISiDLjyyoWA6TpS5qz4Jam5iVNrA3/GdztPqAdASlZ0+v59yrqCpGPG6UR3YoU/kR6Q29/0z4J6ub4Pk+RqicEmeCb9+z+nkm8IephsOiJWc8wubdncdmRUun+4+FW7dNLjhk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685024481; h=Content-Type:Content-Transfer-Encoding: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=O2PLsbXG5vr5D9VC6WIdD+L79W4Lo+phkDs6SMTk9b4=; b=fQEx0u/02IB6fLTjF+/E4lf52amY85yppbypBGUPUx71YT8IyN3DLujG/T7LttYigDBrcfGI5AGqWKsQd2G23TIRfc8eY3+W1DQjHQaB8Wqs70cBuI5jeL19PUJsKsk7rvu/fNXx3lnLNZ/8Mqj06Vx6t7EDESEY4x59kV6z+4k= 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 1685024481368218.00105231639714; Thu, 25 May 2023 07:21:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2BlJ-0004lW-OQ; Thu, 25 May 2023 10:16:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2BlB-0004gU-IG for qemu-devel@nongnu.org; Thu, 25 May 2023 10:16:10 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2Bl9-0007fh-2o for qemu-devel@nongnu.org; Thu, 25 May 2023 10:16:09 -0400 Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-124-vLDMBiMkMCKpjk_nV7aPmQ-1; Thu, 25 May 2023 10:16:03 -0400 Received: by mail-ej1-f69.google.com with SMTP id a640c23a62f3a-96f9aa23593so69061766b.1 for ; Thu, 25 May 2023 07:16:02 -0700 (PDT) Received: from [192.168.10.117] ([2001:b07:6468:f312:48f9:bea:a04c:3dfe]) by smtp.gmail.com with ESMTPSA id n10-20020a1709065e0a00b0096f7e7d1566sm889963eju.224.2023.05.25.07.15.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 07:16:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685024165; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=O2PLsbXG5vr5D9VC6WIdD+L79W4Lo+phkDs6SMTk9b4=; b=cIlRGNcyfmYc0jmVlhqgdj/2roFWpgQalZUoliC9f9hkOjHrStONhTztwb5740HIbGKSGN 8M+WPFJ2eTrAP+BxVMKvfgNCt7xM+2i4Fk7yXCELYxBMEF5+0ORxnrx9yK139ZjI6e+6Aq U3eL23fq7NmMoNh5F/yEPy1TQqTjcSg= X-MC-Unique: vLDMBiMkMCKpjk_nV7aPmQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024161; x=1687616161; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=O2PLsbXG5vr5D9VC6WIdD+L79W4Lo+phkDs6SMTk9b4=; b=SdNG8wD9rpGZK6PeyQDIdk4bMCiOn+kxQyKFJQupoZ4eK23zlJ5dEMORbHnFZRrXaX qXi4ooi08Qd4KAL2Ug6OD2fYt5BCpTUU33qM8ybGIGVIB8Cxtuf2+7qtvUSod0woz1Hs TAWNJAfFN7G79LOwNkFQXmBjwIOt0qfQv0u4PZeVGPT0MPB2OkJcpxWQVw730pGxcS2Z y0ozwwAhNqvMSGdWipevlS7Yh8C+zWLVkrQEoaPhFI6yiLxjlaxRKFnYrGrGyWuQcSmp igFEjFgxL7pAGTUPoRiivvQkaoA0FipzyYh9wlopB46BhPEpPl2v2s++7Sj6MK8QvZ3E YRKQ== X-Gm-Message-State: AC+VfDxKrxM7Z1KoZZCEbSrJjo23ywQPSqujOpi6wOx9n4rWOAprYfw9 WVbJRenBuIX4LRGAYD1e8SA7Ihmp3Ovz03yztl1Asaxr9sntpMP5j9OH78EAxthLMUYjAI/DOoz CGvibxz2v2UYDgPoIEPB/1r4PCWCp0iNlGXOnXuUx7VQ0ITV3jDOyWMG5vsz9H5BpD7KbhBsaMY o= X-Received: by 2002:a17:907:3fa2:b0:96f:5b7c:360b with SMTP id hr34-20020a1709073fa200b0096f5b7c360bmr2475392ejc.0.1685024161196; Thu, 25 May 2023 07:16:01 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4dGgJ0PCy0rdh4gco9EtAfWOQW+M6CWqWjOxNDdc3UX3PbemmDTLUukHuSsUqnl31q/jL6sw== X-Received: by 2002:a17:907:3fa2:b0:96f:5b7c:360b with SMTP id hr34-20020a1709073fa200b0096f5b7c360bmr2475365ejc.0.1685024160753; Thu, 25 May 2023 07:16:00 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 18/20] monitor: introduce qmp_dispatcher_co_wake Date: Thu, 25 May 2023 16:15:30 +0200 Message-Id: <20230525141532.295817-19-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230525141532.295817-1-pbonzini@redhat.com> References: <20230525141532.295817-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; 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, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1685024482405100001 Content-Type: text/plain; charset="utf-8" This makes it possible to turn qmp_dispatcher_co_busy into a static variable. Signed-off-by: Paolo Bonzini --- monitor/monitor-internal.h | 2 +- monitor/monitor.c | 26 +------------------------- monitor/qmp.c | 32 +++++++++++++++++++++++++++++--- 3 files changed, 31 insertions(+), 29 deletions(-) diff --git a/monitor/monitor-internal.h b/monitor/monitor-internal.h index 61c9b6916db3..252de856812f 100644 --- a/monitor/monitor-internal.h +++ b/monitor/monitor-internal.h @@ -165,7 +165,6 @@ typedef QTAILQ_HEAD(MonitorList, Monitor) MonitorList; extern IOThread *mon_iothread; extern Coroutine *qmp_dispatcher_co; extern bool qmp_dispatcher_co_shutdown; -extern bool qmp_dispatcher_co_busy; extern QmpCommandList qmp_commands, qmp_cap_negotiation_commands; extern QemuMutex monitor_lock; extern MonitorList mon_list; @@ -183,6 +182,7 @@ void monitor_fdsets_cleanup(void); void qmp_send_response(MonitorQMP *mon, const QDict *rsp); void monitor_data_destroy_qmp(MonitorQMP *mon); void coroutine_fn monitor_qmp_dispatcher_co(void *data); +void qmp_dispatcher_co_wake(void); =20 int get_monitor_def(Monitor *mon, int64_t *pval, const char *name); void handle_hmp_command(MonitorHMP *mon, const char *cmdline); diff --git a/monitor/monitor.c b/monitor/monitor.c index 042a1ab918f9..dc352f9e9d95 100644 --- a/monitor/monitor.c +++ b/monitor/monitor.c @@ -62,27 +62,6 @@ Coroutine *qmp_dispatcher_co; */ bool qmp_dispatcher_co_shutdown; =20 -/* - * qmp_dispatcher_co_busy is used for synchronisation between the - * monitor thread and the main thread to ensure that the dispatcher - * coroutine never gets scheduled a second time when it's already - * scheduled (scheduling the same coroutine twice is forbidden). - * - * It is true if the coroutine is active and processing requests. - * Additional requests may then be pushed onto mon->qmp_requests, - * and @qmp_dispatcher_co_shutdown may be set without further ado. - * @qmp_dispatcher_co_busy must not be woken up in this case. - * - * If false, you also have to set @qmp_dispatcher_co_busy to true and - * wake up @qmp_dispatcher_co after pushing the new requests. - * - * The coroutine will automatically change this variable back to false - * before it yields. Nobody else may set the variable to false. - * - * Access must be atomic for thread safety. - */ -bool qmp_dispatcher_co_busy; - /* * Protects mon_list, monitor_qapi_event_state, coroutine_mon, * monitor_destroyed. @@ -685,9 +664,7 @@ void monitor_cleanup(void) WITH_QEMU_LOCK_GUARD(&monitor_lock) { qmp_dispatcher_co_shutdown =3D true; } - if (!qatomic_xchg(&qmp_dispatcher_co_busy, true)) { - aio_co_wake(qmp_dispatcher_co); - } + qmp_dispatcher_co_wake(); =20 AIO_WAIT_WHILE_UNLOCKED(NULL, (aio_poll(iohandler_get_aio_context(), false), @@ -742,7 +719,6 @@ void monitor_init_globals(void) * rid of those assumptions. */ qmp_dispatcher_co =3D qemu_coroutine_create(monitor_qmp_dispatcher_co,= NULL); - qatomic_mb_set(&qmp_dispatcher_co_busy, true); aio_co_schedule(iohandler_get_aio_context(), qmp_dispatcher_co); } =20 diff --git a/monitor/qmp.c b/monitor/qmp.c index dfc215632865..613b74ec74a7 100644 --- a/monitor/qmp.c +++ b/monitor/qmp.c @@ -33,6 +33,27 @@ #include "qapi/qmp/qlist.h" #include "trace.h" =20 +/* + * qmp_dispatcher_co_busy is used for synchronisation between the + * monitor thread and the main thread to ensure that the dispatcher + * coroutine never gets scheduled a second time when it's already + * scheduled (scheduling the same coroutine twice is forbidden). + * + * It is true if the coroutine is active and processing requests. + * Additional requests may then be pushed onto mon->qmp_requests, + * and @qmp_dispatcher_co_shutdown may be set without further ado. + * @qmp_dispatcher_co_busy must not be woken up in this case. + * + * If false, you also have to set @qmp_dispatcher_co_busy to true and + * wake up @qmp_dispatcher_co after pushing the new requests. + * + * The coroutine will automatically change this variable back to false + * before it yields. Nobody else may set the variable to false. + * + * Access must be atomic for thread safety. + */ +static bool qmp_dispatcher_co_busy =3D true; + struct QMPRequest { /* Owner of the request */ MonitorQMP *mon; @@ -334,6 +355,13 @@ void coroutine_fn monitor_qmp_dispatcher_co(void *data) qatomic_set(&qmp_dispatcher_co, NULL); } =20 +void qmp_dispatcher_co_wake(void) +{ + if (!qatomic_xchg(&qmp_dispatcher_co_busy, true)) { + aio_co_wake(qmp_dispatcher_co); + } +} + static void handle_qmp_command(void *opaque, QObject *req, Error *err) { MonitorQMP *mon =3D opaque; @@ -395,9 +423,7 @@ static void handle_qmp_command(void *opaque, QObject *r= eq, Error *err) } =20 /* Kick the dispatcher routine */ - if (!qatomic_xchg(&qmp_dispatcher_co_busy, true)) { - aio_co_wake(qmp_dispatcher_co); - } + qmp_dispatcher_co_wake(); } =20 static void monitor_qmp_read(void *opaque, const uint8_t *buf, int size) --=20 2.40.1 From nobody Fri Mar 29 05:24:57 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1685024549; cv=none; d=zohomail.com; s=zohoarc; b=EdZw7oV1etpTsP5VpShbIx6LUAxs4SHospL2S4iv7DqLWGcWl6StT3zGs0LwSlILG/RlJDVLi71/zFZk1xRl/ye2xVK6RM0FBYUkETjyPAaRugAtqc1wftlqlYGwddoFKff3feQe5ndT4qrAQepVCXP3D3v4LcBo1lpViclyqqY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685024549; h=Content-Type:Content-Transfer-Encoding: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=WsCB2PpMqLAI751TxRUVX6LSKdDhP9H0kd0ajUo5CnM=; b=lKoa215XVbi30/0GUMlN3MaYA+9fsTbIRoxDsGbX1AV326M3ttdPa+cRJ/U8dpTUwC5MxTBZBubfjf5jmEDEyzAW5MjE780894a7zN4ljCDBaUX7dpaXuYpgf/7Mm4ylqgtxNTTw7EwAuSHsuiUugTjenRxBZLmXvNczYKFYxAs= 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 1685024549824383.39594843156044; Thu, 25 May 2023 07:22:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2BlN-0004om-4f; Thu, 25 May 2023 10:16:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2BlC-0004gl-9n for qemu-devel@nongnu.org; Thu, 25 May 2023 10:16:11 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2BlA-0007gI-OZ for qemu-devel@nongnu.org; Thu, 25 May 2023 10:16:10 -0400 Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-613-xSna5nl8PD2_JvixCFW1mA-1; Thu, 25 May 2023 10:16:04 -0400 Received: by mail-ej1-f72.google.com with SMTP id a640c23a62f3a-96f46e5897eso85694366b.3 for ; Thu, 25 May 2023 07:16:03 -0700 (PDT) Received: from [192.168.10.117] ([2001:b07:6468:f312:48f9:bea:a04c:3dfe]) by smtp.gmail.com with ESMTPSA id oz2-20020a170906cd0200b00932fa67b48fsm897651ejb.183.2023.05.25.07.16.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 07:16:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685024168; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=WsCB2PpMqLAI751TxRUVX6LSKdDhP9H0kd0ajUo5CnM=; b=Q3sv/sjSvYn+bi6OV4mlPbHRgY6ggumshbpKl3uw4TVQh4qRE/VTuuaeZuxxTs6OTHBQw1 6fIh/PruAn0XCkDC3r7GO8YDJQ/Uru1rOMbr2simxR3otEiCsgF2zimb6s3aAT2boI9S0l LuJMBWwFw9vqEqtzZ3UuHhNFOq7aMoA= X-MC-Unique: xSna5nl8PD2_JvixCFW1mA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024162; x=1687616162; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WsCB2PpMqLAI751TxRUVX6LSKdDhP9H0kd0ajUo5CnM=; b=bFxveOmVR7Ik1vwc5wzLNoPt12zMf7EjKWoMb48KitP1asC+DHOW0ZEnSs0mTgENLS erNva6FABdbIqMhRNgh5v1n8YBE0gB2QOfCrBPz1mcn+kPIx6oVwospLbfUONDVGxA2Q 01sw7qzrz8nwygYIowITptJTyZrEvWd3jifIpLdVoqoKS81kZACwXj1spPqW6Y9Z/PjC 2clW/7Z0u6NnBW+XjoSU2mDNMhdnstH0XzPEoJVB2AIX+7lWY6q8Nn7O09bIE2elR09D ZZ046Wg/RF5eQO0qRDeo2J41LSqRs+G668yYbFukquW2sd+eCtVBVgcUAg4fMWfR/ep5 slqg== X-Gm-Message-State: AC+VfDxbVaEw+f3rlbiPNlCeZeEOMc7vgem/pjp93OTTiLoTfsiyqoV+ gHkpkStdS/6yr8aeSOwA4qDGVBisr9jbYD9oiccYSOMPG4BuQh4Lu9LHAIU/dphP1mX4qMlzfda pdx2t+UBmITVEqgKTqByU7cEiM2qDokvyLIhOoN9R3pwRiWoya/xGOVJsrgIz1OzwLq/1QSjoYb 8= X-Received: by 2002:a17:906:6a0c:b0:96f:3e35:748a with SMTP id qw12-20020a1709066a0c00b0096f3e35748amr2240381ejc.6.1685024162372; Thu, 25 May 2023 07:16:02 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7Sj7MfAmZe1b5yQuqy2xxgN8jtur90fXy9yjlCagLg1XzrrKw7aEd89vVqltIPNfO5Ne9VtA== X-Received: by 2002:a17:906:6a0c:b0:96f:3e35:748a with SMTP id qw12-20020a1709066a0c00b0096f3e35748amr2240362ejc.6.1685024162102; Thu, 25 May 2023 07:16:02 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 19/20] monitor: extract request dequeuing to a new function Date: Thu, 25 May 2023 16:15:31 +0200 Message-Id: <20230525141532.295817-20-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230525141532.295817-1-pbonzini@redhat.com> References: <20230525141532.295817-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; 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, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1685024550195100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Paolo Bonzini --- monitor/qmp.c | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/monitor/qmp.c b/monitor/qmp.c index 613b74ec74a7..e6b1043c9f7b 100644 --- a/monitor/qmp.c +++ b/monitor/qmp.c @@ -226,13 +226,8 @@ static QMPRequest *monitor_qmp_requests_pop_any_with_l= ock(void) return req_obj; } =20 -void coroutine_fn monitor_qmp_dispatcher_co(void *data) +static QMPRequest *monitor_qmp_dispatcher_pop_any(void) { - QMPRequest *req_obj =3D NULL; - QDict *rsp; - bool oob_enabled; - MonitorQMP *mon; - while (true) { /* * busy must be set to true again by whoever @@ -248,24 +243,36 @@ void coroutine_fn monitor_qmp_dispatcher_co(void *dat= a) qatomic_mb_set(&qmp_dispatcher_co_busy, false); =20 WITH_QEMU_LOCK_GUARD(&monitor_lock) { + QMPRequest *req_obj; + /* On shutdown, don't take any more requests from the queue */ if (qmp_dispatcher_co_shutdown) { return NULL; } =20 req_obj =3D monitor_qmp_requests_pop_any_with_lock(); + if (req_obj) { + return req_obj; + } } =20 - if (!req_obj) { - /* - * No more requests to process. Wait to be reentered from - * handle_qmp_command() when it pushes more requests, or - * from monitor_cleanup() when it requests shutdown. - */ - qemu_coroutine_yield(); - continue; - } + /* + * No more requests to process. Wait to be reentered from + * handle_qmp_command() when it pushes more requests, or + * from monitor_cleanup() when it requests shutdown. + */ + qemu_coroutine_yield(); + } +} =20 +void coroutine_fn monitor_qmp_dispatcher_co(void *data) +{ + QMPRequest *req_obj; + QDict *rsp; + bool oob_enabled; + MonitorQMP *mon; + + while ((req_obj =3D monitor_qmp_dispatcher_pop_any()) !=3D NULL) { trace_monitor_qmp_in_band_dequeue(req_obj, req_obj->mon->qmp_requests->leng= th); =20 --=20 2.40.1 From nobody Fri Mar 29 05:24:57 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1685024669; cv=none; d=zohomail.com; s=zohoarc; b=LGGHGZXSPveLtOiDywDQJOb7By1d1AAjBzIQTq7FUMnOatwtkK8gIj3NxfqVzlVnDEbErzBBvZ8MyrdkY/ifQ4ug4SFNM+8yw96Y+5qI7HlQcymPiOKqaHDRYsXmJe1mJp/3yH2l+gQcKVHB471wnQVrqddEdR5RWfRWFERdbxM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685024669; h=Content-Type:Content-Transfer-Encoding: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=uLqngycXeoMkwV+TcVmJCMGv/WB1nSRpyxhzsgGE6qc=; b=W4N63sdeiSvX3Qraq8iEzydfk9j4Hl0/OCpoE/cUXpZpRs25APsRapZB59O9rg4JZdhdAitypr6tO1GLmrZWs+eSR7FPQEASI+eLvlldE2HJLLh2Vu7C12cikaeNRqDxmYF30+xi8HFZuPOPPJMircohQluRv//F9ckG4m+C6dM= 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 1685024669896112.23496528392025; Thu, 25 May 2023 07:24:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2BlL-0004nZ-Ty; Thu, 25 May 2023 10:16:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2BlC-0004go-RD for qemu-devel@nongnu.org; Thu, 25 May 2023 10:16:11 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2BlB-0007gS-B2 for qemu-devel@nongnu.org; Thu, 25 May 2023 10:16:10 -0400 Received: from mail-ej1-f71.google.com (mail-ej1-f71.google.com [209.85.218.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-282--pg1nnwlN0-jdEkvAEbBwA-1; Thu, 25 May 2023 10:16:05 -0400 Received: by mail-ej1-f71.google.com with SMTP id a640c23a62f3a-96fa4c724fdso77876066b.0 for ; Thu, 25 May 2023 07:16:05 -0700 (PDT) Received: from [192.168.10.117] ([2001:b07:6468:f312:48f9:bea:a04c:3dfe]) by smtp.gmail.com with ESMTPSA id lr7-20020a170906fb8700b009659fed3612sm904340ejb.24.2023.05.25.07.16.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 07:16:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685024168; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=uLqngycXeoMkwV+TcVmJCMGv/WB1nSRpyxhzsgGE6qc=; b=OEnTCH2vb20D9UOLF3MCtMBb1iaGqgxI0sgTNFC3JP3wQKyj+RyBRioqsCjo1nBEJnslfE rudPZ6rAjgsMsr1hxQ4NHTXI47BSF4AkgJ9EmrqYrU2iFAy+6DPMNG8I896DQIemGQc6Y5 nGZZBJkeL4KLmN4hi8l0i2i90hx7tf4= X-MC-Unique: -pg1nnwlN0-jdEkvAEbBwA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024164; x=1687616164; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uLqngycXeoMkwV+TcVmJCMGv/WB1nSRpyxhzsgGE6qc=; b=icxW60gbAmXHmhB8Ancddl9d1/hCmukEphtuwtfn2+4VEwtzJAk5Upv2B1U7UN/Fp0 EldahbuR6IQL4Oswm059k+qBcfL1Eti5lgXaZhRc0ivhF9KgJNzqInMNDVKgsI0GDoGl NXcRu53dy2FyGzZKuV2TNhhXuiGLH+zgSjQAhNQffKALPovXESzQVkQEn6rAe4J2Hv27 H3B86zlPjj32SVTJ/MwtvmUp62fvAEiBlc5Q0bjjj7H/7IIqi3LM1qYYLnBqpC/Sm59W nZxcTc7Uk1SfmynB6hFhjENt3px8ZifaeHcSY2mC4GOA3aaB2jzFTrvtGprr9NZXLn3w NY1Q== X-Gm-Message-State: AC+VfDwONbFtYRm9amhXCjeDaQxo311BvO1s/YjsiOd28Z3lY36F8GmA jk7gg5kRZIh5PwAUmDnEYZuDzAnClav5N80qAB+nwQKuFe0+g82QgKIym5RJbI41CmRZCDXIOpe ED49Yxc1nPRJZ7xJnpCur1vh+ebvQzAI6AG3/dTqXGEG6DKPPtbrTMniZnpCn2zkylIdimErWx+ E= X-Received: by 2002:a17:907:94c3:b0:94a:653b:ba41 with SMTP id dn3-20020a17090794c300b0094a653bba41mr1770087ejc.15.1685024164163; Thu, 25 May 2023 07:16:04 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5rDyFnkTOAlsKEe+DbVshcclrylxsfiEv0l5hrWDZswX+AyGuVyl/DKhCCmi+WyX9ziPyFHg== X-Received: by 2002:a17:907:94c3:b0:94a:653b:ba41 with SMTP id dn3-20020a17090794c300b0094a653bba41mr1770061ejc.15.1685024163756; Thu, 25 May 2023 07:16:03 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 20/20] monitor: do not use mb_read/mb_set Date: Thu, 25 May 2023 16:15:32 +0200 Message-Id: <20230525141532.295817-21-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230525141532.295817-1-pbonzini@redhat.com> References: <20230525141532.295817-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; 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, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1685024672117100003 Content-Type: text/plain; charset="utf-8" Instead of relying on magic memory barriers, document the pattern that is being used. It is the one based on Dekker's algorithm, and in this case it is embodied as follows: enqueue request; sleeping =3D true; smp_mb(); smp_mb(); if (sleeping) kick(); if (!have a request) yield(); Signed-off-by: Paolo Bonzini --- monitor/qmp.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/monitor/qmp.c b/monitor/qmp.c index e6b1043c9f7b..c8e0156974d9 100644 --- a/monitor/qmp.c +++ b/monitor/qmp.c @@ -39,13 +39,16 @@ * coroutine never gets scheduled a second time when it's already * scheduled (scheduling the same coroutine twice is forbidden). * - * It is true if the coroutine is active and processing requests. - * Additional requests may then be pushed onto mon->qmp_requests, - * and @qmp_dispatcher_co_shutdown may be set without further ado. - * @qmp_dispatcher_co_busy must not be woken up in this case. + * It is true if the coroutine will process at least one more request + * before going to sleep. Either it has been kicked already, or it + * is active and processing requests. Additional requests may therefore + * be pushed onto mon->qmp_requests, and @qmp_dispatcher_co_shutdown may + * be set without further ado. @qmp_dispatcher_co must not be woken up + * in this case. * - * If false, you also have to set @qmp_dispatcher_co_busy to true and - * wake up @qmp_dispatcher_co after pushing the new requests. + * If false, you have to wake up @qmp_dispatcher_co after pushing new + * requests. You also have to set @qmp_dispatcher_co_busy to true + * before waking up the coroutine. * * The coroutine will automatically change this variable back to false * before it yields. Nobody else may set the variable to false. @@ -230,15 +233,18 @@ static QMPRequest *monitor_qmp_dispatcher_pop_any(voi= d) { while (true) { /* - * busy must be set to true again by whoever - * rescheduled us to avoid double scheduling + * To avoid double scheduling, busy is true on entry to + * monitor_qmp_dispatcher_co(), and must be set again before + * aio_co_wake()-ing it. */ - assert(qatomic_mb_read(&qmp_dispatcher_co_busy) =3D=3D true); + assert(qatomic_read(&qmp_dispatcher_co_busy) =3D=3D true); =20 /* * Mark the dispatcher as not busy already here so that we * don't miss any new requests coming in the middle of our * processing. + * + * Clear qmp_dispatcher_co_busy before reading request. */ qatomic_mb_set(&qmp_dispatcher_co_busy, false); =20 @@ -364,6 +370,9 @@ void coroutine_fn monitor_qmp_dispatcher_co(void *data) =20 void qmp_dispatcher_co_wake(void) { + /* Write request before reading qmp_dispatcher_co_busy. */ + smp_mb__before_rmw(); + if (!qatomic_xchg(&qmp_dispatcher_co_busy, true)) { aio_co_wake(qmp_dispatcher_co); } --=20 2.40.1