From nobody Wed Nov 5 16:57:09 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1535995380033933.823286415348; Mon, 3 Sep 2018 10:23:00 -0700 (PDT) Received: from localhost ([::1]:46227 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fwsZ0-0008Rf-TM for importer@patchew.org; Mon, 03 Sep 2018 13:22:58 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34245) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fwsUp-00059P-GK for qemu-devel@nongnu.org; Mon, 03 Sep 2018 13:18:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fwsUm-000775-OI for qemu-devel@nongnu.org; Mon, 03 Sep 2018 13:18:39 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:40535) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fwsUm-00075g-Hi for qemu-devel@nongnu.org; Mon, 03 Sep 2018 13:18:36 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 8FE1721BD5; Mon, 3 Sep 2018 13:18:34 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Mon, 03 Sep 2018 13:18:34 -0400 Received: from localhost (flamenco.cs.columbia.edu [128.59.20.216]) by mail.messagingengine.com (Postfix) with ESMTPA id D41D41029D; Mon, 3 Sep 2018 13:18:33 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=braap.org; h=cc :date:from:in-reply-to:message-id:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=mesmtp; bh=yCeriMbQNkEblo rKpejcnT2SlK7cV+JvOBK6/URqSJ8=; b=QKavqaVjnqv+f7vUUp9+AzcyHANS4e ETZhUCql9ykmucPY40peXqcRp6ofOmxa1+9Zf6ZZEl3s+nvLy0PxHH5rs2/bPZta 1WS/V/jiVMdwIZbMrcNUDHfSrkxSCHLPHQXKX45zoThDZhSnBVLVOkFJzh5P/AsI hdFRmOqb94S+A= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=yCeriMbQNkEblorKpejcnT2SlK7cV+JvOBK6/URqSJ8=; b=B92fJqA/ xlonI9KCbFg2Jg1S9lruCmVwnBGai5ffJZShVai+d0OGf8+5HnkjNd/97wrdrgCd VYR0x7+xHMlsxDbnVspfKMsIuN6IOqlTWWU7qyjRL5P2Nki+qN04dlocTgTF1efZ Oeheb3f4dvIif6IjaD9c9aaC++USc606EYLvxIc9YCiCtvUmXaaY0gSF31/Xtl41 zTVif1c0mfBZNId5YJIEHxprokoqMnsipkRHhKz9jVacvBQGHwDhzHkVq4Z4UoXt 9ZaaNllq27fozl+LPM0Qh8POCnT9+/0OrW3mQVLqnRL210Wf2PQ+PICW5aKtuubx i35mZYH1wbQJNQ== X-ME-Proxy: X-ME-Sender: From: "Emilio G. Cota" To: qemu-devel@nongnu.org Date: Mon, 3 Sep 2018 13:18:26 -0400 Message-Id: <20180903171831.15446-2-cota@braap.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180903171831.15446-1-cota@braap.org> References: <20180903171831.15446-1-cota@braap.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 66.111.4.25 Subject: [Qemu-devel] [PATCH 1/6] qsp: drop atomics when using the seqlock X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , Richard Henderson , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Eduardo Habkost , Peter Crosthwaite Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Using atomics here is a mistake since they're not guaranteed to compile. Signed-off-by: Emilio G. Cota --- util/qsp.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/util/qsp.c b/util/qsp.c index b0c2575d10..a1ee03b84b 100644 --- a/util/qsp.c +++ b/util/qsp.c @@ -351,6 +351,7 @@ static QSPEntry *qsp_entry_get(const void *obj, const c= har *file, int line, static void qsp_entry_aggregate(QSPEntry *to, const QSPEntry *from) { #ifdef CONFIG_ATOMIC64 + /* use __nocheck because sizeof(void *) might be < sizeof(u64) */ to->ns +=3D atomic_read__nocheck(&from->ns); to->n_acqs +=3D atomic_read__nocheck(&from->n_acqs); #else @@ -359,8 +360,8 @@ static void qsp_entry_aggregate(QSPEntry *to, const QSP= Entry *from) =20 do { version =3D seqlock_read_begin(&from->sequence); - ns =3D atomic_read__nocheck(&from->ns); - n_acqs =3D atomic_read__nocheck(&from->n_acqs); + ns =3D from->ns; + n_acqs =3D from->n_acqs; } while (seqlock_read_retry(&from->sequence, version)); =20 to->ns +=3D ns; @@ -375,14 +376,17 @@ static void qsp_entry_aggregate(QSPEntry *to, const Q= SPEntry *from) */ static inline void do_qsp_entry_record(QSPEntry *e, int64_t delta, bool ac= q) { -#ifndef CONFIG_ATOMIC64 - seqlock_write_begin(&e->sequence); -#endif +#ifdef CONFIG_ATOMIC64 atomic_set__nocheck(&e->ns, e->ns + delta); if (acq) { atomic_set__nocheck(&e->n_acqs, e->n_acqs + 1); } -#ifndef CONFIG_ATOMIC64 +#else + seqlock_write_begin(&e->sequence); + e->ns +=3D delta; + if (acq) { + e->n_acqs++; + } seqlock_write_end(&e->sequence); #endif } --=20 2.17.1 From nobody Wed Nov 5 16:57:09 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1535995383078953.2484389964369; Mon, 3 Sep 2018 10:23:03 -0700 (PDT) Received: from localhost ([::1]:46228 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fwsZ3-0000MC-M9 for importer@patchew.org; Mon, 03 Sep 2018 13:23:01 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34244) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fwsUp-00059O-GI for qemu-devel@nongnu.org; Mon, 03 Sep 2018 13:18:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fwsUm-00076o-HP for qemu-devel@nongnu.org; Mon, 03 Sep 2018 13:18:39 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:38629) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fwsUm-00075i-B9 for qemu-devel@nongnu.org; Mon, 03 Sep 2018 13:18:36 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 8913B21BBA; Mon, 3 Sep 2018 13:18:34 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Mon, 03 Sep 2018 13:18:34 -0400 Received: from localhost (flamenco.cs.columbia.edu [128.59.20.216]) by mail.messagingengine.com (Postfix) with ESMTPA id 18F851029E; Mon, 3 Sep 2018 13:18:34 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=braap.org; h=cc :date:from:in-reply-to:message-id:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=mesmtp; bh=P3kGe5HbJ9MEkK DoRB2/ISNpqUztwP6HLO5iCY1S9Pc=; b=TZCU5xG4Gzyho2ua2UT+KXKvb5vSS6 8sLrXltRFWMMEVQyjHvyh74vUTNfBqO8iBROnmNvVpRrm9Klz6CX0n1Y7bjl7xNa mHIYf8UbvdTnIUkUOkp28OQKAE226HIexYzPR3yAZNfMQ1/DxsEXSdC2mZ1YrAgT eyYbsO0XBiS6w= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=P3kGe5HbJ9MEkKDoRB2/ISNpqUztwP6HLO5iCY1S9Pc=; b=CJkn9qTG PrwJZRnpaxfoVeAkxe0kSvh8gxgfSbVmmrUj0EuP7fGBAfKOtAH+J9eKVNKeYv9n aQUnH5cNxhPqYLiiZGGysTsRrLpYZwu+gA3DILf/Qz/jP1ldZ1RclnTi36S6oVmd LANCB+TWGg1xDiA4AAC0c6bjt2Tln3OzvgPf7DTGpSwiIaRZzPoz08388AQ++nez ApznI0OxuCKFPmsodOwol7vmqKcNykOsE/JDSY5R9PMUFEWNDRadTsRZDAF8lcZd 5idoIFGjk61uGV2maP/SmO/hznA17y6ECRmGhOTurRyrVTs4fgrnCWJ1Bb9TLt/d soSl41h55ULkIQ== X-ME-Proxy: X-ME-Sender: From: "Emilio G. Cota" To: qemu-devel@nongnu.org Date: Mon, 3 Sep 2018 13:18:27 -0400 Message-Id: <20180903171831.15446-3-cota@braap.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180903171831.15446-1-cota@braap.org> References: <20180903171831.15446-1-cota@braap.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 66.111.4.25 Subject: [Qemu-devel] [PATCH 2/6] test-rcu-list: avoid torn accesses to n_reclaims and n_nodes_removed X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , Richard Henderson , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Eduardo Habkost , Peter Crosthwaite Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Emilio G. Cota --- tests/test-rcu-list.c | 67 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 59 insertions(+), 8 deletions(-) diff --git a/tests/test-rcu-list.c b/tests/test-rcu-list.c index 192bfbf02e..2606b7c19d 100644 --- a/tests/test-rcu-list.c +++ b/tests/test-rcu-list.c @@ -25,6 +25,23 @@ #include "qemu/rcu.h" #include "qemu/thread.h" #include "qemu/rcu_queue.h" +#include "qemu/seqlock.h" + +/* + * Abstraction to avoid torn accesses when there is a single thread updati= ng + * the count. + * + * If CONFIG_ATOMIC64 is defined, we simply use atomic accesses. Otherwise= , we + * use a seqlock without a lock, since only one thread can update the coun= t. + */ +struct Count { + long long val; +#ifndef CONFIG_ATOMIC64 + QemuSeqLock sequence; +#endif +}; + +typedef struct Count Count; =20 /* * Test variables. @@ -33,8 +50,8 @@ static QemuMutex counts_mutex; static long long n_reads =3D 0LL; static long long n_updates =3D 0LL; -static long long n_reclaims =3D 0LL; -static long long n_nodes_removed =3D 0LL; +static Count n_reclaims; +static Count n_nodes_removed; static long long n_nodes =3D 0LL; static int g_test_in_charge =3D 0; =20 @@ -60,6 +77,38 @@ static int select_random_el(int max) return (rand() % max); } =20 +static inline long long count_read(Count *c) +{ +#ifdef CONFIG_ATOMIC64 + /* use __nocheck because sizeof(void *) might be < sizeof(long long) */ + return atomic_read__nocheck(&c->val); +#else + unsigned int version; + long long val; + + do { + version =3D seqlock_read_begin(&c->sequence); + val =3D c->val; + } while (seqlock_read_retry(&c->sequence, version)); + return val; +#endif +} + +static inline void count_add(Count *c, long long val) +{ +#ifdef CONFIG_ATOMIC64 + atomic_set__nocheck(&c->val, c->val + val); +#else + seqlock_write_begin(&c->sequence); + c->val +=3D val; + seqlock_write_end(&c->sequence); +#endif +} + +static inline void count_inc(Count *c) +{ + count_add(c, 1); +} =20 static void create_thread(void *(*func)(void *)) { @@ -104,7 +153,7 @@ static void reclaim_list_el(struct rcu_head *prcu) struct list_element *el =3D container_of(prcu, struct list_element, rc= u); g_free(el); /* Accessed only from call_rcu thread. */ - n_reclaims++; + count_inc(&n_reclaims); } =20 #if TEST_LIST_TYPE =3D=3D 1 @@ -232,7 +281,7 @@ static void *rcu_q_updater(void *arg) qemu_mutex_lock(&counts_mutex); n_nodes +=3D n_nodes_local; n_updates +=3D n_updates_local; - n_nodes_removed +=3D n_removed_local; + count_add(&n_nodes_removed, n_removed_local); qemu_mutex_unlock(&counts_mutex); return NULL; } @@ -286,19 +335,21 @@ static void rcu_qtest(const char *test, int duration,= int nreaders) n_removed_local++; } qemu_mutex_lock(&counts_mutex); - n_nodes_removed +=3D n_removed_local; + count_add(&n_nodes_removed, n_removed_local); qemu_mutex_unlock(&counts_mutex); synchronize_rcu(); - while (n_nodes_removed > n_reclaims) { + while (count_read(&n_nodes_removed) > count_read(&n_reclaims)) { g_usleep(100); synchronize_rcu(); } if (g_test_in_charge) { - g_assert_cmpint(n_nodes_removed, =3D=3D, n_reclaims); + g_assert_cmpint(count_read(&n_nodes_removed), =3D=3D, + count_read(&n_reclaims)); } else { printf("%s: %d readers; 1 updater; nodes read: " \ "%lld, nodes removed: %lld; nodes reclaimed: %lld\n", - test, nthreadsrunning - 1, n_reads, n_nodes_removed, n_recl= aims); + test, nthreadsrunning - 1, n_reads, + count_read(&n_nodes_removed), count_read(&n_reclaims)); exit(0); } } --=20 2.17.1 From nobody Wed Nov 5 16:57:09 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1535995240255614.2644116091252; Mon, 3 Sep 2018 10:20:40 -0700 (PDT) Received: from localhost ([::1]:46213 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fwsWg-00063k-5b for importer@patchew.org; Mon, 03 Sep 2018 13:20:34 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34247) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fwsUp-00059Q-GM for qemu-devel@nongnu.org; Mon, 03 Sep 2018 13:18:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fwsUm-00076y-MW for qemu-devel@nongnu.org; Mon, 03 Sep 2018 13:18:39 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:41209) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fwsUm-00075l-Fa for qemu-devel@nongnu.org; Mon, 03 Sep 2018 13:18:36 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id B451021BF4; Mon, 3 Sep 2018 13:18:34 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Mon, 03 Sep 2018 13:18:34 -0400 Received: from localhost (flamenco.cs.columbia.edu [128.59.20.216]) by mail.messagingengine.com (Postfix) with ESMTPA id 508D4102A0; Mon, 3 Sep 2018 13:18:34 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=braap.org; h=cc :date:from:in-reply-to:message-id:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=mesmtp; bh=+owucWbtLllLs2 xoHFtNscXBMf6nB3vRrLuqOahWS+w=; b=Ec/c+acfVplj91AA+ce2dQK/klL5VJ DFZrHDZ7gjSRCcEETVQOCyJK4IHClc1HxBbCcxIuVOxn6F37v9+G9wUbMtqQ6cvX VmcQrqJCn2dzt0zFlQxuPUgwOL5fCspJ1fQcuyF0+QGqz+Um8TbehDYbF8/Qb7eZ mQuHIp7W3B/6U= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=+owucWbtLllLs2xoHFtNscXBMf6nB3vRrLuqOahWS+w=; b=MKZB0y84 RydM43M3AJkWLSCzpH2231+e1sH3CsnkQfe8zRHKtj2SA8wl8k4otZ8jqK91wRSk 9P+uo2L2JONJoJbh7pvnbBcNwVdKiKB6fmqQP5/eQ0ZD4ojUQjRbW3dbyjSrAWwE 1GGGrqBARFWSirkav8tWObHbUoFMJPi0yU17eOcWGCjbPWXN8Gt3LECC8+PUkQj7 N7fRAAM7ubrb/k4Gt7eWINwZF35iIpr5XVttHnz14crdEDqmRkzN6UQb0dZ3H3Iz 7C2aGFQe1VNC1vho8AvFFEWPUEVGqEr/sRwVLHrKV3ZC2R/22FwAJjqhEe0O6OnJ iAhZoy1Dod/JMw== X-ME-Proxy: X-ME-Sender: From: "Emilio G. Cota" To: qemu-devel@nongnu.org Date: Mon, 3 Sep 2018 13:18:28 -0400 Message-Id: <20180903171831.15446-4-cota@braap.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180903171831.15446-1-cota@braap.org> References: <20180903171831.15446-1-cota@braap.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 66.111.4.25 Subject: [Qemu-devel] [PATCH 3/6] atomic: fix comment s/x64_64/x86_64/ X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , Richard Henderson , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Eduardo Habkost , Peter Crosthwaite Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Emilio G. Cota Reviewed-by: Alex Benn=C3=A9e --- include/qemu/atomic.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/qemu/atomic.h b/include/qemu/atomic.h index 9ed39effd3..de3e36f400 100644 --- a/include/qemu/atomic.h +++ b/include/qemu/atomic.h @@ -98,7 +98,7 @@ * We'd prefer not want to pull in everything else TCG related, so handle * those few cases by hand. * - * Note that x32 is fully detected with __x64_64__ + _ILP32, and that for + * Note that x32 is fully detected with __x86_64__ + _ILP32, and that for * Sparc we always force the use of sparcv9 in configure. */ #if defined(__x86_64__) || defined(__sparc__) --=20 2.17.1 From nobody Wed Nov 5 16:57:09 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1535995241841471.4673290670012; Mon, 3 Sep 2018 10:20:41 -0700 (PDT) Received: from localhost ([::1]:46212 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fwsWe-00063c-AO for importer@patchew.org; Mon, 03 Sep 2018 13:20:32 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34248) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fwsUp-00059R-GQ for qemu-devel@nongnu.org; Mon, 03 Sep 2018 13:18:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fwsUm-00076j-Gn for qemu-devel@nongnu.org; Mon, 03 Sep 2018 13:18:39 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:58375) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fwsUm-00075r-B8 for qemu-devel@nongnu.org; Mon, 03 Sep 2018 13:18:36 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id DCB3221BFD; Mon, 3 Sep 2018 13:18:34 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Mon, 03 Sep 2018 13:18:34 -0400 Received: from localhost (flamenco.cs.columbia.edu [128.59.20.216]) by mail.messagingengine.com (Postfix) with ESMTPA id 898B9102A1; Mon, 3 Sep 2018 13:18:34 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=braap.org; h=cc :date:from:in-reply-to:message-id:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=mesmtp; bh=y8QM0KsKu/7ZPg p712sDwVesN9VadyBDaYGHRnoXPkk=; b=w5C80jogf8NmdSMYJcXJi/EuRrJ8Su /iD8CdbwOJE0WNNOg5Pn4jl7hVCOp6FeIKWT/4z1Il9Jn4q3o45vqNi0ip/ibFSb +AdKk6UILGO6UDzCs2Qd6k5DStnqM2lDxJbhwyugx4dA21M4W6BqSxPKavsLgkm/ jDWccszTuIxcI= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=y8QM0KsKu/7ZPgp712sDwVesN9VadyBDaYGHRnoXPkk=; b=YioP8lAP YwYzJBZfbqIXdqHojWiRs7Oo380ryWvDqAuftgb3OkQggsyJiCdiIE8rOfFbc3lK 5kA2YNWjrcZzHVtnb7ILJE5XxW3m60Dgks3TstJmkrihIW5vLbqxJ6ZZ7CrXhrzK F7EmAXp1jz10vxK5v77XfourPxWU4ckgn9C15OQjsc7nAYPuaa3AFhXki0iTvhAT jvbd046RD+bYx8NWlPj0fVeW6qwGyX+0FU3/X28Us8roYZ+PGN8BMLiqwfNf7bmd kKHev4Hg0NNBmpEqYcfnBo6ODjbx6nfgGVS12CVqAYud9MJORrNV+bKNZftvW/ie 9yUaCMmH99RKsw== X-ME-Proxy: X-ME-Sender: From: "Emilio G. Cota" To: qemu-devel@nongnu.org Date: Mon, 3 Sep 2018 13:18:29 -0400 Message-Id: <20180903171831.15446-5-cota@braap.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180903171831.15446-1-cota@braap.org> References: <20180903171831.15446-1-cota@braap.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 66.111.4.25 Subject: [Qemu-devel] [PATCH 4/6] cpus: initialize timers_state.vm_clock_lock X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , Richard Henderson , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Eduardo Habkost , Peter Crosthwaite Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" We forgot to initialize the spinlock introduced in 94377115b2 ("cpus: protect TimerState writes with a spinlock", 2018-08-23). Fix it. Signed-off-by: Emilio G. Cota Reviewed-by: Alex Benn=C3=A9e --- cpus.c | 1 + 1 file changed, 1 insertion(+) diff --git a/cpus.c b/cpus.c index 8ee6e5db93..ebc13bac2d 100644 --- a/cpus.c +++ b/cpus.c @@ -823,6 +823,7 @@ int cpu_throttle_get_percentage(void) void cpu_ticks_init(void) { seqlock_init(&timers_state.vm_clock_seqlock); + qemu_spin_init(&timers_state.vm_clock_lock); vmstate_register(NULL, 0, &vmstate_timers, &timers_state); throttle_timer =3D timer_new_ns(QEMU_CLOCK_VIRTUAL_RT, cpu_throttle_timer_tick, NULL); --=20 2.17.1 From nobody Wed Nov 5 16:57:09 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1535995382176918.5142419143241; Mon, 3 Sep 2018 10:23:02 -0700 (PDT) Received: from localhost ([::1]:46229 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fwsZ3-0000Mr-3g for importer@patchew.org; Mon, 03 Sep 2018 13:23:01 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34249) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fwsUp-00059S-Ga for qemu-devel@nongnu.org; Mon, 03 Sep 2018 13:18:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fwsUm-00077R-Ui for qemu-devel@nongnu.org; Mon, 03 Sep 2018 13:18:39 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:43811) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fwsUm-00076Z-Oo for qemu-devel@nongnu.org; Mon, 03 Sep 2018 13:18:36 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 2E64421C1A; Mon, 3 Sep 2018 13:18:35 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Mon, 03 Sep 2018 13:18:35 -0400 Received: from localhost (flamenco.cs.columbia.edu [128.59.20.216]) by mail.messagingengine.com (Postfix) with ESMTPA id BDB221028D; Mon, 3 Sep 2018 13:18:34 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=braap.org; h=cc :date:from:in-reply-to:message-id:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=mesmtp; bh=DZ9n9CniOrZ/q7 vEv3KT/R7ohYWCYk/cz25VYkoGAOQ=; b=l5queZkOSqnEZLNBhunXQtP1r7bTCi wPWHxaw+gAMakyhW48qhyeczidHlrkJ+ljJiiL0xQJUyGSJKjJIlaubGmdGlHReb oC+v6vajBwpksG42k/JWWVe3Kdrv9OvLkahNZ90kZYfSciTqtr2dI9PDzAkl3yuC rmLOTsgBKkCBE= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=DZ9n9CniOrZ/q7vEv3KT/R7ohYWCYk/cz25VYkoGAOQ=; b=MNr03CAs HsA7/aJvdOELJghmZUSulCsWDk31bwXQSIFSfyryKRnD0hDLJG5yF3WUTE0J2dN2 4hAa/xoNUMvk3WlqsKyqPUB29NV6d+9941KruTpRUIEv0GjcOBiIriU559FvnhUh qeWbLx+h7mw5MDiBkihjHeenJ2qwbSTG4J1h8PiERE55U3Qi5d7zs+1b9ADGlwZA eq9HmbEZYZTkeehNyd3KPA6zV6lPbS1uXBtLRQURqkpb6D5pwU3vxpiee+MMwe+T 4+25u7nPujG89sktMHq099LL0B/jTX97sv9VLAKdoWh658M0ThQfSyzo/3VnSJ/5 99dLpwOSre4pjg== X-ME-Proxy: X-ME-Sender: From: "Emilio G. Cota" To: qemu-devel@nongnu.org Date: Mon, 3 Sep 2018 13:18:30 -0400 Message-Id: <20180903171831.15446-6-cota@braap.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180903171831.15446-1-cota@braap.org> References: <20180903171831.15446-1-cota@braap.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 66.111.4.25 Subject: [Qemu-devel] [PATCH 5/6] target/i386/translate: use thread-local storage in !user-mode X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , Richard Henderson , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Eduardo Habkost , Peter Crosthwaite Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Needed for MTTCG. Signed-off-by: Emilio G. Cota Acked-by: Alex Benn=C3=A9e --- target/i386/translate.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/target/i386/translate.c b/target/i386/translate.c index 1f9d1d9b24..9a6a72e205 100644 --- a/target/i386/translate.c +++ b/target/i386/translate.c @@ -71,26 +71,34 @@ =20 //#define MACRO_TEST 1 =20 +/* we need thread-local storage for mttcg */ +#ifdef CONFIG_USER_ONLY +#define I386_THREAD +#else +#define I386_THREAD __thread +#endif + /* global register indexes */ -static TCGv cpu_A0; -static TCGv cpu_cc_dst, cpu_cc_src, cpu_cc_src2, cpu_cc_srcT; +static TCGv cpu_cc_dst, cpu_cc_src, cpu_cc_src2; static TCGv_i32 cpu_cc_op; static TCGv cpu_regs[CPU_NB_REGS]; static TCGv cpu_seg_base[6]; static TCGv_i64 cpu_bndl[4]; static TCGv_i64 cpu_bndu[4]; /* local temps */ -static TCGv cpu_T0, cpu_T1; +static I386_THREAD TCGv cpu_cc_srcT; +static I386_THREAD TCGv cpu_A0; +static I386_THREAD TCGv cpu_T0, cpu_T1; /* local register indexes (only used inside old micro ops) */ -static TCGv cpu_tmp0, cpu_tmp4; -static TCGv_ptr cpu_ptr0, cpu_ptr1; -static TCGv_i32 cpu_tmp2_i32, cpu_tmp3_i32; -static TCGv_i64 cpu_tmp1_i64; +static I386_THREAD TCGv cpu_tmp0, cpu_tmp4; +static I386_THREAD TCGv_ptr cpu_ptr0, cpu_ptr1; +static I386_THREAD TCGv_i32 cpu_tmp2_i32, cpu_tmp3_i32; +static I386_THREAD TCGv_i64 cpu_tmp1_i64; =20 #include "exec/gen-icount.h" =20 #ifdef TARGET_X86_64 -static int x86_64_hregs; +static I386_THREAD int x86_64_hregs; #endif =20 typedef struct DisasContext { --=20 2.17.1 From nobody Wed Nov 5 16:57:09 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1535995237052833.4553430052008; Mon, 3 Sep 2018 10:20:37 -0700 (PDT) Received: from localhost ([::1]:46211 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fwsWY-000606-9c for importer@patchew.org; Mon, 03 Sep 2018 13:20:26 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34243) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fwsUp-00059N-Fs for qemu-devel@nongnu.org; Mon, 03 Sep 2018 13:18:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fwsUm-00077L-So for qemu-devel@nongnu.org; Mon, 03 Sep 2018 13:18:39 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:60327) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fwsUm-00076a-MK for qemu-devel@nongnu.org; Mon, 03 Sep 2018 13:18:36 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 6295521B4C; Mon, 3 Sep 2018 13:18:35 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Mon, 03 Sep 2018 13:18:35 -0400 Received: from localhost (flamenco.cs.columbia.edu [128.59.20.216]) by mail.messagingengine.com (Postfix) with ESMTPA id F3E7010299; Mon, 3 Sep 2018 13:18:34 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=braap.org; h=cc :date:from:in-reply-to:message-id:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=mesmtp; bh=05QLv0+1v3HcYd KuYIsoVNAKcu1bGK6qb7NhY0wagqA=; b=u+zNtWm5oWroAv1CjXPlEtC429jlAC LK+g6fh75HubiglqiyrAgziMBK6VHwB+8RRuhmExug09MH8NhOdTbyEnq38uUauO 489UZFTDlveIT+o0XTJJ5UsTU8DIfJWWEV9vEvufIzX1vjMALzV1DGQnugcVCjb/ 600pHOxMipGUk= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=05QLv0+1v3HcYdKuYIsoVNAKcu1bGK6qb7NhY0wagqA=; b=b8/GpBoH A/w4+uaVveVW7FayhwvuBN2AYaIYcu/7Av/RBy9RZ8x4qKNEmyPNjz/dIo+CSW82 sK56DVFu3Sc7/MoLjn+fv4sgok7YHRHUAqeD9kUDto0I4r2K1mCSGk3e1WORw8Nj vK8BSfbWAw+RkjA7BHgfqIc1wLU3IvLbyCR/tyUq+Min89lKC+yFzcsxkuk8m00N 3XGe4MshEtx+Cd9gXcRlp1mX+kii7vONTCjsS6h/TBfxqdBGlRVZ4H2v1RKccAxS NrJFkQ26glZSvBrm8jrgQyGA+WD47ARseIlwzU7XWgI8u2eP7u1pqj+LpVSOak+C JZSA6RJjLPFirg== X-ME-Proxy: X-ME-Sender: From: "Emilio G. Cota" To: qemu-devel@nongnu.org Date: Mon, 3 Sep 2018 13:18:31 -0400 Message-Id: <20180903171831.15446-7-cota@braap.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180903171831.15446-1-cota@braap.org> References: <20180903171831.15446-1-cota@braap.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 66.111.4.25 Subject: [Qemu-devel] [PATCH 6/6] configure: enable mttcg for i386 and x86_64 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , Richard Henderson , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Eduardo Habkost , Peter Crosthwaite Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Emilio G. Cota --- configure | 2 ++ 1 file changed, 2 insertions(+) diff --git a/configure b/configure index 58862d2ae8..f715252c9f 100755 --- a/configure +++ b/configure @@ -7025,12 +7025,14 @@ TARGET_ABI_DIR=3D"" =20 case "$target_name" in i386) + mttcg=3D"yes" gdb_xml_files=3D"i386-32bit.xml i386-32bit-core.xml i386-32bit-sse.xml" target_compiler=3D$cross_cc_i386 target_compiler_cflags=3D$cross_cc_ccflags_i386 ;; x86_64) TARGET_BASE_ARCH=3Di386 + mttcg=3D"yes" gdb_xml_files=3D"i386-64bit.xml i386-64bit-core.xml i386-64bit-sse.xml" target_compiler=3D$cross_cc_x86_64 ;; --=20 2.17.1