From nobody Sun May 12 04:10:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1709909858; cv=none; d=zohomail.com; s=zohoarc; b=WUmO2VgHOaaPiWtTz+XhSbkYYouFN73wJ6jufYuQ8fgqJxbeqmCpp1y0eskbhGxIbUQFBlCpM2Y01O4wVNhm23WK/0RZMyEsenXu8ZN63HESbBrDJ4SVO6bojjWZ3eDvtAN58O1KlfcN281OoJE43sC3MeKs81K/WUs5F/5Vc3g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1709909858; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=btK1kyt8BalfNBwPiYgdVCxNdJNeq5gpu69gZVwdFqg=; b=CRRu6Ceu8HUSB3ZGY6QGxui3KUvEol/pWu3ZDFHFm3KjBNEt52XZqys+AGherdbj7zO0hO6bhEbdV43HIhcoow01ViYUBn+3wWzRVoK3aJufLEfc+frDoeI5b1+hNrUSzGYLw9zgPU7ZbQfzpLRHG3D7qHrYvMbzxxcWG/w+Pik= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1709909858683882.7247433215763; Fri, 8 Mar 2024 06:57:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ribe1-0003DZ-BC; Fri, 08 Mar 2024 09:56:21 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribdv-00039p-4Q for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:15 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribdj-0005OZ-QD for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:13 -0500 Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-442-3ucKmk94ND2BWiHIvJus9A-1; Fri, 08 Mar 2024 09:56:00 -0500 Received: by mail-ej1-f69.google.com with SMTP id a640c23a62f3a-a45b4f09107so77075466b.1 for ; Fri, 08 Mar 2024 06:56:00 -0800 (PST) Received: from [192.168.10.118] ([151.49.77.21]) by smtp.gmail.com with ESMTPSA id mp7-20020a1709071b0700b00a440ceb4110sm9461798ejc.183.2024.03.08.06.55.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Mar 2024 06:55:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1709909762; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=btK1kyt8BalfNBwPiYgdVCxNdJNeq5gpu69gZVwdFqg=; b=JyNg9R1TBVojOXtxJmgoYpwELIixPoq/1Hf1ysdiRLBKiEaPJTNs20acjjrcVMqezYluWG hjDVIFH789+Uq+/r7J1BEmS1KW4ajq8Iq/6YkWj8wAR8M4CaXDy+mmwSDj5p1bJ8f7YV9Y BpLOB0uvG8/nODYt5yGj8A8+l+oGvcY= X-MC-Unique: 3ucKmk94ND2BWiHIvJus9A-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709909758; x=1710514558; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=btK1kyt8BalfNBwPiYgdVCxNdJNeq5gpu69gZVwdFqg=; b=sbTEpqR1GdbxTrpNVOO47LaT1qrdi4pa4sflNP5ckzYOqjpjyh8nA7vOxDf6BoNk+D gIGyFwXJS463VS9zld3srEv6N0hu9uiANTgGz9L5yMo5MhJvjeUgj9+XCIl3P937KfkZ TFZ8WhTbPuOcWMwcWHRV3+AttY7AhlDNJsqYaJ2ePiJX4iCeKhr4+aXEaLL8dWNJDC3/ FIdLTApUH+dGjQ1q2NSLA8uVwwfdXI1b418pCXeu2iFwlTGTH6tjZe6kfoK7EN0UV4WW aRaIOEJkCv/25hQHAkKHrJDqYQ4Jbv6VvZqswOLEqep5LGihRP3dsVG/T3spGQ6XZBOW 2dlA== X-Gm-Message-State: AOJu0Yxkr8rK5KOUxTxej0wTTDJ10C3jJUY6+q7q/591JkFg1qP/oVIf qOTOlvNWKXyLiWW/pCC94NjgxnqyKliBNlvfrnhEVSZzQZn9OEJFnnjoc8k7ijdu4Kgr3ZHko9c 4TmAwvK138zTEiE4MWnLUsqiRVLEsAghY7mj2o1UwARsPaKHrRnCgSfyW/BkWqA4LjjDnekR27p Y7HhTRm5oR8uNAIOndmhc/It/wvThu6sIBEajm X-Received: by 2002:a17:906:685:b0:a44:fe70:1b82 with SMTP id u5-20020a170906068500b00a44fe701b82mr11577605ejb.8.1709909758493; Fri, 08 Mar 2024 06:55:58 -0800 (PST) X-Google-Smtp-Source: AGHT+IG0VGffbk36jcCV7Y26SP+aMC6xKRFASDcXqvVrOOFne37+9IJrzfKS2xxMs+P8JPHwDUGiFg== X-Received: by 2002:a17:906:685:b0:a44:fe70:1b82 with SMTP id u5-20020a170906068500b00a44fe701b82mr11577586ejb.8.1709909758014; Fri, 08 Mar 2024 06:55:58 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Sven Schnelle , Peter Maydell Subject: [PULL 01/12] hw/scsi/lsi53c895a: add timer to scripts processing Date: Fri, 8 Mar 2024 15:55:43 +0100 Message-ID: <20240308145554.599614-2-pbonzini@redhat.com> X-Mailer: git-send-email 2.43.2 In-Reply-To: <20240308145554.599614-1-pbonzini@redhat.com> References: <20240308145554.599614-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.572, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01, T_SPF_TEMPERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1709909860600100003 Content-Type: text/plain; charset="utf-8" From: Sven Schnelle HP-UX 10.20 seems to make the lsi53c895a spinning on a memory location under certain circumstances. As the SCSI controller and CPU are not running at the same time this loop will never finish. After some time, the check loop interrupts with a unexpected device disconnect. This works, but is slow because the kernel resets the scsi controller. Instead of signaling UDC, start a timer and exit the loop. Until the timer fires, the CPU can process instructions which might changes the memory location. The limit of instructions is also reduced because scripts running on the SCSI processor are usually very short. This keeps the time until the loop is exit short. Suggested-by: Peter Maydell Signed-off-by: Sven Schnelle Message-ID: <20240229204407.1699260-1-svens@stackframe.org> Signed-off-by: Paolo Bonzini --- hw/scsi/lsi53c895a.c | 43 +++++++++++++++++++++++++++++++++---------- hw/scsi/trace-events | 2 ++ 2 files changed, 35 insertions(+), 10 deletions(-) diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c index d607a5f9fb1..4ff94703816 100644 --- a/hw/scsi/lsi53c895a.c +++ b/hw/scsi/lsi53c895a.c @@ -188,7 +188,7 @@ static const char *names[] =3D { #define LSI_TAG_VALID (1 << 16) =20 /* Maximum instructions to process. */ -#define LSI_MAX_INSN 10000 +#define LSI_MAX_INSN 100 =20 typedef struct lsi_request { SCSIRequest *req; @@ -205,6 +205,7 @@ enum { LSI_WAIT_RESELECT, /* Wait Reselect instruction has been issued */ LSI_DMA_SCRIPTS, /* processing DMA from lsi_execute_script */ LSI_DMA_IN_PROGRESS, /* DMA operation is in progress */ + LSI_WAIT_SCRIPTS, /* SCRIPTS stopped because of instruction count limi= t */ }; =20 enum { @@ -224,6 +225,7 @@ struct LSIState { MemoryRegion ram_io; MemoryRegion io_io; AddressSpace pci_io_as; + QEMUTimer *scripts_timer; =20 int carry; /* ??? Should this be an a visible register somewhere? */ int status; @@ -415,6 +417,7 @@ static void lsi_soft_reset(LSIState *s) s->sbr =3D 0; assert(QTAILQ_EMPTY(&s->queue)); assert(!s->current); + timer_del(s->scripts_timer); } =20 static int lsi_dma_40bit(LSIState *s) @@ -1127,6 +1130,12 @@ static void lsi_wait_reselect(LSIState *s) } } =20 +static void lsi_scripts_timer_start(LSIState *s) +{ + trace_lsi_scripts_timer_start(); + timer_mod(s->scripts_timer, qemu_clock_get_us(QEMU_CLOCK_VIRTUAL) + 50= 0); +} + static void lsi_execute_script(LSIState *s) { PCIDevice *pci_dev =3D PCI_DEVICE(s); @@ -1136,6 +1145,11 @@ static void lsi_execute_script(LSIState *s) int insn_processed =3D 0; static int reentrancy_level; =20 + if (s->waiting =3D=3D LSI_WAIT_SCRIPTS) { + timer_del(s->scripts_timer); + s->waiting =3D LSI_NOWAIT; + } + reentrancy_level++; =20 s->istat1 |=3D LSI_ISTAT1_SRUN; @@ -1143,8 +1157,8 @@ again: /* * Some windows drivers make the device spin waiting for a memory loca= tion * to change. If we have executed more than LSI_MAX_INSN instructions = then - * assume this is the case and force an unexpected device disconnect. = This - * is apparently sufficient to beat the drivers into submission. + * assume this is the case and start a timer. Until the timer fires, t= he + * host CPU has a chance to run and change the memory location. * * Another issue (CVE-2023-0330) can occur if the script is programmed= to * trigger itself again and again. Avoid this problem by stopping after @@ -1152,13 +1166,8 @@ again: * which should be enough for all valid use cases). */ if (++insn_processed > LSI_MAX_INSN || reentrancy_level > 8) { - if (!(s->sien0 & LSI_SIST0_UDC)) { - qemu_log_mask(LOG_GUEST_ERROR, - "lsi_scsi: inf. loop with UDC masked"); - } - lsi_script_scsi_interrupt(s, LSI_SIST0_UDC, 0); - lsi_disconnect(s); - trace_lsi_execute_script_stop(); + s->waiting =3D LSI_WAIT_SCRIPTS; + lsi_scripts_timer_start(s); reentrancy_level--; return; } @@ -2197,6 +2206,9 @@ static int lsi_post_load(void *opaque, int version_id) return -EINVAL; } =20 + if (s->waiting =3D=3D LSI_WAIT_SCRIPTS) { + lsi_scripts_timer_start(s); + } return 0; } =20 @@ -2294,6 +2306,15 @@ static const struct SCSIBusInfo lsi_scsi_info =3D { .cancel =3D lsi_request_cancelled }; =20 +static void scripts_timer_cb(void *opaque) +{ + LSIState *s =3D opaque; + + trace_lsi_scripts_timer_triggered(); + s->waiting =3D LSI_NOWAIT; + lsi_execute_script(s); +} + static void lsi_scsi_realize(PCIDevice *dev, Error **errp) { LSIState *s =3D LSI53C895A(dev); @@ -2313,6 +2334,7 @@ static void lsi_scsi_realize(PCIDevice *dev, Error **= errp) "lsi-ram", 0x2000); memory_region_init_io(&s->io_io, OBJECT(s), &lsi_io_ops, s, "lsi-io", 256); + s->scripts_timer =3D timer_new_us(QEMU_CLOCK_VIRTUAL, scripts_timer_cb= , s); =20 /* * Since we use the address-space API to interact with ram_io, disable= the @@ -2337,6 +2359,7 @@ static void lsi_scsi_exit(PCIDevice *dev) LSIState *s =3D LSI53C895A(dev); =20 address_space_destroy(&s->pci_io_as); + timer_del(s->scripts_timer); } =20 static void lsi_class_init(ObjectClass *klass, void *data) diff --git a/hw/scsi/trace-events b/hw/scsi/trace-events index d72f741ed85..f0f2a98c2ee 100644 --- a/hw/scsi/trace-events +++ b/hw/scsi/trace-events @@ -302,6 +302,8 @@ lsi_execute_script_stop(void) "SCRIPTS execution stoppe= d" lsi_awoken(void) "Woken by SIGP" lsi_reg_read(const char *name, int offset, uint8_t ret) "Read reg %s 0x%x = =3D 0x%02x" lsi_reg_write(const char *name, int offset, uint8_t val) "Write reg %s 0x%= x =3D 0x%02x" +lsi_scripts_timer_triggered(void) "SCRIPTS timer triggered" +lsi_scripts_timer_start(void) "SCRIPTS timer started" =20 # virtio-scsi.c virtio_scsi_cmd_req(int lun, uint32_t tag, uint8_t cmd) "virtio_scsi_cmd_r= eq lun=3D%u tag=3D0x%x cmd=3D0x%x" --=20 2.43.2 From nobody Sun May 12 04:10:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1709909881; cv=none; d=zohomail.com; s=zohoarc; b=ULBTn4V37CmlGuUqUFi0K9TQ5iYL9JO4RiXIPxNxn2Z2lzgRnyOxQTzyGZUTEll2EX/0qC+zDYJExpt6zC409ULsd0jTFRDofyQ6IW2mP8k0WgUA21PWeEG6e0QS0UedfpnWuggPPz+I1Vb5iSUSowvpZlyEl7CF5+xl8PuYqwo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1709909881; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=3zgiv6UZ6Oh2NFmnmSITDqW1+MhIa91EcBCRfhCM6ng=; b=hcUdFG0Fl42c0FY0jtMHFHzp97T6dBHoteji6SRPGTLuTSFANOTb9BphaZAXMaSR5NycFoeafVTs09JtE8DoM/VyVtjgCwcLtBiCoEq3fLKFdqGJCVJEp+Da4YgN0eWEXTXIILZG0KsSScmwD9ADZV118Q/Xv23d2dAA06aaY3s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1709909881051910.4994295838469; Fri, 8 Mar 2024 06:58:01 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ribe2-0003Hb-EV; Fri, 08 Mar 2024 09:56:22 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribdw-0003Ax-5Y for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:18 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribdk-0005Ow-6s for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:13 -0500 Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-128-TuwuWb9NMm27eDRNwgF0-Q-1; Fri, 08 Mar 2024 09:56:02 -0500 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-a44460e6c06so48619966b.1 for ; Fri, 08 Mar 2024 06:56:02 -0800 (PST) Received: from [192.168.10.118] ([151.49.77.21]) by smtp.gmail.com with ESMTPSA id p15-20020a1709060e8f00b00a45c8c9a876sm2119554ejf.88.2024.03.08.06.55.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Mar 2024 06:55:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1709909763; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=3zgiv6UZ6Oh2NFmnmSITDqW1+MhIa91EcBCRfhCM6ng=; b=aVRaIv5A3PwEcl8efZnFKoP6krMmpbtF9VBHPf5Rfoai+SozXgP2l/5vCzVF+/3Gpp5PcO OWCS4+2R5ALMyxojfEDizAsbgRW2PajpQIoZ63QeIWOysjmhjTlCpI5j7qEdF7gv8qfhnQ xjTFifmDSQIdQczdESP0N6oC8oPKhPM= X-MC-Unique: TuwuWb9NMm27eDRNwgF0-Q-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709909759; x=1710514559; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3zgiv6UZ6Oh2NFmnmSITDqW1+MhIa91EcBCRfhCM6ng=; b=KUt45QBC5WYMfQvp2eZx4CPVybTP3Rj4EeezNf0tLjMS35C4ZXElBWqgGQhlYHlyEB Fk4uWZv3Gngiazb056jtxZ9e2bWb/LJ7NU5LQxkv+jY5vdJL6+Mujw3yvKWcJs6Flrpe t17X0r6fk3zgG/6wSi5HVqjDpnZ+eRqVJkcvO0SBIt31jYd/RbhhYLSAuNfIhAI09lna 9o0MydF//opgje7B31qabO/NLbJWsrjsZAwmUgAerGbdz+Q6hCPBilQNJB7Wf+Hicyst KSjDsgnuoHbL1vJtmFKiSNt++AD6+ysRlrRYpD6/iAt9PWVMaBm2uyhToWODXr7H59Ls 801Q== X-Gm-Message-State: AOJu0Yw8QCeTgRbIPN5CE34LTZ4WQjN30o2SNzJD6E6HvHbfyHLSSN/O UnRcOZii0zkjkffGJPGlbg7kg2hatDiRuCHWlaNeZD8QEL/9T/Kq4YD759Qriksg03mN8D8H5gl W5ShT5Cog9hHdY6CWnDTzoORTAw9gPo5W3qNLFUeLp7jKapy+bJqBWYWoAxUDxrNU/5N5wj+N3S PYRTsdqU3Y8jjAIdXMT4bLXbnYiDBM7dApn/1f X-Received: by 2002:a17:906:a18d:b0:a3e:7a8f:27dc with SMTP id s13-20020a170906a18d00b00a3e7a8f27dcmr13846407ejy.49.1709909759537; Fri, 08 Mar 2024 06:55:59 -0800 (PST) X-Google-Smtp-Source: AGHT+IGtS+GNEqrM015sAUrXbVWrcfdpQONUT2z+ICqCQEm/V8DUpl9bD3b/OPl75CSwHYd8UHHJxw== X-Received: by 2002:a17:906:a18d:b0:a3e:7a8f:27dc with SMTP id s13-20020a170906a18d00b00a3e7a8f27dcmr13846396ejy.49.1709909759013; Fri, 08 Mar 2024 06:55:59 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Dmitrii Gavrilov , qemu-stable@nongnu.org Subject: [PULL 02/12] system/qdev-monitor: move drain_call_rcu call under if (!dev) in qmp_device_add() Date: Fri, 8 Mar 2024 15:55:44 +0100 Message-ID: <20240308145554.599614-3-pbonzini@redhat.com> X-Mailer: git-send-email 2.43.2 In-Reply-To: <20240308145554.599614-1-pbonzini@redhat.com> References: <20240308145554.599614-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1709909882624100003 Content-Type: text/plain; charset="utf-8" From: Dmitrii Gavrilov Original goal of addition of drain_call_rcu to qmp_device_add was to cover the failure case of qdev_device_add. It seems call of drain_call_rcu was misplaced in 7bed89958bfbf40df what led to waiting for pending RCU callbacks under happy path too. What led to overall performance degradation of qmp_device_add. In this patch call of drain_call_rcu moved under handling of failure of qdev_device_add. Signed-off-by: Dmitrii Gavrilov Message-ID: <20231103105602.90475-1-ds-gavr@yandex-team.ru> Fixes: 7bed89958bf ("device_core: use drain_call_rcu in in qmp_device_add",= 2020-10-12) Cc: qemu-stable@nongnu.org Signed-off-by: Paolo Bonzini --- system/qdev-monitor.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/system/qdev-monitor.c b/system/qdev-monitor.c index a13db763e5d..874d65191ce 100644 --- a/system/qdev-monitor.c +++ b/system/qdev-monitor.c @@ -858,19 +858,18 @@ void qmp_device_add(QDict *qdict, QObject **ret_data,= Error **errp) return; } dev =3D qdev_device_add(opts, errp); - - /* - * Drain all pending RCU callbacks. This is done because - * some bus related operations can delay a device removal - * (in this case this can happen if device is added and then - * removed due to a configuration error) - * to a RCU callback, but user might expect that this interface - * will finish its job completely once qmp command returns result - * to the user - */ - drain_call_rcu(); - if (!dev) { + /* + * Drain all pending RCU callbacks. This is done because + * some bus related operations can delay a device removal + * (in this case this can happen if device is added and then + * removed due to a configuration error) + * to a RCU callback, but user might expect that this interface + * will finish its job completely once qmp command returns result + * to the user + */ + drain_call_rcu(); + qemu_opts_del(opts); return; } --=20 2.43.2 From nobody Sun May 12 04:10:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1709909935; cv=none; d=zohomail.com; s=zohoarc; b=i41UZAXX3QOCCUT2ACWVogFz9Cyfn+Gh1k4DHUasB+RzTi8TuBI2GrM55EZQhXOJfqOe2fG/hSOjD/GHG3hAET3Y0p/ja4ryGZwlIvpZSCo8A9UhqZjT9M4AbiteJtERJvsFwJwjChDsPCidTKwY8uqWPkev9yiXvVgLR0UYRBs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1709909935; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=qSLSAV6AzeUGqChFbxsNaHAkQhSsp716NDVyKQt1iAM=; b=hSj1EP89Lp5gXwpkQ927t4Asic+tLvLjHwXCKCoIDorX0k9t4fOHzm/SUqvSLprb9Jf/y8HZ14fa7GCmDv6yOiF3Z01522fgwth9ine/V2Dkx6LMwLdsgGS7ZxNVwHA4RN4TRoMWeQLrULGn1xYRtTfhXOc2JF4ubg/A4nxcUP0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1709909935184165.48718108192065; Fri, 8 Mar 2024 06:58:55 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ribe6-0003L8-5T; Fri, 08 Mar 2024 09:56:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribdw-0003As-0W for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:16 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribdt-0005Pm-8y for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:15 -0500 Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-692-Q1yIcjEmP2CR8gc7cGp6fQ-1; Fri, 08 Mar 2024 09:56:04 -0500 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-a457ac99155so131103566b.2 for ; Fri, 08 Mar 2024 06:56:04 -0800 (PST) Received: from [192.168.10.118] ([151.49.77.21]) by smtp.gmail.com with ESMTPSA id f17-20020a170906049100b00a40f7ed6cb9sm9406185eja.4.2024.03.08.06.55.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Mar 2024 06:55:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1709909766; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=qSLSAV6AzeUGqChFbxsNaHAkQhSsp716NDVyKQt1iAM=; b=DsiOWLYQyEjehj/davHMmzLJWdLgrwBXiVEjqQ7lDMpHqbgjjUXpjQZ2dFfrVBGJx4x2pv GnnoQ8gG67npfjd6vWjSDCyt3LjPXAEhU3CX8OWkfJfNBzrTU78mCxHQL1//h3cRKDwUTN SDpSu2CjApi7LFlNdUHWGMXURjZSKqE= X-MC-Unique: Q1yIcjEmP2CR8gc7cGp6fQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709909762; x=1710514562; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qSLSAV6AzeUGqChFbxsNaHAkQhSsp716NDVyKQt1iAM=; b=bhTPcG22Qcpdr6pZqrlJqQrfped2QU36i7FTONx6AwcL5Yld9xEZcwWLQ8hO2DjS6+ XE5lTB1lLeNmFUP7RFSiNvu4YefDiSTYMlvNNCB2uBObOXMAodOtm/OqFuUa8qBLOJQ/ fs+qdfjQQh6aTIUoY0yQx2RU9uhyKhzmQdkA8NEJhEHzSJ3G2Qf6DiYwN2yCJJs8CS7/ 2HcOtOZC82nnxxt+3CkhZlvz+yoUbczFkC6fuAtcVpDkx9BcMHMtcDRD1MnGphDv1Cdf muq3fVZDK/zH4dbXbbdpFHuf4tn3Q+9F9Sb4bzh5E+6pZX92Jkt6JP7/1r2GpxAQiBmm 81FA== X-Gm-Message-State: AOJu0YwYwMayrSsQxyXuqGZ+GnZJ6DyE6eh+0bAC8AdlagK6D8owVHwU H7VoPDWBb9sbfiloFh8Sq6v7HkIKny3w5QSs2uGO5RLG52ddxBoPwhnKgsQcY/79FYvbxez2TsR 1Cq4z/HAE/LQ+neiyQnPNfb7cdaRNMuzjYhHVrh1ulFSkETbqog4Xcc+CKGNrS0wLNNokPzpCKX WtxrUnra+4U6j5pbk4gj+Fu/IY4I7B5Q+FKD8C X-Received: by 2002:a17:906:b00b:b0:a44:c583:dfc8 with SMTP id v11-20020a170906b00b00b00a44c583dfc8mr13204650ejy.48.1709909762674; Fri, 08 Mar 2024 06:56:02 -0800 (PST) X-Google-Smtp-Source: AGHT+IEjL2A4G507V2UHYAxfkfrPJGD1Nj/8hej7IvqWvzBMm7Q60W9oIUkicLA4E2Lnlj2zw1KO5w== X-Received: by 2002:a17:906:b00b:b0:a44:c583:dfc8 with SMTP id v11-20020a170906b00b00b00a44c583dfc8mr13204638ejy.48.1709909762358; Fri, 08 Mar 2024 06:56:02 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Akihiko Odaki Subject: [PULL 03/12] meson: Remove --warn-common ldflag Date: Fri, 8 Mar 2024 15:55:45 +0100 Message-ID: <20240308145554.599614-4-pbonzini@redhat.com> X-Mailer: git-send-email 2.43.2 In-Reply-To: <20240308145554.599614-1-pbonzini@redhat.com> References: <20240308145554.599614-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.572, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1709909936934100007 Content-Type: text/plain; charset="utf-8" From: Akihiko Odaki --warn-common ldflag causes warnings for multiple definitions of ___asan_globals_registered when enabling AddressSanitizer with clang. The warning is somewhat obsolete so just remove it. The common block is used to allow duplicate definitions of uninitialized global variables. In the past, GCC and clang used to place such variables in a common block by default, which prevented programmers for noticing accidental duplicate definitions. Commit 49237acdb725 ("Enable ld flag --warn-common") added --warn-common ldflag so that ld warns in such a case. Today, both of GCC and clang don't use common blocks by default[1][2] so any remaining use of common blocks should be intentional. Remove --warn-common ldflag to suppress warnings for intentional use of common blocks. [1]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D85678 [2]: https://reviews.llvm.org/D75056 Signed-off-by: Akihiko Odaki Message-ID: <20240304-common-v1-1-1a2005d1f350@daynix.com> Signed-off-by: Paolo Bonzini --- meson.build | 5 ----- 1 file changed, 5 deletions(-) diff --git a/meson.build b/meson.build index c59ca496f2d..f9dbe7634e5 100644 --- a/meson.build +++ b/meson.build @@ -476,11 +476,6 @@ if host_os =3D=3D 'windows' qemu_ldflags +=3D cc.get_supported_link_arguments('-Wl,--dynamicbase', '= -Wl,--high-entropy-va') endif =20 -# Exclude --warn-common with TSan to suppress warnings from the TSan libra= ries. -if host_os !=3D 'sunos' and not get_option('tsan') - qemu_ldflags +=3D cc.get_supported_link_arguments('-Wl,--warn-common') -endif - if get_option('fuzzing') # Specify a filter to only instrument code that is directly related to # virtual-devices. --=20 2.43.2 From nobody Sun May 12 04:10:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1709909862; cv=none; d=zohomail.com; s=zohoarc; b=Ywf7Ac6+XNi9r1tsnK5aWb4WU1k3VsBi2uinT/XQSfHvKEeQODK4bBVqyJBmicaLQ7SmHdr1SpUu/2Uzk//gD45PNtbVHkAKFzu5WfuZsP02cs4OECbF1g28oz4Sm8x6NF7wLabgezzi0vWjCimA3v7hPd2o8Os4AHCKNCOL6Io= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1709909862; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Ff3Hzr/qQnFeHJ3R0iUom7wtGXBzK9NGYQzCU5YsyUA=; b=fITrmNCD+HiOyjUjKddp5/nKcTWYMJ1u7zhYGRBb6YGJM0XicEY+qmo9P5QnH+JmATDPOyCgO3Gr1WnLHl2Ach/mbcH/x9BDSdkBWU0EdKmVEb0WojungRUmF2t6T4oYsC27Y5egTUIo5WXkPB5MRnu+u6ocIqYj+ggLYx1n6aI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 170990986298745.189115203568804; Fri, 8 Mar 2024 06:57:42 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ribe5-0003KR-Sr; Fri, 08 Mar 2024 09:56:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribdy-0003CB-2Q for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:19 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribdt-0005Qr-SH for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:16 -0500 Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-39-rmIytNJJPfSZzVxjL9hpVA-1; Fri, 08 Mar 2024 09:56:07 -0500 Received: by mail-ed1-f70.google.com with SMTP id 4fb4d7f45d1cf-55d71ec6ef3so1769475a12.0 for ; Fri, 08 Mar 2024 06:56:07 -0800 (PST) Received: from [192.168.10.118] ([151.49.77.21]) by smtp.gmail.com with ESMTPSA id f4-20020a05640214c400b005660742bf6bsm9221092edx.52.2024.03.08.06.56.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Mar 2024 06:56:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1709909769; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Ff3Hzr/qQnFeHJ3R0iUom7wtGXBzK9NGYQzCU5YsyUA=; b=Vx1l8At7Bnm/pUtd9GEmfAWqNwrqkImn8PIYsda9xBzHkSNb/wbedkoGb4HyZ8M19rWm6W 27/QmenWyY3Ff5NTVWhiMjJFmUGXBrVb0W3wauwj458vuCgVRQ2oyxfLpIdfpFRNXCJrpd cegg7ihNcFdQNIcoC/PVpEZPVAyJP6w= X-MC-Unique: rmIytNJJPfSZzVxjL9hpVA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709909764; x=1710514564; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ff3Hzr/qQnFeHJ3R0iUom7wtGXBzK9NGYQzCU5YsyUA=; b=gIgMDirZMILcXwgOIILn98FBBpkqj9r474Cxl4WuHaB1e7QVrq4v5WLXZFC5jSiVnA h6m1VHPdNs8LtdNFCwsYXjg4bRx1W2m0Ui2DX3uBlAOkI/KE7lZLCG2nnlCb+4yGLVmK xANieietacXpVXD9XyXXWenhE/rdDm4Qs20TZPIqDRqnbazN+sYV83IHQi4Xo6OGMmhs 4yF3kdhbcBgBipE/thdOPBP/NGhG3/PAZX/VU7+AjVRxBQ0u7vlXj+/w1f94yJ8W4zYL k/B1MOBUJSgdM4GbEBz4Z2KvIVLGrv6k2Eoy27zFxMVPoxr6HF6Wxvtunku7R+E9wWOD r2nA== X-Gm-Message-State: AOJu0YyNz61dj2USkI6pKDr8fFNjRr/AlsbIJ6iDU2pMq7W8LnovTQ67 pCLG8I3/qkBzhS0ZWkuuOSIIsyFJl8MoXI9X4ApjEQRaDHWCzyJUWv2Ux8qj27q/VmVxQvT6BOf gSjt8llClQFWhOzFf1tQxnBhzskfKoL/ut4O16WkZjPdqW/muWEKP/9vW2HCFY49NjG2AIGZ3JZ tjSTJXgm4xIP3le4vX9n2igMFrKrwo8+WjVzTn X-Received: by 2002:a50:d742:0:b0:565:7116:11d with SMTP id i2-20020a50d742000000b005657116011dmr2073979edj.27.1709909764568; Fri, 08 Mar 2024 06:56:04 -0800 (PST) X-Google-Smtp-Source: AGHT+IFAVEyWkNZrfv1hjc4G/FEDROC7KHvXhyltvhRthoGrmcKvSAbCFBiav/Un9dP/psSFQWc2EQ== X-Received: by 2002:a50:d742:0:b0:565:7116:11d with SMTP id i2-20020a50d742000000b005657116011dmr2073971edj.27.1709909764279; Fri, 08 Mar 2024 06:56:04 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Sven Schnelle , Helge Deller Subject: [PULL 04/12] hw/scsi/lsi53c895a: stop script on phase mismatch Date: Fri, 8 Mar 2024 15:55:46 +0100 Message-ID: <20240308145554.599614-5-pbonzini@redhat.com> X-Mailer: git-send-email 2.43.2 In-Reply-To: <20240308145554.599614-1-pbonzini@redhat.com> References: <20240308145554.599614-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.572, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1709909864756100003 Content-Type: text/plain; charset="utf-8" From: Sven Schnelle Netbsd isn't happy with qemu lsi53c895a emulation: cd0(esiop0:0:2:0): command with tag id 0 reset esiop0: autoconfiguration error: phase mismatch without command esiop0: autoconfiguration error: unhandled scsi interrupt, sist=3D0x80 ssta= t1=3D0x0 DSA=3D0x23a64b1 DSP=3D0x50 This is because lsi_bad_phase() triggers a phase mismatch, which stops SCRIPT processing. However, after returning to lsi_command_complete(), SCRIPT is restarted with lsi_resume_script(). Fix this by adding a return value to lsi_bad_phase(), and only resume script processing when lsi_bad_phase() didn't trigger a host interrupt. Signed-off-by: Sven Schnelle Tested-by: Helge Deller Message-ID: <20240302214453.2071388-1-svens@stackframe.org> Signed-off-by: Paolo Bonzini --- hw/scsi/lsi53c895a.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c index 4ff94703816..59b88aff3fb 100644 --- a/hw/scsi/lsi53c895a.c +++ b/hw/scsi/lsi53c895a.c @@ -573,8 +573,9 @@ static inline void lsi_set_phase(LSIState *s, int phase) s->sstat1 =3D (s->sstat1 & ~PHASE_MASK) | phase; } =20 -static void lsi_bad_phase(LSIState *s, int out, int new_phase) +static int lsi_bad_phase(LSIState *s, int out, int new_phase) { + int ret =3D 0; /* Trigger a phase mismatch. */ if (s->ccntl0 & LSI_CCNTL0_ENPMJ) { if ((s->ccntl0 & LSI_CCNTL0_PMJCTL)) { @@ -587,8 +588,10 @@ static void lsi_bad_phase(LSIState *s, int out, int ne= w_phase) trace_lsi_bad_phase_interrupt(); lsi_script_scsi_interrupt(s, LSI_SIST0_MA, 0); lsi_stop_script(s); + ret =3D 1; } lsi_set_phase(s, new_phase); + return ret; } =20 =20 @@ -792,7 +795,7 @@ static int lsi_queue_req(LSIState *s, SCSIRequest *req,= uint32_t len) static void lsi_command_complete(SCSIRequest *req, size_t resid) { LSIState *s =3D LSI53C895A(req->bus->qbus.parent); - int out; + int out, stop =3D 0; =20 out =3D (s->sstat1 & PHASE_MASK) =3D=3D PHASE_DO; trace_lsi_command_complete(req->status); @@ -800,7 +803,10 @@ static void lsi_command_complete(SCSIRequest *req, siz= e_t resid) s->command_complete =3D 2; if (s->waiting && s->dbc !=3D 0) { /* Raise phase mismatch for short transfers. */ - lsi_bad_phase(s, out, PHASE_ST); + stop =3D lsi_bad_phase(s, out, PHASE_ST); + if (stop) { + s->waiting =3D 0; + } } else { lsi_set_phase(s, PHASE_ST); } @@ -810,7 +816,9 @@ static void lsi_command_complete(SCSIRequest *req, size= _t resid) lsi_request_free(s, s->current); scsi_req_unref(req); } - lsi_resume_script(s); + if (!stop) { + lsi_resume_script(s); + } } =20 /* Callback to indicate that the SCSI layer has completed a transfer. */ --=20 2.43.2 From nobody Sun May 12 04:10:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1709909933; cv=none; d=zohomail.com; s=zohoarc; b=ac0aIkTgkEkasp1jfyCpdvM0dPkDXkeEgamxuMDCCUYAj1qeS6y2PUwFie+I1tad3vm1I64ziLP1qbUmCkitTiwlPCY2AdXI6gUOgeNOTGvo09SEuUcgfVb+yjc6MYw8tFf2cHjdTdiOoNISLTnleoLAlA3vgAInmcTvLLuCIGA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1709909933; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=is4uaTsB7JqW33WeDjUhKzI7gp3GUbX8PHe/5xTz5cQ=; b=ETS19kplR0uM2/dsTQpkQhinv/ZxFtmwnRqn+2b/WXDOEw7/d9/eIqIXOQnLOfuyVQ4n+bODW9YV1r1Mi5p7+ucUz/3lNKhAynxnkDxhXFGJ2uw3JCClODX4QwZYdGvXgE+V1kw2cPMU3BUHA31LirfxizE1xA5b7Y9ULC/gNck= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1709909933924432.0603829066946; Fri, 8 Mar 2024 06:58:53 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ribe6-0003L7-4u; Fri, 08 Mar 2024 09:56:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribe0-0003EA-0W for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:21 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribdt-0005RW-VM for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:18 -0500 Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-373-MGS263DXPy2aF-Xw_7lUFw-1; Fri, 08 Mar 2024 09:56:09 -0500 Received: by mail-ed1-f69.google.com with SMTP id 4fb4d7f45d1cf-5681b29771fso1443007a12.1 for ; Fri, 08 Mar 2024 06:56:09 -0800 (PST) Received: from [192.168.10.118] ([151.49.77.21]) by smtp.gmail.com with ESMTPSA id i23-20020a0564020f1700b00567f780d4a2sm2686623eda.78.2024.03.08.06.56.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Mar 2024 06:56:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1709909770; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=is4uaTsB7JqW33WeDjUhKzI7gp3GUbX8PHe/5xTz5cQ=; b=D1eoI+1qGf0d6wy7rzMdKqouQO2O9765Z9zGOLwUanDeUe03gdLnkvxwBP3ot9jQllMDxZ RMouJuG0rNRHToCGMSAR+JG5zngJdzpgv7h4fZDRjQ/heCe+J8Sfj3o0/oQjgoJb2afqgr j/AmzxqSIweypuUG5Wz6tNDnpbDd/Lo= X-MC-Unique: MGS263DXPy2aF-Xw_7lUFw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709909767; x=1710514567; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=is4uaTsB7JqW33WeDjUhKzI7gp3GUbX8PHe/5xTz5cQ=; b=f3pPL3Kk1PDEOd1GXjKShW9ARbGPfae85CxOXhhGtc2lvAzIAWP2ZrwpCF4J5dhNEh lYHCPg4W9ec/JEA6Q/gnMMFznh3lvr8oNPJxEoDUoCaaEJlci4vFiFY9m8KAvSU9h9n0 5WHjMY2PKmTTvkcLOqm0m5x9CcWR7+W98f0ISzM/w4lwPJD/QBWxOYrBWO3HSard+YIW PfsL8cYkWjHhS6FCEUhM/Z0EPypSed3zFUGltRBbl716BzBEnCaCxLDWNCijbZANRd3S KqfFY2+oJpzh/CYgsyXgsH7hw4QJPT7aL7ygzoNqcGaDhIvp2Ve4s3Ef00SuOP1gKz9m luDg== X-Gm-Message-State: AOJu0YxsTv8KirPBkXpNno6xyGDI7KG0axCVe5M2goSjT4e3RmmavUX6 Ik46Gyuc/i1ptvzHpquXHg/qE5T7Bl7p4GNlZG3QcCXWVt8MQ9bXQ6NRGlKoh+xFh6/BdXi4cjL FGa8aaWbctSSavHTcz1rfet339fR7eCoU4aeNVN3R4BBcUs2lBc3EeB2/chjNodUBMrYm/UJ82+ cvbrmQ5RG1EqxaRCABUW8y4a17CRq3V8HhBrh1 X-Received: by 2002:a50:858b:0:b0:568:2578:f520 with SMTP id a11-20020a50858b000000b005682578f520mr2276013edh.35.1709909766920; Fri, 08 Mar 2024 06:56:06 -0800 (PST) X-Google-Smtp-Source: AGHT+IFxsfg4VgWuq0PlNF60MMntpa9IZmm3+ApzWnuA/xEI7440fFKuWoIrRRy6bY7ODPaCDeZONw== X-Received: by 2002:a50:858b:0:b0:568:2578:f520 with SMTP id a11-20020a50858b000000b005682578f520mr2275998edh.35.1709909766570; Fri, 08 Mar 2024 06:56:06 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Bui Quang Minh Subject: [PULL 05/12] hw/intc/apic: fix memory leak Date: Fri, 8 Mar 2024 15:55:47 +0100 Message-ID: <20240308145554.599614-6-pbonzini@redhat.com> X-Mailer: git-send-email 2.43.2 In-Reply-To: <20240308145554.599614-1-pbonzini@redhat.com> References: <20240308145554.599614-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.572, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1709909934914100003 deliver_bitmask is allocated on the heap in apic_deliver(), but there are many paths in the function that return before the corresponding g_free() is reached. Fix this by switching to g_autofree and, while at it, also switch to g_new. Do the same in apic_deliver_irq() as well for consistency. Fixes: b5ee0468e9d ("apic: add support for x2APIC mode", 2024-02-14) Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Bui Quang Minh Signed-off-by: Paolo Bonzini --- hw/intc/apic.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/hw/intc/apic.c b/hw/intc/apic.c index 1d887d66b86..4186c57b34c 100644 --- a/hw/intc/apic.c +++ b/hw/intc/apic.c @@ -291,14 +291,13 @@ static void apic_deliver_irq(uint32_t dest, uint8_t d= est_mode, uint8_t delivery_mode, uint8_t vector_num, uint8_t trigger_mode) { - uint32_t *deliver_bitmask =3D g_malloc(max_apic_words * sizeof(uint32_= t)); + g_autofree uint32_t *deliver_bitmask =3D g_new(uint32_t, max_apic_word= s); =20 trace_apic_deliver_irq(dest, dest_mode, delivery_mode, vector_num, trigger_mode); =20 apic_get_delivery_bitmask(deliver_bitmask, dest, dest_mode); apic_bus_deliver(deliver_bitmask, delivery_mode, vector_num, trigger_m= ode); - g_free(deliver_bitmask); } =20 bool is_x2apic_mode(DeviceState *dev) @@ -662,7 +661,7 @@ static void apic_deliver(DeviceState *dev, uint32_t des= t, uint8_t dest_mode, APICCommonState *s =3D APIC(dev); APICCommonState *apic_iter; uint32_t deliver_bitmask_size =3D max_apic_words * sizeof(uint32_t); - uint32_t *deliver_bitmask =3D g_malloc(deliver_bitmask_size); + g_autofree uint32_t *deliver_bitmask =3D g_new(uint32_t, max_apic_word= s); uint32_t current_apic_id; =20 if (is_x2apic_mode(dev)) { @@ -708,7 +707,6 @@ static void apic_deliver(DeviceState *dev, uint32_t des= t, uint8_t dest_mode, } =20 apic_bus_deliver(deliver_bitmask, delivery_mode, vector_num, trigger_m= ode); - g_free(deliver_bitmask); } =20 static bool apic_check_pic(APICCommonState *s) --=20 2.43.2 From nobody Sun May 12 04:10:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1709909815; cv=none; d=zohomail.com; s=zohoarc; b=FOZR643ZnE+WOY78IgiDyE3VXWgB2BMG/q6nbFgHmplqtYBRk6aBnnWqQxfTmRp97GfyzMxMeE0m8I1RuFgb4KNJabrDRfFkacxTJUST2Os+Ie0FqKZI571tqYZu3xQOzP934EitvAaMK1h1it1olLVXzbEqKbQWPoWjAPM1Kmg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1709909815; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Q0rmMaJt4MALPwGW3i+DaPD4OmnBD3wO03Edu/ZWJ8Q=; b=NQ82FP+sYRnvl3vXeYS3xYWT7WRX8RkNACtTxMkxpm+URFtNIAQM5XgeXwT1Aty7lh7+EGVp8jfh90JdqWWJSChWd9PTWYRdZmufq2oFs9ogw+RbBrWFXbrgBi5F+nT4cPnUKlnJ9XUIvecK8XYhrKqD5PTc9xnzaUu83hUfsIk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1709909815954106.08885967233584; Fri, 8 Mar 2024 06:56:55 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ribe8-0003LN-Fm; Fri, 08 Mar 2024 09:56:28 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribe0-0003EB-0w for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:21 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribdt-0005SC-Rt for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:17 -0500 Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-125-DQR_uqMJOu64pZSwSnAPcw-1; Fri, 08 Mar 2024 09:56:11 -0500 Received: by mail-ed1-f70.google.com with SMTP id 4fb4d7f45d1cf-567002485e2so557692a12.1 for ; Fri, 08 Mar 2024 06:56:11 -0800 (PST) Received: from [192.168.10.118] ([151.49.77.21]) by smtp.gmail.com with ESMTPSA id ig10-20020a056402458a00b005657eefa8e9sm9256453edb.4.2024.03.08.06.56.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Mar 2024 06:56:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1709909772; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Q0rmMaJt4MALPwGW3i+DaPD4OmnBD3wO03Edu/ZWJ8Q=; b=BZ06rnE/uOeB8Fg7LyrTxK0CYyYuuR822o8OArN8m+FZPDwFy85qH+vWfeOy4ibl+N4HUl FyKEtnuyVF2EqOggfyr3bL6HAxuaDvrAZCnsgpKfO4woUohqudbFEK7mAQGj1DQeDUesvO eJzroCoI84XBlI/iNZLPefYP65YkmNA= X-MC-Unique: DQR_uqMJOu64pZSwSnAPcw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709909769; x=1710514569; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Q0rmMaJt4MALPwGW3i+DaPD4OmnBD3wO03Edu/ZWJ8Q=; b=XEtsqO/UNhxtfrdfsni5nEsoEYiiQrJmsXtukPnObCk+/c57HKiFIMVDpiBez4eNim xGujjkGuv4uJiz925VRAO6jsFAJvC1yrd3Lt1RcGbmPMOvmDwH9s7eA7GLghOx715BK8 u7rNNas/deeH8x5CDcm0M1xnV8cCy+SO9td3g0KW83wc/UfvyqAuuEwIWCp76jwZcTQi KuWX/5qvonGYRK2soj6O9VVjc+huEGFkIHGD23pOCV9uvbcm1YG+JW9dVKve4Xr6fHib s5pZaQQk0/yjdQu/yCBo00YEKB0ZcuB7o0LafrcM/uIMru0u8aaceklN9/au2h+83x3J Wxig== X-Gm-Message-State: AOJu0YxtNn3VCHFclGxRA5WLAjcY44ige2osNiK2dtk+CorAEbSI8O/4 IqHRwgXAY7hT/NFqP4+W5vPwVtBZiicjpQizzcTuxFEK017sE9lcGOVWsxXMTJ839d5fpDC+pMh UVowSSYQmqfbQyWMO7OM+VBY0xjQb9vJXQM6MMAd1F3HwZokJK34dlQSz/ey5+sZGIxuAU1MhAS KomJltQowtrI2aAxTUsn95wHOhgpm5Z6Au0YSU X-Received: by 2002:a50:d59c:0:b0:566:ab2b:e1ce with SMTP id v28-20020a50d59c000000b00566ab2be1cemr1959333edi.18.1709909769238; Fri, 08 Mar 2024 06:56:09 -0800 (PST) X-Google-Smtp-Source: AGHT+IFTgGcgP6HPVo29O9+nxTo/S8qrtvTM3+cJFwXCiesecuXHUDL//oOpM62GsV/YvhKwgtKa4g== X-Received: by 2002:a50:d59c:0:b0:566:ab2b:e1ce with SMTP id v28-20020a50d59c000000b00566ab2be1cemr1959319edi.18.1709909768977; Fri, 08 Mar 2024 06:56:08 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Mark Kanda Subject: [PULL 06/12] oslib-posix: fix memory leak in touch_all_pages Date: Fri, 8 Mar 2024 15:55:48 +0100 Message-ID: <20240308145554.599614-7-pbonzini@redhat.com> X-Mailer: git-send-email 2.43.2 In-Reply-To: <20240308145554.599614-1-pbonzini@redhat.com> References: <20240308145554.599614-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.572, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1709909816436100001 Content-Type: text/plain; charset="utf-8" touch_all_pages() can return early, before creating threads. In this case, however, it leaks the MemsetContext that it has allocated at the beginning of the function. Reported by Coverity as CID 1534922. Fixes: 04accf43df8 ("oslib-posix: initialize backend memory objects in para= llel", 2024-02-06) Reviewed-by: Mark Kanda Signed-off-by: Paolo Bonzini --- util/oslib-posix.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/util/oslib-posix.c b/util/oslib-posix.c index 3c379f96c26..e76441695bd 100644 --- a/util/oslib-posix.c +++ b/util/oslib-posix.c @@ -467,11 +467,13 @@ static int touch_all_pages(char *area, size_t hpagesi= ze, size_t numpages, * preallocating synchronously. */ if (context->num_threads =3D=3D 1 && !async) { + ret =3D 0; if (qemu_madvise(area, hpagesize * numpages, QEMU_MADV_POPULATE_WRITE)) { - return -errno; + ret =3D -errno; } - return 0; + g_free(context); + return ret; } touch_fn =3D do_madv_populate_write_pages; } else { --=20 2.43.2 From nobody Sun May 12 04:10:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1709909906; cv=none; d=zohomail.com; s=zohoarc; b=laZFvrkDrlNy4Dc5ga1ZKt2dAQtokuEL9aW9n+C51p9k3NVHq2x0vbU37fz7gmXg/NJO5ILKZfu+rPDnn8UreDumSOk/D9Rq141g9aiZg8IUj899MFI7zdaCbBuwk/qzjiO0HrGHW6rJpsLb1fiW53vOnLJQPJekDmyiWIDW92o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1709909906; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=3KoCC3GLxKllev6oWHU5ANiWBK8CXBJdkMjLAQdqd4w=; b=H3mw65hpLKK71yGoZUlGVFBOdGxyjeBqdP9bEpuauEC+G6fVvsRn+htnwtEBSs49WlL7RGcaaio95+a/WyoAF07i+Tp2ICYT/iVVy4GLAKYJCf8Sl5JlgqlNg9XMAyRI+rChQDjadxZgHvG4ds/5YBJ9AGnC8JX/kyEIG6e0yWA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1709909906905809.2862918865867; Fri, 8 Mar 2024 06:58:26 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ribeQ-0003WT-Kc; Fri, 08 Mar 2024 09:56:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribe0-0003ED-1a for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:21 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribdx-0005TA-QQ for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:19 -0500 Received: from mail-lj1-f198.google.com (mail-lj1-f198.google.com [209.85.208.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-88-y2RrXjsOPyuhNrYwNnA2xw-1; Fri, 08 Mar 2024 09:56:14 -0500 Received: by mail-lj1-f198.google.com with SMTP id 38308e7fff4ca-2d33a42c1f9so13730631fa.2 for ; Fri, 08 Mar 2024 06:56:14 -0800 (PST) Received: from [192.168.10.118] ([151.49.77.21]) by smtp.gmail.com with ESMTPSA id j12-20020a170906094c00b00a3e5adf11c7sm9340780ejd.157.2024.03.08.06.56.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Mar 2024 06:56:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1709909775; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=3KoCC3GLxKllev6oWHU5ANiWBK8CXBJdkMjLAQdqd4w=; b=gs9Ew1agtIEk4oYd5CzHkkadsULTJCMmgxfpUiAqlfsTaK8ZrNwmqzJ2W8R+WQegiyOmTa EcNrEbQf3ESCQOfocvpaSX1Hb6cf2WpRmq918p3VaWA19TuvxelqdBIHUvlDfqF2BlfHL8 iU09Oun4mZS7zmVhFSuSZAMdqoZHGd8= X-MC-Unique: y2RrXjsOPyuhNrYwNnA2xw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709909772; x=1710514572; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3KoCC3GLxKllev6oWHU5ANiWBK8CXBJdkMjLAQdqd4w=; b=F3X7YuZca8OV9GBG/4go11nV3ec2Ve/ZVqPOnMJ3ZggyBuTCHxjWvyKTB4PeB2H2MD A95UAlpktwaOAdcZnlunxiF+fuV/GV46ZLCH7FGeI2YjEZbWMthiJEu/0u37/dlwvitY DS/0znwa9Q3nFBNrB3ZTiO60gXV5yx/X/uiZw9VXqPHUrQrtVhKgA9tdH/fD3I59uDKu teW8RTAEI2o/VKw8oDdmoS4el+lK9RdyFGWE71jCaqF0Xt1xkXn+pZ6/YWbtdUSMuJBX AxqUuOtAm2O1nSspBzVKJpkdxm8+Wh5ZtUUYr6Qx2mVo2zslNTW2IA3SRepriyHi/YOy fcjA== X-Gm-Message-State: AOJu0YyCuFAVF1ja4auSOd86kEDyhs18PgGrYsJSGWWb49xLQGoTJP1y KCLgc4QMNtQNVDbViIDnYX9EZid5SbAo6wpxUlSbobakJWUeUxXUEg+kKIkPz+/+zdhctNgGWi8 db0dAnnI1MkPTgDUVz2LKT1mAP2u0FYEiNA7l9fs1Easpnol5R1DICFvX1C0SQwVnl2pa0PpVKG MS1Edq3x3urAy5okjLr7XAj+8CdCGDPRZCHH0j X-Received: by 2002:a2e:9086:0:b0:2d2:a38c:d706 with SMTP id l6-20020a2e9086000000b002d2a38cd706mr3524489ljg.17.1709909772272; Fri, 08 Mar 2024 06:56:12 -0800 (PST) X-Google-Smtp-Source: AGHT+IHijXF/FjI95bj6eq+GJznKzg26lWK6CM4VadJWHveEyYmaJdet9SVyOUiDjVgljWVcq5/JGw== X-Received: by 2002:a2e:9086:0:b0:2d2:a38c:d706 with SMTP id l6-20020a2e9086000000b002d2a38cd706mr3524481ljg.17.1709909771900; Fri, 08 Mar 2024 06:56:11 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 07/12] mips: do not list individual devices from configs/ Date: Fri, 8 Mar 2024 15:55:49 +0100 Message-ID: <20240308145554.599614-8-pbonzini@redhat.com> X-Mailer: git-send-email 2.43.2 In-Reply-To: <20240308145554.599614-1-pbonzini@redhat.com> References: <20240308145554.599614-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.572, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1709909908799100003 Content-Type: text/plain; charset="utf-8" Add new "select" and "imply" directives if needed. The resulting config-devices.mak files are the same as before. Builds without default devices will become much smaller than before, and qtests fail (as expected, though suboptimal) for mips64-softmmu because most tests do not use -nodefaults, so remove it from build-without-defaults Signed-off-by: Paolo Bonzini --- configs/devices/mips-softmmu/common.mak | 28 +++----------------- configs/devices/mips64el-softmmu/default.mak | 3 --- .gitlab-ci.d/buildtest.yml | 2 +- hw/display/Kconfig | 2 +- hw/mips/Kconfig | 20 +++++++++++++- 5 files changed, 25 insertions(+), 30 deletions(-) diff --git a/configs/devices/mips-softmmu/common.mak b/configs/devices/mips= -softmmu/common.mak index 1a853841b27..416a5d353e8 100644 --- a/configs/devices/mips-softmmu/common.mak +++ b/configs/devices/mips-softmmu/common.mak @@ -1,28 +1,8 @@ # Common mips*-softmmu CONFIG defines =20 -CONFIG_ISA_BUS=3Dy -CONFIG_PCI=3Dy -CONFIG_PCI_DEVICES=3Dy -CONFIG_VGA_ISA=3Dy -CONFIG_VGA_MMIO=3Dy -CONFIG_VGA_CIRRUS=3Dy -CONFIG_VMWARE_VGA=3Dy -CONFIG_SERIAL=3Dy -CONFIG_SERIAL_ISA=3Dy -CONFIG_PARALLEL=3Dy -CONFIG_I8254=3Dy -CONFIG_PCSPK=3Dy -CONFIG_PCKBD=3Dy -CONFIG_FDC=3Dy -CONFIG_I8257=3Dy -CONFIG_IDE_ISA=3Dy -CONFIG_PFLASH_CFI01=3Dy -CONFIG_I8259=3Dy -CONFIG_MC146818RTC=3Dy -CONFIG_MIPS_CPS=3Dy -CONFIG_MIPS_ITU=3Dy +# Uncomment the following lines to disable these optional devices: +# CONFIG_PCI_DEVICES=3Dn +# CONFIG_TEST_DEVICES=3Dn + CONFIG_MALTA=3Dy -CONFIG_PCNET_PCI=3Dy CONFIG_MIPSSIM=3Dy -CONFIG_SMBUS_EEPROM=3Dy -CONFIG_TEST_DEVICES=3Dy diff --git a/configs/devices/mips64el-softmmu/default.mak b/configs/devices= /mips64el-softmmu/default.mak index d5188f7ea58..88a37cf27f1 100644 --- a/configs/devices/mips64el-softmmu/default.mak +++ b/configs/devices/mips64el-softmmu/default.mak @@ -3,8 +3,5 @@ include ../mips-softmmu/common.mak CONFIG_FULOONG=3Dy CONFIG_LOONGSON3V=3Dy -CONFIG_ATI_VGA=3Dy -CONFIG_RTL8139_PCI=3Dy CONFIG_JAZZ=3Dy -CONFIG_VT82C686=3Dy CONFIG_MIPS_BOSTON=3Dy diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml index a1c030337b1..901265af95d 100644 --- a/.gitlab-ci.d/buildtest.yml +++ b/.gitlab-ci.d/buildtest.yml @@ -659,7 +659,7 @@ build-without-defaults: --disable-pie --disable-qom-cast-debug --disable-strip - TARGETS: avr-softmmu mips64-softmmu s390x-softmmu sh4-softmmu + TARGETS: avr-softmmu s390x-softmmu sh4-softmmu sparc64-softmmu hexagon-linux-user i386-linux-user s390x-linux-user MAKE_CHECK_ARGS: check =20 diff --git a/hw/display/Kconfig b/hw/display/Kconfig index 07acb37dc66..234c7de027c 100644 --- a/hw/display/Kconfig +++ b/hw/display/Kconfig @@ -55,7 +55,7 @@ config VGA_MMIO =20 config VMWARE_VGA bool - default y if PCI_DEVICES && PC_PCI + default y if PCI_DEVICES && (PC_PCI || MIPS) depends on PCI select VGA =20 diff --git a/hw/mips/Kconfig b/hw/mips/Kconfig index e57db4f6412..5c83ef49cf6 100644 --- a/hw/mips/Kconfig +++ b/hw/mips/Kconfig @@ -1,8 +1,15 @@ config MALTA bool + imply PCNET_PCI + imply PCI_DEVICES + imply TEST_DEVICES select FDC37M81X select GT64120 + select MIPS_CPS select PIIX + select PFLASH_CFI01 + select SERIAL + select SMBUS_EEPROM =20 config MIPSSIM bool @@ -31,17 +38,26 @@ config JAZZ =20 config FULOONG bool + imply PCI_DEVICES + imply TEST_DEVICES + imply ATI_VGA + imply RTL8139_PCI select PCI_BONITO + select SMBUS_EEPROM select VT82C686 =20 config LOONGSON3V bool + imply PCI_DEVICES + imply TEST_DEVICES + imply VIRTIO_PCI + imply VIRTIO_NET imply VIRTIO_VGA imply QXL if SPICE + imply USB_OHCI_PCI select SERIAL select GOLDFISH_RTC select LOONGSON_LIOINTC - select PCI_DEVICES select PCI_EXPRESS_GENERIC_BRIDGE select MSI_NONBROKEN select FW_CFG_MIPS @@ -53,6 +69,8 @@ config MIPS_CPS =20 config MIPS_BOSTON bool + imply PCI_DEVICES + imply TEST_DEVICES select FITLOADER select MIPS_CPS select PCI_EXPRESS_XILINX --=20 2.43.2 From nobody Sun May 12 04:10:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1709909898; cv=none; d=zohomail.com; s=zohoarc; b=Mi0xIR4I8Fu4DiT3GaUXEBOERn+/+vZDhYlVMPSxcPPcubz9Eixp4IHo218FjdHUp5XT9062P/brkypgVsip03LFi+hgt8/7nxfHpFJKtkzReWyACvOjbB4qbfxRJtkfeoOl47dQO8rFysZ0eKXE++rdlMU1cTxTHV8ngIIlzKk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1709909898; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=kjw8zi9dZOFQVHo23DU2FKCgNcnZ27yeYMAa0tZsIGg=; b=KbG2lumoGt16xuLwKuJvLrppYG/sOa+1jkFcPUaUVG6n/+ZMqXvbh3uGetXhKKy+UE8JyZ8TGfAPtKJsZoY9uydZ4q7nOYk1W5JANneqFwCocaaLI2gHgfqA07+Yqm/MD774zRQBx1rZ9AhdEBG28DSRkjO1riWP09MCarkJGHg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1709909898504217.31298171055596; Fri, 8 Mar 2024 06:58:18 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ribeT-0003fY-IS; Fri, 08 Mar 2024 09:56:49 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribe8-0003LS-Ht for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:28 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribdz-0005VH-NC for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:28 -0500 Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-157-TmlILwM4O16dc8x4ct_96Q-1; Fri, 08 Mar 2024 09:56:17 -0500 Received: by mail-ed1-f71.google.com with SMTP id 4fb4d7f45d1cf-5683081bf4eso419868a12.3 for ; Fri, 08 Mar 2024 06:56:16 -0800 (PST) Received: from [192.168.10.118] ([151.49.77.21]) by smtp.gmail.com with ESMTPSA id ig10-20020a056402458a00b005657eefa8e9sm9256518edb.4.2024.03.08.06.56.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Mar 2024 06:56:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1709909778; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kjw8zi9dZOFQVHo23DU2FKCgNcnZ27yeYMAa0tZsIGg=; b=Hkd7v0/4VC5Qt40Ik15aPX5eVcZDSd1Fbth1GQbg5NxEnv0fqAhD3EA+Ytz5yDMYzpI/td ZV3Ujq69wi+od3AHeLvPfUS6ACcC0W/dBi4jVTngdskh7tWbOoIAaYlBNT20r4QTdeI3j8 XiNlDJPvhhXkvRV6WC5jv2FtvcPG9F8= X-MC-Unique: TmlILwM4O16dc8x4ct_96Q-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709909774; x=1710514574; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kjw8zi9dZOFQVHo23DU2FKCgNcnZ27yeYMAa0tZsIGg=; b=i0L6M/KUsgZgCD3oOTljt3dpde2Opg3ap/jsuRcefI+qAeVKs2wmwejwrDoFxF8BAx 4dHrbobpp8U9c4Vx+yPrAoCicRpdKFNGpD4x5Qa5tExibbP9NEaKa5s6M38wvn/naMBa AYIIwoYRe13RH4B68TkHFoBMv9IgSrecxfmeDGf907JK98JBeBlEukTgmgzElNyAReOv uW+fQdbbDGeisZOzPIPH1r+TnQRNPFVOqQYveJb37QYtax5dgGncsbVKkOW6n7QLqBxC gJenXZlywnCfOJDcGWu6q4jaPc5kqpnpF3y8jmlVrHWuBp1dZgLPZHCf/qKkOmWWGeAH GvQA== X-Gm-Message-State: AOJu0YzntHN+D8dm1luY4j5CfjMoUn+nzUbZb8sHT+UD6A4/2KzqgVUO r5XdFPvNMJ59yNJjU2WC2OBSBtOeFAZ7npWrmP3mh18kHoY/pF5wDNyZwBtg5Gq0Qaw29TWL7UC wEpI5ALY9YepzL/HRtkR1nK7IqI4odBBqJhmUxQwVX2iy2+qMBJVS4GG52G/h0iS32CpIY+doyI i0g0g7cXiHSjCVUYCutpP80jJG4ApQLdaqQgyl X-Received: by 2002:a50:ab55:0:b0:567:2870:1f1c with SMTP id t21-20020a50ab55000000b0056728701f1cmr2221156edc.19.1709909774433; Fri, 08 Mar 2024 06:56:14 -0800 (PST) X-Google-Smtp-Source: AGHT+IECs8xfPFt5i9emABngjaUgDtqpL6VffBofNl2urdu7WqVMNanB2iL2j43p/QdrrJxB0ToSZw== X-Received: by 2002:a50:ab55:0:b0:567:2870:1f1c with SMTP id t21-20020a50ab55000000b0056728701f1cmr2221147edc.19.1709909774139; Fri, 08 Mar 2024 06:56:14 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Richard Henderson Subject: [PULL 08/12] target/i386: use TSTEQ/TSTNE to test low bits Date: Fri, 8 Mar 2024 15:55:50 +0100 Message-ID: <20240308145554.599614-9-pbonzini@redhat.com> X-Mailer: git-send-email 2.43.2 In-Reply-To: <20240308145554.599614-1-pbonzini@redhat.com> References: <20240308145554.599614-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.572, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01, T_SPF_TEMPERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1709909898754100001 Content-Type: text/plain; charset="utf-8" When testing the sign bit or equality to zero of a partial register, it is useful to use a single TSTEQ or TSTNE operation. It can also be used to test the parity flag, using bit 0 of the population count. Do not do this for target_ulong-sized values however; the optimizer would produce a comparison against zero anyway, and it avoids shifts by 64 which are undefined behavior. Reviewed-by: Richard Henderson Signed-off-by: Paolo Bonzini --- target/i386/tcg/translate.c | 28 ++++++++++++++++++++-------- target/i386/tcg/emit.c.inc | 5 ++--- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/target/i386/tcg/translate.c b/target/i386/tcg/translate.c index 07f642dc9e9..fe9021833e3 100644 --- a/target/i386/tcg/translate.c +++ b/target/i386/tcg/translate.c @@ -927,11 +927,21 @@ typedef struct CCPrepare { bool no_setcond; } CCPrepare; =20 +static CCPrepare gen_prepare_sign_nz(TCGv src, MemOp size) +{ + if (size =3D=3D MO_TL) { + return (CCPrepare) { .cond =3D TCG_COND_LT, .reg =3D src, .mask = =3D -1 }; + } else { + return (CCPrepare) { .cond =3D TCG_COND_TSTNE, .reg =3D src, .mask= =3D -1, + .imm =3D 1ull << ((8 << size) - 1) }; + } +} + /* compute eflags.C to reg */ static CCPrepare gen_prepare_eflags_c(DisasContext *s, TCGv reg) { TCGv t0, t1; - int size, shift; + MemOp size; =20 switch (s->cc_op) { case CC_OP_SUBB ... CC_OP_SUBQ: @@ -966,9 +976,7 @@ static CCPrepare gen_prepare_eflags_c(DisasContext *s, = TCGv reg) case CC_OP_SHLB ... CC_OP_SHLQ: /* (CC_SRC >> (DATA_BITS - 1)) & 1 */ size =3D s->cc_op - CC_OP_SHLB; - shift =3D (8 << size) - 1; - return (CCPrepare) { .cond =3D TCG_COND_NE, .reg =3D cpu_cc_src, - .mask =3D (target_ulong)1 << shift }; + return gen_prepare_sign_nz(cpu_cc_src, size); =20 case CC_OP_MULB ... CC_OP_MULQ: return (CCPrepare) { .cond =3D TCG_COND_NE, @@ -1028,8 +1036,7 @@ static CCPrepare gen_prepare_eflags_s(DisasContext *s= , TCGv reg) default: { MemOp size =3D (s->cc_op - CC_OP_ADDB) & 3; - TCGv t0 =3D gen_ext_tl(reg, cpu_cc_dst, size, true); - return (CCPrepare) { .cond =3D TCG_COND_LT, .reg =3D t0, .mask= =3D -1 }; + return gen_prepare_sign_nz(cpu_cc_dst, size); } } } @@ -1076,8 +1083,13 @@ static CCPrepare gen_prepare_eflags_z(DisasContext *= s, TCGv reg) default: { MemOp size =3D (s->cc_op - CC_OP_ADDB) & 3; - TCGv t0 =3D gen_ext_tl(reg, cpu_cc_dst, size, false); - return (CCPrepare) { .cond =3D TCG_COND_EQ, .reg =3D t0, .mask= =3D -1 }; + if (size =3D=3D MO_TL) { + return (CCPrepare) { .cond =3D TCG_COND_EQ, .reg =3D cpu_c= c_dst, + .mask =3D -1 }; + } else { + return (CCPrepare) { .cond =3D TCG_COND_TSTEQ, .reg =3D cp= u_cc_dst, + .mask =3D -1, .imm =3D (1ull << (8 <<= size)) - 1 }; + } } } } diff --git a/target/i386/tcg/emit.c.inc b/target/i386/tcg/emit.c.inc index 6bcf88ecd71..0e00f6635dd 100644 --- a/target/i386/tcg/emit.c.inc +++ b/target/i386/tcg/emit.c.inc @@ -1209,7 +1209,7 @@ static void gen_CMPccXADD(DisasContext *s, CPUX86Stat= e *env, X86DecodedInsn *dec [JCC_Z] =3D TCG_COND_EQ, [JCC_BE] =3D TCG_COND_LEU, [JCC_S] =3D TCG_COND_LT, /* test sign bit by comparing against 0 = */ - [JCC_P] =3D TCG_COND_EQ, /* even parity - tests low bit of popcou= nt */ + [JCC_P] =3D TCG_COND_TSTEQ, /* even parity - tests low bit of pop= count */ [JCC_L] =3D TCG_COND_LT, [JCC_LE] =3D TCG_COND_LE, }; @@ -1260,8 +1260,7 @@ static void gen_CMPccXADD(DisasContext *s, CPUX86Stat= e *env, X86DecodedInsn *dec case JCC_P: tcg_gen_ext8u_tl(s->tmp0, s->T0); tcg_gen_ctpop_tl(s->tmp0, s->tmp0); - tcg_gen_andi_tl(s->tmp0, s->tmp0, 1); - cmp_lhs =3D s->tmp0, cmp_rhs =3D tcg_constant_tl(0); + cmp_lhs =3D s->tmp0, cmp_rhs =3D tcg_constant_tl(1); break; =20 case JCC_S: --=20 2.43.2 From nobody Sun May 12 04:10:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1709909872; cv=none; d=zohomail.com; s=zohoarc; b=eIk7kh88s5ZU+YvbzzSDg3w1PwvegiNhatY4RWWwyuKSVjQscJ5PFj2kSrGQnyCw9LEYDJA7wSVOyqNu0rPgpnIS2MHmM4vx1JepmQi4TDVC0ZowcVX9GRNpT7TMuv5Pzle7Sb92cqj1eWwVf8ne5srUC3UyAm2ZGGKlR6mQIXU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1709909872; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=GZeJTi1a4ei23fONx1W+yvOU8wtWevhrI6ZjoG75Hhc=; b=PdozRcT6h148HDs6JbhKdwP4Tk1z8iw9P3ue7v8EwasCC+3OSCCuaP0LcfBMmC7Z0Qr/xeegHKHRyF4lZPlVgdVsixsBRAVH0A6Vxuy29vFgOqTzY+5albL7/sRHGIu/+5G1c9jruGMLAFzrFntz0tA2YuUU8my/PgXZtXYOP00= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1709909872376429.1474170686736; Fri, 8 Mar 2024 06:57:52 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ribeR-0003as-Hd; Fri, 08 Mar 2024 09:56:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribe8-0003LT-IS for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:30 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribe4-0005ZL-Di for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:28 -0500 Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-574-LOfjeD8xNqOQ7WvnONkj2w-1; Fri, 08 Mar 2024 09:56:19 -0500 Received: by mail-ej1-f72.google.com with SMTP id a640c23a62f3a-a45acc7f07cso135483366b.2 for ; Fri, 08 Mar 2024 06:56:19 -0800 (PST) Received: from [192.168.10.118] ([151.49.77.21]) by smtp.gmail.com with ESMTPSA id le6-20020a170906ae0600b00a449b4f4aefsm8196522ejb.178.2024.03.08.06.56.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Mar 2024 06:56:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1709909781; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GZeJTi1a4ei23fONx1W+yvOU8wtWevhrI6ZjoG75Hhc=; b=UROqXSCUBjhPg6baGechAeM6ou7Cp6/RgQ91jui2wJIRDDBv9ftO8rnm0LbH8nT4p++fYO rExNN6ti7/CBukBkOYUJoey65vQloy7CDDGhPgp2li8HJQnShV2BtwVt/O8nhrTjt1DPy/ 87ShR5y9ry5Zi6+WYalI6/mlxDFW0zY= X-MC-Unique: LOfjeD8xNqOQ7WvnONkj2w-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709909777; x=1710514577; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GZeJTi1a4ei23fONx1W+yvOU8wtWevhrI6ZjoG75Hhc=; b=X4zAB8sMpIbFbP3EvGnI3K6MzdIM3yX7TiWzb+bTarH1JUqQLokbNZmt6cwrcXQHNb 6lotdWhnDJprNbZixhOvz+L7KJ8yCxsHLGZ8sql66NeibX34e70VcCrgZNgQyOa1SmLC /71CDXdvBiq6YmX2rrgjETz2w5N4mLH6mknob1EFMuIMxrF0bMF6b9iKfK4796LHre3p jWaeDl8hZjrkMEkb7TZlvU9tRQeiZOyvdtstZTNM53CxCrxEyank6V3Hnb7AIlKli/bn guW/UtwuyZc5Vf+4EHqYKK9pRy6+KFJ40xIUi0ofsxmY7NEid6NQepVkrwkEWpF9Mkj3 8W6g== X-Gm-Message-State: AOJu0YxZJo0zm7gMDE/3gGGNZ4PpCSPw80rHbPRvxz6g2Zbr+yUY8xPy sPK/UgvCnEfPSA1tw1Te2TbvxfNkXtjOBxEIcsBU10DY1OrzYhleDNWHOHzHm3oFo3K26UVeFbZ YUBz5rpTRW3TyvkkI3+PbiZavZbTqLAJk7UIQxtNK0FJfdZg5SaGoW2pHIPQ0KyYoJV18h9DCkf sEy+zV7If4nZmdfsrRDLA77AYIarFHI7aKeQaF X-Received: by 2002:a17:906:3c58:b0:a45:547a:49e1 with SMTP id i24-20020a1709063c5800b00a45547a49e1mr9974789ejg.3.1709909777277; Fri, 08 Mar 2024 06:56:17 -0800 (PST) X-Google-Smtp-Source: AGHT+IGo75h8RaSXUkUeetEEr17DUbDy/cQJVlaztv0fKIX53UTTxTp4pk/RN9DDlAgb5dzAMPgevA== X-Received: by 2002:a17:906:3c58:b0:a45:547a:49e1 with SMTP id i24-20020a1709063c5800b00a45547a49e1mr9974780ejg.3.1709909776925; Fri, 08 Mar 2024 06:56:16 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Richard Henderson Subject: [PULL 09/12] target/i386: use TSTEQ/TSTNE to check flags Date: Fri, 8 Mar 2024 15:55:51 +0100 Message-ID: <20240308145554.599614-10-pbonzini@redhat.com> X-Mailer: git-send-email 2.43.2 In-Reply-To: <20240308145554.599614-1-pbonzini@redhat.com> References: <20240308145554.599614-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.572, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1709909872739100001 Content-Type: text/plain; charset="utf-8" The new conditions obviously come in handy when testing individual bits of EFLAGS, and they make it possible to remove the .mask field of CCPrepare. Lowering to shift+and is done by the optimizer if necessary. Reviewed-by: Richard Henderson Signed-off-by: Paolo Bonzini --- target/i386/tcg/translate.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/target/i386/tcg/translate.c b/target/i386/tcg/translate.c index fe9021833e3..63d520e0cba 100644 --- a/target/i386/tcg/translate.c +++ b/target/i386/tcg/translate.c @@ -995,8 +995,8 @@ static CCPrepare gen_prepare_eflags_c(DisasContext *s, = TCGv reg) case CC_OP_EFLAGS: case CC_OP_SARB ... CC_OP_SARQ: /* CC_SRC & 1 */ - return (CCPrepare) { .cond =3D TCG_COND_NE, - .reg =3D cpu_cc_src, .mask =3D CC_C }; + return (CCPrepare) { .cond =3D TCG_COND_TSTNE, + .reg =3D cpu_cc_src, .mask =3D -1, .imm =3D C= C_C }; =20 default: /* The need to compute only C from CC_OP_DYNAMIC is important @@ -1013,8 +1013,8 @@ static CCPrepare gen_prepare_eflags_c(DisasContext *s= , TCGv reg) static CCPrepare gen_prepare_eflags_p(DisasContext *s, TCGv reg) { gen_compute_eflags(s); - return (CCPrepare) { .cond =3D TCG_COND_NE, .reg =3D cpu_cc_src, - .mask =3D CC_P }; + return (CCPrepare) { .cond =3D TCG_COND_TSTNE, .reg =3D cpu_cc_src, + .mask =3D -1, .imm =3D CC_P }; } =20 /* compute eflags.S to reg */ @@ -1028,8 +1028,8 @@ static CCPrepare gen_prepare_eflags_s(DisasContext *s= , TCGv reg) case CC_OP_ADCX: case CC_OP_ADOX: case CC_OP_ADCOX: - return (CCPrepare) { .cond =3D TCG_COND_NE, .reg =3D cpu_cc_src, - .mask =3D CC_S }; + return (CCPrepare) { .cond =3D TCG_COND_TSTNE, .reg =3D cpu_cc_src, + .mask =3D -1, .imm =3D CC_S }; case CC_OP_CLR: case CC_OP_POPCNT: return (CCPrepare) { .cond =3D TCG_COND_NEVER, .mask =3D -1 }; @@ -1057,8 +1057,8 @@ static CCPrepare gen_prepare_eflags_o(DisasContext *s= , TCGv reg) .reg =3D cpu_cc_src, .mask =3D -1 }; default: gen_compute_eflags(s); - return (CCPrepare) { .cond =3D TCG_COND_NE, .reg =3D cpu_cc_src, - .mask =3D CC_O }; + return (CCPrepare) { .cond =3D TCG_COND_TSTNE, .reg =3D cpu_cc_src, + .mask =3D -1, .imm =3D CC_O }; } } =20 @@ -1073,8 +1073,8 @@ static CCPrepare gen_prepare_eflags_z(DisasContext *s= , TCGv reg) case CC_OP_ADCX: case CC_OP_ADOX: case CC_OP_ADCOX: - return (CCPrepare) { .cond =3D TCG_COND_NE, .reg =3D cpu_cc_src, - .mask =3D CC_Z }; + return (CCPrepare) { .cond =3D TCG_COND_TSTNE, .reg =3D cpu_cc_src, + .mask =3D -1, .imm =3D CC_Z }; case CC_OP_CLR: return (CCPrepare) { .cond =3D TCG_COND_ALWAYS, .mask =3D -1 }; case CC_OP_POPCNT: @@ -1152,8 +1152,8 @@ static CCPrepare gen_prepare_cc(DisasContext *s, int = b, TCGv reg) break; case JCC_BE: gen_compute_eflags(s); - cc =3D (CCPrepare) { .cond =3D TCG_COND_NE, .reg =3D cpu_cc_sr= c, - .mask =3D CC_Z | CC_C }; + cc =3D (CCPrepare) { .cond =3D TCG_COND_TSTNE, .reg =3D cpu_cc= _src, + .mask =3D -1, .imm =3D CC_Z | CC_C }; break; case JCC_S: cc =3D gen_prepare_eflags_s(s, reg); @@ -1167,8 +1167,8 @@ static CCPrepare gen_prepare_cc(DisasContext *s, int = b, TCGv reg) reg =3D s->tmp0; } tcg_gen_addi_tl(reg, cpu_cc_src, CC_O - CC_S); - cc =3D (CCPrepare) { .cond =3D TCG_COND_NE, .reg =3D reg, - .mask =3D CC_O }; + cc =3D (CCPrepare) { .cond =3D TCG_COND_TSTNE, .reg =3D reg, + .mask =3D -1, .imm =3D CC_O }; break; default: case JCC_LE: @@ -1177,8 +1177,8 @@ static CCPrepare gen_prepare_cc(DisasContext *s, int = b, TCGv reg) reg =3D s->tmp0; } tcg_gen_addi_tl(reg, cpu_cc_src, CC_O - CC_S); - cc =3D (CCPrepare) { .cond =3D TCG_COND_NE, .reg =3D reg, - .mask =3D CC_O | CC_Z }; + cc =3D (CCPrepare) { .cond =3D TCG_COND_TSTNE, .reg =3D reg, + .mask =3D -1, .imm =3D CC_O | CC_Z }; break; } break; --=20 2.43.2 From nobody Sun May 12 04:10:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1709909866; cv=none; d=zohomail.com; s=zohoarc; b=V6m3tUdejSSU/ICP6gyfz7NgRDbWZi24TSfjjwx3kh0APqj3kEirvMJal/9RUyUZksIvR6rVRKj4aM415M/G+e1rwOBnef/GKJqhwlFrbblIQLct68jNvXaIl0fiGZZMBQL3lBv4gl9XTWifveNKhLIB36QqpnsskqoF0s7t8jU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1709909866; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=CIUD785Me4NeqAjD4vPkIp5y97R2UPBh6N1oDtO/HVw=; b=fLcPCxs4GoQvbb9y0qfihrlWrLqNwwLgehJ2ZgDuGMrEc1E5t6D9BVJb3gN3191sd2qvv/f+5kKvYM0TKnT8pgoTh80ulA+HKkRzEX6fEi/3IIHDht+DnEjUKrX4LYICTxXON521llTYgXMnrfUG8K0o8nQJ4Zu4AEtfjl/8nRA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 170990986603797.37500816000386; Fri, 8 Mar 2024 06:57:46 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ribeV-0003gk-HI; Fri, 08 Mar 2024 09:56:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribeA-0003Lz-5k for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:32 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribe6-0005bA-CF for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:29 -0500 Received: from mail-ej1-f71.google.com (mail-ej1-f71.google.com [209.85.218.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-633-kaKvztHCP2i8KDb1cFLefQ-1; Fri, 08 Mar 2024 09:56:23 -0500 Received: by mail-ej1-f71.google.com with SMTP id a640c23a62f3a-a457ac99155so131119366b.2 for ; Fri, 08 Mar 2024 06:56:22 -0800 (PST) Received: from [192.168.10.118] ([151.49.77.21]) by smtp.gmail.com with ESMTPSA id h21-20020a170906111500b00a45464679b1sm5642131eja.127.2024.03.08.06.56.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Mar 2024 06:56:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1709909785; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=CIUD785Me4NeqAjD4vPkIp5y97R2UPBh6N1oDtO/HVw=; b=LYO5mf4+KcAZceyJKyS1n5cxSI67TXxG6DJ2Boj+hMN60fJEAAViF4YzMtsWeImnfTxHg5 VSMqQuwZF+gZSLRTn1vaKF6QSJMglxUNxaNmMbUPiupV/heySopWWMubv6VRf+vVEOyqmT u2WcMM4OPJhF8GZ4VhBjsDhZ2QqfVwU= X-MC-Unique: kaKvztHCP2i8KDb1cFLefQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709909779; x=1710514579; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CIUD785Me4NeqAjD4vPkIp5y97R2UPBh6N1oDtO/HVw=; b=PuJETLwP+FmC0Gu9Am8UNa3snsFI8PvdYp5nhdWjOAm5bAaRgHyE+v03MbirMHjPZ6 Xij9UlGZ903SGxnwvHTtUPx28VVFyZf92U55KkP1YSULwqIZZUGwwARLAfHRVv+ENYtA R/1FSZTelCrwukHbqUt2wcyoRZHERvhDMrd9IrJ26KzrGgUt1llo3wMN0c6O0LX3ZG5M 9btR1DQl224lEBQUIJV0JBGMMJanOVC4pqW1/PCj4XwPYQ4ibbl/MqJ9auBZJnhlrd6A GMfuHM1efCZ22ycpzYd+x7EPxA5ZPkKdk1wpyiSfFxIBynHRFGk9QPJx+51FyJKNxXs0 lbJA== X-Gm-Message-State: AOJu0YwyPtBvnVmc+OpHa4MSXPSqJ04GQRHbARvzLrGQL4SjXEuiCqty csdhj0Q0EuaK2NLUJSUxrCF/XFcur79vITXclhli8PhMXONQx23HI85nVoTQXRQhRh21cMgtLeb IuEtwfqeS7qLocM1uJ7VIglc6PQ9mUeYDgwEGSxy6MRxxByujYX7HKt6q20xEEUmKsf3NcpPyYq ZKCY2kvF1CgxWi9CWTSk1wp+vByPdjcCbn8c2g X-Received: by 2002:a17:907:208d:b0:a45:a889:d853 with SMTP id pv13-20020a170907208d00b00a45a889d853mr7068950ejb.12.1709909779510; Fri, 08 Mar 2024 06:56:19 -0800 (PST) X-Google-Smtp-Source: AGHT+IFNSYqdujfCR8q6f72hRmBlYWiByogOvo7eRPEwbOow5b4OKRCN75EIBnhER+/S0qZ4xnFzGw== X-Received: by 2002:a17:907:208d:b0:a45:a889:d853 with SMTP id pv13-20020a170907208d00b00a45a889d853mr7068936ejb.12.1709909779081; Fri, 08 Mar 2024 06:56:19 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Richard Henderson Subject: [PULL 10/12] target/i386: remove mask from CCPrepare Date: Fri, 8 Mar 2024 15:55:52 +0100 Message-ID: <20240308145554.599614-11-pbonzini@redhat.com> X-Mailer: git-send-email 2.43.2 In-Reply-To: <20240308145554.599614-1-pbonzini@redhat.com> References: <20240308145554.599614-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.572, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1709909866594100008 Content-Type: text/plain; charset="utf-8" With the introduction of TSTEQ and TSTNE the .mask field is always -1, so remove all the now-unnecessary code. Reviewed-by: Richard Henderson Signed-off-by: Paolo Bonzini --- target/i386/tcg/translate.c | 81 +++++++++++++------------------------ 1 file changed, 27 insertions(+), 54 deletions(-) diff --git a/target/i386/tcg/translate.c b/target/i386/tcg/translate.c index 63d520e0cba..6b4522c226d 100644 --- a/target/i386/tcg/translate.c +++ b/target/i386/tcg/translate.c @@ -922,7 +922,6 @@ typedef struct CCPrepare { TCGv reg; TCGv reg2; target_ulong imm; - target_ulong mask; bool use_reg2; bool no_setcond; } CCPrepare; @@ -930,9 +929,9 @@ typedef struct CCPrepare { static CCPrepare gen_prepare_sign_nz(TCGv src, MemOp size) { if (size =3D=3D MO_TL) { - return (CCPrepare) { .cond =3D TCG_COND_LT, .reg =3D src, .mask = =3D -1 }; + return (CCPrepare) { .cond =3D TCG_COND_LT, .reg =3D src }; } else { - return (CCPrepare) { .cond =3D TCG_COND_TSTNE, .reg =3D src, .mask= =3D -1, + return (CCPrepare) { .cond =3D TCG_COND_TSTNE, .reg =3D src, .imm =3D 1ull << ((8 << size) - 1) }; } } @@ -961,17 +960,17 @@ static CCPrepare gen_prepare_eflags_c(DisasContext *s= , TCGv reg) t0 =3D gen_ext_tl(reg, cpu_cc_dst, size, false); add_sub: return (CCPrepare) { .cond =3D TCG_COND_LTU, .reg =3D t0, - .reg2 =3D t1, .mask =3D -1, .use_reg2 =3D tru= e }; + .reg2 =3D t1, .use_reg2 =3D true }; =20 case CC_OP_LOGICB ... CC_OP_LOGICQ: case CC_OP_CLR: case CC_OP_POPCNT: - return (CCPrepare) { .cond =3D TCG_COND_NEVER, .mask =3D -1 }; + return (CCPrepare) { .cond =3D TCG_COND_NEVER }; =20 case CC_OP_INCB ... CC_OP_INCQ: case CC_OP_DECB ... CC_OP_DECQ: return (CCPrepare) { .cond =3D TCG_COND_NE, .reg =3D cpu_cc_src, - .mask =3D -1, .no_setcond =3D true }; + .no_setcond =3D true }; =20 case CC_OP_SHLB ... CC_OP_SHLQ: /* (CC_SRC >> (DATA_BITS - 1)) & 1 */ @@ -980,23 +979,23 @@ static CCPrepare gen_prepare_eflags_c(DisasContext *s= , TCGv reg) =20 case CC_OP_MULB ... CC_OP_MULQ: return (CCPrepare) { .cond =3D TCG_COND_NE, - .reg =3D cpu_cc_src, .mask =3D -1 }; + .reg =3D cpu_cc_src }; =20 case CC_OP_BMILGB ... CC_OP_BMILGQ: size =3D s->cc_op - CC_OP_BMILGB; t0 =3D gen_ext_tl(reg, cpu_cc_src, size, false); - return (CCPrepare) { .cond =3D TCG_COND_EQ, .reg =3D t0, .mask =3D= -1 }; + return (CCPrepare) { .cond =3D TCG_COND_EQ, .reg =3D t0 }; =20 case CC_OP_ADCX: case CC_OP_ADCOX: return (CCPrepare) { .cond =3D TCG_COND_NE, .reg =3D cpu_cc_dst, - .mask =3D -1, .no_setcond =3D true }; + .no_setcond =3D true }; =20 case CC_OP_EFLAGS: case CC_OP_SARB ... CC_OP_SARQ: /* CC_SRC & 1 */ return (CCPrepare) { .cond =3D TCG_COND_TSTNE, - .reg =3D cpu_cc_src, .mask =3D -1, .imm =3D C= C_C }; + .reg =3D cpu_cc_src, .imm =3D CC_C }; =20 default: /* The need to compute only C from CC_OP_DYNAMIC is important @@ -1005,7 +1004,7 @@ static CCPrepare gen_prepare_eflags_c(DisasContext *s= , TCGv reg) gen_helper_cc_compute_c(reg, cpu_cc_dst, cpu_cc_src, cpu_cc_src2, cpu_cc_op); return (CCPrepare) { .cond =3D TCG_COND_NE, .reg =3D reg, - .mask =3D -1, .no_setcond =3D true }; + .no_setcond =3D true }; } } =20 @@ -1014,7 +1013,7 @@ static CCPrepare gen_prepare_eflags_p(DisasContext *s= , TCGv reg) { gen_compute_eflags(s); return (CCPrepare) { .cond =3D TCG_COND_TSTNE, .reg =3D cpu_cc_src, - .mask =3D -1, .imm =3D CC_P }; + .imm =3D CC_P }; } =20 /* compute eflags.S to reg */ @@ -1029,10 +1028,10 @@ static CCPrepare gen_prepare_eflags_s(DisasContext = *s, TCGv reg) case CC_OP_ADOX: case CC_OP_ADCOX: return (CCPrepare) { .cond =3D TCG_COND_TSTNE, .reg =3D cpu_cc_src, - .mask =3D -1, .imm =3D CC_S }; + .imm =3D CC_S }; case CC_OP_CLR: case CC_OP_POPCNT: - return (CCPrepare) { .cond =3D TCG_COND_NEVER, .mask =3D -1 }; + return (CCPrepare) { .cond =3D TCG_COND_NEVER }; default: { MemOp size =3D (s->cc_op - CC_OP_ADDB) & 3; @@ -1048,17 +1047,16 @@ static CCPrepare gen_prepare_eflags_o(DisasContext = *s, TCGv reg) case CC_OP_ADOX: case CC_OP_ADCOX: return (CCPrepare) { .cond =3D TCG_COND_NE, .reg =3D cpu_cc_src2, - .mask =3D -1, .no_setcond =3D true }; + .no_setcond =3D true }; case CC_OP_CLR: case CC_OP_POPCNT: - return (CCPrepare) { .cond =3D TCG_COND_NEVER, .mask =3D -1 }; + return (CCPrepare) { .cond =3D TCG_COND_NEVER }; case CC_OP_MULB ... CC_OP_MULQ: - return (CCPrepare) { .cond =3D TCG_COND_NE, - .reg =3D cpu_cc_src, .mask =3D -1 }; + return (CCPrepare) { .cond =3D TCG_COND_NE, .reg =3D cpu_cc_src }; default: gen_compute_eflags(s); return (CCPrepare) { .cond =3D TCG_COND_TSTNE, .reg =3D cpu_cc_src, - .mask =3D -1, .imm =3D CC_O }; + .imm =3D CC_O }; } } =20 @@ -1074,21 +1072,19 @@ static CCPrepare gen_prepare_eflags_z(DisasContext = *s, TCGv reg) case CC_OP_ADOX: case CC_OP_ADCOX: return (CCPrepare) { .cond =3D TCG_COND_TSTNE, .reg =3D cpu_cc_src, - .mask =3D -1, .imm =3D CC_Z }; + .imm =3D CC_Z }; case CC_OP_CLR: - return (CCPrepare) { .cond =3D TCG_COND_ALWAYS, .mask =3D -1 }; + return (CCPrepare) { .cond =3D TCG_COND_ALWAYS }; case CC_OP_POPCNT: - return (CCPrepare) { .cond =3D TCG_COND_EQ, .reg =3D cpu_cc_src, - .mask =3D -1 }; + return (CCPrepare) { .cond =3D TCG_COND_EQ, .reg =3D cpu_cc_src }; default: { MemOp size =3D (s->cc_op - CC_OP_ADDB) & 3; if (size =3D=3D MO_TL) { - return (CCPrepare) { .cond =3D TCG_COND_EQ, .reg =3D cpu_c= c_dst, - .mask =3D -1 }; + return (CCPrepare) { .cond =3D TCG_COND_EQ, .reg =3D cpu_c= c_dst }; } else { return (CCPrepare) { .cond =3D TCG_COND_TSTEQ, .reg =3D cp= u_cc_dst, - .mask =3D -1, .imm =3D (1ull << (8 <<= size)) - 1 }; + .imm =3D (1ull << (8 << size)) - 1 }; } } } @@ -1116,7 +1112,7 @@ static CCPrepare gen_prepare_cc(DisasContext *s, int = b, TCGv reg) gen_extu(size, s->tmp4); t0 =3D gen_ext_tl(s->tmp0, cpu_cc_src, size, false); cc =3D (CCPrepare) { .cond =3D TCG_COND_LEU, .reg =3D s->tmp4, - .reg2 =3D t0, .mask =3D -1, .use_reg2 =3D t= rue }; + .reg2 =3D t0, .use_reg2 =3D true }; break; =20 case JCC_L: @@ -1129,7 +1125,7 @@ static CCPrepare gen_prepare_cc(DisasContext *s, int = b, TCGv reg) gen_exts(size, s->tmp4); t0 =3D gen_ext_tl(s->tmp0, cpu_cc_src, size, true); cc =3D (CCPrepare) { .cond =3D cond, .reg =3D s->tmp4, - .reg2 =3D t0, .mask =3D -1, .use_reg2 =3D t= rue }; + .reg2 =3D t0, .use_reg2 =3D true }; break; =20 default: @@ -1153,7 +1149,7 @@ static CCPrepare gen_prepare_cc(DisasContext *s, int = b, TCGv reg) case JCC_BE: gen_compute_eflags(s); cc =3D (CCPrepare) { .cond =3D TCG_COND_TSTNE, .reg =3D cpu_cc= _src, - .mask =3D -1, .imm =3D CC_Z | CC_C }; + .imm =3D CC_Z | CC_C }; break; case JCC_S: cc =3D gen_prepare_eflags_s(s, reg); @@ -1168,7 +1164,7 @@ static CCPrepare gen_prepare_cc(DisasContext *s, int = b, TCGv reg) } tcg_gen_addi_tl(reg, cpu_cc_src, CC_O - CC_S); cc =3D (CCPrepare) { .cond =3D TCG_COND_TSTNE, .reg =3D reg, - .mask =3D -1, .imm =3D CC_O }; + .imm =3D CC_O }; break; default: case JCC_LE: @@ -1178,7 +1174,7 @@ static CCPrepare gen_prepare_cc(DisasContext *s, int = b, TCGv reg) } tcg_gen_addi_tl(reg, cpu_cc_src, CC_O - CC_S); cc =3D (CCPrepare) { .cond =3D TCG_COND_TSTNE, .reg =3D reg, - .mask =3D -1, .imm =3D CC_O | CC_Z }; + .imm =3D CC_O | CC_Z }; break; } break; @@ -1203,16 +1199,6 @@ static void gen_setcc1(DisasContext *s, int b, TCGv = reg) return; } =20 - if (cc.cond =3D=3D TCG_COND_NE && !cc.use_reg2 && cc.imm =3D=3D 0 && - cc.mask !=3D 0 && (cc.mask & (cc.mask - 1)) =3D=3D 0) { - tcg_gen_shri_tl(reg, cc.reg, ctztl(cc.mask)); - tcg_gen_andi_tl(reg, reg, 1); - return; - } - if (cc.mask !=3D -1) { - tcg_gen_andi_tl(reg, cc.reg, cc.mask); - cc.reg =3D reg; - } if (cc.use_reg2) { tcg_gen_setcond_tl(cc.cond, reg, cc.reg, cc.reg2); } else { @@ -1231,10 +1217,6 @@ static inline void gen_jcc1_noeob(DisasContext *s, i= nt b, TCGLabel *l1) { CCPrepare cc =3D gen_prepare_cc(s, b, s->T0); =20 - if (cc.mask !=3D -1) { - tcg_gen_andi_tl(s->T0, cc.reg, cc.mask); - cc.reg =3D s->T0; - } if (cc.use_reg2) { tcg_gen_brcond_tl(cc.cond, cc.reg, cc.reg2, l1); } else { @@ -1250,10 +1232,6 @@ static inline void gen_jcc1(DisasContext *s, int b, = TCGLabel *l1) CCPrepare cc =3D gen_prepare_cc(s, b, s->T0); =20 gen_update_cc_op(s); - if (cc.mask !=3D -1) { - tcg_gen_andi_tl(s->T0, cc.reg, cc.mask); - cc.reg =3D s->T0; - } set_cc_op(s, CC_OP_DYNAMIC); if (cc.use_reg2) { tcg_gen_brcond_tl(cc.cond, cc.reg, cc.reg2, l1); @@ -2518,11 +2496,6 @@ static void gen_cmovcc1(DisasContext *s, int b, TCGv= dest, TCGv src) { CCPrepare cc =3D gen_prepare_cc(s, b, s->T1); =20 - if (cc.mask !=3D -1) { - TCGv t0 =3D tcg_temp_new(); - tcg_gen_andi_tl(t0, cc.reg, cc.mask); - cc.reg =3D t0; - } if (!cc.use_reg2) { cc.reg2 =3D tcg_constant_tl(cc.imm); } --=20 2.43.2 From nobody Sun May 12 04:10:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1709909884; cv=none; d=zohomail.com; s=zohoarc; b=V5qSBffGAJZSdtjXMhiG30FtEr4UX6vV1C6dpf8c37vG0rh8UAmjJBFA5Ra/zcNCNvSTSk6f8qiPNi1rhulfXIeHvm8IrNZI40lqJYSVPfgAuUnZjAIDgwxezTkoPnjyHEp0njBXyLqPbRGy81l1UohqJtbkpOV7jRX0yPwVjlg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1709909884; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Wm7tvlRtPpXlePloTVjRajx+JpxbgNJey9a3Qa3vQcU=; b=P4oWz7D9P5QKliqssZ8AJaVL9p0mdXJl/JKXsmzwc5nEJ6JTL6XiDUXIJHrwes0vtd74LVWI5A0JZd0MdlgruMpWto+KKCYc94Y009nLxtxNd6JcoG3Xgjk5is57gpVdmrhvGxp52n5XqTkvUAOX8wDSpqkeGEga+WHwr064Pgg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1709909884107892.1870102652761; Fri, 8 Mar 2024 06:58:04 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ribeU-0003gN-NC; Fri, 08 Mar 2024 09:56:50 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribeA-0003Ly-2m for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:32 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribe8-0005bR-8r for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:29 -0500 Received: from mail-lj1-f197.google.com (mail-lj1-f197.google.com [209.85.208.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-118-JewHBbGqOxqtRI4qrYDZXw-1; Fri, 08 Mar 2024 09:56:24 -0500 Received: by mail-lj1-f197.google.com with SMTP id 38308e7fff4ca-2d2ecf61dd7so15092481fa.1 for ; Fri, 08 Mar 2024 06:56:24 -0800 (PST) Received: from [192.168.10.118] ([151.49.77.21]) by smtp.gmail.com with ESMTPSA id a11-20020a1709064a4b00b00a44a04aa3cfsm7968176ejv.225.2024.03.08.06.56.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Mar 2024 06:56:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1709909786; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Wm7tvlRtPpXlePloTVjRajx+JpxbgNJey9a3Qa3vQcU=; b=GRPDYqyl5OO8QURbZu/p7cxJOS0eDgujp/8gDk7iiG1n3RjfNzv/dCLjLAm1ekZtemwh8v iJLaVlHDS0pE3SoG3+C4vhNhxGer6C/XG54L8cUBtC3AleBn6OmsM7u5rqVJoZJH1YaS63 xbek1PVMI0yWX3Bdc4CjRrS64Q0qkH4= X-MC-Unique: JewHBbGqOxqtRI4qrYDZXw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709909782; x=1710514582; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Wm7tvlRtPpXlePloTVjRajx+JpxbgNJey9a3Qa3vQcU=; b=S5xHdAj3diAZx67P/vj610ll6QQunk+RQ4N/QM13u0NU8c95LX1uJw+8GxdWCzb1Y0 rkCbXm7mHvlAY4ure0Fh8IEsK1kNkNwNRpNF6T8/4sHQH3iUyjI1bIJ3HPBx+CVSKo7a jijR+1ufxeIKt6gPs6pItXf8RdQIeEJTs0lDi+GumEjNSfqlxH1RAdwmv3lPGAfW5u4P YGwfFhl1Ssvgc8OX5PARqaQvVUv98XjVSCE7eCFz+XbUSp4FwZAx+qr0cMa0aAoylRSi e2HdvWVZVxW1rlc/Zr+Qs4pbEGRbcSdfQwzRA5QQQRrxCPZ3yBz5EFpXfyWjWGuj+hHX hjsw== X-Gm-Message-State: AOJu0YxwhWhus60qhkSrftNx6NS1gDuw3zOWvCo/vIYXn44arvgQfqp3 Z/0+h3Ms8CwovLa3LT6Z1bZ8lu0HEDvt7fwKBWoUoquQguY1aGu6j9jIR9ojQAl745vMJ1W+IIF rTD9vn2welF7DnYrBlIIooi33lVs1COeKXB6hY3iu7/UYiTWHQw+aHIsiRTauwLSTT/BI7yqoGa ybudjT9yjRSLxpxfCOb0tjZYssH8BCiyPJDSuF X-Received: by 2002:a2e:98d8:0:b0:2d2:6193:6d53 with SMTP id s24-20020a2e98d8000000b002d261936d53mr3514922ljj.13.1709909782712; Fri, 08 Mar 2024 06:56:22 -0800 (PST) X-Google-Smtp-Source: AGHT+IEwM6VxHqNi+nfJ6KWr6+b5WwKDyp2mvPKzxeZsrTFBUE/LTYcHSNJj/Pz0TyBhqY8GlPKGlQ== X-Received: by 2002:a2e:98d8:0:b0:2d2:6193:6d53 with SMTP id s24-20020a2e98d8000000b002d261936d53mr3514908ljj.13.1709909782362; Fri, 08 Mar 2024 06:56:22 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Peter Maydell Subject: [PULL 11/12] run-coverity-scan: add --check-upload-only option Date: Fri, 8 Mar 2024 15:55:53 +0100 Message-ID: <20240308145554.599614-12-pbonzini@redhat.com> X-Mailer: git-send-email 2.43.2 In-Reply-To: <20240308145554.599614-1-pbonzini@redhat.com> References: <20240308145554.599614-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.572, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1709909884775100001 Content-Type: text/plain; charset="utf-8" Add an option to check if upload is permitted without actually attempting a build. This can be useful to add a third outcome beyond success and failure---namely, a CI job can self-cancel if the uploading quota has been reached. There is a small change here in that a failure to do the upload check changes the exit code from 1 to 99. 99 was chosen because it is what Autotools and Meson use to represent a problem in the setup (as opposed to a failure in the test). Reviewed-by: Peter Maydell Signed-off-by: Paolo Bonzini --- scripts/coverity-scan/run-coverity-scan | 59 ++++++++++++++++++------- 1 file changed, 42 insertions(+), 17 deletions(-) diff --git a/scripts/coverity-scan/run-coverity-scan b/scripts/coverity-sca= n/run-coverity-scan index d56c9b66776..43cf770f5e3 100755 --- a/scripts/coverity-scan/run-coverity-scan +++ b/scripts/coverity-scan/run-coverity-scan @@ -28,6 +28,7 @@ # project settings, if you have maintainer access there. =20 # Command line options: +# --check-upload-only : return success if upload is possible # --dry-run : run the tools, but don't actually do the upload # --docker : create and work inside a container # --docker-engine : specify the container engine to use (docker/podman/a= uto); @@ -57,18 +58,18 @@ # putting it in a file and using --tokenfile. Everything else has # a reasonable default if this is run from a git tree. =20 -check_upload_permissions() { - # Check whether we can do an upload to the server; will exit the script - # with status 1 if the check failed (usually a bad token); - # will exit the script with status 0 if the check indicated that we - # can't upload yet (ie we are at quota) - # Assumes that COVERITY_TOKEN, PROJNAME and DRYRUN have been initializ= ed. +upload_permitted() { + # Check whether we can do an upload to the server; will exit *the scri= pt* + # with status 99 if the check failed (usually a bad token); + # will return from the function with status 1 if the check indicated + # that we can't upload yet (ie we are at quota) + # Assumes that COVERITY_TOKEN and PROJNAME have been initialized. =20 echo "Checking upload permissions..." =20 if ! up_perm=3D"$(wget https://scan.coverity.com/api/upload_permitted = --post-data "token=3D$COVERITY_TOKEN&project=3D$PROJNAME" -q -O -)"; then echo "Coverity Scan API access denied: bad token?" - exit 1 + exit 99 fi =20 # Really up_perm is a JSON response with either @@ -76,25 +77,40 @@ check_upload_permissions() { # We do some hacky string parsing instead of properly parsing it. case "$up_perm" in *upload_permitted*true*) - echo "Coverity Scan: upload permitted" + return 0 ;; *next_upload_permitted_at*) - if [ "$DRYRUN" =3D yes ]; then - echo "Coverity Scan: upload quota reached, continuing dry = run" - else - echo "Coverity Scan: upload quota reached; stopping here" - # Exit success as this isn't a build error. - exit 0 - fi + return 1 ;; *) echo "Coverity Scan upload check: unexpected result $up_perm" - exit 1 + exit 99 ;; esac } =20 =20 +check_upload_permissions() { + # Check whether we can do an upload to the server; will exit the script + # with status 99 if the check failed (usually a bad token); + # will exit the script with status 0 if the check indicated that we + # can't upload yet (ie we are at quota) + # Assumes that COVERITY_TOKEN, PROJNAME and DRYRUN have been initializ= ed. + + if upload_permitted; then + echo "Coverity Scan: upload permitted" + else + if [ "$DRYRUN" =3D yes ]; then + echo "Coverity Scan: upload quota reached, continuing dry run" + else + echo "Coverity Scan: upload quota reached; stopping here" + # Exit success as this isn't a build error. + exit 0 + fi + fi +} + + build_docker_image() { # build docker container including the coverity-scan tools echo "Building docker container..." @@ -152,9 +168,14 @@ update_coverity_tools () { DRYRUN=3Dno UPDATE=3Dyes DOCKER=3Dno +PROJNAME=3DQEMU =20 while [ "$#" -ge 1 ]; do case "$1" in + --check-upload-only) + shift + DRYRUN=3Dcheck + ;; --dry-run) shift DRYRUN=3Dyes @@ -251,6 +272,11 @@ if [ -z "$COVERITY_TOKEN" ]; then exit 1 fi =20 +if [ "$DRYRUN" =3D check ]; then + upload_permitted + exit $? +fi + if [ -z "$COVERITY_BUILD_CMD" ]; then NPROC=3D$(nproc) COVERITY_BUILD_CMD=3D"make -j$NPROC" @@ -266,7 +292,6 @@ if [ -z "$SRCDIR" ]; then SRCDIR=3D"$PWD" fi =20 -PROJNAME=3DQEMU TARBALL=3Dcov-int.tar.xz =20 if [ "$UPDATE" =3D only ]; then --=20 2.43.2 From nobody Sun May 12 04:10:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1709909875; cv=none; d=zohomail.com; s=zohoarc; b=Jbx6V7aYc/5EoaxETuXmUu1BPEPpBQY6lST0sjHIxApqFx1cpUJmOqYIo2Lvrwdzb2LjSosM580BBtihCssr5SwTCA5SghxYePDuLC54mWwRfPneg72miOJlTdQVKReIDA8nvEPykIxgHoxvCd++X31oXhVHulfUjlaZNTiuZTE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1709909875; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=TGNZVuIhxFM1n3kaB7ppDpIcYT9wBlyCHV+ALvaf7Sc=; b=lcoJXEWx0SsXmjEE6aQDWl39WA1zDnnE2Ej8ikA7Nvrykaj3hI8dAh6kD4zSaIKg0EbdRL3n7/zfVMartd7qjd7s7lvVKwRp2Iu54x8g9/e0ZKVgR0hxtzQ/UzGuhkqWSwhlO0mBmwaiOOu2Nii2pAvTVestwO/HVoryt9qZ5Mg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1709909875790746.4054621510206; Fri, 8 Mar 2024 06:57:55 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ribeY-0003hT-50; Fri, 08 Mar 2024 09:56:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribeV-0003go-Uu for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:51 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ribeT-0005ip-5f for qemu-devel@nongnu.org; Fri, 08 Mar 2024 09:56:51 -0500 Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-487-Hv6xXkshMXe0lItz7DAYzg-1; Fri, 08 Mar 2024 09:56:47 -0500 Received: by mail-ej1-f69.google.com with SMTP id a640c23a62f3a-a3fcf5b93faso119477366b.2 for ; Fri, 08 Mar 2024 06:56:46 -0800 (PST) Received: from [192.168.10.118] ([151.49.77.21]) by smtp.gmail.com with ESMTPSA id sa24-20020a1709076d1800b00a440019ac45sm9334410ejc.69.2024.03.08.06.56.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Mar 2024 06:56:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1709909808; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=TGNZVuIhxFM1n3kaB7ppDpIcYT9wBlyCHV+ALvaf7Sc=; b=iJDO+L+ROICvn4AoZbr7cLLNqkEKPgQWKDb2dgap+Zrwbw5aycauvr9u1bsK3Ef1VYDsqS XRxvXtSQDTiuG03LoimMDzUpFbxpJXkIaBLYiSi+eOHO4Zwgk+ajkmnLKW437ak/Y+7tOH +fj72QhDHL0DV73fCwZTqjyLbed4lgs= X-MC-Unique: Hv6xXkshMXe0lItz7DAYzg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709909786; x=1710514586; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TGNZVuIhxFM1n3kaB7ppDpIcYT9wBlyCHV+ALvaf7Sc=; b=YZoSgck5vPF25RstolD6hsVUc0ZVJQAV2uS/5yFh0MVGjQzp8RLS+4MiHNE9dBIdNA +nN4rFP0mdvOmKTH0781Lclx1t0mmn6o2QVqwOJCQKYYm8Snpcd/YGne9XJvKe1mIWCY ZSAbqAI7JFwYqLhB9XSl5GkgsOlJ09+33GwDmxqa6dS7/cs1kV2UAk078cTkDBemtLY2 kG1WY6VQpbRSUX+RHKVRtwQ0kBsbFxMtPPjI61s0elLKKnrjQtF3F3MT063Be6eflbRz LGmT8CIdu9nNk2ZIgGfNdsotcis+476LyXu/4f7tS9H4AkOE4KdK+W03GViuawbUqew8 dlIw== X-Gm-Message-State: AOJu0YwTtbTXo6pqIm+hSq7AdFwgxQ1vUoAGL64JJhZIZkjrIAya/p1A L9Ckc98BtZNFVNSD6YmZNME2Ff/Zu2RSUC5MvpLU4hN89X83u2UgIu/db++kaOiCRfHIMuzswDx cSzXe+lI9wzq0bOFh1zveGDtyBjHJ17O/R/FAHmmeSUtRywdNiHxVIpk6ScqJ8k1R0PJI30dhfo ERsqwUxu8LvjRFgBmAzxisUNDgatUStgedk6db X-Received: by 2002:a17:906:ce29:b0:a44:2218:4817 with SMTP id sd9-20020a170906ce2900b00a4422184817mr12867498ejb.39.1709909785905; Fri, 08 Mar 2024 06:56:25 -0800 (PST) X-Google-Smtp-Source: AGHT+IHxbwu78hnXKyZ3CPhiWbIRgm2JjGOw4Obgrb5PmmIfprqDrtIvLc6l7jJzmBCpnlI9Xl0gfA== X-Received: by 2002:a17:906:ce29:b0:a44:2218:4817 with SMTP id sd9-20020a170906ce2900b00a4422184817mr12867489ejb.39.1709909785545; Fri, 08 Mar 2024 06:56:25 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 12/12] gitlab-ci: add manual job to run Coverity Date: Fri, 8 Mar 2024 15:55:54 +0100 Message-ID: <20240308145554.599614-13-pbonzini@redhat.com> X-Mailer: git-send-email 2.43.2 In-Reply-To: <20240308145554.599614-1-pbonzini@redhat.com> References: <20240308145554.599614-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.572, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1709909876673100001 Content-Type: text/plain; charset="utf-8" Add a job that can be run, either manually or on a schedule, to upload a build to Coverity Scan. The job uses the run-coverity-scan script in multiple phases of check, download tools and upload, in order to avoid both wasting time (skip everything if you are above the upload quota) and avoid filling the log with the progress of downloading the tools. The job is intended to run on a scheduled pipeline run, and scheduled runs will not get any other job. It requires two variables to be in GitLab CI, COVERITY_TOKEN and COVERITY_EMAIL. Those are already set up in qemu-project's configuration as protected and masked variables. Signed-off-by: Paolo Bonzini --- .gitlab-ci.d/base.yml | 4 ++++ .gitlab-ci.d/buildtest.yml | 37 +++++++++++++++++++++++++++++++++++++ .gitlab-ci.d/opensbi.yml | 4 ++++ 3 files changed, 45 insertions(+) diff --git a/.gitlab-ci.d/base.yml b/.gitlab-ci.d/base.yml index ef173a34e63..2dd8a9b57cb 100644 --- a/.gitlab-ci.d/base.yml +++ b/.gitlab-ci.d/base.yml @@ -41,6 +41,10 @@ variables: - if: '$CI_PROJECT_NAMESPACE =3D=3D $QEMU_CI_UPSTREAM && $CI_COMMIT_TA= G' when: never =20 + # Scheduled runs on mainline don't get pipelines except for the specia= l Coverity job + - if: '$CI_PROJECT_NAMESPACE =3D=3D $QEMU_CI_UPSTREAM && $CI_PIPELINE_= SOURCE =3D=3D "schedule"' + when: never + # Cirrus jobs can't run unless the creds / target repo are set - if: '$QEMU_JOB_CIRRUS && ($CIRRUS_GITHUB_REPO =3D=3D null || $CIRRUS= _API_TOKEN =3D=3D null)' when: never diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml index 901265af95d..c7d92fc3018 100644 --- a/.gitlab-ci.d/buildtest.yml +++ b/.gitlab-ci.d/buildtest.yml @@ -729,3 +729,40 @@ pages: - public variables: QEMU_JOB_PUBLISH: 1 + +coverity: + image: $CI_REGISTRY_IMAGE/qemu/fedora:$QEMU_CI_CONTAINER_TAG + stage: build + allow_failure: true + timeout: 3h + needs: + - job: amd64-fedora-container + optional: true + before_script: + - dnf install -y curl wget + script: + # would be nice to cancel the job if over quota (https://gitlab.com/gi= tlab-org/gitlab/-/issues/256089) + # for example: + # curl --request POST --header "PRIVATE-TOKEN: $CI_JOB_TOKEN" "${CI_= SERVER_URL}/api/v4/projects/${CI_PROJECT_ID}/jobs/${CI_JOB_ID}/cancel + - 'scripts/coverity-scan/run-coverity-scan --check-upload-only || { ex= itcode=3D$?; if test $exitcode =3D 1; then + exit 0; + else + exit $exitcode; + fi; }; + scripts/coverity-scan/run-coverity-scan --update-tools-only > update= -tools.log 2>&1 || { cat update-tools.log; exit 1; }; + scripts/coverity-scan/run-coverity-scan --no-update-tools' + rules: + - if: '$COVERITY_TOKEN =3D=3D null' + when: never + - if: '$COVERITY_EMAIL =3D=3D null' + when: never + # Never included on upstream pipelines, except for schedules + - if: '$CI_PROJECT_NAMESPACE =3D=3D $QEMU_CI_UPSTREAM && $CI_PIPELINE_= SOURCE =3D=3D "schedule"' + when: on_success + - if: '$CI_PROJECT_NAMESPACE =3D=3D $QEMU_CI_UPSTREAM' + when: never + # Forks don't get any pipeline unless QEMU_CI=3D1 or QEMU_CI=3D2 is set + - if: '$QEMU_CI !=3D "1" && $QEMU_CI !=3D "2"' + when: never + # Always manual on forks even if $QEMU_CI =3D=3D "2" + - when: manual diff --git a/.gitlab-ci.d/opensbi.yml b/.gitlab-ci.d/opensbi.yml index fd293e6c317..42f137d624e 100644 --- a/.gitlab-ci.d/opensbi.yml +++ b/.gitlab-ci.d/opensbi.yml @@ -24,6 +24,10 @@ - if: '$QEMU_CI =3D=3D "1" && $CI_PROJECT_NAMESPACE !=3D "qemu-project= " && $CI_COMMIT_MESSAGE =3D~ /opensbi/i' when: manual =20 + # Scheduled runs on mainline don't get pipelines except for the specia= l Coverity job + - if: '$CI_PROJECT_NAMESPACE =3D=3D $QEMU_CI_UPSTREAM && $CI_PIPELINE_= SOURCE =3D=3D "schedule"' + when: never + # Run if any files affecting the build output are touched - changes: - .gitlab-ci.d/opensbi.yml --=20 2.43.2