From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028297; cv=none; d=zohomail.com; s=zohoarc; b=i7EDBwD/PdtVI63jP4gUXtOzelj7rQJEGj5uiGonT8X7C32kuhwf2txiflCWmZlRqS+tbRYBDjXOonR4jie5czZ+ZpQopFZtjKj9CdkSd+C07rKu+qF3WDWYkvXqHfvpdRMw2lfV5srO65bzioD6f4xgnPUDTLvudg/6AQk6x0U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028297; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=mGJQ/MT5+qh0FcV5UI0gtmeVdq+aG4jQfcWO47MpsT4=; b=A8ZaDkiWZnpzlRsZkACAroaUeCTSHBbmWXWOrjgrjTh+076Yub8pO5Clhcd6U2JIwZVLT9m5Y3Lg5DAWWRy2M7H1rmWTMpRNnKliD08Sg4eCSu1NmzPcG2WumLST3UCo0meg7AoYWRNNMtPoyjX7zLLIVeugwq/jejAAfHsg6zg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615028297258612.5415000630353; Sat, 6 Mar 2021 02:58:17 -0800 (PST) Received: from localhost ([::1]:46948 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUdU-0002du-55 for importer@patchew.org; Sat, 06 Mar 2021 05:58:16 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44254) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUZk-0005jJ-DP for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:24 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]:43807) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZi-00082f-Vf for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:24 -0500 Received: by mail-wm1-x32a.google.com with SMTP id a25-20020a1cf0190000b029010b1cbe2dd0so814674wmb.2 for ; Sat, 06 Mar 2021 02:54:22 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=mGJQ/MT5+qh0FcV5UI0gtmeVdq+aG4jQfcWO47MpsT4=; b=I50LCQzDwXtWwe4cFvUjyWp0mjKtbha85YFtYKlmbdYxbrMUOD+CGkNypaJNEvXFeD 1gDw0l5QWE+EuIejLWe+60VNKvuVUORNIy7ciSgdLi+ck7FGe2iwAL/Jy5jGN2NlWCun C6tm8KpzOljAfzDrlTLhnTgTaOeDrC5ZtdOnLbGGk8/7Iwi/DU/9vVs3iXhyr9bWiKf/ vah2RPqs6DUXlBFEpTwEazhWpgtsdJ3mwwLL2G0WxHwE2Qkxm8b3lj8/l8Z61F+yiXx0 VU6wz415+G768CysFUOB+7+fRwnTpF5Tjm1h1AsnqIP5FWA2+H/EklZ0sRsPdfZ3hj7f 4CjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=mGJQ/MT5+qh0FcV5UI0gtmeVdq+aG4jQfcWO47MpsT4=; b=MqIXlM+q3Fl7DS4o6wdbe6FmRNa2Ectuo1mAytiC4p3zKNDu7Saz6SrokpUm4AEnoI hQpyiNb1S0HI+sa7ba/otYZ6DI+OStx6CUywSrm0MXmsnLU4jAYa9KDkDd+VC8GRk46a qrMTewjTz/EAhVLUVZEv15aFxYREXOXe8Al6Kvz895S5Xkd68dIhQFM+CWReXfiU79/9 eABmkWAflECzQlBukNfpNntLXQX0AMnv3m+1N0F360VoQKntABaTKqLYm7Dc1vBhSzL3 DDtZ5etHY4pIzhrHP/+2RDOaZdjxBLGNgKAvgonlqq3FYwNEan7uNoc0eZi/YejjYwkq 3Y1Q== X-Gm-Message-State: AOAM532YtLKrb7ZoWPCtDZGXdQVNza/p7dXnEKLgJGDJp4sjAQcLmXST Cv4bn4RvQLkLRLqaxyI/MvZnR/RkaHU= X-Google-Smtp-Source: ABdhPJx3L0AWetowaX9lMvbLvviUewNuAMXWk+su8hPhjiaBsd2RHeGsDCXcEi9Q/XwcpSm0S61++A== X-Received: by 2002:a1c:4143:: with SMTP id o64mr13139739wma.50.1615028061690; Sat, 06 Mar 2021 02:54:21 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 01/23] KVM: x86: do not fail if software breakpoint has already been removed Date: Sat, 6 Mar 2021 11:53:57 +0100 Message-Id: <20210306105419.110503-2-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-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=2a00:1450:4864:20::32a; envelope-from=paolo.bonzini@gmail.com; helo=mail-wm1-x32a.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Maxim Levitsky Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" If kvm_arch_remove_sw_breakpoint finds that a software breakpoint does not have an INT3 instruction, it fails. This can happen if one sets a software breakpoint in a kernel module and then reloads it. gdb then thinks the breakpoint cannot be deleted and there is no way to add it back. Suggested-by: Maxim Levitsky Reviewed-by: Maxim Levitsky Signed-off-by: Paolo Bonzini --- target/i386/kvm/kvm.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c index 0b5755e42b..c8d61daf68 100644 --- a/target/i386/kvm/kvm.c +++ b/target/i386/kvm/kvm.c @@ -4352,8 +4352,13 @@ int kvm_arch_remove_sw_breakpoint(CPUState *cs, stru= ct kvm_sw_breakpoint *bp) { uint8_t int3; =20 - if (cpu_memory_rw_debug(cs, bp->pc, &int3, 1, 0) || int3 !=3D 0xcc || - cpu_memory_rw_debug(cs, bp->pc, (uint8_t *)&bp->saved_insn, 1, 1))= { + if (cpu_memory_rw_debug(cs, bp->pc, &int3, 1, 0)) { + return -EINVAL; + } + if (int3 !=3D 0xcc) { + return 0; + } + if (cpu_memory_rw_debug(cs, bp->pc, (uint8_t *)&bp->saved_insn, 1, 1))= { return -EINVAL; } return 0; --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028179; cv=none; d=zohomail.com; s=zohoarc; b=cWe+FGwXpIrwXjfjyJaHDTSkmZ/2qmHFZ52CsCDvYGPy6Hnf0JzQOdyAlEU5khrfrbIsX0Ph9NYvblaeE+/X/VSF1jg2/G5T+WToxJPdK7qmEQsxTpb5C8lXN4sA4bzm2jeTdFFhza1+EQqvd9OkgXjcr/E5/z4T2A5PwvMB3/A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028179; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5ycvxrc0S0t4ZZdoFTT/9bcQDSOzyv09fTX9F1ppHwE=; b=QfXwYkS0XImWr/JyuBAaeYI9D9BeUks8eDVmiDqwsQg0ZGUJHAlJ+8hqus/5miLnpEzO1Ntk3YT5Nv4rh+3opWUtFVfuktyfcQDsiM0nanwkjTQW1tORc2HfdyvIR3IW9AQOiA1EbcfJ9yV/XKBG4+BRlXAryfWFbvsvE9AjwcU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615028179505701.6182337938213; Sat, 6 Mar 2021 02:56:19 -0800 (PST) Received: from localhost ([::1]:38636 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUba-0007XH-6E for importer@patchew.org; Sat, 06 Mar 2021 05:56:18 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44280) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUZl-0005jh-Si for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:25 -0500 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]:42497) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZk-00082n-DY for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:25 -0500 Received: by mail-wm1-x32d.google.com with SMTP id b2-20020a7bc2420000b029010be1081172so815849wmj.1 for ; Sat, 06 Mar 2021 02:54:24 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5ycvxrc0S0t4ZZdoFTT/9bcQDSOzyv09fTX9F1ppHwE=; b=B/+qJoMOZxnQCuMgI5fnQP8DJ3pHO2RO/UKpcbiAPpgDcDmgRpe11dmLPfcgaJHhHx O8uwW0bGl3vdwl7LvjLPKayJmiDItdlLS2vILaRuyCQwB8wbN6bm6WYyJyCpy/H3Je7u k7tE0FuvVfVVDq/y/ybIsbgyI6Jb7eeemk6nwk5eOodZheHpLYMSG5z34znFMpBLcI6+ HOsJ4Y5lCpc090YT/S9i6jTGmI+s61GqZBf3FNY+WQ+baHQZmkPxPLkBfr9XmiWMdTaf mDYcoR+bmhyCRUZs5KqEVV7Wmt1pDiOeqk2Q7dNnsOsuneIB0JsyD5h2wD23Xv5H2RWQ ctRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=5ycvxrc0S0t4ZZdoFTT/9bcQDSOzyv09fTX9F1ppHwE=; b=TiJHrCGIUNyX6GH8n0N5xzk7e5buI+8LW+/0TP0T3oKUH4qwFddx9YB2Z7Abk+4wi8 scXZjsO7xqMT3OM9sAeGKhXeIC0CuJtgnYBMODmDdSu/hqidlHltYPHTmyMnZxldw8dL pp1PAcINGchVZyX32MjjD9n2joOZy8mgRQ8NA7T+tRbQEM7BFhS5/7m1wINuUcaLs+pf X6BMqsfNIWm+2Xf3UonQY0666zPMW1VM3jbdTv019zYW7CX3KhQzmKJx7rIq/gzPsRLr q6yK39z6teg5z7JVbfiJKR1Zzi4XyrwkBtBMc+NDtdyMwzDXh6idXMzVoh62Ij5fJLEZ FoLQ== X-Gm-Message-State: AOAM533fOyo1cYJrroszw7HEUk+5OHzx4AcSqJTAWEoYmOTKSdj+fp2/ +PioZnUwNyXc9Lmg7b+uB+z42TIizqI= X-Google-Smtp-Source: ABdhPJziQzTrRjeoksWHDtFecY4OKaNvtdOj5Cbr1Lcl8FrjdBKAuDFi0+cp2DwGS/Puk0lxgp6vVQ== X-Received: by 2002:a1c:c244:: with SMTP id s65mr13048323wmf.96.1615028063028; Sat, 06 Mar 2021 02:54:23 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 02/23] KVM: x86: deprecate -M kernel-irqchip=off except for -M isapc Date: Sat, 6 Mar 2021 11:53:58 +0100 Message-Id: <20210306105419.110503-3-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-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=2a00:1450:4864:20::32d; envelope-from=paolo.bonzini@gmail.com; helo=mail-wm1-x32d.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Maxim Levitsky Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The userspace local APIC is basically untested and does not support many features such as TSC deadline timer, x2APIC or PV spinlocks. On the other hand, the PIT and IOAPIC are okay as they are not tied to the processor and are tested with -M kernel-irqchip=3Dsplit. Therefore, deprecate the local APIC and, with it, limit -M kernel-irqchip=3Doff to the ISA PC machine type, which does not have a local APIC at all. Reviewed-by: Maxim Levitsky Signed-off-by: Paolo Bonzini --- docs/system/deprecated.rst | 7 +++++++ hw/intc/apic.c | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst index 561c916da2..fcf0ca4068 100644 --- a/docs/system/deprecated.rst +++ b/docs/system/deprecated.rst @@ -153,6 +153,13 @@ The ``-writeconfig`` option is not able to serialize t= he entire contents of the QEMU command line. It is thus considered a failed experiment and deprecated, with no current replacement. =20 +Userspace local APIC with KVM (x86, since 6.0) +'''''''''''''''''''''''''''''''''''''''''''''' + +Using ``-M kernel-irqchip=3Doff`` with x86 machine types that include a lo= cal +APIC is deprecated. The ``split`` setting is supported, as is using +``-M kernel-irqchip=3Doff`` with the ISA PC machine type. + QEMU Machine Protocol (QMP) commands ------------------------------------ =20 diff --git a/hw/intc/apic.c b/hw/intc/apic.c index 3ada22f427..f4f50f974e 100644 --- a/hw/intc/apic.c +++ b/hw/intc/apic.c @@ -25,6 +25,7 @@ #include "hw/intc/i8259.h" #include "hw/pci/msi.h" #include "qemu/host-utils.h" +#include "sysemu/kvm.h" #include "trace.h" #include "hw/i386/apic-msidef.h" #include "qapi/error.h" @@ -875,6 +876,11 @@ static void apic_realize(DeviceState *dev, Error **err= p) return; } =20 + if (kvm_enabled()) { + warn_report("Userspace local APIC is deprecated for KVM."); + warn_report("Do not use kernel-irqchip except for the -M isapc mac= hine type."); + } + memory_region_init_io(&s->io_memory, OBJECT(s), &apic_io_ops, s, "apic= -msi", APIC_SPACE_SIZE); =20 --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028452; cv=none; d=zohomail.com; s=zohoarc; b=JC4FKueJD9kzPJn44l/J83jvDXImxAMlHMr2vMfMLc0DRe9FpxP6ExOlbLvgPU6ATwTKan64JIUyUR3FUUu3ZNO5wwP8NNJhJsn4TmYX7bXRCgWme8CDe3MXUoqwZxJVbqLxmrEgiNqhck3XhZdq6x5iYyg3gswyQgLvgSmGQsE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028452; 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=wVC6tth3XwFnUOWbvHvtT7wr9HJeuUJEHogDmeiKguI=; b=mladBZCGIH5KDc/MEkGS0Zv6PlwxD+69WgGG/aBecBc/LHOQJkDNmRFqCWHoR1Xcun3IRjJ/BtIlqhgTMZtT88FOxOeCM9kg8wVQQbGvvTpinQgr9XNXTct9HTNo/Y4QfLe6Z6roAj2qXrBAwSofMv9j5wDJHniZLosCTZH3HHQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615028452801942.9409318376413; Sat, 6 Mar 2021 03:00:52 -0800 (PST) Received: from localhost ([::1]:55440 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUfy-00062T-De for importer@patchew.org; Sat, 06 Mar 2021 06:00:50 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44306) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUZn-0005l1-AU for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:27 -0500 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]:56100) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZl-00083v-7p for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:27 -0500 Received: by mail-wm1-x331.google.com with SMTP id w7so3214254wmb.5 for ; Sat, 06 Mar 2021 02:54:24 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wVC6tth3XwFnUOWbvHvtT7wr9HJeuUJEHogDmeiKguI=; b=CpsxRRqNIhs3Tt3qBYyJx5bU1sp3DsLPY/2vOLJ7xu+6wj+YUh1E9gcRlzC8ybfhYN 4dMrr+6/v3Z8Yu8kx5h2k4KYClHnqV+Ths1usQ6oarThNS/05vNvEsnTKsd1zmg40Pf0 xxcFoOhIYdEqSIGKqCHfnVOUP0s2XrWtKZLysqErfeaBAwLzulHRUCL3wEA2t5Jce4kE NUNlVcNYRsR8lF5VTOlqzVAwq1gNxX8Lw9b/bxQte5/IEIMMbet7MM54lUWJm0phaiUR 2vqkAs0++LYr/Ii+Kj6IEJRFgT9ls68cVT8UMLPpyCC112rzSj6YaVYZQpWB5Dg1SEEl 5iYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=wVC6tth3XwFnUOWbvHvtT7wr9HJeuUJEHogDmeiKguI=; b=ajwBdzU3CdJxmxCe0zl50o/4vEw2MLMujF21AOwGw76QenEosW+P+cBK/3vdCYe8D3 EO314XcvXqcpmc0ayJlXIPKEYFkrv2md4I1f1UBkuTE+ZO4v4TrlKPMvaqs1zDrLPgiX ZvyrCtcTIAvVMmNJhlVWAeKEkDjbvE+ra+72fiRUYV/e4j9bXgClPHtrsX1kjSAiSLQd 4CBIQJ2d5DQwe1GQZ70q2QIDWr+O/ET2kO3kTIECAAMV7EX6lTL8843BgHYX7kGIJ3hN xUlqDW9oX3I5HuHQD+KTUbjVD7oQfMxnpt57B7bX3X5lqZdrYHAGBlW40jMU7ZQ2bNRg 9Kjw== X-Gm-Message-State: AOAM531LQwBEXnHUOSfTJ3mg+ur7dLMjQpup7nEivNhlitlRBjS5kKrj mojqy09Br8fp0Gc+bqJ5Y8Qhd1412mw= X-Google-Smtp-Source: ABdhPJxs3+lGh39+sV4o1GEnOqAX8OdCe+y2HShm9cQqnwOHStHjeN/Fc8lRsMef+NFZobWEqzjMAA== X-Received: by 2002:a05:600c:190c:: with SMTP id j12mr13373725wmq.133.1615028064064; Sat, 06 Mar 2021 02:54:24 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 03/23] qga-vss: Use dynamic linking for GLib Date: Sat, 6 Mar 2021 11:53:59 +0100 Message-Id: <20210306105419.110503-4-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::331; envelope-from=paolo.bonzini@gmail.com; helo=mail-wm1-x331.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kostiantyn Kostiuk , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Kostiantyn Kostiuk The current GLib version implements the DllMain function. DllMain is also present in the provider.cpp code. So in the case of static linking, the DllMain redefinition error occurs. For now, just switch to dynamic linking and revert this patch when the issue will be solved. See Glib issue for more details https://gitlab.gnome.org/GNOME/glib/-/issue= s/692 Signed-off-by: Kostiantyn Kostiuk Reviewed-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Paolo Bonzini --- qga/vss-win32/meson.build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qga/vss-win32/meson.build b/qga/vss-win32/meson.build index 780c461432..90825edef3 100644 --- a/qga/vss-win32/meson.build +++ b/qga/vss-win32/meson.build @@ -1,5 +1,5 @@ if add_languages('cpp', required: false) - glib_static =3D dependency('glib-2.0', static: true) + glib_dynamic =3D dependency('glib-2.0', static: false) link_args =3D cc.get_supported_link_arguments(['-fstack-protector-all', = '-fstack-protector-strong', '-Wl,--add-stdcall-alias', = '-Wl,--enable-stdcall-fixup']) =20 @@ -8,7 +8,7 @@ if add_languages('cpp', required: false) cpp_args: ['-Wno-unknown-pragmas', '-Wno-delete-non-virtua= l-dtor', '-Wno-non-virtual-dtor'], link_args: link_args, vs_module_defs: 'qga-vss.def', - dependencies: [glib_static, socket, + dependencies: [glib_dynamic, socket, cc.find_library('ole32'), cc.find_library('oleaut32'), cc.find_library('shlwapi'), --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028185; cv=none; d=zohomail.com; s=zohoarc; b=ICNPuvHOreRZCS33pLUpqCulKjkB7mT702WYE9UCDbqccKtyOSBbmu/DS4Yi0BM4Ragl78eDrca57J2pc1D9vWaxLhAb5ejXIGW4QvAvPnJVKpO4HS3aZ5wO/4BE/FsNlgh3sVqkTeE+/dh5c0y71tkwkgb3fnaBWANSD9VnMIc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028185; h=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=ePf5Xm+2mM3AJyOz4KRHQebWqCb/bWbpeRmVlQcH6Aw=; b=Vw1fcFYqQMJtfVoA8bSdFsqr4n6FqIpK0kdSi+uu2blhihp7+LduBfnI1twaRsU5Nk3sTctu9q8ra2qBuLL8PT5Nkqgb0jdIS6Hp//vpHuhOY3BPtOA3CCdJV482bojFM/TP+/EPI2ZvXDjxtYqY+CdVTpipzh4mGXxxvrGVogk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615028185172875.3951280197834; Sat, 6 Mar 2021 02:56:25 -0800 (PST) Received: from localhost ([::1]:38974 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUbf-0007fU-MB for importer@patchew.org; Sat, 06 Mar 2021 05:56:23 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44312) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUZn-0005ld-OP for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:27 -0500 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]:52344) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZl-00084w-W2 for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:27 -0500 Received: by mail-wm1-x334.google.com with SMTP id n22so3213051wmc.2 for ; Sat, 06 Mar 2021 02:54:25 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ePf5Xm+2mM3AJyOz4KRHQebWqCb/bWbpeRmVlQcH6Aw=; b=BKijLWP3IHPzshvo5GfozjrLYU1UyWO7KREtzVMCfLBMkfQPLrqj6CmXbJHk/I+utj /C20RUx21Ir3JV3nOyFOoL5XF87D6EQl6KalSRwuIKt0SOnk6E9+g/+I+sUwKMBQ/tI8 o1JIqNrpTchaZH+H8UyiHqw3HlcfH98eX2EPg/IyDumg49KjXyF+M1jnoWJjR6fDZr89 zzN6TQ0WxwunSU+l6f/0GMGk/fJ6xRgKzrqmh7vz2FXma1mtBoah+nh5hd3wwwL4l7v6 wzj1OtTebXP9jsDFtvAu9Q+JMTHofZ9ij1kUGIHz73SsOVizhEtbq7DYrYBPC6OVKeG2 1Dbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=ePf5Xm+2mM3AJyOz4KRHQebWqCb/bWbpeRmVlQcH6Aw=; b=nC0ebRqdOC9LVJ5Llk2I0wYvlylIivZ59NMOBE3sbAVxaH++fHJo19EHTee+tbhBDH ikozgJMFnYKCYztHngNtwQK+HE28XWjJkiYXUKFKftbgawIdG1qOD87QjCR+A+VKv2Ow YDUfSjKcUV5ge/Mzt04bodPBQKzLRkmhQqV4tYr1SniGZdTk0EPaTqNXoyaO0+Bxj1Kr 8Xkwodn28pBxaW5+jZgvAujn0VkM0XgqgYoEHw+78dfMVKdzwU9xJ148lS6R+jrWbFcD 2rBSbarH/o2TnKVL84d8nIrg0KSTo4A73RPNiiTNeu++UFhF+esotvzkHXUL0LoHHW1B 0/aw== X-Gm-Message-State: AOAM532b4yNpPAAxGj5xC+L580gjKkcesYbwNvpWZHB8O1MRrC14ZGeL QwAvEK2CgvkdWmpbK2jZKpAaKiPa8SQ= X-Google-Smtp-Source: ABdhPJyPWaoboog5bRVotj3PFzpbA5wYC4864AYy2AQyxVtcFm2UThuSlfbBOqv5u8mJwqfd6N4aoA== X-Received: by 2002:a1c:9d85:: with SMTP id g127mr13058264wme.161.1615028064816; Sat, 06 Mar 2021 02:54:24 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 04/23] chardev: add nodelay option Date: Sat, 6 Mar 2021 11:54:00 +0100 Message-Id: <20210306105419.110503-5-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-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=2a00:1450:4864:20::334; envelope-from=paolo.bonzini@gmail.com; helo=mail-wm1-x334.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The "delay" option was introduced as a way to enable Nagle's algorithm with ",nodelay". Since the short form for boolean options has now been deprecated, introduce a more properly named "nodelay" option. The "delay" option remains as an undocumented option. "delay" and "nodelay" are mutually exclusive. Because the check is done at consumption time, the code also rejects them if one of the two is specified via -set. Based-on: <20210226080526.651705-1-pbonzini@redhat.com> Signed-off-by: Paolo Bonzini --- chardev/char-socket.c | 13 +++++++++++-- chardev/char.c | 3 +++ gdbstub.c | 2 +- qemu-options.hx | 14 +++++++------- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/chardev/char-socket.c b/chardev/char-socket.c index 06a37c0cc8..c8bced76b7 100644 --- a/chardev/char-socket.c +++ b/chardev/char-socket.c @@ -1472,8 +1472,17 @@ static void qemu_chr_parse_socket(QemuOpts *opts, Ch= ardevBackend *backend, sock =3D backend->u.socket.data =3D g_new0(ChardevSocket, 1); qemu_chr_parse_common(opts, qapi_ChardevSocket_base(sock)); =20 - sock->has_nodelay =3D qemu_opt_get(opts, "delay"); - sock->nodelay =3D !qemu_opt_get_bool(opts, "delay", true); + if (qemu_opt_get(opts, "delay") && qemu_opt_get(opts, "nodelay")) { + error_setg(errp, "'delay' and 'nodelay' are mutually exclusive"); + return; + } + sock->has_nodelay =3D + qemu_opt_get(opts, "delay") || + qemu_opt_get(opts, "nodelay"); + sock->nodelay =3D + !qemu_opt_get_bool(opts, "delay", true) || + qemu_opt_get_bool(opts, "nodelay", false); + /* * We have different default to QMP for 'server', hence * we can't just check for existence of 'server' diff --git a/chardev/char.c b/chardev/char.c index 288efebd12..97cafd6849 100644 --- a/chardev/char.c +++ b/chardev/char.c @@ -867,6 +867,9 @@ QemuOptsList qemu_chardev_opts =3D { },{ .name =3D "delay", .type =3D QEMU_OPT_BOOL, + },{ + .name =3D "nodelay", + .type =3D QEMU_OPT_BOOL, },{ .name =3D "reconnect", .type =3D QEMU_OPT_NUMBER, diff --git a/gdbstub.c b/gdbstub.c index 3ee40479b6..16d7c8f534 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -3505,7 +3505,7 @@ int gdbserver_start(const char *device) if (strstart(device, "tcp:", NULL)) { /* enforce required TCP attributes */ snprintf(gdbstub_device_name, sizeof(gdbstub_device_name), - "%s,wait=3Doff,delay=3Doff,server=3Don", device); + "%s,wait=3Doff,nodelay=3Don,server=3Don", device); device =3D gdbstub_device_name; } #ifndef _WIN32 diff --git a/qemu-options.hx b/qemu-options.hx index 252db9357c..90801286c6 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -3033,7 +3033,7 @@ DEFHEADING(Character device options:) DEF("chardev", HAS_ARG, QEMU_OPTION_chardev, "-chardev help\n" "-chardev null,id=3Did[,mux=3Don|off][,logfile=3DPATH][,logappend=3Don= |off]\n" - "-chardev socket,id=3Did[,host=3Dhost],port=3Dport[,to=3Dto][,ipv4=3Do= n|off][,ipv6=3Don|off][,delay=3Don|off][,reconnect=3Dseconds]\n" + "-chardev socket,id=3Did[,host=3Dhost],port=3Dport[,to=3Dto][,ipv4=3Do= n|off][,ipv6=3Don|off][,nodelay=3Don|off][,reconnect=3Dseconds]\n" " [,server=3Don|off][,wait=3Don|off][,telnet=3Don|off][,websoc= ket=3Don|off][,reconnect=3Dseconds][,mux=3Don|off]\n" " [,logfile=3DPATH][,logappend=3Don|off][,tls-creds=3DID][,tls= -authz=3DID] (tcp)\n" "-chardev socket,id=3Did,path=3Dpath[,server=3Don|off][,wait=3Don|off]= [,telnet=3Don|off][,websocket=3Don|off][,reconnect=3Dseconds]\n" @@ -3184,7 +3184,7 @@ The available backends are: =20 TCP and unix socket options are given below: =20 - ``TCP options: port=3Dport[,host=3Dhost][,to=3Dto][,ipv4=3Don|off][,ip= v6=3Don|off][,delay=3Don|off]`` + ``TCP options: port=3Dport[,host=3Dhost][,to=3Dto][,ipv4=3Don|off][,ip= v6=3Don|off][,nodelay=3Don|off]`` ``host`` for a listening socket specifies the local address to be bound. For a connecting socket species the remote host to connect to. ``host`` is optional for listening sockets. If not @@ -3204,7 +3204,7 @@ The available backends are: or IPv6 must be used. If neither is specified the socket may use either protocol. =20 - ``delay=3Don|off`` disables the Nagle algorithm. + ``nodelay=3Don|off`` disables the Nagle algorithm. =20 ``unix options: path=3Dpath[,abstract=3Don|off][,tight=3Don|off]`` ``path`` specifies the local path of the unix socket. ``path`` @@ -3593,13 +3593,13 @@ SRST ``telnet options:`` localhost 5555 =20 - ``tcp:[host]:port[,server=3Don|off][,wait=3Don|off][,delay=3Don|off][,= reconnect=3Dseconds]`` + ``tcp:[host]:port[,server=3Don|off][,wait=3Don|off][,nodelay=3Don|off]= [,reconnect=3Dseconds]`` The TCP Net Console has two modes of operation. It can send the serial I/O to a location or wait for a connection from a location. By default the TCP Net Console is sent to host at the port. If you use the ``server=3Don`` option QEMU will wait for a c= lient socket application to connect to the port before continuing, - unless the ``wait=3Don|off`` option was specified. The ``delay=3Do= n|off`` + unless the ``wait=3Don|off`` option was specified. The ``nodelay= =3Don|off`` option disables the Nagle buffering algorithm. The ``reconnect=3Do= n`` option only applies if ``server=3Dno`` is set, if the connection g= oes down it will attempt to reconnect at the given interval. If host @@ -3616,7 +3616,7 @@ SRST ``Example to not wait and listen on ip 192.168.0.100 port 4444`` -serial tcp:192.168.0.100:4444,server=3Don,wait=3Doff =20 - ``telnet:host:port[,server=3Don|off][,wait=3Don|off][,delay=3Don|off]`` + ``telnet:host:port[,server=3Don|off][,wait=3Don|off][,nodelay=3Don|off= ]`` The telnet protocol is used instead of raw tcp sockets. The options work the same as if you had specified ``-serial tcp``. The difference is that the port acts like a telnet server or @@ -3626,7 +3626,7 @@ SRST you do it with Control-] and then type "send break" followed by pressing the enter key. =20 - ``websocket:host:port,server=3Don[,wait=3Don|off][,delay=3Don|off]`` + ``websocket:host:port,server=3Don[,wait=3Don|off][,nodelay=3Don|off]`` The WebSocket protocol is used instead of raw tcp socket. The port acts as a WebSocket server. Client mode is not supported. =20 --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028183; cv=none; d=zohomail.com; s=zohoarc; b=mdaYfsAfOnq9rEU1eLYIo/N34favHCbKEVmzh1i65Dc75qM0eIT9LF55iqRmtWiowF5W5IYcsbxQTrF+RS+9tM3p0HpQeYfU9UpKVSX8QtqnwdqLrA6gpUxRg+2qreTPHSYUmoPs0x4CCTTPyncHKx1BhnVLYudK2tcuoYr11dc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028183; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ynw4rHhm1APNekgRpZNjLyKWr2jA0nlwh2JMlTwzrKk=; b=j16PIn19G0JTV1WK5n/nbMJ4JZqoIH35fqH2xmK2GDUJBLpLHx1HQqWTZcpHLYzzq8dCdYAM5RamSCTiBspVR4CXJNvKHFil1KJ2/fI6suFFCM6OUMnf8c77FjLN8IM7PSwyhxoPVP4jYGLL6l8GJud7LzyF3yv5q/6raadpdNs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615028183643414.21300770997675; Sat, 6 Mar 2021 02:56:23 -0800 (PST) Received: from localhost ([::1]:38972 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUbd-0007fM-GE for importer@patchew.org; Sat, 06 Mar 2021 05:56:22 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44322) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUZo-0005mb-I2 for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:28 -0500 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]:35839) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZn-000856-1J for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:28 -0500 Received: by mail-wm1-x335.google.com with SMTP id c76-20020a1c9a4f0000b029010c94499aedso847105wme.0 for ; Sat, 06 Mar 2021 02:54:26 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ynw4rHhm1APNekgRpZNjLyKWr2jA0nlwh2JMlTwzrKk=; b=bT4EBgDOYQEG5RsxCMOsv3vvIpJvJUwh5OZk862a0v2C8Cn4LKevMLGC//QD36+tEf xprAm7QJO3zDt8AaEr++3P+nKqiKGIPPZLHDmwAfPzgXBpqJSx970d4oplL1e3eriOxz Ft7452lrEnx0z0fincxlgNSOJ3+BBeqysIN5drsMz+T7xmO41NOgzQ3jB2YswatqasAC PJvv/n9FVfoJ1jHwdZjSwgRutbrcWRdhaWGqlBLtW5sQNGHDVYujVzMotqQ0QFKTuffS WqPcZ673Mqy8ASaNJ/ukxDvubvd68xl4GTVfeGWfCkJHcdVNa4/qmYvpUY5UvaQP/8z4 7Vug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=ynw4rHhm1APNekgRpZNjLyKWr2jA0nlwh2JMlTwzrKk=; b=jrQl341rHtHjR7TjYKW8SO+rdH3MiuOdBDf08JwSnJ7pG21oaciw+XOPI4iKNY95cd pjVl5ZQ1LlKXZ2wYlIkISG0E7RsGJAfH9j1Gigqt0/vT5eVM3yoXQIO/FZLik24UqJ7U QhYhI5Y4Ow0S5cKAuUMhZswn0oRmS1q8y5HmsLhWIKvrtmcEyU/oXGhjDoC4Ndk0m5qr EKngyNVpGhhfokGsYLGQiMJ99O44rdS+4TH/DRzAiEQ0zDZ+UX9R6mpIa/KsGskVsrqp OD9mWS9e99Iy3K0MTjXfe8wsAUGgHby1++I8cvxlH5rUyX83R6+0/INDDmote02Yh2m9 4bag== X-Gm-Message-State: AOAM532o3yNZpdT/Tk6xy5BqpF9IbMPvGzfuvN1YcPxfnHB41jLmP5YM RxLhObvAvwjvEWnxPpfAgbuKJORGWV0= X-Google-Smtp-Source: ABdhPJzIBVSttxX7y6WD0dpsc2mMHAX7jeFRn32m7F1m2C8662pOGRG8mFyRtWoA5uUF0/aiUb+wSA== X-Received: by 2002:a1c:5f89:: with SMTP id t131mr12654201wmb.173.1615028065791; Sat, 06 Mar 2021 02:54:25 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 05/23] qom: Check for wellformed id in user_creatable_add_type() Date: Sat, 6 Mar 2021 11:54:01 +0100 Message-Id: <20210306105419.110503-6-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-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=2a00:1450:4864:20::335; envelope-from=paolo.bonzini@gmail.com; helo=mail-wm1-x335.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Kevin Wolf Most code paths for creating a user creatable object go through QemuOpts, which ensures that the provided 'id' option is actually a valid identifier. However, there are some code paths that don't go through QemuOpts: qemu-storage-daemon --object (since commit 8db1efd3) and QMP object-add (since it was first introduced in commit cff8b2c6). We need to have the same validity check for those, too. This adds the check and makes it print the same error message as QemuOpts on failure. Signed-off-by: Kevin Wolf Message-Id: <20210302171623.49709-1-kwolf@redhat.com> Signed-off-by: Paolo Bonzini --- qom/object_interfaces.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c index 1e9ad6f08a..7661270b98 100644 --- a/qom/object_interfaces.c +++ b/qom/object_interfaces.c @@ -8,6 +8,7 @@ #include "qapi/qobject-input-visitor.h" #include "qom/object_interfaces.h" #include "qemu/help_option.h" +#include "qemu/id.h" #include "qemu/module.h" #include "qemu/option.h" #include "qapi/opts-visitor.h" @@ -41,11 +42,19 @@ Object *user_creatable_add_type(const char *type, const= char *id, const QDict *qdict, Visitor *v, Error **errp) { + ERRP_GUARD(); Object *obj; ObjectClass *klass; const QDictEntry *e; Error *local_err =3D NULL; =20 + if (id !=3D NULL && !id_wellformed(id)) { + error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "id", "an identifie= r"); + error_append_hint(errp, "Identifiers consist of letters, digits, " + "'-', '.', '_', starting with a letter.\n"); + return NULL; + } + klass =3D object_class_by_name(type); if (!klass) { error_setg(errp, "invalid object type: %s", type); --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028299; cv=none; d=zohomail.com; s=zohoarc; b=SODMwdQ+76e/V+mNilbr3whRnglLm+OpqingXROYnSuKsvZBRtEGCMEqQp/WmwvtscCp9N5JkUqe6SKXBU9keRdCf/EROBokgz6qTI/iwDb6UKbUyJgACstvB659iDU9WGSsNLyVNxZUj0yT4joNmjUKBkhVANO7jfvtUFS97vc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028299; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=jpgVdYSzdMxvMpKTq0UQMyhdFpOkljUuOG/KLvehJyo=; b=cr9JaMMhzIlHpDMHvnM0/rGrq3d2s1k4TpieveznnL1/wdOsGVDCzAnk65tL2X07vBDupXlZd+cSALwk0Hfu1NZQ+I495f0NIhRpmb5vN2hBWcPZjHCt4yLQfTBOCLnbGbgvQKvrXc2cUnD/EOVq9kCWqmZyKZlEaH4Hxrj/3ns= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 161502829982441.633793148518976; Sat, 6 Mar 2021 02:58:19 -0800 (PST) Received: from localhost ([::1]:47256 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUdW-0002la-Ro for importer@patchew.org; Sat, 06 Mar 2021 05:58:18 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44336) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUZp-0005nd-C0 for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:29 -0500 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]:55238) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZn-00085o-Rl for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:29 -0500 Received: by mail-wm1-x329.google.com with SMTP id u187so3209298wmg.4 for ; Sat, 06 Mar 2021 02:54:27 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jpgVdYSzdMxvMpKTq0UQMyhdFpOkljUuOG/KLvehJyo=; b=NPmmzIYfDV5vnk1MzI9OUY+YS4Zeg/DfmvF8Kq1/HCGBAcUB378x+Rw3gAJldJGyNp htVSnR9KeBtEvF3Lb7Jv/bvrQpnfayiEm6uGJTyX3AdoxlcSSSl/0DfkQWotwS1/RzyO 2H0f8ZAPtC368Q5elH1zynYBYUNOxQnDFD3Jl2yZrgSN7qelqcShhLGN6yQKxYt7jBa5 0Ma1RM6zns2ADGghQMRws6WEHz3I9EhHSoJ/gXu3q0Y85jwDCc2dGPhR8eWAaCqxH14E dWUIajZ2HVtA+24rcD00WoaebNFhk42le/6+zEpSS8jgn5TCicQvQMJDnomd1ovRrrB9 Rn3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=jpgVdYSzdMxvMpKTq0UQMyhdFpOkljUuOG/KLvehJyo=; b=lMXNwaKxrQh5DTBrJf5y+nN81N2LK3cLAuuG5stMGlg1xtB/2W6NCIiq6840w9u5ZF oqSe5qNJlAuTITxwbJx9uOe817SfLJNQJPZqjY//pxkGjSKirjlBHDVn3PPPl3AFoMgv 3ma7bnVQBpMBA8KM9AhO968CCV+e8xteEDzvOtnzGqblHQBtuxIkjwZe5Bivy7FKIQq4 xg2qTKSWtPWvRfEcMoQNlthWvVRcRfBHBiYKeimlBWiAVlZxVZ6f4xoyzsO+uNBMzUOZ aRevO9LJnnpsn1ldgpHNiYSCU3JdDhoICs2V/+ZoPWzERdthWMso1xVUUUNn97qaRNq2 Y5Sg== X-Gm-Message-State: AOAM533LEjpOKw1dKp2w3Ux4odHpsWO+t9MAdjvDl9ksqqImnIFqX/tU KnYlzYYb9skLaoJZfiPQq0fQHI9CjCg= X-Google-Smtp-Source: ABdhPJyNrTyG2SEZK85bwfGKCYoyZcCr1wi0SB5Vrd82WvL3dGZ4fi4/brGneQjOht/IsHNABnl16g== X-Received: by 2002:a1c:7ec4:: with SMTP id z187mr1622742wmc.3.1615028066577; Sat, 06 Mar 2021 02:54:26 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 06/23] vl.c: do not execute trace_init_backends() before daemonizing Date: Sat, 6 Mar 2021 11:54:02 +0100 Message-Id: <20210306105419.110503-7-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-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=2a00:1450:4864:20::329; envelope-from=paolo.bonzini@gmail.com; helo=mail-wm1-x329.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Henrique Barboza , Stefan Hajnoczi Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza Commit v5.2.0-190-g0546c0609c ("vl: split various early command line options to a separate function") moved the trace backend init code to the qemu_process_early_options(). Which is now being called before os_daemonize() via qemu_maybe_daemonize(). Turns out that this change of order causes a problem when executing QEMU in daemon mode and with CONFIG_TRACE_SIMPLE. The trace thread is now being created by the parent, and the parent is left waiting for a trace file flush that was registered via st_init(). The result is that the parent process never exits. To reproduce, fire up a QEMU process with -daemonize and with CONFIG_TRACE_SIMPLE enabled. Two QEMU process will be left in the host: $ sudo ./x86_64-softmmu/qemu-system-x86_64 -S -no-user-config -nodefaults \ -nographic -machine none,accel=3Dkvm:tcg -daemonize $ ps axf | grep qemu 529710 pts/3 S+ 0:00 | \_ grep --color=3Dauto qemu 529697 ? Ssl 0:00 \_ ./x86_64-softmmu/qemu-system-x86_64 -S -no= -user-config -nodefaults -nographic -machine none,accel=3Dkvm:tcg -daemonize 529699 ? Sl 0:00 \_ ./x86_64-softmmu/qemu-system-x86_64 -S= -no-user-config -nodefaults -nographic -machine none,accel=3Dkvm:tcg -daem= onize The parent thread is hang in flush_trace_file: $ sudo gdb ./x86_64-softmmu/qemu-system-x86_64 529697 (..) (gdb) bt #0 0x00007f9dac6a137d in syscall () at /lib64/libc.so.6 #1 0x00007f9dacc3c4f3 in g_cond_wait () at /lib64/libglib-2.0.so.0 #2 0x0000555d12f952da in flush_trace_file (wait=3Dtrue) at ../trace/simpl= e.c:140 #3 0x0000555d12f95b4c in st_flush_trace_buffer () at ../trace/simple.c:383 #4 0x00007f9dac5e43a7 in __run_exit_handlers () at /lib64/libc.so.6 #5 0x00007f9dac5e4550 in on_exit () at /lib64/libc.so.6 #6 0x0000555d12d454de in os_daemonize () at ../os-posix.c:255 #7 0x0000555d12d0bd5c in qemu_maybe_daemonize (pid_file=3D0x0) at ../soft= mmu/vl.c:2408 #8 0x0000555d12d0e566 in qemu_init (argc=3D8, argv=3D0x7fffc594d9b8, envp= =3D0x7fffc594da00) at ../softmmu/vl.c:3459 #9 0x0000555d128edac1 in main (argc=3D8, argv=3D0x7fffc594d9b8, envp=3D0x= 7fffc594da00) at ../softmmu/main.c:49 (gdb) Aside from the 'zombie' process in the host, this is directly impacting Libvirt. Libvirt waits for the parent process to exit to be sure that the QMP monitor is available in the daemonized process to fetch QEMU capabilities, and as is now Libvirt hangs at daemon start waiting for the parent thread to exit. The fix is simple: just move the trace backend related code back to be executed after daemonizing. Fixes: 0546c0609cb5a8d90c1cbac8e0d64b5a048bbb19 Reviewed-by: Paolo Bonzini Signed-off-by: Daniel Henrique Barboza Message-Id: <20210105181437.538366-2-danielhb413@gmail.com> Acked-by: Stefan Hajnoczi Signed-off-by: Paolo Bonzini --- softmmu/vl.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/softmmu/vl.c b/softmmu/vl.c index 10bd8a10a3..7e8110bd6e 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -2361,11 +2361,6 @@ static void qemu_process_early_options(void) cleanup_add_fd, NULL, &error_fatal); #endif =20 - if (!trace_init_backends()) { - exit(1); - } - trace_init_file(); - /* Open the logfile at this point and set the log mask if necessary. = */ qemu_set_log_filename(log_file, &error_fatal); if (log_mask) { @@ -3475,6 +3470,19 @@ void qemu_init(int argc, char **argv, char **envp) qemu_process_help_options(); qemu_maybe_daemonize(pid_file); =20 + /* + * The trace backend must be initialized after daemonizing. + * trace_init_backends() will call st_init(), which will create the + * trace thread in the parent, and also register st_flush_trace_buffer= () + * in atexit(). This function will force the parent to wait for the + * writeout thread to finish, which will not occur, and the parent + * process will be left in the host. + */ + if (!trace_init_backends()) { + exit(1); + } + trace_init_file(); + qemu_init_main_loop(&error_fatal); cpu_timers_init(); =20 --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028302; cv=none; d=zohomail.com; s=zohoarc; b=eUM3UDozzZHshh+sxO335k9EVdSK6WgjipjmoZSzP/02r1PdFxiJKOhELTMGaHUZkt2xtuEUOgZTNr77Q67KnJ2Gi/FMGpNjY81e9y9Ye+LPGrP/BHnXp5S2Ds9RwiCnxO9y5d6eMHExEhb8q971nKnvVnRiaSrYjFNDbX7RZaA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028302; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=1Dyo9JQU4PBoCZozZP36ldGGAENBXiTpRbFQ6rDtUvk=; b=MTqTgyxwGlFxWIk1eAfFOQV7Awh0iM0KldngvKdEawTtt5swe7wgNxYQ1oC9Kee+5k+g6bSna5hpD0ZfdQW7EOuFx/tY/Ku+xSBlrlcrnfhHfaoI91e10MHpoDRTD0ZF1+rPAeuBfM+FU2sZW/8pviKtqyDt23ie47hulEc6rPk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615028302040481.65673335076565; Sat, 6 Mar 2021 02:58:22 -0800 (PST) Received: from localhost ([::1]:47546 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUdZ-0002sc-1f for importer@patchew.org; Sat, 06 Mar 2021 05:58:21 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44346) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUZq-0005pN-5e for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:30 -0500 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]:43680) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZo-00087A-LJ for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:29 -0500 Received: by mail-wr1-x42f.google.com with SMTP id w11so5193665wrr.10 for ; Sat, 06 Mar 2021 02:54:28 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1Dyo9JQU4PBoCZozZP36ldGGAENBXiTpRbFQ6rDtUvk=; b=cpOA+YsJsCzAiSvbXcQ3q+3l5YLpAWM/VgQEEiULo11YKZs/tFB+8NyCsAwr+4eWHG Qy/LT5TcnXad3blGibNwv7qwDuXAK2QltESQIcsM9tsT6+POdHTxwkV9wP7/pe1zXVXP dyeEM3Iz4m9079gEBJdjLxX8H+psFNHlI6laFxf/RLgJXNZUVz8JlmAexknIijGLK+jO B5MTsZQ+WndtovL7iT9VUXeQScgfyA5dwt8i50ciUC5ZCZNzkh0tCaxx+0uOfOVngdGE MwEVfws3hzKbYK8Qxu+/TO2tsaPypZ9a9FoNWSDnnIsT2UjGSARNsxrYP+aw9sUkmuWn uqDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=1Dyo9JQU4PBoCZozZP36ldGGAENBXiTpRbFQ6rDtUvk=; b=EJt3LxXM3s0XUrBR3zNxOrrP4wECuSuZTSlT+ypCbOG/3nNayc4zI2TBpdXcY/eSR7 1T08kXBCYgbarASiSEJsswM5reF05Qrxnb+dAHDrn2/OJPdTvrrirIq3hipBIg8xsBZi S2fSrhD/gCDsYDKgdTngPqzvH02mmyljoeaoXLUk7wXZSAWjVOvgmPqdIA04EGo+I+yV HpEg+ZabNlPubAfLbeL4mn6TbhNzi4szPaaFgaSVb9ov4YufgYGATwHWm6yFXdUeXUO8 hV6FBzCZCh4I4qEcmZpsLtlIrdt0QylyDJsJOVGqckLmn9Z0f4vI/vOia9bSr552G6MN rXFw== X-Gm-Message-State: AOAM533mDwAe3DTALQRcZrQ91IsYUjeh7uQ2WX7QtmSTVKbwpOP4+1C/ L+qD9LLT/+svX3jfpCS0eyQtoTjS5xE= X-Google-Smtp-Source: ABdhPJzgcCptO7X87KvuGLJttZ9iq9mCCfGM/IHaRJP1dYs+jnYk/qF503bmBoroM0fkcJXOZFJYuA== X-Received: by 2002:adf:8104:: with SMTP id 4mr13681225wrm.265.1615028067437; Sat, 06 Mar 2021 02:54:27 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 07/23] accel: kvm: Fix memory waste under mismatch page size Date: Sat, 6 Mar 2021 11:54:03 +0100 Message-Id: <20210306105419.110503-8-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-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=2a00:1450:4864:20::42f; envelope-from=paolo.bonzini@gmail.com; helo=mail-wr1-x42f.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrew Jones , Keqian Zhu , Peter Xu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Keqian Zhu When handle dirty log, we face qemu_real_host_page_size and TARGET_PAGE_SIZE. The first one is the granule of KVM dirty bitmap, and the second one is the granule of QEMU dirty bitmap. As qemu_real_host_page_size >=3D TARGET_PAGE_SIZE (kvm_init() enforced it), misuse TARGET_PAGE_SIZE to init kvmslot dirty_bmap may waste memory. For example, when qemu_real_host_page_size is 64K and TARGET_PAGE_SIZE is 4K, it wastes 93.75% (15/16) memory. Signed-off-by: Keqian Zhu Reviewed-by: Andrew Jones Reviewed-by: Peter Xu Message-Id: <20201217014941.22872-2-zhukeqian1@huawei.com> Signed-off-by: Paolo Bonzini --- accel/kvm/kvm-all.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index 84c943fcdb..ffce83f1a7 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -598,8 +598,12 @@ static void kvm_memslot_init_dirty_bitmap(KVMSlot *mem) * too, in most cases). * So for now, let's align to 64 instead of HOST_LONG_BITS here, in * a hope that sizeof(long) won't become >8 any time soon. + * + * Note: the granule of kvm dirty log is qemu_real_host_page_size. + * And mem->memory_size is aligned to it (otherwise this mem can't + * be registered to KVM). */ - hwaddr bitmap_size =3D ALIGN(((mem->memory_size) >> TARGET_PAGE_BITS), + hwaddr bitmap_size =3D ALIGN(mem->memory_size / qemu_real_host_page_si= ze, /*HOST_LONG_BITS*/ 64) / 8; mem->dirty_bmap =3D g_malloc0(bitmap_size); } --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028459; cv=none; d=zohomail.com; s=zohoarc; b=BRWdXN/v5tvWy08v0X2aWPR5eus7smRJkvyeOXiLKk4KNEUo7mdGYtsmfHdvow6aeq3jW1yYUiacqu66xmEj6U+4UwgAzA9IfMCGC1MebdbN98IEVgzYwE3+3bR1ZTI9s9zTTmUfDdSGjijdMAkJMFwffFXSEMI4UQ4BHEqpN0w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028459; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=x7HLVffWfs7XbJuqu9XKwrCohcTt98B8P3m4cZ+q8nI=; b=A/6P6Vr5pnOuI1C7BdvIcoMwpl9KRwuDaawU6ms/XjDuMnFPtTkaK4AcoGsrHQdvy+qN5XhrzWcqcQdihH1rue5AFIym/+kmw2zcYM0oWUGQrs1kMJaEb6NjhnrDqLmDtsRJVh/soB/ck1mLtUZh49yIo4IB2WIwwgP7xWhycCY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615028459706353.33847092300743; Sat, 6 Mar 2021 03:00:59 -0800 (PST) Received: from localhost ([::1]:55730 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUg6-00069V-MI for importer@patchew.org; Sat, 06 Mar 2021 06:00:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44356) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUZq-0005qy-Uh for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:30 -0500 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]:45650) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZp-00087K-Gy for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:30 -0500 Received: by mail-wm1-x330.google.com with SMTP id r10-20020a05600c35cab029010c946c95easo817403wmq.4 for ; Sat, 06 Mar 2021 02:54:29 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=x7HLVffWfs7XbJuqu9XKwrCohcTt98B8P3m4cZ+q8nI=; b=UwXKAnnQgRG1u2VLtBCjoUPBU32NgHUlJy0M0jBvP/erQTAKCcsO1yBRVWqGwkw2yf 7WPX/N8bhl98wGJSVero1V3AeFsWwb8WkiKdEH5k9EgiapLJpN4ErIV0rYQi6dYLmOjX FGG6bkOR1n/5I3K+OtA60goBAGraxd3UZ+fXoNUsaaWxwCAqQe1Ktsw6bWnIE3b6HSJS mYFQTWi1l61gqQuquPeyTd6ZW8DUJ/duurf2fUxVgF1qxdU4FafANmLoDwM3arzAGFjF FANzQdER+B2uk21L8F/LIq9XC8OVlE2Le8TH9XVm6an17uJr4jTDIozST7JwUAqRH4we 9eeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=x7HLVffWfs7XbJuqu9XKwrCohcTt98B8P3m4cZ+q8nI=; b=QBe5f9CnqYY6XdJp3ICiyxG18YnnbX/UD6LHEMMj2e5+tOUDdg/iTFD0jOaATRfoCJ DMh3ql4cr0c/41E2vpQNi7RSY7e4InjIlWwNlInmH1fjQIiGzNyhctCcTzJL39cAaYyO P4I4ZS50PfLxThoZw0Me1tOUs0SulGp7AC3a7yZvZkcO59iM9HN7ocC8MKIBhqHuDaTV iUvwKqfQFA1l+88+HMOqMY7n/B8FUQeyERMWGxgzwfj7cydqVP0GT1DdoSciSkluKCk5 dTRzBVuqxvE0N6+ekkSyXdYmfxLyqCWfcixwdRiPwQ86r3fxLBq9ABo2Ic4yi1IAdKwi BisA== X-Gm-Message-State: AOAM531QBktE9ZnugzXiEmVaXGGPd/lVARCfuDIUrLg7vsT669wSegPL yqICOpa+QF2F5+8fTPZYANErjLqmLYQ= X-Google-Smtp-Source: ABdhPJyGjU4rJLjFZsm6Jr77WeDwPtqhhHHtRE/iIAhjNzmh9ggeQxzKDGta8dSaX4yOftzSdWeKBg== X-Received: by 2002:a1c:2846:: with SMTP id o67mr13120469wmo.188.1615028068215; Sat, 06 Mar 2021 02:54:28 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 08/23] accel: kvm: Add aligment assert for kvm_log_clear_one_slot Date: Sat, 6 Mar 2021 11:54:04 +0100 Message-Id: <20210306105419.110503-9-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-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=2a00:1450:4864:20::330; envelope-from=paolo.bonzini@gmail.com; helo=mail-wm1-x330.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrew Jones , Keqian Zhu , Peter Xu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Keqian Zhu The parameters start and size are transfered from QEMU memory emulation layer. It can promise that they are TARGET_PAGE_SIZE aligned. However, KVM needs they are qemu_real_page_size aligned. Though no caller breaks this aligned requirement currently, we'd better add an explicit assert to avoid future breaking. Signed-off-by: Keqian Zhu Acked-by: Peter Xu Reviewed-by: Andrew Jones Message-Id: <20201217014941.22872-3-zhukeqian1@huawei.com> Signed-off-by: Paolo Bonzini --- accel/kvm/kvm-all.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index ffce83f1a7..f88a52393f 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -673,6 +673,10 @@ out: #define KVM_CLEAR_LOG_ALIGN (qemu_real_host_page_size << KVM_CLEAR_LOG_SH= IFT) #define KVM_CLEAR_LOG_MASK (-KVM_CLEAR_LOG_ALIGN) =20 +/* + * As the granule of kvm dirty log is qemu_real_host_page_size, + * @start and @size are expected and restricted to align to it. + */ static int kvm_log_clear_one_slot(KVMSlot *mem, int as_id, uint64_t start, uint64_t size) { @@ -682,6 +686,9 @@ static int kvm_log_clear_one_slot(KVMSlot *mem, int as_= id, uint64_t start, unsigned long *bmap_clear =3D NULL, psize =3D qemu_real_host_page_size; int ret; =20 + /* Make sure start and size are qemu_real_host_page_size aligned */ + assert(QEMU_IS_ALIGNED(start | size, psize)); + /* * We need to extend either the start or the size or both to * satisfy the KVM interface requirement. Firstly, do the start --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028598; cv=none; d=zohomail.com; s=zohoarc; b=evgsWOb9ESPFyyZAm+teh+A3lTBBIubXXyHfVkBL8jt8cTz0jPfpNzCXGtaJJ4M14N/J1ZbIvIHN4/uhd6t6ppaf+yo/RbeemQmxi2BHH8skNv+8OkAbiHcqhFchM59lYJuDQv2OWtAqTfdDQKhkQGt2udaPgAKIcf4SVCsMVK8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028598; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=KBxRlsdH7b6tBF2h2wgskqjFMzn+Uz1MxquHphs0JBo=; b=J1iDKuGUjVViNR4V7ITHz+/JstKm2aX+9Tbd2djapMrNmfFV+ynIRiIURCFwgRi/k79f/fQGjCoaZQbi4rFk/m7b1564i3W8T1bgevmrEBYKt3KEsYIDnd7giT982Y20tb+CIjcwsBTmf71g2wGFTEPIxsZI0jETeJaIzMblFoI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615028598420395.65253377724093; Sat, 6 Mar 2021 03:03:18 -0800 (PST) Received: from localhost ([::1]:36012 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUiL-0001H8-BO for importer@patchew.org; Sat, 06 Mar 2021 06:03:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44380) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUZs-0005su-18; Sat, 06 Mar 2021 05:54:32 -0500 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]:51942) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZq-00087U-Ku; Sat, 06 Mar 2021 05:54:31 -0500 Received: by mail-wm1-x32c.google.com with SMTP id l22so3222406wme.1; Sat, 06 Mar 2021 02:54:29 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KBxRlsdH7b6tBF2h2wgskqjFMzn+Uz1MxquHphs0JBo=; b=gebeZE2KFW+/FnoOXq9TBJMLsj0R8hnAsZAVshzhrb6b81jKlrw/BTJmLjmbK5Of8E +mhjvclWPZKMwuU1b5XB5VMahNnCiYzt8aKVjnbbkGXeTGIur+W0aLLm6sMQQ/G2g+uR DCQau3QD3aoujck3A5ZFQAaGnY9Z2mgJ8iZzC4PXmOPnOGrBrLxF2hPhDgQWpDzB0BAT mgpMlNhztZ+P3twowkJM80AvbXoJaALVXAs1bkMSCNakC8Ag0AXKL0VAACKD63mV+d+k qfNYPNmC5TtWkYhnf1Zbf8tYIie+Vk4p+IzTfhsI/WdSyg275BccbMMQXu0XMqyjSpkk jxkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=KBxRlsdH7b6tBF2h2wgskqjFMzn+Uz1MxquHphs0JBo=; b=r/PRkak+rzrdlNLWYBlHmZWdyr94sFIco+Jr+P47OezEkpQsp4iKwvGz30kkwr+wre WymSx6nBhYx0UhiCMS4m26pHh0f+OdRskSYXN55E+zlTYHg7N6FsrNbZDeIZM6TKl6bP 1aTgCft8NVoq/7I1/Rm2g+NitH7/znyqHcL8iMcXpiNoBItNRAZiSiaaTWe+eEWo8KTd CA8sfX6bDKoxholfJurG/dAwsffonXYiCFks9HMiTropYG4SMofDCHiK5xa6PtDnuPjr KWIFU2EO5egU2FSSrpSw+4YzDH45JBuSWvjU7hBljQFyngYNRPSf9AdEq/xHEKR2b+JE IeWw== X-Gm-Message-State: AOAM533y3Mtr0fafznuI62i6I9Y1eYSvvA0XXt7+eVvNpVWzZucgaTPV DpWJganpPCMuMpuFENGA80PX3PVBk4s= X-Google-Smtp-Source: ABdhPJxCicuP29eNKSLRjLIHL6EK1U1bIjwibaKBWuKhwXRqMDEN03c4nNZ3WYOM3zr0346Xkl46eg== X-Received: by 2002:a7b:cc1a:: with SMTP id f26mr13063766wmh.19.1615028069091; Sat, 06 Mar 2021 02:54:29 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 09/23] lsilogic: Use PCIDevice::exit instead of DeviceState::unrealize Date: Sat, 6 Mar 2021 11:54:05 +0100 Message-Id: <20210306105419.110503-10-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-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=2a00:1450:4864:20::32c; envelope-from=paolo.bonzini@gmail.com; helo=mail-wm1-x32c.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peng Liang , qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Peng Liang PCI_DEVICE has overwritten DeviceState::unrealize (pci_qdev_unrealize). However, LSI53C895A, which is a subclass of PCI_DEVICE, overwrites it again and doesn't save the parent's implementation so the PCI_DEVICE's implementation of DeviceState::unrealize will never be called when unrealize a LSI53C895A device. And it will lead to memory leak and unplug failure. For a PCI device, it's better to implement PCIDevice::exit instead of DeviceState::unrealize. So let's change to use PCIDevice::exit. Fixes: a8632434c7e9 ("lsi: implement I/O memory space for Memory Move instr= uctions") Cc: qemu-stable@nongnu.org Signed-off-by: Peng Liang Message-Id: <20210302133016.1221081-1-liangpeng10@huawei.com> Signed-off-by: Paolo Bonzini --- hw/scsi/lsi53c895a.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c index a4e58580e4..e2c19180a0 100644 --- a/hw/scsi/lsi53c895a.c +++ b/hw/scsi/lsi53c895a.c @@ -2312,7 +2312,7 @@ static void lsi_scsi_realize(PCIDevice *dev, Error **= errp) scsi_bus_new(&s->bus, sizeof(s->bus), d, &lsi_scsi_info, NULL); } =20 -static void lsi_scsi_unrealize(DeviceState *dev) +static void lsi_scsi_exit(PCIDevice *dev) { LSIState *s =3D LSI53C895A(dev); =20 @@ -2325,11 +2325,11 @@ static void lsi_class_init(ObjectClass *klass, void= *data) PCIDeviceClass *k =3D PCI_DEVICE_CLASS(klass); =20 k->realize =3D lsi_scsi_realize; + k->exit =3D lsi_scsi_exit; k->vendor_id =3D PCI_VENDOR_ID_LSI_LOGIC; k->device_id =3D PCI_DEVICE_ID_LSI_53C895A; k->class_id =3D PCI_CLASS_STORAGE_SCSI; k->subsystem_id =3D 0x1000; - dc->unrealize =3D lsi_scsi_unrealize; dc->reset =3D lsi_scsi_reset; dc->vmsd =3D &vmstate_lsi_scsi; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028593; cv=none; d=zohomail.com; s=zohoarc; b=UjW8Uxx+IfUS1C0s00oDoSt/KznEUZtdicqDI+y9rXo5fdGa/pd+QG2YhL6ZY5jAK/qQkLihf4RICZtOwhC3zn6pyKwY9dovDRKDzXNMQtQmwzsxAp290U11EIvKUJGDqVvPfHmP+VVmz1SAFDTtIDyn32leedQfSTAWIGlwdlM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028593; 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=EW+RazKmnfzV3iFKv1E/1XtA1W8hxsl/EMoQcnNU61o=; b=lvJZlowkwTc7sDooXOjUZqQpF9srqGCl5Q1yAhq0fcxVZ9Vy7RmFqgF6PMHj/QDYM7CX2kYePt3+d15U89NXOZfLs6A5/nOQTIVz8sMa6sBwCIifYAFHS+J5ftExubYLyWN4zuSyis2tnt6ha0OHOCdXF60R25ooH+BSbHsIB/8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615028593635398.0578947694481; Sat, 6 Mar 2021 03:03:13 -0800 (PST) Received: from localhost ([::1]:35678 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUiG-000196-Df for importer@patchew.org; Sat, 06 Mar 2021 06:03:12 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44386) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUZs-0005tp-HL for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:32 -0500 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]:40001) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZr-00088D-2X for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:32 -0500 Received: by mail-wr1-x434.google.com with SMTP id l11so1808961wrp.7 for ; Sat, 06 Mar 2021 02:54:30 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=EW+RazKmnfzV3iFKv1E/1XtA1W8hxsl/EMoQcnNU61o=; b=gN2tJF5Z2uVdSrzhhORbAVxyS+T87fLG79E4z998KIqAfOz8vTDLHhQCQ0yBnuCs09 SI7zEX90ju6Z4TYPfyLXKBd0VbR3XxHSeK1gsfQVypLYYZ/tNelyrzjghLM/NrphaRw5 k9FOrSaZtamPpSEghzI7dT1B/L5DSFwe+zQxspuaT6wA5kiNAncr68x6VsKolEnD1nVl FKVF1JDNOZptaCNtnx+nMN8xTgB4diTFxcHDzcRXqOpnkRgTM/41UigaFPIe9zxgzXlZ yY3ZdAs8cCZi9waeKYbISIVfGt+bFhGqikFjNIT7Ft1sGg/fhYeu5PS21KjdFuLQmlkD 6Dqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=EW+RazKmnfzV3iFKv1E/1XtA1W8hxsl/EMoQcnNU61o=; b=Y8/MimhetxNIzN+cYo7ZC3f8VdsRNUypYSe9HkBg9Ia8Bo9+0iRxG0Zs4MRv6wYDV4 +FWVoO1i9ysRbtQ8lfrxvYtKsO+FqD5yGI5rYk4strbcPqRZzDGldftRTE+mQbrXFnFw UaVO3884785B0e5d+Ca2W12X2lG1r3ouE7N+EQk7Rw4Ggj9VoY8RySExzdphqktjqHki PN/M44R3Gs7phNPEO3uE9GI+FBBC6G4n0OFi1H3NTB/9I59Y8Zmnxx8laSx5uU6HRowD FcbOG66NS3MGFtDcciWHHfHM2v9rjSo9zAapCjhb2KAkQ5dfRkzgYq/MNvUeE1QQ84Uv Iwnw== X-Gm-Message-State: AOAM530bpe9AwkdBpfovXpEHI1k9XfRtARd4tGc603F82HawDtBcBqy3 c2tIOCaH2BOGdZpnfI2DFF9eep2DkVQ= X-Google-Smtp-Source: ABdhPJzW6engqE3cQ5Gl8gWdXKgG4YHg+OexuY7hTYh4BW2oxQNn3grqtQafjmiIeLT6V2cKRfdFhQ== X-Received: by 2002:adf:f905:: with SMTP id b5mr13141765wrr.129.1615028069872; Sat, 06 Mar 2021 02:54:29 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 10/23] elf_ops: correct loading of 32 bit PVH kernel Date: Sat, 6 Mar 2021 11:54:06 +0100 Message-Id: <20210306105419.110503-11-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::434; envelope-from=paolo.bonzini@gmail.com; helo=mail-wr1-x434.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Edmondson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Stefano Garzarella Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: David Edmondson Because sizeof(struct elf64_note) =3D=3D sizeof(struct elf32_note), attempting to use the size of the currently defined struct elf_note as a discriminator for whether the object being loaded is 64 bit in load_elf() fails. Instead, take advantage of the existing glue parameter SZ, which is defined as 32 or 64 in the respective variants of load_elf(). Fixes: 696aa04c84c6 ("elf-ops.h: Add get_elf_note_type()") Signed-off-by: David Edmondson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Stefano Garzarella Message-Id: <20210302090315.3031492-2-david.edmondson@oracle.com> Signed-off-by: Paolo Bonzini --- include/hw/elf_ops.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/hw/elf_ops.h b/include/hw/elf_ops.h index 8e8436831d..78409ab34a 100644 --- a/include/hw/elf_ops.h +++ b/include/hw/elf_ops.h @@ -598,9 +598,7 @@ static int glue(load_elf, SZ)(const char *name, int fd, nhdr =3D glue(get_elf_note_type, SZ)(nhdr, file_size, ph->p_al= ign, *(uint64_t *)translate_opaq= ue); if (nhdr !=3D NULL) { - bool is64 =3D - sizeof(struct elf_note) =3D=3D sizeof(struct elf64_not= e); - elf_note_fn((void *)nhdr, (void *)&ph->p_align, is64); + elf_note_fn((void *)nhdr, (void *)&ph->p_align, SZ =3D=3D = 64); } data =3D NULL; } --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028711; cv=none; d=zohomail.com; s=zohoarc; b=bxH76W65/W/goiqfln26Frwr8OppIWPqbS+QTI4AvlCT09CtWlFLJ+oi7wto4sXoj4oCnUcJEuXippsw6BHJs26GLsAKXjHar1GPjHlkSYiaHiMNJXtAmMPldrpoFJ6OWt2E8lUiUWYtJsTO10J8q1ZWKqpPkqKn6hIda9KtIGk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028711; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5QsmkLXasBVRCflFMmu4M4Y+2snZ0CFWy08GKmf9z8k=; b=hXurEadO3MnYAgv8of2T+Wvk7d2pXVw8rnl/xTkxrZ0YRwZEQZt762DxYMMYBcGWDAyYxizp0rfoUyVoIxnAbprvXRwqtITQ9q7gmt9KvItvsBej9L/WNywlbajMPqKoh+Dq4+9MwmXHGX8lgHb+uPVGxrfhrPhTSUWSG4Bb2C4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615028711299740.7176130556422; Sat, 6 Mar 2021 03:05:11 -0800 (PST) Received: from localhost ([::1]:44196 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUkA-0004XR-8B for importer@patchew.org; Sat, 06 Mar 2021 06:05:10 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44394) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUZt-0005vl-7R for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:33 -0500 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]:36563) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZr-00089R-QN for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:32 -0500 Received: by mail-wr1-x42d.google.com with SMTP id u14so5231190wri.3 for ; Sat, 06 Mar 2021 02:54:31 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5QsmkLXasBVRCflFMmu4M4Y+2snZ0CFWy08GKmf9z8k=; b=GLb+XNC2HZNyzYgYxUEu9A5SQQKdUAHL3yMA5/DhMfJgE3FthfPT0D5EEfd0Ax+gmC sJZ3qIXteVspCa1kaiUQNZuhLF+0quxrtojw7dYqCvgHqtGWh5Dc3vwvYxCxHIMjNKsA a6lLrsuN7FboMWl8UT4swxStbSh2YnFcVd1OQoAs9fpwP1IeJzRTLXY+BuibhlUrs0oT 53Qe/0kh5PKF9ntLjoUdu1UPgowOWWia5D+g6kzNmYtatTGxs7QtRbjyNn803Gm8M+3C fqdXPGd5b7MXhLQX8Fg7XLi7gluwhYSbQ4/JHK3C5Q4b/CM8bg5p/W+dYm24E5QLTpj1 CBOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=5QsmkLXasBVRCflFMmu4M4Y+2snZ0CFWy08GKmf9z8k=; b=Ge/JFm/ChgjHzjpvxQWKXclBghUeIy0zYguZTOhbBW7X+CrQ53NKk3AJCNTMkRDiJ/ UyLHdraKaHSsZM1UGK0eN7sZUWdH6OLaWyWAQETANK3sbnFbJZXN6rFeaoy7xdgzCtfg bGtqOZDmKqK5sZlLWj1IuEa1iz/PSm1JRSRWytgckTZ3/v21YJL/8MHMTtvYQ5XXhDa7 BohFGUb+tnvNhUbvr+EthcFJRkkdLighZYTaGqdtGze8u1Say9KLynS7J061NcDGSMyA +yTlqMTn1y0wvG0AV1wf6nDiSBe+eNg8lSxRVIsgCCsrc4Ix5FLiqDXhIykiGZFh4k8o ywyQ== X-Gm-Message-State: AOAM530TjpQy7eWxCKdpzAO015G7OxiXsaCW0wvCJb49k+JhfKlJsJ8R YLMWiA10yPI05Fzq9j3KMM56kz1EMcA= X-Google-Smtp-Source: ABdhPJwO6u75JuwcAxio9hTgcToQLAymRCcN/C6mjUTOrQJuzNfOq3ffuQd4wGwytxAr5SbSbymdXA== X-Received: by 2002:adf:ea8b:: with SMTP id s11mr14061935wrm.413.1615028070623; Sat, 06 Mar 2021 02:54:30 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 11/23] x86/pvh: extract only 4 bytes of start address for 32 bit kernels Date: Sat, 6 Mar 2021 11:54:07 +0100 Message-Id: <20210306105419.110503-12-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-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=2a00:1450:4864:20::42d; envelope-from=paolo.bonzini@gmail.com; helo=mail-wr1-x42d.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Edmondson , Stefano Garzarella Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: David Edmondson When loading the PVH start address from a 32 bit ELF note, extract only the appropriate number of bytes. Fixes: ab969087da65 ("pvh: Boot uncompressed kernel using direct boot ABI") Signed-off-by: David Edmondson Reviewed-by: Stefano Garzarella Message-Id: <20210302090315.3031492-3-david.edmondson@oracle.com> Signed-off-by: Paolo Bonzini --- hw/i386/x86.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hw/i386/x86.c b/hw/i386/x86.c index 6329f90ef9..7865660e2c 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -690,6 +690,8 @@ static uint64_t read_pvh_start_addr(void *arg1, void *a= rg2, bool is64) elf_note_data_addr =3D ((void *)nhdr64) + nhdr_size64 + QEMU_ALIGN_UP(nhdr_namesz, phdr_align); + + pvh_start_addr =3D *elf_note_data_addr; } else { struct elf32_note *nhdr32 =3D (struct elf32_note *)arg1; uint32_t nhdr_size32 =3D sizeof(struct elf32_note); @@ -699,9 +701,9 @@ static uint64_t read_pvh_start_addr(void *arg1, void *a= rg2, bool is64) elf_note_data_addr =3D ((void *)nhdr32) + nhdr_size32 + QEMU_ALIGN_UP(nhdr_namesz, phdr_align); - } =20 - pvh_start_addr =3D *elf_note_data_addr; + pvh_start_addr =3D *(uint32_t *)elf_note_data_addr; + } =20 return pvh_start_addr; } --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028328; cv=none; d=zohomail.com; s=zohoarc; b=V3dOyBHGThOGLU0HneHXowb3EGlYIpI486rsqxgnJrCS7/zHz7yRR4YUS7800Kmy0T+d6R1/2uErfEdt24OqxFfqef6iAhWwkPPUqiUe2Bcr1tO4TNDX5LYM9aQpgiye6PKYoTvDvCFZP6HOAWAjgn4po6r1RRnHWGgQgbdtumM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028328; 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=ENrDjQ3yvjkw1J/kmjEqPKOaLJXndkSJMGpd0qO5N8M=; b=FIKf9VjNbzXI1O/J/HzrZLujH3rHsuUokhNjE3vojvN0XO5WJmlbm0sJjZobcd1g/4orLZuetRDH0I5hbnCB5wVqjPLSkJPi/jGyqsR9Qg27Cig+hgx+NpgWWOMeJr7eu1LVwlnaNN7Ifx4/87bkdEYLqSSvrn9qCUYfwWzZ4Jc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615028328439402.83283581295916; Sat, 6 Mar 2021 02:58:48 -0800 (PST) Received: from localhost ([::1]:48538 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUdz-0003Gp-E4 for importer@patchew.org; Sat, 06 Mar 2021 05:58:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44416) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUZu-0005yI-8B for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:35 -0500 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]:42503) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZs-00089X-KT for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:34 -0500 Received: by mail-wm1-x333.google.com with SMTP id b2-20020a7bc2420000b029010be1081172so816004wmj.1 for ; Sat, 06 Mar 2021 02:54:32 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ENrDjQ3yvjkw1J/kmjEqPKOaLJXndkSJMGpd0qO5N8M=; b=heg9SL1JXErDRNTKCmrDzVWamMV8JZizsS3WMi87Uhwm+KbNbdwT3vxdCVTDk43h2h 8riaFqwOB+pZzAa8c1/YwEsngzbIkBYOF/2EykFbU+aolGAetv2cL7NP5Ux5RvOGKZ41 4BKyZ/bIxS6x9Qoy6WTiW89y8p3Lyxmjra9usrWNNY4e/7k5/wnkMp3OQ2cZ7TsUp5qB r5HG4fZ3iPKJKo4LG1180BylO8/dV8OWnmaWrXjU0X03JsI576yojAEEevA3BPm+W6mk PDFzM+zL+Yb0YWYLdZ8S9v1p74FIJRDWAm8GzFYyA8FDXTalTOMgv1xudpC10XHFatN6 6WvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=ENrDjQ3yvjkw1J/kmjEqPKOaLJXndkSJMGpd0qO5N8M=; b=qWyltjAKHob1041ZrK4Ps3sbyeLR0Lf5m0DDXffoTH7edGa5CLLCl5Msy7FOEQS83n Jb+MK+jvyNvkvvO6FNGDvDF/dwmAn6eu0eKwZ2vxmsxOmLGIM/dA0CvGZzddqSTehANy s8QA9odH/LAy78jbfB5Ax8xXbB8TdF5hWoGLd/xbQZq9ppuNAXLwQmLd4Y6LjP0j5Rid UjrOexVX1cvQHmqezSJvhsAa2PhVaa4ASusPTrRoXc6xwGtxdCCBrqYbss3+zTM9NC9D 9yHrK6Vxgj8z6tu67s5p3cFdhCI/gb1gWrr/JMEC9MORTJ5WHc00UDSHp5VMBH3V/d57 mUzQ== X-Gm-Message-State: AOAM533cYOUG8CqqvbVDohON5NEwdiBUStg/3PutPL0TSzQcV5nBu8V/ XYatRGbw/DEUmgvbhS1D9ypfvyTqokU= X-Google-Smtp-Source: ABdhPJyxc5yIWpMA156y1Nr/YXDVO1LGkGlrnZfJ6Z60/ZkNlJnpSjXvf/ySJ6QOJOB+isClPFx0ww== X-Received: by 2002:a1c:988c:: with SMTP id a134mr12956887wme.120.1615028071320; Sat, 06 Mar 2021 02:54:31 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 12/23] qemu-config: add error propagation to qemu_config_parse Date: Sat, 6 Mar 2021 11:54:08 +0100 Message-Id: <20210306105419.110503-13-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::333; envelope-from=paolo.bonzini@gmail.com; helo=mail-wm1-x333.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Markus Armbruster Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) This enables some simplification of vl.c via error_fatal, and improves error messages. Before: $ ./qemu-system-x86_64 -readconfig . qemu-system-x86_64: error reading file qemu-system-x86_64: -readconfig .: read config .: Invalid argument $ /usr/libexec/qemu-kvm -readconfig foo qemu-kvm: -readconfig foo: read config foo: No such file or directory After: $ ./qemu-system-x86_64 -readconfig . qemu-system-x86_64: -readconfig .: Cannot read config file: Is a directory $ ./qemu-system-x86_64 -readconfig foo qemu-system-x86_64: -readconfig foo: Could not open 'foo': No such file o= r directory Signed-off-by: Paolo Bonzini Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Markus Armbruster Message-Id: <20210226170816.231173-1-pbonzini@redhat.com> Signed-off-by: Paolo Bonzini --- block/blkdebug.c | 3 +-- include/qemu/config-file.h | 5 +++-- softmmu/vl.c | 29 +++++++++++------------------ util/qemu-config.c | 23 ++++++++++++----------- 4 files changed, 27 insertions(+), 33 deletions(-) diff --git a/block/blkdebug.c b/block/blkdebug.c index 5fe6172da9..7eaa8a28bf 100644 --- a/block/blkdebug.c +++ b/block/blkdebug.c @@ -279,9 +279,8 @@ static int read_config(BDRVBlkdebugState *s, const char= *filename, return -errno; } =20 - ret =3D qemu_config_parse(f, config_groups, filename); + ret =3D qemu_config_parse(f, config_groups, filename, errp); if (ret < 0) { - error_setg(errp, "Could not parse blkdebug config file"); goto fail; } } diff --git a/include/qemu/config-file.h b/include/qemu/config-file.h index 29226107bd..8d3e53ae4d 100644 --- a/include/qemu/config-file.h +++ b/include/qemu/config-file.h @@ -11,9 +11,10 @@ void qemu_add_drive_opts(QemuOptsList *list); int qemu_global_option(const char *str); =20 void qemu_config_write(FILE *fp); -int qemu_config_parse(FILE *fp, QemuOptsList **lists, const char *fname); +int qemu_config_parse(FILE *fp, QemuOptsList **lists, const char *fname, + Error **errp); =20 -int qemu_read_config_file(const char *filename); +int qemu_read_config_file(const char *filename, Error **errp); =20 /* Parse QDict options as a replacement for a config file (allowing multip= le enumerated (0..(n-1)) configuration "sections") */ diff --git a/softmmu/vl.c b/softmmu/vl.c index 7e8110bd6e..2f4958db2a 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -2062,17 +2062,19 @@ static int global_init_func(void *opaque, QemuOpts = *opts, Error **errp) return 0; } =20 -static int qemu_read_default_config_file(void) +static void qemu_read_default_config_file(Error **errp) { + ERRP_GUARD(); int ret; g_autofree char *file =3D get_relocated_path(CONFIG_QEMU_CONFDIR "/qem= u.conf"); =20 - ret =3D qemu_read_config_file(file); - if (ret < 0 && ret !=3D -ENOENT) { - return ret; + ret =3D qemu_read_config_file(file, errp); + if (ret < 0) { + if (ret =3D=3D -ENOENT) { + error_free(*errp); + *errp =3D NULL; + } } - - return 0; } =20 static int qemu_set_option(const char *str) @@ -2633,9 +2635,7 @@ void qemu_init(int argc, char **argv, char **envp) } =20 if (userconfig) { - if (qemu_read_default_config_file() < 0) { - exit(1); - } + qemu_read_default_config_file(&error_fatal); } =20 /* second pass of option parsing */ @@ -3323,15 +3323,8 @@ void qemu_init(int argc, char **argv, char **envp) qemu_plugin_opt_parse(optarg, &plugin_list); break; case QEMU_OPTION_readconfig: - { - int ret =3D qemu_read_config_file(optarg); - if (ret < 0) { - error_report("read config %s: %s", optarg, - strerror(-ret)); - exit(1); - } - break; - } + qemu_read_config_file(optarg, &error_fatal); + break; case QEMU_OPTION_spice: olist =3D qemu_find_opts_err("spice", NULL); if (!olist) { diff --git a/util/qemu-config.c b/util/qemu-config.c index e2a700b284..670bd6ebca 100644 --- a/util/qemu-config.c +++ b/util/qemu-config.c @@ -350,7 +350,7 @@ void qemu_config_write(FILE *fp) } =20 /* Returns number of config groups on success, -errno on error */ -int qemu_config_parse(FILE *fp, QemuOptsList **lists, const char *fname) +int qemu_config_parse(FILE *fp, QemuOptsList **lists, const char *fname, E= rror **errp) { char line[1024], group[64], id[64], arg[64], value[1024]; Location loc; @@ -375,7 +375,7 @@ int qemu_config_parse(FILE *fp, QemuOptsList **lists, c= onst char *fname) /* group with id */ list =3D find_list(lists, group, &local_err); if (local_err) { - error_report_err(local_err); + error_propagate(errp, local_err); goto out; } opts =3D qemu_opts_create(list, id, 1, NULL); @@ -386,7 +386,7 @@ int qemu_config_parse(FILE *fp, QemuOptsList **lists, c= onst char *fname) /* group without id */ list =3D find_list(lists, group, &local_err); if (local_err) { - error_report_err(local_err); + error_propagate(errp, local_err); goto out; } opts =3D qemu_opts_create(list, NULL, 0, &error_abort); @@ -398,21 +398,21 @@ int qemu_config_parse(FILE *fp, QemuOptsList **lists,= const char *fname) sscanf(line, " %63s =3D \"\"", arg) =3D=3D 1) { /* arg =3D value */ if (opts =3D=3D NULL) { - error_report("no group defined"); + error_setg(errp, "no group defined"); goto out; } - if (!qemu_opt_set(opts, arg, value, &local_err)) { - error_report_err(local_err); + if (!qemu_opt_set(opts, arg, value, errp)) { goto out; } continue; } - error_report("parse error"); + error_setg(errp, "parse error"); goto out; } if (ferror(fp)) { - error_report("error reading file"); - goto out; + loc_pop(&loc); + error_setg_errno(errp, errno, "Cannot read config file"); + return res; } res =3D count; out: @@ -420,16 +420,17 @@ out: return res; } =20 -int qemu_read_config_file(const char *filename) +int qemu_read_config_file(const char *filename, Error **errp) { FILE *f =3D fopen(filename, "r"); int ret; =20 if (f =3D=3D NULL) { + error_setg_file_open(errp, errno, filename); return -errno; } =20 - ret =3D qemu_config_parse(f, vm_config_groups, filename); + ret =3D qemu_config_parse(f, vm_config_groups, filename, errp); fclose(f); return ret; } --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028714; cv=none; d=zohomail.com; s=zohoarc; b=EW1jjDYrwrzrALHvAJ/+tdjF8IeZiBVNGXz03I4DIZyGPU3keTzs4Vb8kkIEqp9zz5DKfQp8141xzasZtW951GZPJXvmYU5HjlBtr9+YfqdyZe6W8AY7Q5VpyNtbZ/0E0eyJCQiFv07AsKw2BrWVl9EOWH+bbO1cgwJsdJKWkZ8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028714; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=q5f9t5j4/QGWJNhsSofDm2TZVW3Y7Podv7uACdRkSTU=; b=WHK0FV3EKm8PQQsAf2VmtBdeKoXiCARL4SRnKbK0spSXCRsxhbRIIAGas/lOQbVI3TK3Ve2YRLKG2NePUZeT8Hdj8ni7sXjq71ABt07rR4a5wAlAbMeqZeSrpqe//u6lkbczwuvWCEQax1O0Cfq2vxzDH7LMaXBvuMRhwgZdHxk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 161502871428175.06943163152926; Sat, 6 Mar 2021 03:05:14 -0800 (PST) Received: from localhost ([::1]:44474 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUkD-0004eF-7j for importer@patchew.org; Sat, 06 Mar 2021 06:05:13 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44420) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUZu-0005yQ-O6 for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:35 -0500 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]:46579) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZt-00089m-AB for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:34 -0500 Received: by mail-wr1-x42b.google.com with SMTP id a18so5171372wrc.13 for ; Sat, 06 Mar 2021 02:54:32 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=q5f9t5j4/QGWJNhsSofDm2TZVW3Y7Podv7uACdRkSTU=; b=BK4TQz11Mg1++WmQy33q2mnHIIkjTB+7Xl5M26O7WNZXLcoY8ZApFWrBUju2p/mcN1 KPG9lylNE1/KxuwSXgp+Nqjuwum17JiEPXEMP+qMJDbtWdZKQL2tUQZbuPvA7OZRE+q+ UZpZUmi9dK7QlthP7Mm2YNR0/vqYeTpfDECcitDFfgM2Jzc4Zvf9DRTksK8wySup8a3m TmQppluYM5/gNx5JkPLBgYey2Zolvu91O4mvJKUvFt3ZUZEAWSv2myjkUm9zNOo0Q6BN f80R7ntM2TabEZFeA29h2qNnGWZKoFrAPwL/lWeKJuhGsZ1uQJO+LwvWSOgy+n0VcOvd opGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=q5f9t5j4/QGWJNhsSofDm2TZVW3Y7Podv7uACdRkSTU=; b=CEl8qba4TZTlqJfqqz82khVw+uMANjUSfehAClBrE0/37u0++ajayyhmmpXZP/3tco M324H6G7HGLvq5PeAjalvWjdyXxUKj3COWiBKcbZQvusOgyxYEp0j+f6Muc4XxjmS6oW aVjm9OcBpUqk09y6mubdFXNx7vSBOMsnnEpPUX3Td+/eDjgm5y/FXczbU70Jh07Zg7Wb MHYPn/T59fUB6hLTVJo4YKPvB/qN0cofs40Iynt7TwLN9WvNWwFoXuCdQ2J/d7nalmxy FTx/7nba+FmMjQE8XRSh8XiITje2+I5ctoOSOAtc7aiL/Rsa7mlVDvvWnkc6OW180r9c mTeA== X-Gm-Message-State: AOAM530VFNSn3ynyqeXdely122h2Zaa5nEO8Y9xrAPVW7jO74tWF5CIc GSEPe0zaBh33z1U5V2u4b4RkFaiNKzU= X-Google-Smtp-Source: ABdhPJw0YSpC3L5gcc9Dk2szO6JdMAZOs7O8TwBpWGl01jOL0QJnhvZYbBqnnUiMuCIVSxnCM2zakg== X-Received: by 2002:adf:e5cf:: with SMTP id a15mr13309107wrn.226.1615028072076; Sat, 06 Mar 2021 02:54:32 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 13/23] scsi: Rename linux-specific SG_ERR codes to generic SCSI_HOST error codes Date: Sat, 6 Mar 2021 11:54:09 +0100 Message-Id: <20210306105419.110503-14-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-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=2a00:1450:4864:20::42b; envelope-from=paolo.bonzini@gmail.com; helo=mail-wr1-x42b.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Hannes Reinecke Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Hannes Reinecke We really should make a distinction between legitimate sense codes (ie if one is running against an emulated block device or for pass-through sense codes), and the intermediate errors generated during processing of the command, which really are not sense codes but refer to some specific internal status. And this internal state is not necessarily linux-specific, but rather can refer to the qemu implementation itself. So rename the linux-only SG_ERR codes to SCSI_HOST codes and make them available generally. Signed-off-by: Hannes Reinecke Message-Id: <20201116184041.60465-5-hare@suse.de> Signed-off-by: Paolo Bonzini --- include/scsi/utils.h | 23 ++++++++++++++++------- scsi/utils.c | 6 +++--- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/include/scsi/utils.h b/include/scsi/utils.h index ff7c7091b6..ddb22b56df 100644 --- a/include/scsi/utils.h +++ b/include/scsi/utils.h @@ -16,6 +16,22 @@ enum SCSIXferMode { SCSI_XFER_TO_DEV, /* WRITE, MODE_SELECT, ... */ }; =20 +enum SCSIHostStatus { + SCSI_HOST_OK, + SCSI_HOST_NO_LUN, + SCSI_HOST_BUSY, + SCSI_HOST_TIME_OUT, + SCSI_HOST_BAD_RESPONSE, + SCSI_HOST_ABORTED, + SCSI_HOST_ERROR =3D 0x07, + SCSI_HOST_RESET =3D 0x08, + SCSI_HOST_TRANSPORT_DISRUPTED =3D 0xe, + SCSI_HOST_TARGET_FAILURE =3D 0x10, + SCSI_HOST_RESERVATION_ERROR =3D 0x11, + SCSI_HOST_ALLOCATION_FAILURE =3D 0x12, + SCSI_HOST_MEDIUM_ERROR =3D 0x13, +}; + typedef struct SCSICommand { uint8_t buf[SCSI_CMD_BUF_SIZE]; int len; @@ -124,13 +140,6 @@ int scsi_cdb_length(uint8_t *buf); #define SG_ERR_DRIVER_TIMEOUT 0x06 #define SG_ERR_DRIVER_SENSE 0x08 =20 -#define SG_ERR_DID_OK 0x00 -#define SG_ERR_DID_NO_CONNECT 0x01 -#define SG_ERR_DID_BUS_BUSY 0x02 -#define SG_ERR_DID_TIME_OUT 0x03 - -#define SG_ERR_DRIVER_SENSE 0x08 - int sg_io_sense_from_errno(int errno_value, struct sg_io_hdr *io_hdr, SCSISense *sense); #endif diff --git a/scsi/utils.c b/scsi/utils.c index 6b56e01002..4d994b6d56 100644 --- a/scsi/utils.c +++ b/scsi/utils.c @@ -612,9 +612,9 @@ int sg_io_sense_from_errno(int errno_value, struct sg_i= o_hdr *io_hdr, if (errno_value !=3D 0) { return scsi_sense_from_errno(errno_value, sense); } else { - if (io_hdr->host_status =3D=3D SG_ERR_DID_NO_CONNECT || - io_hdr->host_status =3D=3D SG_ERR_DID_BUS_BUSY || - io_hdr->host_status =3D=3D SG_ERR_DID_TIME_OUT || + if (io_hdr->host_status =3D=3D SCSI_HOST_NO_LUN || + io_hdr->host_status =3D=3D SCSI_HOST_BUSY || + io_hdr->host_status =3D=3D SCSI_HOST_TIME_OUT || (io_hdr->driver_status & SG_ERR_DRIVER_TIMEOUT)) { return BUSY; } else if (io_hdr->host_status) { --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028463; cv=none; d=zohomail.com; s=zohoarc; b=STnSaHB6ktFGz/KEyF1IuDzrbS0bzLbA5sRenOzXKWNbsgV8bDcKxEUv8Wc2A/dFYrbFbZucKXi48FalH/7Ra/s+FcqkJXU6Fjd7oNQTtK4GdCGHkO9o6jYHebwvFml3RXCszIhmYXS68dtlpwPCNn5ySSNconFsoNQsQ/kSh/I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028463; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=WtBT0u+jvn6wnMBv0IRJDqOEAKiAeRmCEq+7vu/c0Yc=; b=gi7D5cuJlWjBNkAOVslfPvYgzGzl7Fv+pGAQrv1ymHu7YgM2beX5SZ6QLoIXOZbfw+ftEzmrHU42gf41NAwCRnDMR0FYAh0Hw7FsQw7bjX1XE1AZnvIZlmxZ0FOjLq/r/frOLmHEw8NJ5K5m1sYmGubIxRnDP3mUvnNuSKzFOX0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615028463735470.16624870328917; Sat, 6 Mar 2021 03:01:03 -0800 (PST) Received: from localhost ([::1]:55990 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUgA-0006Fw-LO for importer@patchew.org; Sat, 06 Mar 2021 06:01:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44438) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUZv-0005yR-KV for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:35 -0500 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]:35833) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZu-0008AW-7e for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:35 -0500 Received: by mail-wm1-x32e.google.com with SMTP id c76-20020a1c9a4f0000b029010c94499aedso847234wme.0 for ; Sat, 06 Mar 2021 02:54:33 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=WtBT0u+jvn6wnMBv0IRJDqOEAKiAeRmCEq+7vu/c0Yc=; b=dvfxn+PEE+V8AmY9DNE5C4SxXBPN9DCRnJiDVJ01I1hbNO/2Be/RiXKQeYyKwC+/NW YYSDW9YWYBuMJFgFuFTdnaYHA1Ce0prCI8nXsmmXI/SGp9J1JjrU49vAH0uAyJ3cTYft 6vo/UGwbM3v1emj326TmKavbpvu13e1WQciQBFL5gO2IXLDG7GQxRoiScU50m1gxjywa RczAGkXMouPGhK7I6mrl+afzVPnLeGdc2Zu/ct52nrur4AxzK09xzFjpEQdrtlP9OliD Rl7gPPGyWi1uuG/RI4d7vUN9ZgRrixpXsFewsceFAbhyjP2gxxH2Dp5IVmfnKz8Ld4kh wIsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=WtBT0u+jvn6wnMBv0IRJDqOEAKiAeRmCEq+7vu/c0Yc=; b=ZHLB4u9ifn86LldEDAt1Lc86L2GQcUMwo3t+Pkf6VuOQQcP13xkE1hRbteTgWAMRF2 kxYyAx6PlRROpvurexl24R7WLTk5vrO7nmXUmUCC6Tk8pyxbGaOls1IPnf2STlO3O/uA y0O3XrkNwckbuHeJQK01NTM5wgv80lieDf+95VVxojcFIpRccKayReUyEg25Ly+luYPP 3kyabWeD/Fw0Z6BalMchafJzq8QYXO1iF5yIw2iu05Q6iEgU6awpeM5DOG2EaQqFmnwq 9vH/sY8edN9AT+yYjE2kK8qLuzUfksXm2/MiEwaGtnLYqiokxWwWb3S1lyV4hPZXuazz YKrg== X-Gm-Message-State: AOAM532AoUR5RWaYk8ORBxtuU4KQEMKop1XnoyIyqzvkp5viRSc0vegF X30DnSx87AqHAT1EFtwMBMxBX6ZzndY= X-Google-Smtp-Source: ABdhPJw8bid5/4iumXqF8r57t2FxexkWI7lkGSIcT1mPiQw2GmA7VQB5JatK3ng+Ew9R4B1xjva9Cg== X-Received: by 2002:a1c:7406:: with SMTP id p6mr13032666wmc.103.1615028072969; Sat, 06 Mar 2021 02:54:32 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 14/23] scsi: Add mapping for generic SCSI_HOST status to sense codes Date: Sat, 6 Mar 2021 11:54:10 +0100 Message-Id: <20210306105419.110503-15-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-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=2a00:1450:4864:20::32e; envelope-from=paolo.bonzini@gmail.com; helo=mail-wm1-x32e.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Hannes Reinecke Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Hannes Reinecke As we don't have a driver-specific mapping (yet) we should provide for a detailed mapping from host_status to SCSI sense codes. Signed-off-by: Hannes Reinecke Message-Id: <20201116184041.60465-6-hare@suse.de> Signed-off-by: Paolo Bonzini --- include/scsi/utils.h | 1 + scsi/utils.c | 65 +++++++++++++++++++++++++++++++++++++++----- 2 files changed, 59 insertions(+), 7 deletions(-) diff --git a/include/scsi/utils.h b/include/scsi/utils.h index ddb22b56df..9080d65e27 100644 --- a/include/scsi/utils.h +++ b/include/scsi/utils.h @@ -145,5 +145,6 @@ int sg_io_sense_from_errno(int errno_value, struct sg_i= o_hdr *io_hdr, #endif =20 int scsi_sense_from_errno(int errno_value, SCSISense *sense); +int scsi_sense_from_host_status(uint8_t host_status, SCSISense *sense); =20 #endif diff --git a/scsi/utils.c b/scsi/utils.c index 4d994b6d56..28eb32746e 100644 --- a/scsi/utils.c +++ b/scsi/utils.c @@ -257,6 +257,21 @@ const struct SCSISense sense_code_LUN_COMM_FAILURE =3D= { .key =3D ABORTED_COMMAND, .asc =3D 0x08, .ascq =3D 0x00 }; =20 +/* Command aborted, LUN does not respond to selection */ +const struct SCSISense sense_code_LUN_NOT_RESPONDING =3D { + .key =3D ABORTED_COMMAND, .asc =3D 0x05, .ascq =3D 0x00 +}; + +/* Command aborted, Command Timeout during processing */ +const struct SCSISense sense_code_COMMAND_TIMEOUT =3D { + .key =3D ABORTED_COMMAND, .asc =3D 0x2e, .ascq =3D 0x02 +}; + +/* Command aborted, Commands cleared by device server */ +const struct SCSISense sense_code_COMMAND_ABORTED =3D { + .key =3D ABORTED_COMMAND, .asc =3D 0x2f, .ascq =3D 0x02 +}; + /* Medium Error, Unrecovered read error */ const struct SCSISense sense_code_READ_ERROR =3D { .key =3D MEDIUM_ERROR, .asc =3D 0x11, .ascq =3D 0x00 @@ -605,6 +620,45 @@ int scsi_sense_from_errno(int errno_value, SCSISense *= sense) } } =20 +int scsi_sense_from_host_status(uint8_t host_status, + SCSISense *sense) +{ + switch (host_status) { + case SCSI_HOST_NO_LUN: + *sense =3D SENSE_CODE(LUN_NOT_RESPONDING); + return CHECK_CONDITION; + case SCSI_HOST_BUSY: + return BUSY; + case SCSI_HOST_TIME_OUT: + *sense =3D SENSE_CODE(COMMAND_TIMEOUT); + return CHECK_CONDITION; + case SCSI_HOST_BAD_RESPONSE: + *sense =3D SENSE_CODE(LUN_COMM_FAILURE); + return CHECK_CONDITION; + case SCSI_HOST_ABORTED: + *sense =3D SENSE_CODE(COMMAND_ABORTED); + return CHECK_CONDITION; + case SCSI_HOST_RESET: + *sense =3D SENSE_CODE(RESET); + return CHECK_CONDITION; + case SCSI_HOST_TRANSPORT_DISRUPTED: + *sense =3D SENSE_CODE(I_T_NEXUS_LOSS); + return CHECK_CONDITION; + case SCSI_HOST_TARGET_FAILURE: + *sense =3D SENSE_CODE(TARGET_FAILURE); + return CHECK_CONDITION; + case SCSI_HOST_RESERVATION_ERROR: + return RESERVATION_CONFLICT; + case SCSI_HOST_ALLOCATION_FAILURE: + *sense =3D SENSE_CODE(SPACE_ALLOC_FAILED); + return CHECK_CONDITION; + case SCSI_HOST_MEDIUM_ERROR: + *sense =3D SENSE_CODE(READ_ERROR); + return CHECK_CONDITION; + } + return GOOD; +} + #ifdef CONFIG_LINUX int sg_io_sense_from_errno(int errno_value, struct sg_io_hdr *io_hdr, SCSISense *sense) @@ -612,14 +666,11 @@ int sg_io_sense_from_errno(int errno_value, struct sg= _io_hdr *io_hdr, if (errno_value !=3D 0) { return scsi_sense_from_errno(errno_value, sense); } else { - if (io_hdr->host_status =3D=3D SCSI_HOST_NO_LUN || - io_hdr->host_status =3D=3D SCSI_HOST_BUSY || - io_hdr->host_status =3D=3D SCSI_HOST_TIME_OUT || - (io_hdr->driver_status & SG_ERR_DRIVER_TIMEOUT)) { + int status =3D scsi_sense_from_host_status(io_hdr->host_status, se= nse); + if (status) { + return status; + } else if (io_hdr->driver_status & SG_ERR_DRIVER_TIMEOUT) { return BUSY; - } else if (io_hdr->host_status) { - *sense =3D SENSE_CODE(I_T_NEXUS_LOSS); - return CHECK_CONDITION; } else if (io_hdr->status) { return io_hdr->status; } else if (io_hdr->driver_status & SG_ERR_DRIVER_SENSE) { --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028839; cv=none; d=zohomail.com; s=zohoarc; b=U1f3ET6QRpvYxafMIpSNugRk5r2KRZtHXksGh9o0Z27O1RWncDJSLcBcOfhZcG/58nMnuRjr4szMpUNZoaCg73c54v1s27ieOtgg0GsvTHF75Zs66vqGIP0XIdDVJTzeGhGHHqVPhuKUfaNVJvtA0jKPUSMKtcKPk1AuMJW25bs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028839; h=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=DoeEvWyNKUu+KM2rOfLrnCNzfh9K3Uxn7fLG02mCJk4=; b=jVAjMK25f2/+Aks5Te+VhcmSWGlBPO82RoJYwTTG3JWWwDBNDmLUUVXIGDRmed5KmT5XhHPG3n+Yw5a5/SpljnKBtbc/oLr8YE6eWliPHp7DhQrcr7GezS+lmUatsm4WmVZOWUckibGwCZGlzwJEdyBlXiVTuAZQkSHW2GQpS3A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615028839416448.9940693560966; Sat, 6 Mar 2021 03:07:19 -0800 (PST) Received: from localhost ([::1]:52514 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUmE-0007vM-6P for importer@patchew.org; Sat, 06 Mar 2021 06:07:18 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44444) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUZw-0005z9-Bl for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:37 -0500 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]:33155) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZu-0008BC-WA for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:36 -0500 Received: by mail-wr1-x434.google.com with SMTP id 7so5241125wrz.0 for ; Sat, 06 Mar 2021 02:54:34 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=DoeEvWyNKUu+KM2rOfLrnCNzfh9K3Uxn7fLG02mCJk4=; b=bUtrSfLGnbzFr17Wb+mt64401Lz39ESo0jjX704A+33bqcxQsf5intpqpIIfkOMiRY 6hQXrOIbajj1sqtvmWUxTuRJQTtsFiENlCcoO+99i6j/k3xxkUqeTTs3grbhP0uQEQX+ nciheCtbFspwM5IG/RuAu7kZUDuG0LLAF8qsJirJOveeMYhvGlCsTTw1U+HXruu9w1RE Wxg8NmG4u4oMCWV+4kmezN4QFug5FR2l3NAgt60wXNdTyoCZd7Vr2wY2lgL3WptMdMlV J/xd6ijr7DgAqABb8jpL44dmGTiu0qkTFWvpLntVvuyBWsE5vBDqUz1my/3YN2tzzuk/ hjNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=DoeEvWyNKUu+KM2rOfLrnCNzfh9K3Uxn7fLG02mCJk4=; b=f+ooxpUCG8EVn3HoVMAOJg2GN86tlrmAcV7JljdnQpdWnXkXeuOjRmVrP5mFOAFlTS PQmS+Zpc9Ubuim6H8aejtQ9dVZ59z2id6ZnwJ1AVrVLHbx1Xq+zFtEfyNAtAsS+Expm3 9cY2LowWZ6nxlrxDzjBAd7zTxNpKKQrnegv/Sh8wtoJ0GjHd/5wafEJ367Y6ErtEnDFU ghLpT3kiIgIodNDW9t1I1padfOgEqlvWjxwaWaXcyoEWCQ9SOUKraYmZwzO/Q65DtABc 8eiWkoVr2G4vPU6qcOdbmwuXF2glPP0mjcmHHYJ6HoN7lCCY2y1wQJA9pJo7eVw9QJuT llYg== X-Gm-Message-State: AOAM531xtPFhyS0Zhnb106B6t2kgQ/AzdDBdXfEpUzQtVAuETdg1JOFx 1s54KkI8YN8ODiDAhU3clvOk7bdcA34= X-Google-Smtp-Source: ABdhPJwq2JgZChlonvesTMmCLiNRYMYxTCYf0JrKspvGTlbz2dOpOMv/sePvR8qJ+Bv6Kwesu0LQYg== X-Received: by 2002:a5d:6b8a:: with SMTP id n10mr13755684wrx.150.1615028073867; Sat, 06 Mar 2021 02:54:33 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 15/23] scsi-generic: do not snoop the output of failed commands Date: Sat, 6 Mar 2021 11:54:11 +0100 Message-Id: <20210306105419.110503-16-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-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=2a00:1450:4864:20::434; envelope-from=paolo.bonzini@gmail.com; helo=mail-wr1-x434.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" If a READ CAPACITY command would fail, for example s->qdev.blocksize would = be set to zero and cause a division by zero on the next use. Signed-off-by: Paolo Bonzini --- hw/scsi/scsi-generic.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hw/scsi/scsi-generic.c b/hw/scsi/scsi-generic.c index cf7e11cf44..f9fd2ccfdd 100644 --- a/hw/scsi/scsi-generic.c +++ b/hw/scsi/scsi-generic.c @@ -288,7 +288,10 @@ static void scsi_read_complete(void * opaque, int ret) } } =20 - if (len =3D=3D 0) { + if (r->io_header.host_status !=3D SCSI_HOST_OK || + (r->io_header.driver_status & SG_ERR_DRIVER_TIMEOUT) || + r->io_header.status !=3D GOOD || + len =3D=3D 0) { scsi_command_complete_noio(r, 0); goto done; } --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028921; cv=none; d=zohomail.com; s=zohoarc; b=NieAKIro9CHukfqhcn+ya1CQkcmmlD5pXHb5MVdaiWRXl4Kl5+foUWWQ3dSJjNHI+qOrPvSZVqH1F+EdkIHrblFboGgy6p4/9sRJ9UJNg9iQ7fmwD3DbC7877eRzVY/v493rEmqcl6xwzX3q1OOvo+BZUvzxGzm3JdjDqGppIIM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028921; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=45ZsPcyt0fqSXzgBophlHxaHG8EqkcxkX9bmzk+z7TA=; b=WXzPQBKz0pEXDLuw0VhS7Q2RqyxtB4ey825emDBSm8qDL+1Hh5842YtLEJsEod5AyglByQIA+Oq31dIGaRMa4T46hNXZHYEdp3SZ3zL4wbN5V9N1segYeR+7HmqXS3R1ufugB/i37T9cSIgIZYuKGmfv3NJJp+yro7ut7iXlpAU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 161502892132271.87414845941078; Sat, 6 Mar 2021 03:08:41 -0800 (PST) Received: from localhost ([::1]:57894 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUnY-0001eH-6e for importer@patchew.org; Sat, 06 Mar 2021 06:08:40 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44468) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUZy-00060y-2h for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:39 -0500 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]:36510) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZv-0008Bc-Ng for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:37 -0500 Received: by mail-wm1-x331.google.com with SMTP id r15-20020a05600c35cfb029010e639ca09eso846926wmq.1 for ; Sat, 06 Mar 2021 02:54:35 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=45ZsPcyt0fqSXzgBophlHxaHG8EqkcxkX9bmzk+z7TA=; b=NFeGn2RrVnq77B47qS7X1nO9QaIz49aVeasrrzP5IAPLRbe5oFyPIAxgj2a5oAotku FeslLG5TpqRg4VBgb3QBEm/5xA6IGFJYWwT/++HDco9N08l8z4dOE13uoeDMP77P/1Ds v0IGR3ilmbvgDegEikEIzRu606cILWZ+HVS+vSnEBMWOGyF9/pIhFFXMskA+PTXO/MJM vGZTX8FhXgfzSXxtdOz1VPQJogljf/SeOHuKOf75SrN2+qB504mraHf3nlDLXeimQRgV EJBDuzMDgwG23AF/COh7UXhNaF+x9cVpNaqTxOFCnGap+Jlrw2KujGdjoa+wrq59wncq j0RA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=45ZsPcyt0fqSXzgBophlHxaHG8EqkcxkX9bmzk+z7TA=; b=CrgDo2mJTOwwCFaGm1kUVvaSy3P3EJrY9D2q0TQB/IEVLpipUwWEp4JrSdxpUbGmvm 7FPsW34TRWyk1Nut0Ko3ntBQkvxzGAKsHNiEjAOkoSZkm/GOWNoui5XXB/G2qawqenFY xbIBIdsHKOBrc3APJheOh2CrJh+Qwdk8EquqSOUk2KJ5vaIZ7jW36Yjhp0OWsNT8ZRNN mw5fQscWk6kiC4+Q4HeAdROlB6A0YlWexui/6Wlq8eAFoPYIpv8QT2GZjpduX5TVEKuQ 7i+R2PqEYpalMaaKV7MdNtmGHdLq66P/dEIVWhnI6e1ibIcjeD5BCzpPH0p8RSHdUsEJ 7aKg== X-Gm-Message-State: AOAM531Rg3IC7zXCWi+u856rieDAmA8/GnSuMMmh4r27hTOEhd75Rjlr d7OjX8ryK7uM4UU2e0TpEZ6hbp3VK3A= X-Google-Smtp-Source: ABdhPJzznnzQCAYwyaMLGEiuJ80XlzS7yKLzsTadDcis2d93y7XsOMOxKrktY/Z9kb0VRl1RosKq+A== X-Received: by 2002:a1c:1f8f:: with SMTP id f137mr13092451wmf.66.1615028074565; Sat, 06 Mar 2021 02:54:34 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 16/23] scsi: inline sg_io_sense_from_errno() into the callers. Date: Sat, 6 Mar 2021 11:54:12 +0100 Message-Id: <20210306105419.110503-17-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-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=2a00:1450:4864:20::331; envelope-from=paolo.bonzini@gmail.com; helo=mail-wm1-x331.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Hannes Reinecke Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Hannes Reinecke Currently sg_io_sense_from_errno() converts the two input parameters 'errno' and 'io_hdr' into sense code and SCSI status. Having split the function off into scsi_sense_from_errno() and scsi_sense_from_host_status(), both of which are available generically, we now inline the logic in the callers so that scsi-disk and scsi-generic will be able to pass host_status to the HBA. Signed-off-by: Hannes Reinecke Message-Id: <20201116184041.60465-7-hare@suse.de> [Put together from "scsi-disk: Add sg_io callback to evaluate status" and what remains of "scsi: split sg_io_sense_from_errno() in two functions= ", with many other fixes. - Paolo] Signed-off-by: Paolo Bonzini --- hw/scsi/scsi-disk.c | 47 +++++++++++++++++++++++++++++++++++++----- hw/scsi/scsi-generic.c | 22 ++++++++++++++------ include/scsi/utils.h | 3 --- scsi/qemu-pr-helper.c | 24 ++++++++++++++------- scsi/utils.c | 23 --------------------- 5 files changed, 75 insertions(+), 44 deletions(-) diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index a5a58d7db3..ceaf78b423 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -77,7 +77,6 @@ typedef struct SCSIDiskReq { struct iovec iov; QEMUIOVector qiov; BlockAcctCookie acct; - unsigned char *status; } SCSIDiskReq; =20 #define SCSI_DISK_F_REMOVABLE 0 @@ -261,8 +260,6 @@ static bool scsi_disk_req_check_error(SCSIDiskReq *r, i= nt ret, bool acct_failed) =20 if (ret < 0) { return scsi_handle_rw_error(r, ret, acct_failed); - } else if (r->status && *r->status) { - return scsi_handle_rw_error(r, *r->status, acct_failed); } =20 return false; @@ -2697,8 +2694,47 @@ typedef struct SCSIBlockReq { =20 /* CDB passed to SG_IO. */ uint8_t cdb[16]; + BlockCompletionFunc *cb; + void *cb_opaque; } SCSIBlockReq; =20 +static void scsi_block_sgio_complete(void *opaque, int ret) +{ + SCSIBlockReq *req =3D (SCSIBlockReq *)opaque; + SCSIDiskReq *r =3D &req->req; + SCSIDevice *s =3D r->req.dev; + sg_io_hdr_t *io_hdr =3D &req->io_header; + SCSISense sense; + + if (ret =3D=3D 0) { + if (io_hdr->host_status !=3D SCSI_HOST_OK) { + ret =3D scsi_sense_from_host_status(io_hdr->host_status, &sens= e); + if (ret =3D=3D CHECK_CONDITION) { + scsi_req_build_sense(&r->req, sense); + } + } else if (io_hdr->driver_status & SG_ERR_DRIVER_TIMEOUT) { + ret =3D BUSY; + } else { + ret =3D io_hdr->status; + } + + if (ret > 0) { + aio_context_acquire(blk_get_aio_context(s->conf.blk)); + if (scsi_handle_rw_error(r, ret, true)) { + aio_context_release(blk_get_aio_context(s->conf.blk)); + scsi_req_unref(&r->req); + return; + } + aio_context_release(blk_get_aio_context(s->conf.blk)); + + /* Ignore error. */ + ret =3D 0; + } + } + + req->cb(req->cb_opaque, ret); +} + static BlockAIOCB *scsi_block_do_sgio(SCSIBlockReq *req, int64_t offset, QEMUIOVector *iov, int direction, @@ -2777,9 +2813,11 @@ static BlockAIOCB *scsi_block_do_sgio(SCSIBlockReq *= req, io_header->timeout =3D s->qdev.io_timeout * 1000; io_header->usr_ptr =3D r; io_header->flags |=3D SG_FLAG_DIRECT_IO; + req->cb =3D cb; + req->cb_opaque =3D opaque; trace_scsi_disk_aio_sgio_command(r->req.tag, req->cdb[0], lba, nb_logical_blocks, io_header->timeout= ); - aiocb =3D blk_aio_ioctl(s->qdev.conf.blk, SG_IO, io_header, cb, opaque= ); + aiocb =3D blk_aio_ioctl(s->qdev.conf.blk, SG_IO, io_header, scsi_block= _sgio_complete, req); assert(aiocb !=3D NULL); return aiocb; } @@ -2893,7 +2931,6 @@ static int32_t scsi_block_dma_command(SCSIRequest *re= q, uint8_t *buf) return 0; } =20 - r->req.status =3D &r->io_header.status; return scsi_disk_dma_command(req, buf); } =20 diff --git a/hw/scsi/scsi-generic.c b/hw/scsi/scsi-generic.c index f9fd2ccfdd..02b87819e5 100644 --- a/hw/scsi/scsi-generic.c +++ b/hw/scsi/scsi-generic.c @@ -75,6 +75,7 @@ static void scsi_command_complete_noio(SCSIGenericReq *r,= int ret) { int status; SCSISense sense; + sg_io_hdr_t *io_hdr =3D &r->io_header; =20 assert(r->req.aiocb =3D=3D NULL); =20 @@ -82,15 +83,24 @@ static void scsi_command_complete_noio(SCSIGenericReq *= r, int ret) scsi_req_cancel_complete(&r->req); goto done; } - status =3D sg_io_sense_from_errno(-ret, &r->io_header, &sense); - if (status =3D=3D CHECK_CONDITION) { - if (r->io_header.driver_status & SG_ERR_DRIVER_SENSE) { - r->req.sense_len =3D r->io_header.sb_len_wr; - } else { + if (ret < 0) { + status =3D scsi_sense_from_errno(-ret, &sense); + if (status =3D=3D CHECK_CONDITION) { + scsi_req_build_sense(&r->req, sense); + } + } else if (io_hdr->host_status !=3D SCSI_HOST_OK) { + status =3D scsi_sense_from_host_status(io_hdr->host_status, &sense= ); + if (status =3D=3D CHECK_CONDITION) { scsi_req_build_sense(&r->req, sense); } + } else if (io_hdr->driver_status & SG_ERR_DRIVER_TIMEOUT) { + status =3D BUSY; + } else { + status =3D io_hdr->status; + if (io_hdr->driver_status & SG_ERR_DRIVER_SENSE) { + r->req.sense_len =3D io_hdr->sb_len_wr; + } } - trace_scsi_generic_command_complete_noio(r, r->req.tag, status); =20 scsi_req_complete(&r->req, status); diff --git a/include/scsi/utils.h b/include/scsi/utils.h index 9080d65e27..d5c8efa16e 100644 --- a/include/scsi/utils.h +++ b/include/scsi/utils.h @@ -139,9 +139,6 @@ int scsi_cdb_length(uint8_t *buf); #ifdef CONFIG_LINUX #define SG_ERR_DRIVER_TIMEOUT 0x06 #define SG_ERR_DRIVER_SENSE 0x08 - -int sg_io_sense_from_errno(int errno_value, struct sg_io_hdr *io_hdr, - SCSISense *sense); #endif =20 int scsi_sense_from_errno(int errno_value, SCSISense *sense); diff --git a/scsi/qemu-pr-helper.c b/scsi/qemu-pr-helper.c index 2733d92f2d..7b9389b47b 100644 --- a/scsi/qemu-pr-helper.c +++ b/scsi/qemu-pr-helper.c @@ -149,19 +149,29 @@ static int do_sgio_worker(void *opaque) io_hdr.dxferp =3D (char *)data->buf; io_hdr.dxfer_len =3D data->sz; ret =3D ioctl(data->fd, SG_IO, &io_hdr); - status =3D sg_io_sense_from_errno(ret < 0 ? errno : 0, &io_hdr, - &sense_code); + + if (ret < 0) { + status =3D scsi_sense_from_errno(errno, &sense_code); + if (status =3D=3D CHECK_CONDITION) { + scsi_build_sense(data->sense, sense_code); + } + } else if (io_hdr.host_status !=3D SCSI_HOST_OK) { + status =3D scsi_sense_from_host_status(io_hdr.host_status, &sense_= code); + if (status =3D=3D CHECK_CONDITION) { + scsi_build_sense(data->sense, sense_code); + } + } else if (io_hdr.driver_status & SG_ERR_DRIVER_TIMEOUT) { + status =3D BUSY; + } else { + status =3D io_hdr.status; + } + if (status =3D=3D GOOD) { data->sz -=3D io_hdr.resid; } else { data->sz =3D 0; } =20 - if (status =3D=3D CHECK_CONDITION && - !(io_hdr.driver_status & SG_ERR_DRIVER_SENSE)) { - scsi_build_sense(data->sense, sense_code); - } - return status; } =20 diff --git a/scsi/utils.c b/scsi/utils.c index 28eb32746e..873e05aeaf 100644 --- a/scsi/utils.c +++ b/scsi/utils.c @@ -658,26 +658,3 @@ int scsi_sense_from_host_status(uint8_t host_status, } return GOOD; } - -#ifdef CONFIG_LINUX -int sg_io_sense_from_errno(int errno_value, struct sg_io_hdr *io_hdr, - SCSISense *sense) -{ - if (errno_value !=3D 0) { - return scsi_sense_from_errno(errno_value, sense); - } else { - int status =3D scsi_sense_from_host_status(io_hdr->host_status, se= nse); - if (status) { - return status; - } else if (io_hdr->driver_status & SG_ERR_DRIVER_TIMEOUT) { - return BUSY; - } else if (io_hdr->status) { - return io_hdr->status; - } else if (io_hdr->driver_status & SG_ERR_DRIVER_SENSE) { - return CHECK_CONDITION; - } else { - return GOOD; - } - } -} -#endif --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028485; cv=none; d=zohomail.com; s=zohoarc; b=csCqGDzo2vovKiKrQEbEt0z1kIPO1JG10KL/GhZnBqyjfjHwrlo6DDIfGdL5X25Y9O9g/LFewBDJCxIMW2eYN/gAiH4kGkOFAGkkFADvq02miSHj045bw2JovrgLP/LP+yq9ooIjO9XdQWFR+9XXIG0frfAUtMZ80JrpVy9x2Wc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028485; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=UIYd14lz7UHJRjF1bu94Jg7Tf5lE7IMtqw4bi8iqiNI=; b=YjFaLNVffrRK43lviuoN4HiX9WNFrf0P9kd0iZzeApL/r7yISYKFno8dKffucK5DDeobo3sCMyTlfTsSwp+M5GVtCQpvub7F0naydgJAPj0/eqMx/khUyI0TMbxxMitFvxyG9jYl1TaShAtcA/Ety2MXf9Hw6LW6cRWk9WLpkGA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615028485111185.14424710787068; Sat, 6 Mar 2021 03:01:25 -0800 (PST) Received: from localhost ([::1]:57110 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUgW-0006lT-08 for importer@patchew.org; Sat, 06 Mar 2021 06:01:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44500) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUZz-00061S-TU for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:41 -0500 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]:35566) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZx-0008CX-QV for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:39 -0500 Received: by mail-wr1-x42e.google.com with SMTP id l12so5216309wry.2 for ; Sat, 06 Mar 2021 02:54:36 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=UIYd14lz7UHJRjF1bu94Jg7Tf5lE7IMtqw4bi8iqiNI=; b=q5qc8qGtvCjDi/k6cyipubQxnNK9PiPMuz6xhsCrpEsCFdPrYp5e3ct666yFEEKW0A cM9FgNNq7Q8Ut8wWJJEjXY2cQUrCL7zYkOGHlZt0bJq1otIiEDv7IP6JA5oVOh8F3tJi E1Jzb6rKQtwhSCtZgdnKGIBZoNlatWO0IIhN8leIIyCCeC3aga1HfUnis5dTPR2eO1Sw reXkk5paTQfDAyzXk/zHQ3510UFkKEGXly2/gcTBUvwIPshggiKujfDH/0pPtQhUQJH3 5pGbOjQ+94nhqWWV7LEc28RbxSK9Sv6oxEk5XinlQcmYBI+I8TKdBL2KWUn/J5MtA7UZ OD1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=UIYd14lz7UHJRjF1bu94Jg7Tf5lE7IMtqw4bi8iqiNI=; b=hZa8E9aZQTS+mw7h7EQKrI04MQIzPW0V0GqRupM6Ukw55Xz+OQFYZO5OYOZ0OfR+sg Ah1Dq540PsunNZImk+xC2ZEwUUk/i2PGoyTPF1K9dX4dcEXlu+QVPNVDODdGSse8DxH/ HTXJGwAxnZBHTon4I+8sL1Y3bZK+XKMWuwqNDgnMjhKhLkmKKqWD7OfF89OfaKpz7XbO mXhkegsSxjeo7zoQCBO90eX52eeIqsSV1ewmchNRZvAcQxtOJMtvWbR5fOrwnS2QWk2w 1wXcHmS1JKV4dMKvppl4DqTR2sxxSaP6Vrl1/64YlbHBiKX8BS0hqbiKE4eHZLotlu6H IjvQ== X-Gm-Message-State: AOAM533JxXl6V77ZUge1xzF8H3gfDuQo8zgiXvHXyUBl5qZndbxfrCnC WJJmv+6g/pYMdgAQc+kOo3aNdsPcLJ0= X-Google-Smtp-Source: ABdhPJzCEvBbZQwtlXpuHyG8uwbKlgPcSjjH03Yx2hjLnk56MavAWLFAOZeaaLKsZ+rx8C5pIONihw== X-Received: by 2002:adf:f144:: with SMTP id y4mr13746336wro.408.1615028075503; Sat, 06 Mar 2021 02:54:35 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 17/23] scsi: move host_status handling into SCSI drivers Date: Sat, 6 Mar 2021 11:54:13 +0100 Message-Id: <20210306105419.110503-18-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-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=2a00:1450:4864:20::42e; envelope-from=paolo.bonzini@gmail.com; helo=mail-wr1-x42e.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Hannes Reinecke Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Hannes Reinecke Some SCSI drivers like virtio have an internal mapping for the host_status. This patch moves the host_status translation into the SCSI drivers to allow those drivers to set up the correct values. Signed-off-by: Hannes Reinecke . [Added default handling to avoid touching all drivers. - Paolo] Signed-off-by: Paolo Bonzini --- hw/scsi/scsi-bus.c | 33 ++++++++++++++++++++++++++++-- hw/scsi/scsi-disk.c | 12 +++++------ hw/scsi/scsi-generic.c | 6 ++---- hw/scsi/virtio-scsi.c | 46 ++++++++++++++++++++++++++++++++++++++++++ hw/scsi/vmw_pvscsi.c | 39 +++++++++++++++++++++++++++++++++++ include/hw/scsi/scsi.h | 5 ++++- 6 files changed, 128 insertions(+), 13 deletions(-) diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c index dc4141ec8d..2d674f94d7 100644 --- a/hw/scsi/scsi-bus.c +++ b/hw/scsi/scsi-bus.c @@ -692,6 +692,7 @@ SCSIRequest *scsi_req_alloc(const SCSIReqOps *reqops, S= CSIDevice *d, req->lun =3D lun; req->hba_private =3D hba_private; req->status =3D -1; + req->host_status =3D -1; req->ops =3D reqops; object_ref(OBJECT(d)); object_ref(OBJECT(qbus->parent)); @@ -1455,10 +1456,38 @@ void scsi_req_print(SCSIRequest *req) } } =20 +void scsi_req_complete_failed(SCSIRequest *req, int host_status) +{ + SCSISense sense; + int status; + + assert(req->status =3D=3D -1 && req->host_status =3D=3D -1); + assert(req->ops !=3D &reqops_unit_attention); + + if (!req->bus->info->fail) { + status =3D scsi_sense_from_host_status(req->host_status, &sense); + if (status =3D=3D CHECK_CONDITION) { + scsi_req_build_sense(req, sense); + } + scsi_req_complete(req, status); + return; + } + + req->host_status =3D host_status; + scsi_req_ref(req); + scsi_req_dequeue(req); + req->bus->info->fail(req); + + /* Cancelled requests might end up being completed instead of cancelle= d */ + notifier_list_notify(&req->cancel_notifiers, req); + scsi_req_unref(req); +} + void scsi_req_complete(SCSIRequest *req, int status) { - assert(req->status =3D=3D -1); + assert(req->status =3D=3D -1 && req->host_status =3D=3D -1); req->status =3D status; + req->host_status =3D SCSI_HOST_OK; =20 assert(req->sense_len <=3D sizeof(req->sense)); if (status =3D=3D GOOD) { @@ -1646,7 +1675,7 @@ static int put_scsi_requests(QEMUFile *f, void *pv, s= ize_t size, =20 QTAILQ_FOREACH(req, &s->requests, next) { assert(!req->io_canceled); - assert(req->status =3D=3D -1); + assert(req->status =3D=3D -1 && req->host_status =3D=3D -1); assert(req->enqueued); =20 qemu_put_sbyte(f, req->retry ? 1 : 2); diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index ceaf78b423..bd7103cd0e 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -2704,15 +2704,15 @@ static void scsi_block_sgio_complete(void *opaque, = int ret) SCSIDiskReq *r =3D &req->req; SCSIDevice *s =3D r->req.dev; sg_io_hdr_t *io_hdr =3D &req->io_header; - SCSISense sense; =20 if (ret =3D=3D 0) { if (io_hdr->host_status !=3D SCSI_HOST_OK) { - ret =3D scsi_sense_from_host_status(io_hdr->host_status, &sens= e); - if (ret =3D=3D CHECK_CONDITION) { - scsi_req_build_sense(&r->req, sense); - } - } else if (io_hdr->driver_status & SG_ERR_DRIVER_TIMEOUT) { + scsi_req_complete_failed(&r->req, io_hdr->host_status); + scsi_req_unref(&r->req); + return; + } + + if (io_hdr->driver_status & SG_ERR_DRIVER_TIMEOUT) { ret =3D BUSY; } else { ret =3D io_hdr->status; diff --git a/hw/scsi/scsi-generic.c b/hw/scsi/scsi-generic.c index 02b87819e5..98c30c5d5c 100644 --- a/hw/scsi/scsi-generic.c +++ b/hw/scsi/scsi-generic.c @@ -89,10 +89,8 @@ static void scsi_command_complete_noio(SCSIGenericReq *r= , int ret) scsi_req_build_sense(&r->req, sense); } } else if (io_hdr->host_status !=3D SCSI_HOST_OK) { - status =3D scsi_sense_from_host_status(io_hdr->host_status, &sense= ); - if (status =3D=3D CHECK_CONDITION) { - scsi_req_build_sense(&r->req, sense); - } + scsi_req_complete_failed(&r->req, io_hdr->host_status); + goto done; } else if (io_hdr->driver_status & SG_ERR_DRIVER_TIMEOUT) { status =3D BUSY; } else { diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c index 358c0e70b0..6d80730287 100644 --- a/hw/scsi/virtio-scsi.c +++ b/hw/scsi/virtio-scsi.c @@ -500,6 +500,51 @@ static void virtio_scsi_complete_cmd_req(VirtIOSCSIReq= *req) virtio_scsi_complete_req(req); } =20 +static void virtio_scsi_command_failed(SCSIRequest *r) +{ + VirtIOSCSIReq *req =3D r->hba_private; + + if (r->io_canceled) { + return; + } + + req->resp.cmd.status =3D GOOD; + switch (r->host_status) { + case SCSI_HOST_NO_LUN: + req->resp.cmd.response =3D VIRTIO_SCSI_S_INCORRECT_LUN; + break; + case SCSI_HOST_BUSY: + req->resp.cmd.response =3D VIRTIO_SCSI_S_BUSY; + break; + case SCSI_HOST_TIME_OUT: + case SCSI_HOST_ABORTED: + req->resp.cmd.response =3D VIRTIO_SCSI_S_ABORTED; + break; + case SCSI_HOST_BAD_RESPONSE: + req->resp.cmd.response =3D VIRTIO_SCSI_S_BAD_TARGET; + break; + case SCSI_HOST_RESET: + req->resp.cmd.response =3D VIRTIO_SCSI_S_RESET; + break; + case SCSI_HOST_TRANSPORT_DISRUPTED: + req->resp.cmd.response =3D VIRTIO_SCSI_S_TRANSPORT_FAILURE; + break; + case SCSI_HOST_TARGET_FAILURE: + req->resp.cmd.response =3D VIRTIO_SCSI_S_TARGET_FAILURE; + break; + case SCSI_HOST_RESERVATION_ERROR: + req->resp.cmd.response =3D VIRTIO_SCSI_S_NEXUS_FAILURE; + break; + case SCSI_HOST_ALLOCATION_FAILURE: + case SCSI_HOST_MEDIUM_ERROR: + case SCSI_HOST_ERROR: + default: + req->resp.cmd.response =3D VIRTIO_SCSI_S_FAILURE; + break; + } + virtio_scsi_complete_cmd_req(req); +} + static void virtio_scsi_command_complete(SCSIRequest *r, size_t resid) { VirtIOSCSIReq *req =3D r->hba_private; @@ -908,6 +953,7 @@ static struct SCSIBusInfo virtio_scsi_scsi_info =3D { .max_lun =3D VIRTIO_SCSI_MAX_LUN, =20 .complete =3D virtio_scsi_command_complete, + .fail =3D virtio_scsi_command_failed, .cancel =3D virtio_scsi_request_cancelled, .change =3D virtio_scsi_change, .parse_cdb =3D virtio_scsi_parse_cdb, diff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c index 0da378ed50..1f30cb020a 100644 --- a/hw/scsi/vmw_pvscsi.c +++ b/hw/scsi/vmw_pvscsi.c @@ -510,6 +510,44 @@ pvscsi_write_sense(PVSCSIRequest *r, uint8_t *sense, i= nt len) cpu_physical_memory_write(r->req.senseAddr, sense, r->cmp.senseLen); } =20 +static void +pvscsi_command_failed(SCSIRequest *req) +{ + PVSCSIRequest *pvscsi_req =3D req->hba_private; + PVSCSIState *s; + + if (!pvscsi_req) { + trace_pvscsi_command_complete_not_found(req->tag); + return; + } + s =3D pvscsi_req->dev; + + switch (req->host_status) { + case SCSI_HOST_NO_LUN: + pvscsi_req->cmp.hostStatus =3D BTSTAT_LUNMISMATCH; + break; + case SCSI_HOST_BUSY: + pvscsi_req->cmp.hostStatus =3D BTSTAT_ABORTQUEUE; + break; + case SCSI_HOST_TIME_OUT: + case SCSI_HOST_ABORTED: + pvscsi_req->cmp.hostStatus =3D BTSTAT_SENTRST; + break; + case SCSI_HOST_BAD_RESPONSE: + pvscsi_req->cmp.hostStatus =3D BTSTAT_SELTIMEO; + break; + case SCSI_HOST_RESET: + pvscsi_req->cmp.hostStatus =3D BTSTAT_BUSRESET; + break; + default: + pvscsi_req->cmp.hostStatus =3D BTSTAT_HASOFTWARE; + break; + } + pvscsi_req->cmp.scsiStatus =3D GOOD; + qemu_sglist_destroy(&pvscsi_req->sgl); + pvscsi_complete_request(s, pvscsi_req); +} + static void pvscsi_command_complete(SCSIRequest *req, size_t resid) { @@ -1103,6 +1141,7 @@ static const struct SCSIBusInfo pvscsi_scsi_info =3D { .get_sg_list =3D pvscsi_get_sg_list, .complete =3D pvscsi_command_complete, .cancel =3D pvscsi_request_cancelled, + .fail =3D pvscsi_command_failed, }; =20 static void diff --git a/include/hw/scsi/scsi.h b/include/hw/scsi/scsi.h index 5d992e6e1d..0b726bc78c 100644 --- a/include/hw/scsi/scsi.h +++ b/include/hw/scsi/scsi.h @@ -27,7 +27,8 @@ struct SCSIRequest { uint32_t refcount; uint32_t tag; uint32_t lun; - uint32_t status; + int16_t status; + int16_t host_status; void *hba_private; size_t resid; SCSICommand cmd; @@ -123,6 +124,7 @@ struct SCSIBusInfo { int (*parse_cdb)(SCSIDevice *dev, SCSICommand *cmd, uint8_t *buf, void *hba_private); void (*transfer_data)(SCSIRequest *req, uint32_t arg); + void (*fail)(SCSIRequest *req); void (*complete)(SCSIRequest *req, size_t resid); void (*cancel)(SCSIRequest *req); void (*change)(SCSIBus *bus, SCSIDevice *dev, SCSISense sense); @@ -177,6 +179,7 @@ void scsi_req_print(SCSIRequest *req); void scsi_req_continue(SCSIRequest *req); void scsi_req_data(SCSIRequest *req, int len); void scsi_req_complete(SCSIRequest *req, int status); +void scsi_req_complete_failed(SCSIRequest *req, int host_status); uint8_t *scsi_req_get_buf(SCSIRequest *req); int scsi_req_get_sense(SCSIRequest *req, uint8_t *buf, int len); void scsi_req_cancel_complete(SCSIRequest *req); --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028848; cv=none; d=zohomail.com; s=zohoarc; b=JVWKApkKQixQ54p54+JbC/e8Us4FJoo55R5j9KQpR61Dc5U7xIeu90WhmkreD1jpexxAiD2y7vQJ0FZxQfOahWdR8Hhkqkd/wGGQdgQJrS8Q1FxY4jo3C7Ua1KbQWt0vH1wwpw7XOcz22gim9vNQo+Yy3bML7VqAugVeMA0AAk8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028848; 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=nEvq3zCUGEMnaqz6FiGYyto4ewbJo+45jcuvmd2iy3s=; b=Lvq0LRnTPeDaQWu3A49aoTEsLcZkNjiKg48+9aevqUJzJCdFr9WBc2nwW+o0adnynaO4DqrmCCEyUSlpZPtJkhUxvb7ipeqM6zwuB5100Y0RXR7qANoUKT4hHI/OJNd+BwMRjSKkXdN02fxWIDXAUj1JDPPaltyYD8W9t8/dpX0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 161502884838371.83063642208356; Sat, 6 Mar 2021 03:07:28 -0800 (PST) Received: from localhost ([::1]:52808 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUmM-00082W-7v for importer@patchew.org; Sat, 06 Mar 2021 06:07:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44498) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUZz-00061Q-TA for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:41 -0500 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]:35568) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZx-0008DG-R4 for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:39 -0500 Received: by mail-wr1-x430.google.com with SMTP id l12so5216333wry.2 for ; Sat, 06 Mar 2021 02:54:37 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=nEvq3zCUGEMnaqz6FiGYyto4ewbJo+45jcuvmd2iy3s=; b=fRWe54mJkPHuh9TJSzG1GMz08viM4A+fPaACuCTwd0rvLgqizKOvoZF7L78joo9OxO DlRdCFk7j8VkBdUZqBb5lPHFljeBSAxiC62xmVMm3Kzc+q/GQcHVX6jwpI2dcOl/hoT6 ENf9lZubpqomAV1PD7AJzBZ8I7andiv23lwcp8zWKUAMHnmd+VGsfn2/mBB5HwfoHlw3 PPYNQkUwfwAq6H1JhjDXrVFjjIVzBfMMqq3/y3u7M3EUS65dK4hrsOAzO8idq/YfYAks u/gtEIWKvLtocCWNpzM7bbImEKR1kMmuZ2Ee92hLltRDVpQYpUACMtZOTp+C99cocr0c HEag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=nEvq3zCUGEMnaqz6FiGYyto4ewbJo+45jcuvmd2iy3s=; b=kZno6Mp9boRu+cQmBg7sjdVFY8jxgK1udPrbalzADy4Nf6ROeimIxkJJRtMs/inPLg z7sXdq0TXUOLjyY3dxTGfoUZabCUr2socYa3rnpOyIz34nMPftPL4w1IfMTne/xVffso PvLjAutduqH4/BX593/YuAsa2Arwkt7F+j+Bu7KxFvpUjNx8YdTu2m+D2kgsYqA1cHwS YDy4GgWwwLdnvziUdmrDZJUB9tbXmnAmiRlDtMgiJfet/alNSygP9D0QUOhPUA4BsiGK 6ppKKFbT0fOo/1BspLyCoEY1R7tLVJRg4g7C0HsE/QdNNokOE6UHfHWH9yXU6VR5g83p SpOw== X-Gm-Message-State: AOAM53394WcH9TFE3RTVycijvBJMyXDFID9WCn6pMKBZgGP76gTt1JRr XCX2GmsxK+pJtr48o6QP1ni2CGxb2qs= X-Google-Smtp-Source: ABdhPJwEPex30J2UsF6JtRn1XHGzWwHR3xcjzl9t1raCoOyMKrByGl/msVJEVYQigSnszTz8Q0j+Qw== X-Received: by 2002:a5d:67cf:: with SMTP id n15mr13442322wrw.95.1615028076277; Sat, 06 Mar 2021 02:54:36 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 18/23] qemu-option: do not suggest using the delay option Date: Sat, 6 Mar 2021 11:54:14 +0100 Message-Id: <20210306105419.110503-19-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::430; envelope-from=paolo.bonzini@gmail.com; helo=mail-wr1-x430.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) The "delay" option was a hack that was introduced to allow writing "nodelay= ". We are adding a "nodelay" option to be used as "nodelay=3Don", so recommend= it instead of "delay". This is quite ugly, but a proper deprecation of "delay" cannot be done if QEMU starts suggesting it. Since it's the only case I opted for this very much ad-hoc patch. Reviewed-by: Daniel P. Berrang=C3=A9 Signed-off-by: Paolo Bonzini --- docs/system/deprecated.rst | 6 ++++++ util/qemu-option.c | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst index fcf0ca4068..cfabe69846 100644 --- a/docs/system/deprecated.rst +++ b/docs/system/deprecated.rst @@ -134,6 +134,12 @@ Boolean options such as ``share=3Don``/``share=3Doff``= could be written in short form as ``share`` and ``noshare``. This is now deprecated and will cause a warning. =20 +``delay`` option for socket character devices (since 6.0) +''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +The replacement for the ``nodelay`` short-form boolean option is ``nodelay= =3Don`` +rather than ``delay=3Doff``. + ``--enable-fips`` (since 6.0) ''''''''''''''''''''''''''''' =20 diff --git a/util/qemu-option.c b/util/qemu-option.c index 40564a12eb..9678d5b682 100644 --- a/util/qemu-option.c +++ b/util/qemu-option.c @@ -785,7 +785,11 @@ static const char *get_opt_name_value(const char *para= ms, } if (!is_help && warn_on_flag) { warn_report("short-form boolean option '%s%s' deprecated",= prefix, *name); - error_printf("Please use %s=3D%s instead\n", *name, *value= ); + if (g_str_equal(*name, "delay")) { + error_printf("Please use nodelay=3D%s instead\n", pref= ix[0] ? "on" : "off"); + } else { + error_printf("Please use %s=3D%s instead\n", *name, *v= alue); + } } } } else { --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615029116; cv=none; d=zohomail.com; s=zohoarc; b=lA2rk02r66FWClfe0dbkuQaVz4F+vnzT2uvdt2i66VAk3pwER+FLoyJF7w+yBq2AJ49fyHbojlomcBUN9Bs8c7v4q9UG7Bl5JlerxF71w0yEVzdmyXuWbcYb6MDY65ZvpSKznqLUKeOH9WzcoaYKcI7bvWnntQHWjOxiMB8fgTY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615029116; h=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=vKU24c2goh4ZPVsr56GPlz5qY3b7PrySvcGJUKUjT34=; b=jV+NlBhNcVR0WHTc+Y59iU2eVUW4Ps7mgSCD6IVU743MiCXFhug8YA4VFx3AZUx5Bp8wkJscC2PxfgUkPTXq+QlyPX5nXnRZLLiO1+CQXQbCS7KHdOVeh0yrNYg38zJx59wbQPebufNMtw1pRZD7fSC83ZrpDGHOXr+WJY41Lpo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615029116362850.1174073598747; Sat, 6 Mar 2021 03:11:56 -0800 (PST) Received: from localhost ([::1]:33820 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUqh-0003Tl-D4 for importer@patchew.org; Sat, 06 Mar 2021 06:11:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44504) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUZz-00061V-UK for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:41 -0500 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]:34645) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZy-0008DR-80 for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:39 -0500 Received: by mail-wr1-x42b.google.com with SMTP id u16so5209764wrt.1 for ; Sat, 06 Mar 2021 02:54:37 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vKU24c2goh4ZPVsr56GPlz5qY3b7PrySvcGJUKUjT34=; b=pCHp9DgPxswEzK9iqPPIVAByfTPrWl19CFCnikV9bkl0mm6qEbIOSsl+33NhCAbJRu NcFgLbvhR1E0nkejGFK/Dadysu9Caybee7DKQe8KzdYhkcBY0PAOvcaTWbl0/xaBM5Cr xbdUcaUwCaPqhSrXZKyoAT1a5jsDPrsx8jydPabetXfJTzBufiblTf5iuS/Xm6BwSSdC etT9Kul8bUzGnk0poMu40MfjWBqe6u2aTOr7ENRaSczngA0HGS9ptbB92yycVISVjA39 BVdv6g8YXNx6rFLabGrYtSF2GMql46mjZaQxqQeTPBiRck3mB8jKCWWs38BIJtGI1Owl 4CJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=vKU24c2goh4ZPVsr56GPlz5qY3b7PrySvcGJUKUjT34=; b=MwOvA7zyNewtcjmR1sgvjEuiCdBhnWd/s6ToPObh4jpd7Iuv6v7mAqmDGQ2xnaxelY S3jtBR+cLWY3nlYn0AHnXDLlHwoAgD9APL+c/ROPMB2jIQ4Csz8ZN8mPVBQ5pf3BdIeo bvMq789rP5b+fi9tnVTQs0nGhwy2wSQGCPDh/HiyHPI74kASFqnVQZ3LCqPy/fllTilV iizOZ4D1tbMpeiagtyjRJ24F23XjMAHlqRT5/LXu6OciEwr56YMSXF0+IdHJVEDpgmX0 q5VzMI0Yz1ooV1EIazIKwK/I30A2wb3tjWOaSIble1/omp3Q1o0Z6NwpGFRyPQNHRTzi M+IQ== X-Gm-Message-State: AOAM5307oXtcA++fs5bnitMW2x67HQwVvDcPJ3hL+MXbcLlvZ5qgpEet KhJxiYHJnU2VhsXHF67FWGuBf0eLH3U= X-Google-Smtp-Source: ABdhPJyq+KpldszD1OQsH5vLrv7AU+z0UgDp5o1nS97pwF3r88YazDZpGxoc7kqOOd+qcMr8MtoK2g== X-Received: by 2002:a05:6000:245:: with SMTP id m5mr13987439wrz.284.1615028077121; Sat, 06 Mar 2021 02:54:37 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 19/23] build-sys: invoke ninja with -d keepdepfile Date: Sat, 6 Mar 2021 11:54:15 +0100 Message-Id: <20210306105419.110503-20-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-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=2a00:1450:4864:20::42b; envelope-from=paolo.bonzini@gmail.com; helo=mail-wr1-x42b.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" After reading the dependency file, ninja just deletes it, in the name of cleanliness I guess. However this complicates debugging unnecessarily compared to good old "-include *.d". Use the keepdepfile debugging option to make it easier to see what is going on. Signed-off-by: Paolo Bonzini Message-Id: <20210215122103.63933-1-pbonzini@redhat.com> Signed-off-by: Paolo Bonzini --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index d7fb6b270e..bcbbec71a1 100644 --- a/Makefile +++ b/Makefile @@ -149,7 +149,7 @@ $(ninja-targets): run-ninja # --output-sync line. run-ninja: config-host.mak ifneq ($(filter $(ninja-targets), $(ninja-cmd-goals)),) - +$(quiet-@)$(if $(MAKE.nq),@:, $(NINJA) \ + +$(quiet-@)$(if $(MAKE.nq),@:, $(NINJA) -d keepdepfile \ $(NINJAFLAGS) $(sort $(filter $(ninja-targets), $(ninja-cmd-goals))) |= cat) endif endif --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615029028; cv=none; d=zohomail.com; s=zohoarc; b=Jc3misOl/HKxPHTO78ArG9KDOP0BFS9EFBxM/6ZRnkryJQqi73n6LyRC6OTdAJm/J6hM/w4XynzW5XoH48WBOK7uEZrC3N6W7yM3Pm9ISrK4i02WccZgeLw3DuBvHftWXOkiLPE4v5KjlCq8tECTLppRvcpPa+yBjae7bm8gykM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615029028; h=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=XQ/WctJe2L4xl8WNjtSQPbxp/LlhPKDQHw2nHEsK5u4=; b=keUFxUDK6BtDC/1tKtDPcguDO9V1nTaTAByKHEix2H81+Hu/wT6DUbU/haFWc5e6KpmdOM2yCXET2cPAa/teGRbnA+RkgA5A/NS5trqROxYfHAKrloT3IS25myMnfkYx81w/I7EKG1noIZUc/2xNSxCUfG47VBMkzNhQAK6ducA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615029028595510.65179247851324; Sat, 6 Mar 2021 03:10:28 -0800 (PST) Received: from localhost ([::1]:59984 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUpG-0002XV-J9 for importer@patchew.org; Sat, 06 Mar 2021 06:10:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44530) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUa1-00061a-6n for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:41 -0500 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]:39293) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZz-0008Dh-09 for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:40 -0500 Received: by mail-wr1-x431.google.com with SMTP id b18so5216366wrn.6 for ; Sat, 06 Mar 2021 02:54:38 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=XQ/WctJe2L4xl8WNjtSQPbxp/LlhPKDQHw2nHEsK5u4=; b=nIzTG50jN230RwVyAWuLOILr2OAsLb5JYX+Ko8pDkoqVDbXx7qUxr7dlJZNuY1OOab GRJlD2UyRXoOnNCZ1RXb78pV6hkEqzKnGGUuqE12hC0hHXtpXBpIdgh4s348LpZoo3SZ EfjrNqKZFcF5v5hrkdAdyGA+KfDP/5RY4RLEtPU8YcrIW+RhhAYnEZicwefT/+veDX9I YSrYeME646PE72k6jRNhyhkynj6I9WJ8StNox85idqOUFftMB8r0fBBkGI7uD2RX/2+p U79rb16tQEDspHaeTqaId+oUVwcMc8RRdtVAwciF7gFRQTsueVcjrkXqdm1IHfN7xHF8 KCPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=XQ/WctJe2L4xl8WNjtSQPbxp/LlhPKDQHw2nHEsK5u4=; b=QSgBiIuXRgsHMj0xem3QIBq+biOiuxEEaRKLqXpPJwWC08XASPCZLTYXOp1n+1QtOb PKk9hmnqJSEIPZAj8qNoLB8XK6gjeQqYU+sufBjp9JVO3k+2FY55HCiXGFRar1J9VdGC X8nYAMv8V2TS6Q0O+L6w9BIbgXMaR6m9+JMOYP0ziB+J47UIt0YUECDmnlaenIB2Fgwf owh0z+3LWBbJj6uoCZA7o5EAAPrNm+HZBjsAgoGqyMJDX4MI7h+sIlLV/la4rsFKP9kv ic8ZYcnNv1x8Ott1XsMq+dlCGxDSWwMj+UyJ2jCsKov++bDAnLBg9Yr6g3u6x91stt7Z WRPA== X-Gm-Message-State: AOAM533OJ16k8CH7FXLExDJqK4j4SSDfGuVaWv95xbhmQpcmfRIWzcyE e3gxlvNH/5QustkhIRPxlZ7hMA+f0S0= X-Google-Smtp-Source: ABdhPJxGK9ann0lPEumS/tFkHwoTNVTpsxHNzBsL9qxWqehEGYRwVN8x2XQe/KOiAejMXJxQL67gsg== X-Received: by 2002:a05:6000:1547:: with SMTP id 7mr13661072wry.301.1615028077748; Sat, 06 Mar 2021 02:54:37 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 20/23] meson: adjust timeouts for some slower tests Date: Sat, 6 Mar 2021 11:54:16 +0100 Message-Id: <20210306105419.110503-21-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-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=2a00:1450:4864:20::431; envelope-from=paolo.bonzini@gmail.com; helo=mail-wr1-x431.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Adjust the timeouts for the benchmarks (Meson 0.57 allows 0 to mean infinite) and for the longest running tests. These are the times that I measured and the corresponding timeouts. For generic qtests, the target that reported the longest runtime is included. unit tests: test-crypto-tlscredsx509 13.15s 45s test-crypto-tlssession 14.12s 45s qtests: qos-test 21.26s 60s (i386) ahci-test 22.18s 60s pxe-test 26.51s 60s boot-serial-test 28.02s 60s (sparc) prom-env-test 28.86s 60s bios-tables-test 50.17s 120s (aarch64) test-hmp 57.15s 120s (aarch64) npcm7xx_pwm-test 71.27s 150s migration-test 97.09s 150s (aarch64) qom-test 139.20s 240s (aarch64) Signed-off-by: Paolo Bonzini --- tests/fp/meson.build | 2 +- tests/meson.build | 8 ++++++++ tests/qtest/meson.build | 15 +++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/tests/fp/meson.build b/tests/fp/meson.build index 8d739c4d59..1c3eee9955 100644 --- a/tests/fp/meson.build +++ b/tests/fp/meson.build @@ -624,7 +624,7 @@ test('fp-test-mulAdd', fptest, # no fptest_rounding_args args: fptest_args + ['f16_mulAdd', 'f32_mulAdd', 'f64_mulAdd', 'f128_mulAdd'], - suite: ['softfloat-slow', 'softfloat-ops-slow'], timeout: 60) + suite: ['softfloat-slow', 'softfloat-ops-slow'], timeout: 90) =20 fpbench =3D executable( 'fp-bench', diff --git a/tests/meson.build b/tests/meson.build index 7d7da6a636..656d211e25 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -237,6 +237,11 @@ test_env =3D environment() test_env.set('G_TEST_SRCDIR', meson.current_source_dir()) test_env.set('G_TEST_BUILDDIR', meson.current_build_dir()) =20 +slow_tests =3D { + 'test-crypto-tlscredsx509': 45, + 'test-crypto-tlssession': 45 +} + foreach test_name, extra: tests src =3D [test_name + '.c'] deps =3D [qemuutil] @@ -254,6 +259,8 @@ foreach test_name, extra: tests env: test_env, args: ['--tap', '-k'], protocol: 'tap', + timeout: slow_tests.get(test_name, 30), + priority: slow_tests.get(test_name, 30), suite: ['unit']) endforeach =20 @@ -263,6 +270,7 @@ foreach bench_name, deps: benchs benchmark(bench_name, exe, args: ['--tap', '-k'], protocol: 'tap', + timeout: 0, suite: ['speed']) endforeach =20 diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build index ba6ecaed32..8c79d5cc3b 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -4,6 +4,19 @@ if not config_host.has_key('CONFIG_POSIX') subdir_done() endif =20 +slow_qtests =3D { + 'ahci-test' : 60, + 'bios-tables-test' : 120, + 'boot-serial-test' : 60, + 'migration-test' : 150, + 'npcm7xx_pwm-test': 150, + 'prom-env-test' : 60, + 'pxe-test' : 60, + 'qos-test' : 60, + 'qom-test' : 300, + 'test-hmp' : 120, +} + qtests_generic =3D [ 'cdrom-test', 'device-introspect-test', @@ -273,6 +286,8 @@ foreach dir : target_dirs env: qtest_env, args: ['--tap', '-k'], protocol: 'tap', + timeout: slow_qtests.get(test, 30), + priority: slow_qtests.get(test, 30), suite: ['qtest', 'qtest-' + target_base]) endforeach endforeach --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028600; cv=none; d=zohomail.com; s=zohoarc; b=DBBou59DOhFs++6jrINQcvjr+sl+cEAsQNffDaBZAI6tTZPziLZOzdEPeL8zJwljoG3a7lCq5sRurcErbkUgiOVG6WDK4Bx5lFyBOArTm/+pxyaYx3SmZvklOeyJg4kUboeUhwpmnsz+uGHC6JMtULSEC8g8ZvOxvsXuseF29rk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028600; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=kU3bZsFA+beRn8mnmHGaAIYUo4tijB2YCZ4G9Uc0rCA=; b=Aqe+DMqZFvcR5XpOwMtUNbYkBn+SIojPD6oJeqbGDPHH1mzzfsFwJMWuBK84cBxPMoND/PlRv0h9X1UjkHP4garvyjVXyUugP0A+2kcdflRqsMUKrXdsKzDuifacQNSpVSJC1UuqkOnwetQRqy7+7ewowBUwtS8E9oiEmBfIxoM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615028600959450.42707610707225; Sat, 6 Mar 2021 03:03:20 -0800 (PST) Received: from localhost ([::1]:36290 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUiN-0001Nt-PU for importer@patchew.org; Sat, 06 Mar 2021 06:03:19 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44542) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUa1-00061o-NQ for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:43 -0500 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]:45495) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZz-0008F0-RT for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:41 -0500 Received: by mail-wr1-x435.google.com with SMTP id e10so5170745wro.12 for ; Sat, 06 Mar 2021 02:54:39 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=kU3bZsFA+beRn8mnmHGaAIYUo4tijB2YCZ4G9Uc0rCA=; b=hYkCx+/uJ6C+P5bYM1jyAhCHOKEFwh21M2uRwl2o+aRw/SMSnKuOYSR+vBgvofDROH PKB/rAafGyRoTvtq60XBniIYzgrW+p2BHDGDR22o0JH7ti0Yob8h1wvH99lPP5ksOspZ ffNChCc1W1I6yzWfDXCN6L6HKB9SF1OHq3YLDtKosbmFEZDosdwz8sH2YPKwgcxjrcsO vxaEwhxjeMwiUwzy28PsmvTH+21Sj6aQr6AldYXsj/R0n1mohWeqCq5EQTKYitPxUuFK kuyuvuBangvTraHnUdxhJzDu+wCI3qXf8RAfABV2A+bfjpCTwo3C+N/fbdwf5MAm+Goo OmEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=kU3bZsFA+beRn8mnmHGaAIYUo4tijB2YCZ4G9Uc0rCA=; b=F859rbC0e9WscsY2pvwmfJN98Saouxk9shVzi3gnevlfp1c2TR9spD1tJUb/eBHnc0 uXp/2BAYOC0afv4aR55xoHXIqc/2O1USRGiEZ4tt1jb53t01cCj70MvTCQCMtkuuq61K utP+A403xmhby8wn7dx30ac0+d/Nw/E+xsZtiCr6wbhGEl3nBB1Oe7ayrJW7A0MSVWxJ c1wySmsN/VmnTL+IWD0Uj2Q0nqF10LWBSDJic2PhYIpij9RLSB1thnzhZ4KQoEpYhW+C VYzwSrP4MMm3sfghBxKIARHFGSmqK0zS/3t5uVRdyRpbLW84Ah+cRTlTJ20fqYCxwbzF ZvBA== X-Gm-Message-State: AOAM533nOUFOk1Uz5nWvFY6U8z9MvSkOLnWYImBCf8xfgzMlX5hcpiET ODtTs/s4gTh+Hlz7gYEGEFPzLDBK/Mg= X-Google-Smtp-Source: ABdhPJw/FqheEyyWKnfuehOUd/7LHnVAib3UGjkO4US0sAkwDGZxK6Of8BEOaJ7Spkhb7fFXPHoP0Q== X-Received: by 2002:a5d:6c69:: with SMTP id r9mr13520260wrz.11.1615028078596; Sat, 06 Mar 2021 02:54:38 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 21/23] trace: fix "-trace file=..." Date: Sat, 6 Mar 2021 11:54:17 +0100 Message-Id: <20210306105419.110503-22-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-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=2a00:1450:4864:20::435; envelope-from=paolo.bonzini@gmail.com; helo=mail-wr1-x435.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: armbru@redhat.com, stefanha@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Because trace_opt_parse always deletes the options it has parsed, trace_init_file's call to qemu_find_opts_singleton always creates an empty -trace option group. Therefore, the subsequent qemu_opt_get(opts, "file") always returns NULL. To fix this, save the last "-trace file=3D..." option in a global variable and use it later in trace_init_file. This is similar to what was done before commit 92eecfff32 ("trace: remove argument from trace_init_file", 2020-11-11), except contained within trace/control.c and without memory leaks. Fixes: 92eecfff32 ("trace: remove argument from trace_init_file", 2020-11-1= 1) Cc: stefanha@redhat.com Reported-by: armbru@redhat.com Signed-off-by: Paolo Bonzini Message-Id: <20210209145759.141231-2-pbonzini@redhat.com> --- trace/control.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/trace/control.c b/trace/control.c index cd04dd4e0c..4be38e1af2 100644 --- a/trace/control.c +++ b/trace/control.c @@ -40,6 +40,7 @@ static size_t nevent_groups; static uint32_t next_id; static uint32_t next_vcpu_id; static bool init_trace_on_startup; +static char *trace_opts_file; =20 QemuOptsList qemu_trace_opts =3D { .name =3D "trace", @@ -224,10 +225,8 @@ static void trace_init_events(const char *fname) =20 void trace_init_file(void) { - QemuOpts *opts =3D qemu_find_opts_singleton("trace"); - const char *file =3D qemu_opt_get(opts, "file"); #ifdef CONFIG_TRACE_SIMPLE - st_set_trace_file(file); + st_set_trace_file(trace_opts_file); if (init_trace_on_startup) { st_set_trace_file_enabled(true); } @@ -238,11 +237,11 @@ void trace_init_file(void) * backend. However we should only override -D if we actually have * something to override it with. */ - if (file) { - qemu_set_log_filename(file, &error_fatal); + if (trace_opts_file) { + qemu_set_log_filename(trace_opts_file, &error_fatal); } #else - if (file) { + if (trace_opts_file) { fprintf(stderr, "error: --trace file=3D...: " "option not supported by the selected tracing backends\n"); exit(1); @@ -303,6 +302,8 @@ void trace_opt_parse(const char *optarg) } trace_init_events(qemu_opt_get(opts, "events")); init_trace_on_startup =3D true; + g_free(trace_opts_file); + trace_opts_file =3D g_strdup(qemu_opt_get(opts, "file")); qemu_opts_del(opts); } =20 --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028610; cv=none; d=zohomail.com; s=zohoarc; b=Rd7//iGhoZSL4HeF/hyVRh1CLjRztBPkJyu2SD8AfYqzM3QaTb6DVq+xesdlz33Zne9vqvztE9yPC/65Jgv7rZCmu+BevKVtYxb+In+9XEcWiPSI5D+LbMay3LQ3y08UO2RjYAKBIwz26qSEqVI/5zcyMv7gjvi1PWcwaWxEVCk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028610; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=y+3key+Awrub2yF4Xg5MLCJZCTP/he2QEe7XSC9SAec=; b=llRvAbYNIEQp7bqgzq6YD3eocacmAOXzuhrFCOOmmj/HM6rHcJUVNoL9T6aZg5b6l6RODsellamZ9E4mqRWiYRSpgFD53OQzLHINwa1aS9f/+Wi+ZM9Bo17Vict/Au16jsZni3ue7iZqkIJQN+6+uJx6uBNgJ6YvBYEv8kL4TgU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 16150286101891016.5221043568654; Sat, 6 Mar 2021 03:03:30 -0800 (PST) Received: from localhost ([::1]:37386 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUiX-0001oY-7G for importer@patchew.org; Sat, 06 Mar 2021 06:03:29 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44560) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUa2-00062M-A4 for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:43 -0500 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]:35571) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUa0-0008Ff-Gz for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:42 -0500 Received: by mail-wr1-x433.google.com with SMTP id l12so5216470wry.2 for ; Sat, 06 Mar 2021 02:54:40 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=y+3key+Awrub2yF4Xg5MLCJZCTP/he2QEe7XSC9SAec=; b=gDKF9Qy9GQ+NAIPcL85l9M9v9msS13fe8aFpY/9CeeVsFlwH7bwxCAb8Dvi3PiGDB3 NDCQ8R43JW9eW6QIx8bBIyH+sAxNt5NIi/yaoB7PGyqeyMCQEMb2smSaUfixFKWAIz5s i9CFYHknie547Jp9RXwhPqmtJStU2LSGk+i9+4hxu84bbW4jm/g0jSz7p1IHgquPG3Wr 31zIB3RfqatH+az+3l9gTxNtEQDZ+oMs4Rh1KSpKII9hIE5MKNZfMZV1kh7VeCIMRMxR MffG/LLBtTpREbyxzz0Ug6doq6XSwRr7pdufr4tq+1N6Ac3hvMzUer4jMs9f4ft9meZ6 J6HQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=y+3key+Awrub2yF4Xg5MLCJZCTP/he2QEe7XSC9SAec=; b=T6f98MyVj3v7yj3eOK209QQuJpoA9o1QMPsa/my7uf6TmtPww3H+7UobbFv+OLZi/b qjEsQRtSfumD5mUE7KlAZn/LjNxNtm40Fyxot2AHpZ/n2tXb9xzir7owH6niq9+wsxxv fWoF74v0cHvZL9BDfX2Tmnb+rE3+VvHHbeYVDelsSBqxHNb3UivypYRCUBZLV0xAd/vd WnX4wvNaM0PM4UTNequFTYag9YLg9AZq5vZrEFMzaYLUtU0icr3rtxzg5kJzGvGOL81/ Elk2nybuev6OSuLqOQua3NMPMqzc9tjbUVKs3aBTzJY/h5A+WXpy1Cta6T+MJSNMMyzq GFWA== X-Gm-Message-State: AOAM5314qpcFd8Ka3uxSY/HMjeZ07jkMZUOHJkxYWjb+6bmqE90SEkLv q6HAGtJA+LciSCcqOHIkJTO1PaC4W6M= X-Google-Smtp-Source: ABdhPJxuH6ziU0vXUwOrJNFXcaoib1aRxtlPvjuA0j1LlQFJ0TmgNEXN/P7UcYg00cvdjhwA57kv5g== X-Received: by 2002:a5d:4b06:: with SMTP id v6mr3146739wrq.41.1615028079321; Sat, 06 Mar 2021 02:54:39 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 22/23] trace: skip qemu_set_log_filename if no "-D" option was passed Date: Sat, 6 Mar 2021 11:54:18 +0100 Message-Id: <20210306105419.110503-23-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-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=2a00:1450:4864:20::433; envelope-from=paolo.bonzini@gmail.com; helo=mail-wr1-x433.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: stefanha@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" When the "simple" backend is not active but the "log" backend is, both "-trace file=3D" and "-D" will result in a call to qemu_set_log_filename. Unfortunately, QEMU was also calling qemu_set_log_filename if "-D" was not passed, so the "-trace file=3D" option had no effect and the tracepoints went back to stderr. Fortunately we can just skip qemu_set_log_filename in that case, because the log backend will initialize itself just fine as soon as qemu_set_log is called, also in qemu_process_early_options. Cc: stefanha@redhat.com Signed-off-by: Paolo Bonzini Message-Id: <20210209145759.141231-3-pbonzini@redhat.com> --- softmmu/vl.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/softmmu/vl.c b/softmmu/vl.c index 2f4958db2a..ff488ea3e7 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -2364,7 +2364,9 @@ static void qemu_process_early_options(void) #endif =20 /* Open the logfile at this point and set the log mask if necessary. = */ - qemu_set_log_filename(log_file, &error_fatal); + if (log_file) { + qemu_set_log_filename(log_file, &error_fatal); + } if (log_mask) { int mask; mask =3D qemu_str_to_log_mask(log_mask); --=20 2.29.2 From nobody Mon Feb 9 20:17:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028731; cv=none; d=zohomail.com; s=zohoarc; b=BCmoeMyuxDNSvgXNi2ZDNxWh+9p4sFvQWTFiaa9GhZQcJnIMZ1KcFqVCJ2RnMnBysCW59jmrA396wPYXZprThHXrdHiROj1eG1d8Byewmt8Erm8vf9GRm9eyh2DmLdFbC03a0gjztxa2XOylUGrJu/7e7TweTNQuweTbnStlD8s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028731; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=VjWbU9F1bR2qHYj+qEoIBUYcBv2LGGcZtP6AOz5qKP0=; b=ZV0zTqjryrY/PsJF19uxa0Iqxtd9m6uc8liPDnIH9PbOhg+kcXB+ASOSjbqGfMf/WeL7/6y5/UY8z3dDB+drZoFsBqLsIoR2jv8n6TMfrZMkq7P9a1yR4MgtPw5egF6ZiBRHcKvRJJGQQcMrDhIw2oJLMhicldjeTWo9JpXJBL8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615028731968928.4907886711205; Sat, 6 Mar 2021 03:05:31 -0800 (PST) Received: from localhost ([::1]:45854 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUkU-0005Bd-Ut for importer@patchew.org; Sat, 06 Mar 2021 06:05:30 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44564) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUa2-00062O-RD for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:43 -0500 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]:37029) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUa1-0008Fw-FX for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:42 -0500 Received: by mail-wr1-x432.google.com with SMTP id v15so5210682wrx.4 for ; Sat, 06 Mar 2021 02:54:40 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=VjWbU9F1bR2qHYj+qEoIBUYcBv2LGGcZtP6AOz5qKP0=; b=ukAGHSiWLe1imGZKCcm/Bs4u7unJORl6aQw/CZNMEty6LlCEmUA7Ikl2qNpLvSZm1Q pJiN+tDcFtIKFTAAnoHh085uWzq+TMtv7e1eYq6FcR0wJVzjJ6w9UlGgt4x+MrYX11eC 52wtKf+CvvM9SH9HVkVW+mHVBGlNa6nIGYcgQvbPbemoBYyUAwN1vT/R25ubfZ0SCONR uG8bW/sSJ5LKbLGm965JphRx7Dqlfpogk2RlZw0jHB2npLdFLtiIbDbIZFjBuoltAMON 95TcoWFPVSYh4ZDppjVJ0lSS2cQlaUe9suo3hV6kC4J/ixzqNNfnqL5qf8H6gta34aGT UvOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=VjWbU9F1bR2qHYj+qEoIBUYcBv2LGGcZtP6AOz5qKP0=; b=oOyMzgUhqY0cD9YdDdeJqfM/JRdwGObMT8IfQkZM4Leiq7pMpKmFnozYrCkgk0muWU QBp8jcw5YQ5Qc3+kYY9CPrqPUwYIONUdeYnI2HanupcEkSW+AJghJlLtQLcUYTQw0QWq fU7Ufcfqyip5ZgXBke4+fiGH8LAW9iSD/+bRdCR4OgsTB4Dka/voDRoM/YErbDOIinU7 vkseFrxCk9w2mcU3yNujgEqLqwR1Z9GHFfOE//1liX4FjsBoCjqqKKVJYehG2y/eECIy ec70eljj/30558FYgeCPbpaGzqRnQzAuogXtpTHNaFmmNiLQrVJJ0EA6dd97iDktOkIE 3g6Q== X-Gm-Message-State: AOAM5309xB4vCn/eVs0ZhPgAG/h2GectoGsB5MWxb+ztee7Txl4Gp1K0 kB8bCYWeluQ4BhQzaEdlG0Ya3mkqq0Q= X-Google-Smtp-Source: ABdhPJwe7WLxsD3nhGN2XpBwq21/JdzhniNJOHGVeRMRvs0+FlLT6btM6VrwJ873prNiwXNLVL4Zng== X-Received: by 2002:a5d:4e52:: with SMTP id r18mr14499274wrt.28.1615028080003; Sat, 06 Mar 2021 02:54:40 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 23/23] meson: Stop if cfi is enabled with system slirp Date: Sat, 6 Mar 2021 11:54:19 +0100 Message-Id: <20210306105419.110503-24-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-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=2a00:1450:4864:20::432; envelope-from=paolo.bonzini@gmail.com; helo=mail-wr1-x432.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniele Buono Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Daniele Buono For CFI, we need to compile slirp as a static library together with qemu. This is because we register slirp functions as callbacks for QEMU Timers. When using a system-wide shared libslirp, the type information for the callback is missing and the timer call produces a false positive with CFI. With this patch, meson will stop if CFI is enabled with system-wide slirp. In 6.1 we will introduce a new interface to slirp where the callback is passed as an enum rather than a function pointer. Signed-off-by: Daniele Buono Message-Id: <20210304025939.9164-1-dbuono@linux.vnet.ibm.com> Signed-off-by: Paolo Bonzini --- meson.build | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/meson.build b/meson.build index 07bc23129a..05fb125dc2 100644 --- a/meson.build +++ b/meson.build @@ -1574,6 +1574,18 @@ if have_system endif endif =20 +# For CFI, we need to compile slirp as a static library together with qemu. +# This is because we register slirp functions as callbacks for QEMU Timers. +# When using a system-wide shared libslirp, the type information for the +# callback is missing and the timer call produces a false positive with CF= I. +# +# Now that slirp_opt has been defined, check if the selected slirp is comp= atible +# with control-flow integrity. +if get_option('cfi') and slirp_opt =3D=3D 'system' + error('Control-Flow Integrity is not compatible with system-wide slirp.'= \ + + ' Please configure with --enable-slirp=3Dgit') +endif + fdt =3D not_found fdt_opt =3D get_option('fdt') if have_system --=20 2.29.2