From nobody Sun Jul 26 10:09:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1783457940; cv=none; d=zohomail.com; s=zohoarc; b=dHNvUwVUPLNrh4DzSMBFckjBt89EY7xe8j+V2iwAs1mhvJ54hKbuGgof/sAUYNHQW+3Oh99XeoLXeh7AhHS8qUTI/anP9bxstL22U4N1QrVnA1etJ3no9aMqL/cZ1XgVOUsaokwYb/eIEMEGXCCklX190cx51EkqdoKeE+ySBMQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783457940; 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=NYPNqqFbEEezjw6Z+RjX7uYmTjv7+lxqJe/BllIbo+w=; b=dEmSpZVAaC4/tKjdo9GDV0TKVZXyCpJCoOSPgWOJ2uYD7Mzb/GJIkmKNjU8yikNp2VoeROW2M1TDqvuFC01t93JbUIgO+dT4MMT4OZoaaXdW/WfEo4k8kLY6GcI2c+urWk9s9g3wvxQ8ihUPD3DUjMoqaqtA25RN8lerKsTAz8Y= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1783457940826355.2080188061951; Tue, 7 Jul 2026 13:59:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1whCrz-0004MJ-Hp; Tue, 07 Jul 2026 16:58:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1whCrx-0004LB-Jj for qemu-devel@nongnu.org; Tue, 07 Jul 2026 16:58:17 -0400 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1whCrv-0003T0-7o for qemu-devel@nongnu.org; Tue, 07 Jul 2026 16:58:17 -0400 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-2cc97653887so275185ad.1 for ; Tue, 07 Jul 2026 13:58:14 -0700 (PDT) Received: from stoup.. (71-212-39-188.tukw.qwest.net. [71.212.39.188]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9d3bc2asm17980575ad.69.2026.07.07.13.58.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2026 13:58:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1783457894; x=1784062694; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=NYPNqqFbEEezjw6Z+RjX7uYmTjv7+lxqJe/BllIbo+w=; b=c8iEk8sNk+/Byofe/AqN2i5V/qzSZMIze/+IoupP6CMr9jwaZ3SFAZllLjOoxvxiSm hH8tdEhR5+z3LssfxHn48+hOuhqFZsz66UhLARqiVnbwS0FoCd3RL4bjWsqVPAB7cJi9 k7e8/mg/6TJ1P/eU7OfPETwGFMlCp9JihBr8bC82zI+QfMqv6DUG5yA3lvFp4eUKK0gJ Y+88TfM5gVMz5kkik5BcNi1Q550FIuq8Q5TXoJc8UcybyAQNS3TI9ONk5nQ4vBwxeJEj p9Ff99UpayMdHKtG/rkPOJiIGyaxKpSEpDxBhs2q73iYtTapf7aX5b8R4yP8izy2QXYs TyAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783457894; x=1784062694; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=NYPNqqFbEEezjw6Z+RjX7uYmTjv7+lxqJe/BllIbo+w=; b=pjO2+wdBFtEgEw/CBGX7ClVz1YYo7gJ8mbqz2K05mAi0yUOaL/2Wid3cA8pxadclzg iRz844yvMLiKz03y6rYWyVQ27yVMpORB9vr76S8g+7r2pegoOQbxQ2LfI2fEXShIvhem Nzed+p9zWjo9EHdRwqNE0vgPe/fon2S0EGHqq0s+MXm5BEwk5xhHwBMC74hVX2Tecmxl WX/X/rwStu3Uk9Ka6/j4vHvCz1csFKP8AsqErEYlhYT83pr1ESxDG1CmjJpTzsKkSGMg 9WXb81XI7klx38LGnkkD9MoZVhkRucdDLIZ6L+a47sBG8GN3ZeCH7Heb+a7G61XnR06j QCoQ== X-Gm-Message-State: AOJu0YxvYZmcBcsyGSrsF87YAxim9xXpZEzlyMkmUhzAa5YmgjwBoG8c stwwk3ZsaxRNlUcd47ZEIwi3lVZafVUgxp/pFjbbRU0uqdW0HYZjbxSmeldzS6MKhM5lmsSEi1X 0nnXB X-Gm-Gg: AfdE7cn9Thc+trv91eF6aLhpxOONEuYUXrIGLFLF9dZbixyqaUufseKZSEtJ8E5O3CI imsLQWIHMftuCxItMt3CDLceAvM+XEbY8XQ5AE0PFb8ERozN/c0vGfXbD5Bu5hBpUBCsZzbHjyB I0GSpXDp986cRBvHDnXYPxHJc7TJh8Kn4gY0dJI+u8LwCu6cZWhnL+OX6H2PQMkrT90KE5BYtyE mEuROxnczV95cw8omtaKRk7h7N2EroUjR1FUQxFrY7vZiwnQbfOPh697cB902J2T/VkhodlBYu6 8259NvOBDkavHafLy6bPicwFr0vyZPhuy6SuFMsXNQ7ZpwHZDIGiOGEfjH+YeCUvbFZP18r2m5o w5hL+15qG7lTU20IVYkzQfRKduZcpGswA7gHCskw5yqBYfJrav9iYhxSSh8pvKNAq3cOUiI1QdA QrYkbKG1gsxlM3fPwG5oelafHnOCShsH1X78WIBnkPZn4uecg= X-Received: by 2002:a17:903:19cd:b0:2cb:2b69:8d53 with SMTP id d9443c01a7336-2ccbf043ac6mr68530635ad.37.1783457893418; Tue, 07 Jul 2026 13:58:13 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 1/6] accel/tcg: Use TLB_FORCE_SLOW not TLB_MMIO for user-only plugins Date: Tue, 7 Jul 2026 13:58:05 -0700 Message-ID: <20260707205810.303376-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260707205810.303376-1-richard.henderson@linaro.org> References: <20260707205810.303376-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::635; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x635.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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 @linaro.org) X-ZM-MESSAGEID: 1783457942628158500 In 6d03226b422 we set TLB_MMIO to a non-zero value for user-only so that we could return a non-zero value from probe_* functions so that we could force callers like Arm SVE vector moves to use the slow path rather than direct access. All for the sake of exposing these accesses to plugins. Back then, TLB_FORCE_SLOW did not exist, so TLB_MMIO seemed like a reasonable solution. However, user-only doesn't really have MMIO and this has knock-on effects, like forcing Arm SVE first-fault vector loads to stop. Better to use TLB_FORCE_SLOW as a more exact trigger for plugins. Cc: qemu-stable@nongnu.org Fixes: 6d03226b422 ("plugins: force slow path when plugins instrument memor= y ops") Acked-by: Alex Benn=C3=A9e Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson Message-ID: <20260702171057.47998-1-richard.henderson@linaro.org> --- include/exec/tlb-flags.h | 7 ++++--- accel/tcg/user-exec.c | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/exec/tlb-flags.h b/include/exec/tlb-flags.h index 357e79095c..e12cddf234 100644 --- a/include/exec/tlb-flags.h +++ b/include/exec/tlb-flags.h @@ -27,12 +27,13 @@ =20 /* * Allow some level of source compatibility with softmmu. - * Invalid is set when the page does not have requested permissions. - * MMIO is set when we want the target helper to use the functional + * INVALID is set when the page does not have requested permissions. + * FORCE_SLOW is set when we want the target helper to use the functional * interface for load/store so that plugins see the access. */ #define TLB_INVALID_MASK (1 << 0) -#define TLB_MMIO (1 << 1) +#define TLB_FORCE_SLOW (1 << 1) +#define TLB_MMIO 0 #define TLB_WATCHPOINT 0 =20 #else diff --git a/accel/tcg/user-exec.c b/accel/tcg/user-exec.c index 7704e4017d..e4629b837d 100644 --- a/accel/tcg/user-exec.c +++ b/accel/tcg/user-exec.c @@ -769,7 +769,7 @@ static int probe_access_internal(CPUArchState *env, vad= dr addr, if (page_flags & acc_flag) { if (access_type !=3D MMU_INST_FETCH && cpu_plugin_mem_cbs_enabled(env_cpu(env))) { - return TLB_MMIO; + return TLB_FORCE_SLOW; } return 0; /* success */ } @@ -804,7 +804,7 @@ void *probe_access(CPUArchState *env, vaddr addr, int s= ize, =20 g_assert(-(addr | TARGET_PAGE_MASK) >=3D size); flags =3D probe_access_internal(env, addr, size, access_type, false, r= a); - g_assert((flags & ~TLB_MMIO) =3D=3D 0); + g_assert((flags & ~TLB_FORCE_SLOW) =3D=3D 0); =20 return size ? g2h_vaddr(env_cpu(env), addr) : NULL; } --=20 2.43.0 From nobody Sun Jul 26 10:09:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1783457940; cv=none; d=zohomail.com; s=zohoarc; b=VDJKisQy3vc7Oo7yRquZHXBc9Sm48VRLcz3BTS+dmt3DU4d6bedVAicXmTCL+kdDQx9rN6dw/6yEHwWpbzgiVvkbtSsIay19zLL0aB7iIt+0VQ2gH+b9gtZ3R+7HwST7ZaIp7kwrM1QGa8hJ8FFay8rggSDsKZrGxQWcGEyXDak= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783457940; h=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=CecBT2dF5louTPlKf1XneGUwb8vKhmmqWyIT5qnKcOs=; b=MD3TIOjDYQmGEpTmX5EMytFh2I1M9FgGYPDoyErW65Imq4bAOiZHFMju3GFNXpcfyXHB0WVudvvVe58wjW9/m9WzSj2Wer+QE7sCr/NOF+rQ5qjFg6g5gjHj20fHCWyiHv/onBVdOCleSRby51tVmP90Z1Zxrk5+e+OYJlkL/xw= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1783457940867622.4107505834629; Tue, 7 Jul 2026 13:59:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1whCs1-0004Nl-BL; Tue, 07 Jul 2026 16:58:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1whCry-0004LU-9x for qemu-devel@nongnu.org; Tue, 07 Jul 2026 16:58:18 -0400 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1whCrw-0003TF-8T for qemu-devel@nongnu.org; Tue, 07 Jul 2026 16:58:18 -0400 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-2cacd69a9c0so221855ad.1 for ; Tue, 07 Jul 2026 13:58:15 -0700 (PDT) Received: from stoup.. (71-212-39-188.tukw.qwest.net. [71.212.39.188]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9d3bc2asm17980575ad.69.2026.07.07.13.58.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2026 13:58:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1783457895; x=1784062695; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=CecBT2dF5louTPlKf1XneGUwb8vKhmmqWyIT5qnKcOs=; b=Yyhc4RmJHBUH6OrHT2iZqKAK+G+7W2YDlP2629IN2fgD4ZIOOZmUQzNur2zm0sUB3h UvVOeU1sbZ6oTHwlXgfX1vquKjXotFQ9qQlO38tRKliD1fsszWZraDBgH31A/LQMUGup y6uwPDDscdz30yPieAeBSvhisjDIUA1Ca79bSHsGpe4gItyUOc3Sh6HVuOSjEC7PqrnF uBKsC5bGTCMe3R83G5fzYjbJroqJVT+BtK+YNStkaxM4FRtkvEMVWGixDn77FuBTm4iJ UhJQ11QNyrNQAXyx9vErf0F7C8jho21xPiqTA51p6CTqQcsmut/S3+YbSueDYdx2hjRV lTog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783457895; x=1784062695; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=CecBT2dF5louTPlKf1XneGUwb8vKhmmqWyIT5qnKcOs=; b=aeYhnO6AU/gDWkvnK6Q6dIeo6y+DJMGD6Ys0id6jgS6MzsJRzVzPemsyjMf2CsgP6s BnnxthhasqECUyJFitpPPlF8RUTE6d/KZLyo7fDwFvFhXhR2YwUpr6A0xcU56WbvbEGs OGt++cjBdKjkZXqFpOLnZ2RZh8ZSkZx1Ry/6qLMACWmXo0XeNhtdhuTLtVyDzVFWXFFQ sm1MzrjKAwpEzjz786Tdue7RFvMjNf4MiO7bfP5I1gvmGbcqJVflTyCWoJ/kKahSOgHK iU2PvyqD3DQDNMhsGE58rcEfSDE8I+o5ljNpRCwYATioeME6VHNedp+pryJaMO4u0539 Jyow== X-Gm-Message-State: AOJu0YzUwdEhsjrWQD23+NGSEWa8Zb6fBh9QfZGynEghIk9lMspQnNCq B0z336HSKJzH5jdbF6pUpQpkjo9NbVQh7OeJxpU5SEs74fQXF4WgNh3omdaddXUWmx6PJfGUYYf KvNPK X-Gm-Gg: AfdE7clw97pkIt3AqW6UEXj9mqSJJ7i9Nz73YPKZhxNtaS/1lyMo6hfNO5pDx6cTbWn yGqF0T8KSN2tmjx5/f/U36jDL6iUGVqNRD1nn9v3bOr65U3iZLpiBpf0YBVffvKvLefZNe7CDjn yYif2x+Pi20ixH4E2h0qzqTQqaWZFv7oNupdLORsA5ZsduzWruto5IDAxSkulUoXgkNz8LqJkOy 2I7kzW2qUMp0GMVWshD+xm2v3N/j7TiXZLp/X5BIPQQ0xFSiUaPIz7ttLYOZ63G8Hh25Ku1iK4Z lZg/J0npfUuXoa+Fvf6lbzw9nODuYz3AO7UE2k7fDQuz4ss6aWREOZDYo3cOgf0buHCV+s6nomJ k4CrWYBJk087H4GlElGlSs8+mDJVS+Ysw/QN5IlZvAo6hdhPN32EPzw+DD1AuHXhh5qrD0LHkQr tXhUmttSvSzyX/Ux++tny/d3WNdZDDmPJV+Zl43E6F0RY3YDqmbgY/R6ejrg== X-Received: by 2002:a17:902:ef44:b0:2ca:b8fd:f31 with SMTP id d9443c01a7336-2ccbe6109ccmr57941265ad.15.1783457894383; Tue, 07 Jul 2026 13:58:14 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Ilya Leoshkevich , qemu-stable@nongnu.org, Alex Crichton , Ulrich Weigand , Pierrick Bouvier Subject: [PULL 2/6] accel/tcg: Make PageFlagsNodes' start and last immutable Date: Tue, 7 Jul 2026 13:58:06 -0700 Message-ID: <20260707205810.303376-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260707205810.303376-1-richard.henderson@linaro.org> References: <20260707205810.303376-1-richard.henderson@linaro.org> 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62a; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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 @linaro.org) X-ZM-MESSAGEID: 1783457942666158500 Content-Type: text/plain; charset="utf-8" From: Ilya Leoshkevich page_check_range() may race with pageflags_set_clear() as follows: T1 T2 ------------------------------------- -------------------------------- p =3D pageflags_find(start, last= ); interval_tree_remove(&p->itree, ...); p->itree.start =3D last + 1; if (start < p->itree.start) { ret =3D false; interval_tree_insert(&p->itree, ...); leading to errors like fail indirect write 0x72f0a659aff0 (Bad address) in vma-pthread test. I am able to reliably reproduce this on a machine with 32 SMT threads as follows in about 25 seconds: jobs=3D32; \ seq "$jobs" | \ time -p parallel \ --jobs=3D"$jobs" \ --halt=3Dnow,done=3D1 \ --ungroup \ ' _=3D{}; while ./qemu-s390x tests/tcg/s390x-linux-user/vma-pthread; = do printf .; done ' Also wasmtime project reported a similar failure pattern in their CI [1] with a similar reproducer [2]. There are other races like this. In general, region bounds mutating underneath the reader are very hard to reason about. So fix this by preventing mutations and creating copies instead. Use RCU guards in readers to avoid uses-after-frees. Now, when the reader finds a node, it may fearlessly access its fields and be certain that at some point in time the respective region had the respective bounds and permissions. The downside is slightly more expensive mprotect(), but complexity reduction is worth it. Lockless field accesses should probably be wrapped in qatomic_read(), but this is a pre-existing issue, so do not change it here. [1] https://github.com/bytecodealliance/wasmtime/issues/10000 [2] https://gist.github.com/alexcrichton/f14f23a892ffb9df2522754572d51b1c Cc: qemu-stable@nongnu.org Reported-by: Alex Crichton Reported-by: Ulrich Weigand Fixes: 67ff2186b0a4 ("accel/tcg: Use interval tree for user-only page track= ing") Signed-off-by: Ilya Leoshkevich Reviewed-by: Richard Henderson Reviewed-by: Pierrick Bouvier Signed-off-by: Richard Henderson Message-ID: <20260706165445.57418-2-iii@linux.ibm.com> --- accel/tcg/user-exec.c | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/accel/tcg/user-exec.c b/accel/tcg/user-exec.c index e4629b837d..a35aca7889 100644 --- a/accel/tcg/user-exec.c +++ b/accel/tcg/user-exec.c @@ -239,13 +239,16 @@ void page_dump(FILE *f) =20 int page_get_flags(vaddr address) { - PageFlagsNode *p =3D pageflags_find(address, address); + PageFlagsNode *p; + + RCU_READ_LOCK_GUARD(); =20 /* * See util/interval-tree.c re lockless lookups: no false positives but * there are false negatives. If we find nothing, retry with the mmap * lock acquired. */ + p =3D pageflags_find(address, address); if (p) { return p->flags; } @@ -301,15 +304,15 @@ static void pageflags_create_merge(vaddr start, vaddr= last, int flags) =20 if (prev) { if (next) { - prev->itree.last =3D next->itree.last; + pageflags_create(prev->itree.start, next->itree.last, flags); g_free_rcu(next, rcu); } else { - prev->itree.last =3D last; + pageflags_create(prev->itree.start, last, flags); } - interval_tree_insert(&prev->itree, &pageflags_root); + g_free_rcu(prev, rcu); } else if (next) { - next->itree.start =3D start; - interval_tree_insert(&next->itree, &pageflags_root); + pageflags_create(start, next->itree.last, flags); + g_free_rcu(next, rcu); } else { pageflags_create(start, last, flags); } @@ -371,8 +374,8 @@ static bool pageflags_set_clear(vaddr start, vaddr last, if (set_flags !=3D merge_flags) { if (p_start < start) { interval_tree_remove(&p->itree, &pageflags_root); - p->itree.last =3D start - 1; - interval_tree_insert(&p->itree, &pageflags_root); + pageflags_create(p_start, start - 1, p_flags); + g_free_rcu(p, rcu); =20 if (last < p_last) { if (merge_flags & PAGE_VALID) { @@ -394,11 +397,11 @@ static bool pageflags_set_clear(vaddr start, vaddr la= st, } if (last < p_last) { interval_tree_remove(&p->itree, &pageflags_root); - p->itree.start =3D last + 1; - interval_tree_insert(&p->itree, &pageflags_root); + pageflags_create(last + 1, p_last, p_flags); if (merge_flags & PAGE_VALID) { pageflags_create(start, last, merge_flags); } + g_free_rcu(p, rcu); } else { if (merge_flags & PAGE_VALID) { p->flags =3D merge_flags; @@ -419,8 +422,8 @@ static bool pageflags_set_clear(vaddr start, vaddr last, if (set_flags =3D=3D p_flags) { if (start < p_start) { interval_tree_remove(&p->itree, &pageflags_root); - p->itree.start =3D start; - interval_tree_insert(&p->itree, &pageflags_root); + pageflags_create(start, p_last, p_flags); + g_free_rcu(p, rcu); } if (p_last < last) { start =3D p_last + 1; @@ -432,8 +435,8 @@ static bool pageflags_set_clear(vaddr start, vaddr last, /* Maybe split out head and/or tail ranges with the original flags. */ interval_tree_remove(&p->itree, &pageflags_root); if (p_start < start) { - p->itree.last =3D start - 1; - interval_tree_insert(&p->itree, &pageflags_root); + pageflags_create(p_start, start - 1, p_flags); + g_free_rcu(p, rcu); =20 if (p_last < last) { goto restart; @@ -442,8 +445,8 @@ static bool pageflags_set_clear(vaddr start, vaddr last, pageflags_create(last + 1, p_last, p_flags); } } else if (last < p_last) { - p->itree.start =3D last + 1; - interval_tree_insert(&p->itree, &pageflags_root); + pageflags_create(last + 1, p_last, p_flags); + g_free_rcu(p, rcu); } else { g_free_rcu(p, rcu); goto restart; @@ -505,6 +508,8 @@ bool page_check_range(vaddr start, vaddr len, int flags) return false; /* wrap around */ } =20 + RCU_READ_LOCK_GUARD(); + locked =3D have_mmap_lock(); while (true) { PageFlagsNode *p =3D pageflags_find(start, last); --=20 2.43.0 From nobody Sun Jul 26 10:09:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1783457963; cv=none; d=zohomail.com; s=zohoarc; b=Ym2+g+TFsd3jUpSkXR1mxukCObWzBL11FoJ59cGAmaGDqjIZfAn4WZZJPePvLguLwS/npZ9xAkt4z/aRrv+0beRSb6qjN4F+BDguhGSvURMW0moiwcxPYB1rWgjla67ocGKplxY1FfgNrEhqStK3/WPO7UlGnrx26V2nzE5iiXA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783457963; h=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=yjtxehokH/ej11h4Z6W3EWTYi+9mWUSrSkuq/wcNtMg=; b=XlDT6tOpkRbQdzufwKyotSoLQqb9X0Q4LVZVMZeItm99j6YIsFdto8pZGKG8YLshYy/TqGHxGegPXB+aemfDiIG5dm1UomzKZ2/kLfMxdCprIMJWMOVQE3yqy3uy6dZ7Qe6Dc5hBwljgMjc3b0bCsVTwnvgTG1oBWzoyzRPaoKg= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1783457963469424.99075902946345; Tue, 7 Jul 2026 13:59:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1whCs2-0004OU-Fo; Tue, 07 Jul 2026 16:58:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1whCry-0004MF-TW for qemu-devel@nongnu.org; Tue, 07 Jul 2026 16:58:18 -0400 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1whCrx-0003Td-CR for qemu-devel@nongnu.org; Tue, 07 Jul 2026 16:58:18 -0400 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-2c6b67d5fa1so177935ad.2 for ; Tue, 07 Jul 2026 13:58:16 -0700 (PDT) Received: from stoup.. (71-212-39-188.tukw.qwest.net. [71.212.39.188]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9d3bc2asm17980575ad.69.2026.07.07.13.58.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2026 13:58:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1783457896; x=1784062696; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=yjtxehokH/ej11h4Z6W3EWTYi+9mWUSrSkuq/wcNtMg=; b=hCmL4fGhQ3Uly84wXlpLRo0Je3qft9PZZ6Bf3nQL1tk9YilcH4qFc5umbt0dCrKBba PDAni8Ca4/1rrXHjg20PV94LmhznnrwzFHghrq5wJYQY5U9XXdbgMi9HQdvR2SOXSISM MGk9bxq/CvSTpUprZV0R0q67OTP4+VV07Nn+N6TB76p4NcBKW7hrg1R9xJFQpdQQ8XX6 EXwCpgUX/U9nyjpjja5Iddy3RKR7iv7voVHaFQrNVmW4PeoTYaenUQ535O7UGulJQIj7 Vbo+ZlTP1FXpEH15BviuLBqnO94Rzkjd4gYJJP4/Ne1JzzCn26Zc9ZS20LKKa7ycKbjW mBLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783457896; x=1784062696; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=yjtxehokH/ej11h4Z6W3EWTYi+9mWUSrSkuq/wcNtMg=; b=ZSbNGMiUKgzveL13HRhYLRnwf7zf4Sgxu+aYHPLPQjtyw2+BW5+zDXyqcdaYHbFJxE 11MgsSCbJA/s796N33GGSYCGBIzbng0Jx0XtwsN4r5Gq0CTubWsUZu8lrWk5dmCNQdI6 QuSIm5ypeKpekkNbODFG/jywtk+EebBCNmrWg5YCc4U5KpIAdf3fQXopAc2xkK4TxUYU Eq1JrBP3cANFjeaiaiOtkdYNjPXs30C2JftirzLwNahxEt6DJxRlxltMemK5Of1bNAhD TKFSmWdecjoG9I/cemLMXWXajvG7YLQooeW7JWPa+/+LEU5IzlaQUsO7+2UnC56XTYYC OCCg== X-Gm-Message-State: AOJu0YwwXqfPrqeZfO9ZxdBxJINSLlWmDpCJHzIXfNPR4uM3DxkDDbxn e2GmggZsCHatF2oRyEHoH429chXHSNDcPqyL1Fz9EzLa5RXQkK2E5z4WdP0G8vYotEODMWCDkid HGIVD X-Gm-Gg: AfdE7clkIM2IhcCtJ+JoPgDRM8FjWM38UxRHFR91Q8moKP8uYdJshNlyI5fMSZyHFwV xmA4o7Qp8d26R1XOKOkuvSb7kz0FgzmWqWUyD/vzM2OCgrbW56yySy8kgLD1DE7NeGROk7U0kIs l4q69d1Necz+g4Y1+54ZoluGI0t2TMsCKBl8m93VKXEDp7LqbM/X2u+olY3Dnzs5psModNe0X2F 2AAF4FWfIK/yI8DYNGgudvjSZIXUyuXnMn67VUTJksAN59o3qPn+fYQTPOh8a5zswq3eRup/L2v KtXkHCDck/TUUZnKDw3gar6Eh2JfLquGsf5u5zvqGNewWnZwh37NhJg1uYZBXyvZ0CgivF70mpa 0b9NYgBSUXDugJFxro3rbrklaDlciy3DrHiE5EoaAy1a02gYa7ZT6mEdZQJ90n9lWDkxPNSQgNm fxQKc9N4hAH1CqI82x13NjexRId+5EPosSkGFSAxPv0lM312I= X-Received: by 2002:a17:903:3d0d:b0:2ca:53e9:1277 with SMTP id d9443c01a7336-2ccbe3fea24mr65683765ad.1.1783457895850; Tue, 07 Jul 2026 13:58:15 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Ilya Leoshkevich , Pierrick Bouvier Subject: [PULL 3/6] tests/tcg/multiarch: Improve mutator randomness Date: Tue, 7 Jul 2026 13:58:07 -0700 Message-ID: <20260707205810.303376-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260707205810.303376-1-richard.henderson@linaro.org> References: <20260707205810.303376-1-richard.henderson@linaro.org> 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62a; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: qemu development 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 @linaro.org) X-ZM-MESSAGEID: 1783457964236158500 Content-Type: text/plain; charset="utf-8" From: Ilya Leoshkevich Currently mutators perform the same actions, because the RNG seed is derived from the current time in seconds. Mix in thread ID. Signed-off-by: Ilya Leoshkevich Reviewed-by: Richard Henderson Reviewed-by: Pierrick Bouvier Signed-off-by: Richard Henderson Message-ID: <20260706165445.57418-3-iii@linux.ibm.com> --- tests/tcg/multiarch/vma-pthread.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/tcg/multiarch/vma-pthread.c b/tests/tcg/multiarch/vma-pt= hread.c index 7045da08fc..0b8ce9751b 100644 --- a/tests/tcg/multiarch/vma-pthread.c +++ b/tests/tcg/multiarch/vma-pthread.c @@ -11,6 +11,7 @@ * pages, which are guaranteed to have the respective protection bit set. * Two mutator threads change the non-fixed protection bits randomly. */ +#define _GNU_SOURCE #include #include #include @@ -121,7 +122,7 @@ static void *thread_mutate(void *arg) unsigned int seed; int prot, ret; =20 - seed =3D (unsigned int)time(NULL); + seed =3D (unsigned int)time(NULL) + (unsigned int)gettid(); for (i =3D 0; i < 10000; i++) { start_idx =3D rand_r(&seed) & PAGE_IDX_MASK; end_idx =3D rand_r(&seed) & PAGE_IDX_MASK; --=20 2.43.0 From nobody Sun Jul 26 10:09:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1783457940; cv=none; d=zohomail.com; s=zohoarc; b=n3OumRuh3KV16SKJJqmfbmK/USLYQUkHHNWygSOX3EofKkIWsHkyUtV3pLrnAUSnMEJXCxC+QwKPfXt9E1bltDUu5bCBSEZuIC67h3e8bN/yYhCx0QX7IqMFWtczQyETHL+SwVdo7sHH+q0cHrTQS53E/1uz/9UoM0RGJYG+hgY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783457940; h=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=ONeQxTX6zVeyaqgGj5YDAsOZioB0I+Oo3ukHN35N4cQ=; b=MF/y+QS4+Kax4MIE2qYX2j3+3sG2xaYDhIrnluaiNRyNVg7RiOS5tp4TZn4vw6jVYAegCawfDp+P3UpuwfhLeO2iGCcytQUn/LPvognvNoyODfjAF/Ehswx5/+uZDoytLTC/fS/g1MLi8sTwHg1VpQtcNxSAQ3Y+6IG9JW7Udzc= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1783457940714737.0283622299812; Tue, 7 Jul 2026 13:59:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1whCs1-0004Nj-6v; Tue, 07 Jul 2026 16:58:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1whCrz-0004MU-Mr for qemu-devel@nongnu.org; Tue, 07 Jul 2026 16:58:19 -0400 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1whCrx-0003Tl-W2 for qemu-devel@nongnu.org; Tue, 07 Jul 2026 16:58:19 -0400 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-2cc891373e0so191555ad.2 for ; Tue, 07 Jul 2026 13:58:17 -0700 (PDT) Received: from stoup.. (71-212-39-188.tukw.qwest.net. [71.212.39.188]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9d3bc2asm17980575ad.69.2026.07.07.13.58.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2026 13:58:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1783457897; x=1784062697; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=ONeQxTX6zVeyaqgGj5YDAsOZioB0I+Oo3ukHN35N4cQ=; b=hMiNti7cVlPaXxco9S9DlWIkpQFa27fCOH4JnKP68+HFcfJJpwOG8XRESy8yo8M5ZD 9OeN+Q8zuVjRwwBrywiydx5wl0MJWabxGDW3uyMBmbPRAZfcUoa1S1mGJorzaon19Dm6 J3cEBOIsYgTwJtOt1mgZWhmaovdUyXmcPr/IN9IpAoyQwR91SC5Asn8yxe2Zjly56NN7 AomlJSwzGSzluQE7Esv+ewJbsJPHeMmcS0KmvYPsYR6K0DTerAKucg0B4qcjfYesliMh 69Buzs+ZbQ/dMww+hnUXj/sjUjDRk8ZworFSuT5xjWVztfmKwfdP/ZdxQtXu5fUXLBie EiFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783457897; x=1784062697; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=ONeQxTX6zVeyaqgGj5YDAsOZioB0I+Oo3ukHN35N4cQ=; b=Cah8LNnC09+8LY4yB1fc4DgCkQ5kOO3j2yscNuZ8GCAh/oVdqShhscE6TjEymNnq6O kUijqRTTOmZcoFKG8+sC6VB/wBod5OUe1mnZc0dX5Fk7hzvI6UQfO8o1vI+2ToeoyNQ0 XNWVT1UoxPwATzdyJZr1EDnY+XcTzJM8gyp3S2z+M10BS3wQ9mUFlsAKw11jjj1G71YM YvawSXKqEzTLv3iwglXmNWG1ZhH6I/yb+SKkgWHROquIZ7Wmx8rVda5twsGh2iFxg5me e0dk6egNewp2NR/64ozMf8b0gpL0GSnr9RJky4xCjeXi6ec+4CpIHBL73lBOnQqe7OzH zoCA== X-Gm-Message-State: AOJu0Yyb3hCGztEIzDiNfKlXblqsfM5SzWCzk02btgdZE0+rfcG2Ceqj IRNu+6lrO6nD/kGPxEXCqRsI7c4VOJbdh2RDIEHFBQmIjm89BWcHhjLpRINazggYjBVD00lQ0h3 LWJby X-Gm-Gg: AfdE7cmpmyoMQtT3nu4IodR+J+lDs/Sux/lhbMHo9LwpvKFx6yKPrz3AHLpGOgKCtAE TuHruFsAKQYq1R0o+d4EWFH4dQtV5rHrSeJhU0iaBG+vnpryqdqg1cT7YjsuaZ9uR1s2bKyJJ0t X/Ar7Ih6SOg5r1/DrkNk2jypl6+dT0bkH6yvzeQZ/O15sp6k0dYenNOYuOjn44P3jFhFOPKhBND KVMhdJCDiYvbOtEjhvqQ8Sp3++V/Prf2mpW458om8fKdtAVQJZ+NNmqIhRQrvn3JUQ0hwl9urNm a/E5QhgrFnCkTnYgoWelvgE+WHPmpyr2odlex9h4dZF2GB7JZywcvqfS22N0yyrV9lpJDzz4cuk aUDFatou+aa+3yvcfO8xfo5Ce+/PqO6nfJ08qp2pzIVdsuejjaJVzoPO1a+vuCKV9iekuQI9w99 v/hPfsagGHVvhSf5hTcfYJI5qo01TfuW9raDUYnpopXJUGMeg= X-Received: by 2002:a17:903:2986:b0:2cc:ae2b:b6d2 with SMTP id d9443c01a7336-2ccbe615d32mr63129715ad.15.1783457896559; Tue, 07 Jul 2026 13:58:16 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Ilya Leoshkevich , Pierrick Bouvier Subject: [PULL 4/6] Revert "tests/tcg: skip the vma-pthread test on CI" Date: Tue, 7 Jul 2026 13:58:08 -0700 Message-ID: <20260707205810.303376-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260707205810.303376-1-richard.henderson@linaro.org> References: <20260707205810.303376-1-richard.henderson@linaro.org> 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62d; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: qemu development 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 @linaro.org) X-ZM-MESSAGEID: 1783457942625158500 Content-Type: text/plain; charset="utf-8" From: Ilya Leoshkevich Now that the page_check_range() race condition is fixed, let vma-pthread run on CI again. This reverts commit 5842de51573fdbd7299ab4b33d64b7446cc07649. Signed-off-by: Ilya Leoshkevich Reviewed-by: Richard Henderson Reviewed-by: Pierrick Bouvier Signed-off-by: Richard Henderson Message-ID: <20260706165445.57418-4-iii@linux.ibm.com> --- tests/tcg/multiarch/Makefile.target | 9 --------- 1 file changed, 9 deletions(-) diff --git a/tests/tcg/multiarch/Makefile.target b/tests/tcg/multiarch/Make= file.target index 508149d57b..ab4bf9c5d5 100644 --- a/tests/tcg/multiarch/Makefile.target +++ b/tests/tcg/multiarch/Makefile.target @@ -60,15 +60,6 @@ tb-link: LDFLAGS+=3D-lpthread # code to work around the compiler. sha1: CFLAGS+=3D-Wno-stringop-overread -Wno-unknown-warning-option =20 -# The vma-pthread seems very sensitive on gitlab and we currently -# don't know if its exposing a real bug or the test is flaky. -ifneq ($(GITLAB_CI),) -run-vma-pthread: vma-pthread - $(call skip-test, $<, "flaky on CI?") -run-plugin-vma-pthread-with-%: vma-pthread - $(call skip-test, $<, "flaky on CI?") -endif - run-test-mmap: test-mmap $(call run-test, test-mmap, $(QEMU) $<, $< (default)) =20 --=20 2.43.0 From nobody Sun Jul 26 10:09:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1783457940; cv=none; d=zohomail.com; s=zohoarc; b=cyCGTNvPSNM0Yvzjn0Lv0maKvyDEcvP2u9SsD/oczaTKLPC9h4THhdOv9IfqxKOajRWRjY13iZXZ2RlaGR0K7Jxi+7r9MUmtc/JHbAdoZzy8Uw23l6/IU3JwtObDChrKW28bI/QXVPPGTWmKR2GF890NlONfgqnxQy7txZ9oTGw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783457940; 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=6NVpDPyyHA3ywWGQbRAIp5lwe7VyQhAC42/S8ZUUiho=; b=AZCwLte1E2lmOK2JzbduZSaPfdx7fWsOvPVazx8fRLbPLAIJHXxpWedbQE8B30ysgpAfenDcTwBZVofOi8JUF9tt7763ElU7K22qLjXEyjdHeVliOJTa6ckFCfhpd4QbOjCe+Wm2sDxSlCKCPmfM/UYE6SGKgPc7ELYRjerKKiw= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1783457940784122.72291040528387; Tue, 7 Jul 2026 13:59:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1whCs3-0004Os-R3; Tue, 07 Jul 2026 16:58:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1whCs0-0004N8-NP for qemu-devel@nongnu.org; Tue, 07 Jul 2026 16:58:20 -0400 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1whCry-0003UA-U1 for qemu-devel@nongnu.org; Tue, 07 Jul 2026 16:58:20 -0400 Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-2ccdb73f0e1so121305ad.3 for ; Tue, 07 Jul 2026 13:58:18 -0700 (PDT) Received: from stoup.. (71-212-39-188.tukw.qwest.net. [71.212.39.188]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9d3bc2asm17980575ad.69.2026.07.07.13.58.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2026 13:58:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1783457897; x=1784062697; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=6NVpDPyyHA3ywWGQbRAIp5lwe7VyQhAC42/S8ZUUiho=; b=ui/Uue4Y9nA5LRK2zHnnzNyShMR9Yz0PnX3o30FPHc6J+E58Ze6plWRIPUYwe+IfD5 pZh0ARAs0V+6uT3vXVXfupueLLCedDqDC5PsB8sQzRNGXBAuQ+Y2AI537dHLCrPSKWMJ ry+GNJd/4WZ7hZJum2CfCUO12yWLIAk2/fLkb6l2t/tty2ezPlBoePSaWcU2lYc+FhWO Do2NSCXIb6iUDEkKQp5kgXmuvsI4M670oNcjIjizJnQ3xygVyo3o1jEVFvoWlRC0/6ky tV1XqqaXHLsnFF34PZvNlFPs4FY3jDR6BrSAWN3WDKr2ll5Zv3W6ShliV/ZO0XbHJNmv +T2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783457897; x=1784062697; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=6NVpDPyyHA3ywWGQbRAIp5lwe7VyQhAC42/S8ZUUiho=; b=EWxM0ZILC+yUmQs3T5Lm8O2dK/35tlWoRrkChtimNj3kBE3cmq1bORnyOXzHEWHVW+ Yj8mlm4yNhb6J5iWRgvblNx7cmPqv4Fu1kqgf5EThzkoNDCVCwa3fi5QcJ/5pqAwz4SG uQtlT9SjKcX2rqa9qYJqmIgTRerdpogbEh2ayL5zCJKzXAnzByg3ntASC2BNizau9jjA MAfWUfrZv68ZI04xdtEUb1CuVcWVHlpEFFyXVb3yV5ogJGF7rnQQs1Dq1rXsyuw+LRT+ zClJc4PQwX4avT9ED9XOyym+u49/C9A3AK7gqNdigxspisq11C47SaGwCa1UGAS7Tg8K cCwA== X-Gm-Message-State: AOJu0YxclfIgHxL8V9MrU7yaGrnc/S9qzrCLVfY6Aj/ugw9joGVhXEfz RRabab2uftVc7YO1dxPLkaz5dMvFaCrbmVAKSrpahyrMNGSbvWYH2xMHSwf02abH0TMaGSD2+le jQBKq X-Gm-Gg: AfdE7cl9njfb7zhvbY+9MyYfpNFnw4fzl9Ge1NnjQBzwCQYT7wP6dtKLsP5UpMm+Xf2 EaiXBb7cEuHGE38uAUhhuI1EwFOycikDs9i7iEzbOrwWpWsosaZFnMm04nWOf6V8rzkh8DHu8jO vxpzP4CRf9oPOoBeAi0hA46b3JrKg2qkKsEEmxV0bCXaUhweWElBGPpdoH2PeM8g078PvHwdDTo 43e+jbWGLH+K/M5njPWx2kvUExjy5jp3/uNtFN4yP9qjPelsl05o+IZaU1CtFmcRl7c+C+NTxMt CNl5m+GGe4eUvUjvQEYLNPvc7AZC7KCCGKZ6wS3hn3WJCVATGNfAseg4SP4POrl2jIyxEwS7F3p vQhBIxPcg6LGllS5Op4sxyH2NqQ/sRs4SEXCd+BDM0MfUjAHN8ZbONVYWk5JHE79v9zhnOq7m+r Iz/HJwmz9V+utN1yuwQz5hT08ni3S0dqEFao63I4V6CGdUHr0= X-Received: by 2002:a17:903:40c9:b0:2cc:d69a:354a with SMTP id d9443c01a7336-2ccd69a39c6mr25467975ad.22.1783457897368; Tue, 07 Jul 2026 13:58:17 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Andrew Jones , LIU Zhiwei Subject: [PULL 5/6] tcg/x86_64: declare MO_ATOM_WITHIN16 host atomicity support Date: Tue, 7 Jul 2026 13:58:09 -0700 Message-ID: <20260707205810.303376-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260707205810.303376-1-richard.henderson@linaro.org> References: <20260707205810.303376-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62c; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: qemu development 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 @linaro.org) X-ZM-MESSAGEID: 1783457942661158500 From: Andrew Jones Just like aarch64's prepare_host_addr(), x86_64 should use MO_ATOM_WITHIN16 for the memop when it's capable. Unlike aarch64, which needs to check a CPU feature, x86 has been capable since P6 family processors and newer (see Intel SDM Vol. 3 =C2=A711.1.1). Since a 16-byte aligned region always fits within a 16-byte multiple sized cache line (x86_64 implementations always have cache lines of at least 64 bytes), then this enables riscv cpu models with Zama16b to use the fast path, just as cpu models without Zama16b do. Cc: LIU Zhiwei Signed-off-by: Andrew Jones Reviewed-by: Richard Henderson [rth: Update both atom_and_align_for_opc calls] Signed-off-by: Richard Henderson Message-ID: <20260707122819.114105-1-andrew.jones@oss.qualcomm.com> --- tcg/x86_64/tcg-target.c.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tcg/x86_64/tcg-target.c.inc b/tcg/x86_64/tcg-target.c.inc index 92251f8327..1fc45e4ec6 100644 --- a/tcg/x86_64/tcg-target.c.inc +++ b/tcg/x86_64/tcg-target.c.inc @@ -1783,7 +1783,7 @@ bool tcg_target_has_memory_bswap(MemOp memop) * Reject 16-byte memop with 16-byte atomicity, i.e. VMOVDQA, * but do allow a pair of 64-bit operations, i.e. MOVBEQ. */ - aa =3D atom_and_align_for_opc(tcg_ctx, memop, MO_ATOM_IFALIGN, true); + aa =3D atom_and_align_for_opc(tcg_ctx, memop, MO_ATOM_WITHIN16, true); return aa.atom < MO_128; } =20 @@ -1934,7 +1934,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext= *s, HostAddress *h, *h =3D x86_guest_base; } h->base =3D addr; - h->aa =3D atom_and_align_for_opc(s, opc, MO_ATOM_IFALIGN, s_bits =3D= =3D MO_128); + h->aa =3D atom_and_align_for_opc(s, opc, MO_ATOM_WITHIN16, s_bits =3D= =3D MO_128); a_mask =3D (1 << h->aa.align) - 1; =20 if (tcg_use_softmmu) { --=20 2.43.0 From nobody Sun Jul 26 10:09:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1783457962; cv=none; d=zohomail.com; s=zohoarc; b=gLcApRoDwh04vdyioJCZxdgJwiPYfsNFZDVgtbQrHUlEH12rh+juOJpwyE2AyOgd0ClKl/9zRXewm0Ptl6roQpuvc1tWvCK/xPvE1LKudNTYFV1vIXRd0zld6rvmLTUjIUqXShPnaUjMUv/eDvsIbSoECqMXxpkrcqBpoFXX4bU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783457962; h=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=uewRDOC/H1Jp6765rXTUlsAYMglZskvHQznabA1q3mc=; b=W4e6pB8bKQOeEdp80kyuEzN8oSaHnfeXzfiQzoO87YwrD3Ry23dPMg5QIkQ/uuU6iIFYSh9OzDAhR3QnpKsT9gnk/lqZKH+KzHHtQsXkCILZRYTIsgWgRPlxczDz1FQJCi3gN4kuqHbBwlDQ5P4AByEeI0zySKoYDo4BDX6QXDQ= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1783457962187976.8706279219714; Tue, 7 Jul 2026 13:59:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1whCs2-0004Oa-N7; Tue, 07 Jul 2026 16:58:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1whCs1-0004No-D7 for qemu-devel@nongnu.org; Tue, 07 Jul 2026 16:58:21 -0400 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1whCrz-0003Uz-R7 for qemu-devel@nongnu.org; Tue, 07 Jul 2026 16:58:21 -0400 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-2caed617615so204555ad.3 for ; Tue, 07 Jul 2026 13:58:19 -0700 (PDT) Received: from stoup.. (71-212-39-188.tukw.qwest.net. [71.212.39.188]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9d3bc2asm17980575ad.69.2026.07.07.13.58.17 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2026 13:58:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1783457898; x=1784062698; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=uewRDOC/H1Jp6765rXTUlsAYMglZskvHQznabA1q3mc=; b=lKEixj3fvhF0cHL787A/dfIz2fy5aatW6vIBqDqsYXuXiFzyh55hzc7rwVBE+eJiKV 870mZvtnbrcullKApIbcD2OXO+4YAV7YYcPG2BgnPA+h/oLexSt2Bnsin1iBb0cATg5d R/4b04LhmAbQf9RQyXYxrErqDqxxrE007lwmey86MztHnIq64PPrXkQp/+t7WHc1Thrm Gxqsl25EneyzIh4hoMddyV9EBVqIG7RVEOQ6N24uijeSvK4RsxY+pzSJgDjk0nmxxrJP +woyzozhILGr4sGmX76mSaQgfvoPAEYOAU3z97CDKDO7LcbHxwdTiH7vuUTVWwAytRMH /NhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783457898; x=1784062698; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=uewRDOC/H1Jp6765rXTUlsAYMglZskvHQznabA1q3mc=; b=ZpOPfN2oWp1CUysT8s8VQcOtKqFZa9ypJAeCkpwHioTasRNnQSM9bTzfo28TPxnx6Y EjW+6GlJ6EFOWkKq6vuHXNlMK7hJPuc+1b+m9SxSpePgy3C2mz2nzgbxLtWvEP4GlL+P 2XLXfCV8hwIKBrEQ2WH8HWjcD97UilSMyvW70fyqaU6OQzUboVvKo/uKldXQRmoE5/Dy VPpf1cdsdIVBjen1Pf4I87EXabJ65bY27R0WfMzEGzM0aohaRudOfU8Fi2SWtiG2B8IA U5s5itqaVWNrhrAvLMlQTrf+iiA8Q764W11Tg+Nq1E1oRCuAOQt1LbpMtf8S2nVEOyw2 2Ecw== X-Gm-Message-State: AOJu0YxQrQKf4GDAOL0fK/rNgYhHog3tGP3ljUjnzIwDjmiqFIDbTuf8 6+QI1lr7QmHASyc6RNJpPw4KrhX2dmeo35FdSG9IT5du4DT/EZqVe9fFwDZdPaUoD3wRViKWY5V iDN/d X-Gm-Gg: AfdE7ckTwKhyUKaMP1E2Fal6HxV+DOcJTnJXJQhae4cVlisd7d9PBzPeecnd6GLpU9L bUUWrrpmYqQs0xrwgnIP8GjBnpFFVp0OEcjQC8hZj0+M1Vh1L9bQfwCvLIV9+PvxmvsR8k4MFVX zQC5K8pYpu0l+SfM54xr1822kO9cJJp4qoxYEd2FTipkr2Dka7xVySAByDL4J3LRW9xFITdUtr9 hMHEmtzijSBREkjQL9UbeJKDf8m6ODJTx2LIisYrODXHgzAVnG37Asnrx2rTWTJC/IxrqFju/KS 4GuomPmoGHY+7F5Qa3zffRPY3eZWlAeID0yqHUFmCRtBAcaa3VioXs4mdqn1Q8sy/3Bu/od45+Q xJqEkaoKL494qO8TRCd2o4AM4cTieJDjEfEunM2rppdBwk/3T9qKBXyuJ7KZryZgwnQkYEE49Gg upRt6cHdmFdUv/TgE1h7WCoYDxnpWeTajHSYoc32iz7RkmOxw= X-Received: by 2002:a17:902:f607:b0:2ca:bf68:2a54 with SMTP id d9443c01a7336-2ccbed285cdmr59370625ad.22.1783457898243; Tue, 07 Jul 2026 13:58:18 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 6/6] tcg/loongarch64: Fix cmp_vec with TCG_COND_NE Date: Tue, 7 Jul 2026 13:58:10 -0700 Message-ID: <20260707205810.303376-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260707205810.303376-1-richard.henderson@linaro.org> References: <20260707205810.303376-1-richard.henderson@linaro.org> 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::629; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x629.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: qemu development 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 @linaro.org) X-ZM-MESSAGEID: 1783457964244158500 Content-Type: text/plain; charset="utf-8" For NE we need to invert EQ, not swap operands. Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3589 Signed-off-by: Richard Henderson Message-ID: <20260623140609.645445-1-richard.henderson@linaro.org> --- tcg/loongarch64/tcg-target.c.inc | 39 +++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/tcg/loongarch64/tcg-target.c.inc b/tcg/loongarch64/tcg-target.= c.inc index c3350c90fc..182dcfd5eb 100644 --- a/tcg/loongarch64/tcg-target.c.inc +++ b/tcg/loongarch64/tcg-target.c.inc @@ -2371,19 +2371,36 @@ static void tcg_out_vec_op(TCGContext *s, TCGOpcode= opc, default: g_assert_not_reached(); } - break; - } - - insn =3D cmp_vec_insn[cond][lasx][vece]; - if (insn =3D=3D 0) { - TCGArg t; - t =3D a1, a1 =3D a2, a2 =3D t; - cond =3D tcg_swap_cond(cond); - insn =3D cmp_vec_insn[cond][lasx][vece]; - tcg_debug_assert(insn !=3D 0); + } else { + switch (cond) { + case TCG_COND_EQ: + case TCG_COND_LE: + case TCG_COND_LEU: + case TCG_COND_LT: + case TCG_COND_LTU: + insn =3D cmp_vec_insn[cond][lasx][vece]; + tcg_out32(s, encode_vdvjvk_insn(insn, a0, a1, a2)); + break; + case TCG_COND_GE: + case TCG_COND_GEU: + case TCG_COND_GT: + case TCG_COND_GTU: + insn =3D cmp_vec_insn[tcg_swap_cond(cond)][lasx][vece]; + tcg_out32(s, encode_vdvjvk_insn(insn, a0, a2, a1)); + break; + case TCG_COND_NE: + /* ne -> not(eq) */ + insn =3D cmp_vec_insn[TCG_COND_EQ][lasx][vece]; + tcg_out32(s, encode_vdvjvk_insn(insn, a0, a1, a2)); + insn =3D lasx ? OPC_XVNOR_V : OPC_VNOR_V; + tcg_out32(s, encode_vdvjvk_insn(insn, a0, a0, a0)); + break; + default: + g_assert_not_reached(); + } } } - goto vdvjvk; + break; case INDEX_op_add_vec: tcg_out_addsub_vec(s, lasx, vece, a0, a1, a2, const_args[2], true); break; --=20 2.43.0