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 8AF77802A5 for ; Tue, 6 Oct 2026 22:56:08 +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 696MsuIZ028716; Wed, 7 Oct 2026 01:54:56 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 696MsuIZ028716 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="xszQPb86" Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 696MscLl028673 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Wed, 7 Oct 2026 01:54:39 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 696MscLl028673 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-4a166a9ea21so28337785e9.2 for ; Tue, 06 Oct 2026 15:54:38 -0700 (PDT) X-Forwarded-Encrypted: i=2; AKwUvBwwaxD87i+QjlLNu2yCsNuQAXKLMNN5p2F4ktMxFkxJRxVX4GMWYlom+5TzmCM1oCoI6bArpA==@openvz.org X-Gm-Message-State: AFuF++kWTDJ2Pkvoxp/BqO0xFQ+CoijCjZoUMqIBxgqGx27GrFgO7peV YRKa1p9fLxe6UsyHRyIW6F6uQXUQ8DSooyGuwVdifIcIrwfv9LQBM+wUacjBh4TbXUWE8OEo9FC pOsjYnE6cXG0Yf3JjKgTgV6JsKU0Qd4wpdYa2SCYFKmHm3miokqqSxw== X-Gm-Gg: AYBFou3HU+vkYfjJkUlJeOe1fOvVxsM1NvDSikN8YxQYdRe0FLDGZnB6lk3Aeo8sdL1 Keb0jjRbRwe2iwE/f/9cYu+PIpZ4u6V1kSKmWGA3n0qSlRCF3EfdWc2uqT9KKVoKmXwWEyLCVlT fQDkIw6U7fldZnA0u2nhW//0s8wPzcFJr0a1bg66RuGkxUMeio13FONcT31fAQEkJ3dTE1W2nTL DypkLOB0W61IY8NT7SHVgwNVmxCP7Eg+HutAGBFXRP+BzHU/ec4++bxiIG27FFcrnCHUppxuQxt nbbxusPZonfycIyiNYulqRAjT8wJ4vimRhQsnUUuR74vCKnkQAlK7jrIw7L84unIC3Q3YldQhY6 fU2V7m7vz7DA4TIyskQ== X-Received: by 2002:a05:600c:348f:b0:49f:dd9f:6038 with SMTP id 5b1f17b1804b1-4a18043b38dmr3509305e9.25.1791327278690; Tue, 06 Oct 2026 15:54:38 -0700 (PDT) X-Received: by 2002:a05:600c:348f:b0:49f:dd9f:6038 with SMTP id 5b1f17b1804b1-4a18043b38dmr3509025e9.25.1791327278207; Tue, 06 Oct 2026 15:54:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1791327278; cv=none; d=google.com; s=arc-20260327; b=cKxFKQBuxRJl4VPqRqaASls42/OuL55OZPHc8Mx+Ymh/atJ671XzV9jA0bZrzDkWy5 A2wrX7N3XO2YWaDao4kt2VvAKQP75gImvN81k0j+EUHKSCvO7XAz0XvRiYo8eRJwHHaY GrPPIEeKFBkOZKROOJ1iR//qTe2/CZvL7gI1+PwSlkgQlb21ywqdusCkzOk18a2pgALC 2NEEJ9TqqgeMdVHWD4jbkUZPWCsM7yx5fERnzR7mzVwRKrRJmW8lTllVw82mIOEGcu1k XBy0P6DVGWm0Xo9i6GQrUc1ygMzHgN6R3BFuf/tXXdirLGQnvCDRR61WRCUtuzNLFPQ7 tSpA== 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=UXZCezel5yUBwFN4hjjO8EaoAcn/PRFseOp5C/uUoLE=; fh=bRkZfFa6377EgOVW8zBDri2gGIQqe/ZeiH+ijEM/ROI=; b=phqay7kgM4ph83MiODsii1vsdgzN3EZByRKbqNdjDTxLJUtpVQYQsK9qOpYOPaDl4L tyMBG69Qz6qqMSlEM6DoOIMwE0B5+MOfuu2HT4pQr0l+NvZbLgtPZPlmXZmiNxn5ESwZ CasPB5RUpa7nCduXfjs4dmJohPBXr1AodTcc9MuGO1UCJDKBkxnnwDPDdNtFes+A+l08 cBkgLG/cTWIVuPd3rNOVDTQ1PAfcSl/xxt3mCB32lriNsDKc/08ZN8bqWIG3BWCNDgXB 7WZs1n3nykvDHkahZn3sCvDeiLykjOR6V9nbk7fto3c65bVRGEgrYCKo05eEIuS17/Kp XCrA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=xszQPb86; 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-48c72466d4asi1506787f8f.63.2026.10.06.15.54.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Oct 2026 15:54:38 -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=xszQPb86; 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=UXZCezel5yUBwFN4hjjO8EaoAcn/PRFseOp5C/uUoLE=; b=xszQPb86jEv4hDn5Jyo 6zqt9UcXYmNl7dUPfR3kSupZpJ7G6CMvM8JRTN8fnBbFc2RvdyQrHYBZ+FcPRNuR+C3kUdGwIpbnB cAqxt+W5XtxWgLwwAWf0GP7NAbxWgwo88wELxjO3LIq1k1bn0WKaduvUilOfbXRcod66kqbSyzzcw 64h+uyx911aAhParO0qJJTzhUPsiV20PL2KwinGxlSOylCKIRZikXyWBvuaPfgmsAV5cgQBgr9BeR D/3HO7OPZU4yhTaClxmA3odm9sgFv+Z5NjWcH8NNxyHkKZKgAfoaVSMTqZAMVaoS3h/O6lH9pGGND xrG7eOOKTlA+4Kg==; 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 1xEE0C-005OA8-1t; Wed, 07 Oct 2026 00:54:27 +0200 From: Konstantin Khorenko Date: Wed, 07 Oct 2026 00:54:35 +0200 MIME-Version: 1.0 Message-Id: <20261007-b4-prep-khorenko-vstor-148656-cpuid-v5-5-652c5c9e56da@virtuozzo.com> References: <20261007-b4-prep-khorenko-vstor-148656-cpuid-v5-0-652c5c9e56da@virtuozzo.com> In-Reply-To: <20261007-b4-prep-khorenko-vstor-148656-cpuid-v5-0-652c5c9e56da@virtuozzo.com> To: Pavel Tikhomirov , Vasileios Almpanis X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2543; i=khorenko@virtuozzo.com; h=from:subject:message-id; bh=LmiBrS7+GB5gzuIHpbvSu41mbJm8+cZHUWkveOtbLe0=; b=owEBbQKS/ZANAwAKAVGWCkf5YVwqAcsmYgBqxXwskHprRFE1qsuZ4g7HuFXxHYJsCwyJTe+PA 9vIpnYe9MaJAjMEAAEKAB0WIQRWD23IPcXT0GO9CCxRlgpH+WFcKgUCasV8LAAKCRBRlgpH+WFc KmWhD/9j8TuRndN4Rao5Pl68gqu1HzvT3VRD2j/p+t/27kaWCM0MtGVnNxaVKoNxSFEZiEBW13J SmExfZU1rJkxi8HNwuYDvWhfasteLYwIkiq1lec837gOz7FltTLHSzqkKzEWLZ9yYMUFvK5PIIW LaIt7S/A459Z9Hg83B33Wlc1xEh6CuCFoH7YQ/DquRyIs3wgIsrkGxYdSLXI8+mrC7IKST7kVdX sPuMaBs7Hy1jnYpi7iObK74Bav2sYVBo89RliEH4Y4HYibJdX4eE/ecY6OSYLVnDP6aYzHIQ3at FRK15QD2olW8fjKTOS56B4NgPd4vQaHVHq6ca3GW5R+hQqOUdxYgXZHz4vG9U3+F0BiTAXu2XPn Q5ua1ZRjgX7l3+wDcj6gi/G44Riz902zbVfuPEdEy7V/hXEZS5htypx5YdgMiJZ7zUcs02cg8IQ uh9gls04p4zLutYmqmgt7FOr43hagafhFREt9S9hiQao5KrzVemH6yyJ0VilLsr8zhps1lW4zPy EwLjaYel6sXr+WEYZltXuMFimX35XXh6RtOnYtWrdoEZvWml5SYc0wpCxCUXok24LTJnfZ5qN0U HEYBrS0guU95761BftnDmyX8JhlyBGoTEKl/vPzkDEb2IJVPsGtDN7MXezZc5UyfmfNVs2cyhFL zsUMGV4j6UhoBmQ== 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 v5 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 | 32 +++++++++++++++++++++- 1 file changed, 31 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 f944fb5d806f6..98649d7df8ed4 100644 --- a/tools/testing/selftests/ve/ve_cpuid_override_test.c +++ b/tools/testing/selftests/ve/ve_cpuid_override_test.c @@ -47,6 +47,17 @@ static void do_cpuid(unsigned int leaf, struct cpuid_regs *r) __cpuid_count(leaf, 0, r->eax, r->ebx, r->ecx, r->edx); } +/* CPUID with an operand-size prefix, which the CPU accepts and ignores. */ +static void do_cpuid_prefixed(unsigned int leaf, struct cpuid_regs *r) +{ + /* ebx is the PIC base on i386; swap it out like does. */ + asm volatile("xchg %%ebx, %1\n\t" + ".byte 0x66, 0x0f, 0xa2\n\t" + "xchg %%ebx, %1" + : "=a" (r->eax), "=&r" (r->ebx), "=c" (r->ecx), "=d" (r->edx) + : "a" (leaf), "c" (0)); +} + /* Voluntary context switches of a task, from its /proc status file. */ static int read_nvcsw(const char *status, unsigned long *nvcsw) { @@ -63,6 +74,7 @@ static int read_nvcsw(const char *status, unsigned long *nvcsw) struct child_ctx { int result_pipe[2]; int stop; + int prefixed; }; /* @@ -92,7 +104,10 @@ static int cpuid_child(struct child_ctx *ctx) return 24; } - do_cpuid(CPUID_LEAF, &r); + if (ctx->prefixed) + do_cpuid_prefixed(CPUID_LEAF, &r); + else + do_cpuid(CPUID_LEAF, &r); if (write(ctx->result_pipe[1], &r, sizeof(r)) != sizeof(r)) return 25; @@ -324,4 +339,19 @@ TEST_F(ve_cpuid_override, armed_before_first_reschedule) } } +TEST_F(ve_cpuid_override, prefixed_cpuid_is_emulated) +{ + struct child_ctx ctx = { .stop = 1, .prefixed = 1 }; + struct cpuid_regs r; + pid_t pid; + + ASSERT_EQ(write_file_at(AT_FDCWD, CPUID_OVERRIDE_PATH, self->table), 0); + + pid = spawn_cpuid_child(_metadata, self, &ctx); + resume_cpuid_child(_metadata, pid); + collect_cpuid_child(_metadata, self, &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