From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (unknown [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id 96D07802A5 for ; Tue, 6 Oct 2026 14:58:28 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 696EvB5a025555; Tue, 6 Oct 2026 17:57:11 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 696EvB5a025555 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="SNYHEYew" Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 696EuqHm025512 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Tue, 6 Oct 2026 17:56:52 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 696EuqHm025512 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-48b028d93c5so1748862f8f.3 for ; Tue, 06 Oct 2026 07:56:52 -0700 (PDT) X-Forwarded-Encrypted: i=2; AKwUvByGEng0sM0msTLzsdFeTAMlJXGcYhr56oEMPJ3ayj43OnU9jmkR18gsxzB6hF1wLBWEBu8J2g==@openvz.org X-Gm-Message-State: AFq9FYJWpSyT161IbMykYz5TIe/jnfx5apudyAHC0I6+ZZMdPeWWDvQZ ZB3kUF7a/Iff7ng6PKV++g1xR6P5YqSn+q/VRrYkve2fXYRg5mwQvJXNcxxB4ZqsluBRU0VmhcW KBFz2dMmeKWEF5HzvjCM6x+pDOMYFXKvJ+LHJlJw7fQqL0XwDFIfXhQ== X-Gm-Gg: AYBFou1RMXJ8FUEiWa9xwE66xjX6iIqb7vLQ13UdoWU/3KhuxX4LbGNyMZLg9tW1dN9 wwXC5RaH37oBCHMCo4vq97eYmhBFElK0R/RUYikgCrZI4t5NBmDrWscOVIXmt5UxCfhbSwiqbay 4PcOjqEbmUw6nxTMRfNtYh6hswzSQ/8y3FB00L5oeLq8nFKremGqHc1drqmhlJXNex97cDq+1qs 0c9lpCuCkt7X2bWzRNUFQuT86xY0vLoomKTXW8Q16phItpfKoKhOhLt34w7/RCu0W3VWeHlFbsW Ltg+HDEh3qKTC5+8gnTLNfsiWxQD7HrFzm7Sw1blOVStArIcq0wN6Rvn8F2mShKvew6cdVSQ978 sXjpq6pTwHDXWb7ynpw== X-Received: by 2002:a05:6000:2dc7:b0:48c:41c2:46d6 with SMTP id ffacd0b85a97d-48c6d1c1c1amr3568459f8f.35.1791298612169; Tue, 06 Oct 2026 07:56:52 -0700 (PDT) X-Received: by 2002:a05:6000:2dc7:b0:48c:41c2:46d6 with SMTP id ffacd0b85a97d-48c6d1c1c1amr3568425f8f.35.1791298611649; Tue, 06 Oct 2026 07:56:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1791298611; cv=none; d=google.com; s=arc-20260327; b=iJPnY0Xp/1xeN5jgV68MyHD6gtb8dL+AaZxs7mf85NKLkaukJ0pbEQAaZBOSdBqqHF b60OadSVUhYuZRKgD7KD+mh5C7+XxwHyz+iguyYv7ruST89/JQ0ZlU2lAqgGQdDER8VS gQF1RQ1/LkeJx3aIOg8uURbOOev3QVu3cQr+G7RODxEgYVaAe7pFkY47lXYaTnaiubZf X9dAXBN64+uFB+PVsS9aGcoF3+cZy7mGv43PtBsdxM30ypk23VQkjiR2qCTMSssRxny7 RZYlMz1Qa/vontzG7MTunP+V5OeXyFUTy1rR7SlKppMNV3PJWKwyXCtoNmIvtkkHSuYP ksuQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:dkim-signature; bh=Y4lf5ZslklnJxBBxeVWa+HxjitTbpxxSc2uIa7h4RS8=; fh=bRkZfFa6377EgOVW8zBDri2gGIQqe/ZeiH+ijEM/ROI=; b=G7ka+IHR5lXr65KQKbxwwQZNWhG9dJARuH/gGL/S3+BJeOaGIohXVTQpPojatq+XNv ip/hGXWAV7+A8rLvz0aqtAwXzhaLn87EjuGQVBnw3tF9WQxaSRpQBO4D27GdPTvYkhHJ rm3gZJvkB1Xmj+GyGaIZtw5FH0B6OJVUkegX9XNHHhma6fHe+bz+RDwc5BlqCMrKc4CM VKchTbdeS/kXniaduxYO/XLwjHsTeDY8KdsRBSQgFpSS07vgjgBWdu3cSi7l9jMC+rnh p2syi+HhBNJnFv+DIXIe9Gtkxeu92+WYEJdGem2SwmqIlop1KYUZh1/QQxWdrBkDP1XC u8VA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=SNYHEYew; spf=pass (google.com: domain of khorenko@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=khorenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from relay.virtuozzo.com (relay.virtuozzo.com. [130.117.225.111]) by mx.google.com with ESMTPS id ffacd0b85a97d-48b50812e93si24175828f8f.41.2026.10.06.07.56.51 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Oct 2026 07:56:51 -0700 (PDT) Received-SPF: pass (google.com: domain of khorenko@virtuozzo.com designates 130.117.225.111 as permitted sender) client-ip=130.117.225.111; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=SNYHEYew; spf=pass (google.com: domain of khorenko@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=khorenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=Message-Id:Content-Type:MIME-Version:Subject:Date :From; bh=Y4lf5ZslklnJxBBxeVWa+HxjitTbpxxSc2uIa7h4RS8=; b=SNYHEYewzsYR3ILkiob mV+9128IcwfXKiFpDePZE9C2F9nGZwcuO7cW7/9B4uxIsaTa/X3pgtWV+EHB5nsjlmq/h2ug3AX9m eavDpojlvaRiZ79DZlK3Wl1rtdr49tuI+tjC1Kwn4G+IUjg7OxXDCu/wmj4pc6A/UrB9wvxU3biVD 4ihRdrMbAZTBH2dhOVXiz7xgEy+/O/tL2ijBMqC2Ymt7K0L743pv5H3JENjNsMQ1qTe4FQ+d+em+O +Fyii5+M8IXK4jksOpZJv5xoMuGIbYdmK3C0/58/Pky5ZVdHkbtBlGNrA/B9P+3jTUbfGwDB88R4z jfC+YyqxgtpOe3w==; Received: from ch-demo-asa.virtuozzo.com ([130.117.225.8] helo=f0.sw.ru) by relay.virtuozzo.com with esmtp (Exim 4.96) (envelope-from ) id 1xE6Xq-00DosW-1b; Tue, 06 Oct 2026 16:56:41 +0200 From: Konstantin Khorenko Date: Tue, 06 Oct 2026 16:56:38 +0200 MIME-Version: 1.0 Message-Id: <20261006-b4-prep-khorenko-vstor-148656-cpuid-v1-5-741609f4f03a@virtuozzo.com> References: <20261006-b4-prep-khorenko-vstor-148656-cpuid-v1-0-741609f4f03a@virtuozzo.com> In-Reply-To: <20261006-b4-prep-khorenko-vstor-148656-cpuid-v1-0-741609f4f03a@virtuozzo.com> To: Pavel Tikhomirov , Vasileios Almpanis X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2419; i=khorenko@virtuozzo.com; h=from:subject:message-id; bh=iXRK3hCRaDxjDjioIt8L1657G7+tgtpOqdK8Kd6DxLs=; b=owEBbQKS/ZANAwAKAVGWCkf5YVwqAcsmYgBqxQwxZ+lZNOtW9/Pn/nRE5icDZ6vX6cJv8IRuz HR2QD7csbmJAjMEAAEKAB0WIQRWD23IPcXT0GO9CCxRlgpH+WFcKgUCasUMMQAKCRBRlgpH+WFc Kr8FD/41luClq2izuHcJJIhGKItbTQPrj8WIx5snXOQ42KdaR8BxEm+X3VPKLBo2DbZJfKBbFEV Z7UcyfELDbrRT7yZvFLkoLFw2xQ+v0VTb+zhBDq8FpYHkJG7hoHyUYOjju/DI78784GVF4fIfoL WwAfhgTVNR4HnLisYMO8eTqTfUt7qrPQxAFeOq0m0lJEPwjJr5gGG9+ZE0FyBn0USHvrXIa71LX C+msTHUNjtRwid+jbcU9BNsEDazVXXghlGYcQAVZhOXXRScGBlFC09B3jGK8qXEKdE2peGftqOi sgVhSoEmiv1jpwIwVWINcN3sNiuqRrdNQb/22dKIlvow3lrzhZyKAaiVKgntV0ES+4gqo5V/KO8 T82eo78E642IlJ38VzpszZjqFoRx/ViwaSicNj3H+1wbAUKI57QzbQCWGVFyC+CpfDdoVnFJxwO XG60pipnpeVx/f33T62Ug8Y3V/zGFDJmUQ9cytSYcqYl0pbvYPV0lMa3/Go3+d6cQXndZdianTX G5VfcXkger5o7DnaLoz4ru+bEmYIny9j6QnsVRdAJP4RJ+e6dYjNQLk/UjNvj5/GXHCP+ceZ+Qf j33o6BuWTyY/aSodhbd/shFmE3J81Hd5aHNdLvNTfD4KEjCNsfUccyweYrjBJ72ap169QVvk8Fm WwTsWly0kaxEUFg== X-Developer-Key: i=khorenko@virtuozzo.com; a=openpgp; fpr=560F6DC83DC5D3D063BD082C51960A47F9615C2A X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH hci-8.1 5/5] selftests/ve: check CPUID override emulation for a prefixed CPUID X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org Execute CPUID with an operand-size prefix, which the CPU ignores, and expect the table values. Before the kernel change the #GP handler matched only the bare opcode and the child died with SIGSEGV. https://virtuozzo.atlassian.net/browse/VSTOR-148843 Feature: x86: cpu pools (cpuid override) Signed-off-by: Konstantin Khorenko --- .../testing/selftests/ve/ve_cpuid_override_test.c | 29 +++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/ve/ve_cpuid_override_test.c b/tools/testing/selftests/ve/ve_cpuid_override_test.c index be2b808f1c77e..83cbea42974b4 100644 --- a/tools/testing/selftests/ve/ve_cpuid_override_test.c +++ b/tools/testing/selftests/ve/ve_cpuid_override_test.c @@ -40,6 +40,14 @@ static void do_cpuid(unsigned int leaf, struct cpuid_regs *r) : "a" (leaf), "c" (0)); } +/* CPUID with an operand-size prefix, which the CPU accepts and ignores. */ +static void do_cpuid_prefixed(unsigned int leaf, struct cpuid_regs *r) +{ + asm volatile(".byte 0x66, 0x0f, 0xa2" + : "=a" (r->eax), "=b" (r->ebx), "=c" (r->ecx), "=d" (r->edx) + : "a" (leaf), "c" (0)); +} + static int write_cpuid_override(const char *table) { int fd, ret; @@ -62,6 +70,7 @@ struct child_ctx { int result_pipe[2]; int go_pipe[2]; int wait_go; + int prefixed; }; static int cpuid_child(struct child_ctx *ctx) @@ -82,7 +91,10 @@ static int cpuid_child(struct child_ctx *ctx) } /* Without wait_go nothing wakes the parent before the CPUID. */ - do_cpuid(CPUID_LEAF, &r); + if (ctx->prefixed) + do_cpuid_prefixed(CPUID_LEAF, &r); + else + do_cpuid(CPUID_LEAF, &r); if (!ctx->wait_go && write(ctx->result_pipe[1], "R", 1) != 1) return 22; @@ -246,4 +258,19 @@ TEST_F(ve_cpuid_override, armed_before_first_reschedule) EXPECT_EQ(r.edx, self->host.edx & ~self->bit); } +TEST_F(ve_cpuid_override, prefixed_cpuid_is_emulated) +{ + struct child_ctx ctx = { .wait_go = 1, .prefixed = 1 }; + struct cpuid_regs r; + pid_t pid; + + ASSERT_EQ(write_cpuid_override(self->table), 0); + + pid = spawn_cpuid_child(_metadata, self->cgv2_fd, self->ctid, &ctx); + ASSERT_EQ(write(ctx.go_pipe[1], "G", 1), 1); + collect_cpuid_child(_metadata, pid, &ctx, &r); + + EXPECT_EQ(r.edx, self->host.edx & ~self->bit); +} + TEST_HARNESS_MAIN -- 2.43.0 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel