From nobody Thu Apr 2 23:57:07 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1774457201; cv=none; d=zohomail.com; s=zohoarc; b=UEv4hBprz+BgOhx80OgGwGZTRg4I3k5IbTmeOa6/ieuppBaYIl9vsx0Rz1/InjAvg+H9ILgNzlRESf+Nk/BPbv3PnVgSckow861C7RnmDok2xr29JYsGVF9O80DrL9ZmjJaHNBPbJixShFYk8c6Sk+YHKEryP/kdMTAv5MikM0Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774457201; 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=0qoHEA22Z7ge7lGvugyBmZQB1jnxcxxOh+dfFXxtUbI=; b=Geuhj++7am1JF4nnFH07ti3B+yCHEaxW+o0UtQ7fVOxwVVP1p+m0ZmndE/FCqn1EVSFASFIbOYtmGKT9j1DEPNMzBTiDRKApJukyk8BNg/kNLf0rxYIrRm7xPPP6mh1vao2WQd+0pBwHOo8zC+Q9Fwb0i63lsOzurkTBz6aY5G4= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774457201911921.3600916609709; Wed, 25 Mar 2026 09:46:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5RLu-0004lI-N2; Wed, 25 Mar 2026 12:45:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RLq-0004h4-KK for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:02 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RLo-0004PO-Rp for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:02 -0400 Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-618-oNn97uyUM3OUIVSGeO5aTg-1; Wed, 25 Mar 2026 12:44:58 -0400 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-4852cf0318dso497685e9.3 for ; Wed, 25 Mar 2026 09:44:58 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-487113d73c0sm159091275e9.0.2026.03.25.09.44.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 09:44:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774457100; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0qoHEA22Z7ge7lGvugyBmZQB1jnxcxxOh+dfFXxtUbI=; b=iR+QTNJmS7VBt9VhC0YShNCYfqxyGQvCVIhRbznAUIJlk2PJ6jcxRqnSoWiK4tTGS7RY+C es8s+kJypooFVkwJkp9H4V2q75G/jCoGAE1X+hxvxhZx0BQVJ4DvTztTF02p9/qSYFuEda v8J7G4/DgKop1MR2rrWLqHh9abw+Bmg= X-MC-Unique: oNn97uyUM3OUIVSGeO5aTg-1 X-Mimecast-MFC-AGG-ID: oNn97uyUM3OUIVSGeO5aTg_1774457097 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774457096; x=1775061896; 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=0qoHEA22Z7ge7lGvugyBmZQB1jnxcxxOh+dfFXxtUbI=; b=BA9dE7BVdSJhjmRuqyqf99ecUxvoVR7MNL20YhV+tHseIkc5DjhU6mZB2/uLGZJqIX KfEfpNfMP4JqVm7Ryjs0jYebEpSGNHkDB4kgJ0RGQVOddgfsIHxe1WHMWluLf3Tw9E8A qBcB8JhOjxuSLe+W+KivT6f6eQHeUZ8HLf67xGRJ5te33HEDUbtG+3NdsWYvImkOjq2N nepBVOLWnUHEQmSjZqaJEMhpz30/d6wqE0WINOM5jrXHTx5VT1pRJG8Ys+G39i8YuKzy c59UIN26bsF1vKFrpoI6At/8lFJ3KeuycalLbaZ4m/9Asg8CdBuwIfgic58tqIcU4FkT hS4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774457096; x=1775061896; 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=0qoHEA22Z7ge7lGvugyBmZQB1jnxcxxOh+dfFXxtUbI=; b=bKBnlvAtuUxtKLy9Ox8QIPw8QoXT9cvBM3SCPCfRA8w4XGFZNuG07qC4+pVd71NiW7 BZQXCqeGz3lb3hfou7+i/3y5VPQ6tmUkauI+6ScBd5NfiB7z7Rpramf8M8GxTu3t4sH7 yNGozKPMlEMX/aeLxRNMjaCMhq8X8Ya2Kgkqwkieo9gB5rqyIvLAQXSYUHMrOfuu/Vs7 Nz1+paj11RZ0l+5gqgJ+/WtEwQgUwjOXLaMSwE2TrlnIx4qO04fQcu8mXFOTTz4rPePt BUmK/gJIhi14gwFbP0mLu2A1hpS6R9dwQB3S90DvDWZmfSevAypA34xwD21SSB3nJ+Qq BqZQ== X-Gm-Message-State: AOJu0YxfENCbPMAlh2zR4S6QSRlsBjAtXk6VBddgmv6+fFHBfh/pRJtM xVmgvXvgMA+uugi6SAymv5JXa+h89FqXwXlXzaelh8Y5JHJvpYI4Gf2Le9E0P6CurTcdWRzEl8E ioMPt7wSYs8GgwEcNIR3m6MkVhZzBIOfKUjkfUW8pVyAHrdV/1P6DJsNLbYYmtGpSY9bI6y7Ygl MZvxGBgRQcNY9Xjf+jTP9U/fzlyZvsDg5SIVbke2eP X-Gm-Gg: ATEYQzyzUaz8Ynps0hZNQenCuMhgyoCkcZQD+B9jj9Rbpqul0lzmGGIweYyGh2NFNv2 7ugcZElFmTwMesxCDi8dNXNG+2XW6G6Dda0O8e7k1+hdZPwm5HYGiUpttkgWi8X7v1eFJX8Y5ij jf9KlpNzY1ngAHLxEFW28gFrNAyz+n5Wz3YXq7hYd4yp9ncxgPzZOXJa2ReRUIL9GbsOdWlqQgY Y2LUCaTtjviofAkpAto6TEB3cWMNAWT0c0imZk8aZTnHOfA0Fz5lQzybTW+llK9Se6dlQEOFqhh 2O3C6HktkWVN0L6V2o9xvIDezDr/1dv9vn+TJcLMhqp0/Mck9uvEfJ7kgX/glthscY3HynN7Yzx ABXLXrRd8ArBfwbr4OLclJpQlhMQR6jeNgW8ZQ8p6cPj/cFutGqIWD9XBlz2V9Y64wUjAtAKsEq UnDvCJmYHy3g+wZhgNVwh7aweX X-Received: by 2002:a05:600d:8453:b0:485:4eaf:eb53 with SMTP id 5b1f17b1804b1-48716051e4emr44478875e9.19.1774457096524; Wed, 25 Mar 2026 09:44:56 -0700 (PDT) X-Received: by 2002:a05:600d:8453:b0:485:4eaf:eb53 with SMTP id 5b1f17b1804b1-48716051e4emr44478545e9.19.1774457095883; Wed, 25 Mar 2026 09:44:55 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alyssa Ross Subject: [PULL 01/19] tests/functional: preserve PYTHONPATH entries Date: Wed, 25 Mar 2026 17:44:35 +0100 Message-ID: <20260325164453.72127-2-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325164453.72127-1-pbonzini@redhat.com> References: <20260325164453.72127-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1774457202549158500 Content-Type: text/plain; charset="utf-8" From: Alyssa Ross Otherwise, it's not possible to use a packaged qemu.qmp. Fixes: 1497377857 ("tests/functional: Prepare the meson build system for th= e functional tests") Signed-off-by: Alyssa Ross Link: https://lore.kernel.org/r/20260323084739.1013748-1-hi@alyssa.is Signed-off-by: Paolo Bonzini --- tests/functional/meson.build | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tests/functional/meson.build b/tests/functional/meson.build index 9bec5a07516..8c4d7f70e17 100644 --- a/tests/functional/meson.build +++ b/tests/functional/meson.build @@ -76,8 +76,10 @@ foreach speed : ['quick', 'thorough'] endif test_env.set('QEMU_TEST_QEMU_BINARY', test_emulator.full_path()) test_env.set('QEMU_BUILD_ROOT', meson.project_build_root()) - test_env.set('PYTHONPATH', meson.project_source_root() / 'python:' + - meson.current_source_dir()) + test_env.prepend('PYTHONPATH', + meson.project_source_root() / 'python', + meson.current_source_dir(), + separator : ':') =20 # Define the GDB environment variable if gdb is available. gdb =3D get_option('gdb') @@ -96,8 +98,10 @@ foreach speed : ['quick', 'thorough'] teststamp =3D testname + '.tstamp' test_precache_env =3D environment() test_precache_env.set('QEMU_TEST_PRECACHE', meson.current_build_dir(= ) / teststamp) - test_precache_env.set('PYTHONPATH', meson.project_source_root() / 'p= ython:' + - meson.current_source_dir()) + test_precache_env.prepend('PYTHONPATH', + meson.project_source_root() / 'python', + meson.current_source_dir(), + separator : ':') precache =3D custom_target('func-precache-' + testname, output: teststamp, command: [python, testpath], --=20 2.53.0 From nobody Thu Apr 2 23:57:07 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1774457134; cv=none; d=zohomail.com; s=zohoarc; b=nrOONQxtq6nyhkc4q7HtdBa9DyRlmkBg94JKmDPucEsVyriKugc6LRfuXfLxWr7b08zR0kdkb9h5mSHwRFu8PGa24mfMlJxWLlp1YSiHDmpC5vyKkSHFwype8FUdqTFLCooF/HhKi50er4gwS91GfwiR+Ig37i1Lk7txfM/ix6g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774457134; 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=S5fb9/cmDwJkn7K10LCL+lrCPa12NqyLNGdwwl5js44=; b=Vo78+B2HOMMuo5vQOUZAwOMW4AXTtmb1CvyMDAK8R24JVOjQEDuWb8BkvI/ZQ1NFOuH2ClcnUfkFe3W8fFU1jgYIo11kQGa4lt0OpOA0Sn4GagH+wlpwLJSCW3Tg9v4jEN6ZdDTWuv5roCfID42m0WfzPv/sKvefS4GFyNVgTrI= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774457134547609.6099139782391; Wed, 25 Mar 2026 09:45:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5RLw-0004n7-8v; Wed, 25 Mar 2026 12:45:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RLu-0004ls-TG for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:06 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RLs-0004Tl-CN for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:05 -0400 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-81-8NyrhWJaPJ2jie9HJ83ohA-1; Wed, 25 Mar 2026 12:45:01 -0400 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-486ff4498b2so3455965e9.0 for ; Wed, 25 Mar 2026 09:45:01 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b91943312sm1151883f8f.12.2026.03.25.09.44.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 09:44:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774457103; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=S5fb9/cmDwJkn7K10LCL+lrCPa12NqyLNGdwwl5js44=; b=DrWtnHDAyzWqED2GAARVSxjPMNvp16jsNy8QDqSr7bKhh+dtzKE/EhlbWNsdni46QOaFK1 w5ATNPKnt2o3kChoEJHV0Qv0Vttq5KKz6Yv4YmTpN8COcv1Hn/Y4/LdI3ITQzUvKbcQgWp VQ/0MhezEhGNXjy7HfG4svk//B5lMp4= X-MC-Unique: 8NyrhWJaPJ2jie9HJ83ohA-1 X-Mimecast-MFC-AGG-ID: 8NyrhWJaPJ2jie9HJ83ohA_1774457100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774457100; x=1775061900; 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=S5fb9/cmDwJkn7K10LCL+lrCPa12NqyLNGdwwl5js44=; b=J1LqJ/SZT6gCeCVv54fBOVWoY+XJFNJQESxHSRobpxsr4qhd6sg94Cydrx8EOz/Qvx mfTnABIK/ek2aPb5SMisCwArY5mfsAH1/uwbFUtwf4DDtLGA6COttxU+QW7oOllOSKWQ 5HMeAeZYGWicRj8oVSTSWKRkRqHeUHUKNrYwT2mSzvnAb4x4FJt5FPGJaNEkEoYei4qE Fimx2Bo/G9lpjhd2MJYjJVGN/A4uJ+tZKG1dDIoJ5wf7zIObWw1vGyBcqH0da96RFDLJ s7pzqx8/DTPRthIZrm17JREzskcibZhVcBmZUs7e3PuyK0hcSyx8XLBpzkOUCN3L8GmI GvlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774457100; x=1775061900; 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=S5fb9/cmDwJkn7K10LCL+lrCPa12NqyLNGdwwl5js44=; b=tD2EMhRK2raKg7UVFizuX+H3RCVk6oDICP8fRqrEZQ7mMU06vd2oCfJP6c961AOaRf CFYhmbtu3E7rXHdNrEZeqqGj3B5sMW4Aj9GO1NsAegQRgl7qNmcKHYVhUWIo+2LJcuV6 UbiXgoyZYro27hv1re26xiUAMbq+39aJ3cPryB9ghWUApGuSjLGFTYVGOBEG4EUZaoKH 1KoJJmN5fDsKXe4F1ZV2/fmbQH016sfyYjHnMicbsdqG40mL3IqK2OLvkBfWtKnA0yw4 Cq6GzQ3iIE9w3YWOSkKb+mgdH3EbOM+jaiu15u80DNVSGRewCTfAmdJRQj6qj+eCezvf XhUw== X-Gm-Message-State: AOJu0YxBHJ1PA33/H6m1DpefLcozvyudtuepBGDnpS9HhR7714UJwakb zkiRSClT/ewHTyuXvidc3JhI7hjtIhBp4HlaNty6VpGgeV1nlHsc18Rx0b7I/pbgEU3hFr0l9Zz elgXrxN2rPMaOVNa7FE/JES/aties0zKsvlKLFStiyz9EzygRhFcc4KF88jkF6anchpDj1c4yTg CRnQ9Y8qn4lLMb2d6EPTjZ41qgq+lUf6rT4i6Qxa6B X-Gm-Gg: ATEYQzzknwkVrTrS3sIjQCK0wWfmSFkkCYYgV1mobcJ8Qk/27rePROn9iX9o/NnmUJD XI1BbCzi3GoDXY7JmjNpBqBGgD0U32HiSFAs3pUL4+xSRtX8cAazDl/YCPwg4Skd05aPqbKug9J lCAuThzoE3PAXLGDh9GaDms0WJV5PK1wcd7ZBsb2oR1ffHZuIXb4OLhEmCqUDqwU0iHQkL3vEub IB85X6cG2SDcaK4X5AXnRZap9rZjHrtFxG/Gg9NJyT5RbAdp0k6+NFYky8wfgQmv1d3T3mnegdK +WNMSxP6ZRRd2Hj7W6y2ovEJRbV0FxUpI6L3rIWANMHHfsWvq8jAmW+E2ztygJD2ngcKBgfXyo+ Qy24Zv9rxWvTEH1tDwHLspQRApH2GVUb9v+yzC1bGGgt5Yx77D3g390iYwf4z3hV9aZYocxPeYL hJifL2SETtfKmumJEE5DatKS13 X-Received: by 2002:a05:600c:350f:b0:485:4278:24fb with SMTP id 5b1f17b1804b1-487160afca2mr60589245e9.32.1774457099771; Wed, 25 Mar 2026 09:44:59 -0700 (PDT) X-Received: by 2002:a05:600c:350f:b0:485:4278:24fb with SMTP id 5b1f17b1804b1-487160afca2mr60588475e9.32.1774457099040; Wed, 25 Mar 2026 09:44:59 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Stefan Weil , qemu-stable@nongnu.org Subject: [PULL 02/19] tdx: fix use-after-free in tdx_fetch_cpuid Date: Wed, 25 Mar 2026 17:44:36 +0100 Message-ID: <20260325164453.72127-3-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325164453.72127-1-pbonzini@redhat.com> References: <20260325164453.72127-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1774457136147158500 Content-Type: text/plain; charset="utf-8" This is mostly harmless right now because the "if" is never hit, but the code as written makes no sense. Reported-by: Stefan Weil Cc: qemu-stable@nongnu.org Signed-off-by: Paolo Bonzini --- target/i386/kvm/tdx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/i386/kvm/tdx.c b/target/i386/kvm/tdx.c index 4cae99c281a..4714c9d514e 100644 --- a/target/i386/kvm/tdx.c +++ b/target/i386/kvm/tdx.c @@ -848,7 +848,7 @@ static struct kvm_cpuid2 *tdx_fetch_cpuid(CPUState *cpu= , int *ret) r =3D tdx_vcpu_ioctl(cpu, KVM_TDX_GET_CPUID, 0, fetch_cpuid, &loca= l_err); if (r =3D=3D -E2BIG) { g_free(fetch_cpuid); - size =3D fetch_cpuid->nent; + size *=3D 2; } } while (r =3D=3D -E2BIG); =20 --=20 2.53.0 From nobody Thu Apr 2 23:57:07 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1774457143; cv=none; d=zohomail.com; s=zohoarc; b=QFL05yHBUwndmSGOCuhfijz90Yh6nFI+aRvsc1+wBZ/SQrBoL57pLbqkHK0rCLjg8lzyEfVYk/g9TG5wa+0YcQMT3do/wQyo2gYF8QMyY1tbvd/5dBEM4IGTqeM+0BWS4W4ykvSreW4LCMqVnwBpY1LGRqIhNvsgxmtWTAOf4PY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774457143; 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=UUgZYDFnXbpRFKsK/7IcqnW5+bod3HtrYWPP2Q8eSRg=; b=R9+DTDvvKElgnsesmmuTLNCOpu81nbwKyNVD5j+SN17GBM31I8ZIwaBYoiKDaInuCm5s18yxNmPM2v/E0GGS/ITHP5Ke3J039pe5Drkb4lCigPORcp4WVCZKsAkhF2pdeWQRr/v5Pjkyd7bNbJET55MCXWZhP5iPv9rUU9cm8ZU= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774457143059686.8063591720546; Wed, 25 Mar 2026 09:45:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5RLy-0004oL-UY; Wed, 25 Mar 2026 12:45:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RLw-0004n9-MA for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:08 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RLu-0004bC-SH for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:08 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-480-IapqCzNyMH-qUQuL1xdv4g-1; Wed, 25 Mar 2026 12:45:04 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-48532df52c5so555945e9.1 for ; Wed, 25 Mar 2026 09:45:04 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4871e5ec998sm6608935e9.6.2026.03.25.09.45.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 09:45:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774457106; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=UUgZYDFnXbpRFKsK/7IcqnW5+bod3HtrYWPP2Q8eSRg=; b=bh2zjm5zsU4Gi6ljWp8w5zXDPqYKuxETzVvBJKeCxX/xP11ZfSmDabQ4BmTNuKj+LuZ0HD eHvO6NZm5SyWY55+3rvB1StzcKSbPcHbn3OKS5s3WecRDhNj64u8/BCdYxUCHPlljhJuxl pMbrF5siEstSXGFDfCzhPIbdbnH3+Ok= X-MC-Unique: IapqCzNyMH-qUQuL1xdv4g-1 X-Mimecast-MFC-AGG-ID: IapqCzNyMH-qUQuL1xdv4g_1774457104 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774457103; x=1775061903; 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=UUgZYDFnXbpRFKsK/7IcqnW5+bod3HtrYWPP2Q8eSRg=; b=XVs/j2ITGuaU4stnOZNxaOTo/z0mKaPsyUzx4cFImSyV3GTXzAaVwRy3BEnDnmf/kx YxcQMzOSKHDhhd5fTJUF1uPv/qg+GCPZqStKBcrXNPq+zVKxwcJheqFYQ9k2w+RIj5Px Ih3o9zJSBLWtP3Pag93zyKEbc/6nOPyCifMurscbXUey+GG5tIA1YFbvgoLOWEbxpyqF CalerPBiy1Y3C1Z+hXxYbajWWxAFQQBVmbRA2Rj7/MtQxCEpgwdoeGy4DwKbvf7nx1QV gJVgG/iHiiYAzzCw9eERX4gUQX69DJ7/SZ3jwHlnqTof6cg/X2ygohrI05s72lP/KzPk 049A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774457103; x=1775061903; 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=UUgZYDFnXbpRFKsK/7IcqnW5+bod3HtrYWPP2Q8eSRg=; b=qCel54JpthKpzH424QOt/walp+np+ypg9E6B+WwEU2akDQWUWQTmXo3SHtOW7XBObD EHmn1GclqrR3jkTaFVO9auReoB4gCkMSaPmFwrq+GwN3s8Gh2KIhKIR8lSJEJHmmPZKi Zt5MiHfiQhgFdAZQwhlxm0Y8gfgYvzA7IuRobNMYBfKBX/p6xI0jH52HQj0q8PPLlNNJ K3HKi/WjQhRFtgh/aCZoxgrPxlYDM5sM8xL8aIgaaVd3yX0iLICRsfsoN1ZqnxFzrecK lgPKVat1e68NxO/H1/fqXKJ6pAr8POO78YUvq8GwuqHvKL+xtkPXLpZbUIBYpJ1CgDOx WaSg== X-Gm-Message-State: AOJu0YxsAoSxfshnuIQ/cOAT2uLCE5/oALE4qDfe5UHI1BU16EQcG0td uTkR7SCoSyeJNSisVnpmxXfic7TDjhLvTFO0Qgk31Pl6vxXzBDkU/9ut5gvaZ63jOq/VwgaSJaD aM7fhqtN4gY/18osik12v/js5R9DTZtRW21tqDxAxGdvch8N95VRFlhtVxrW/z/95a9K4FZP8Ui 14dTQFoi6Rv4RjqibvxQuo79qI/cM9vVZfAp1956Yn X-Gm-Gg: ATEYQzwZU2b9uQHjxlUkY6D5rlOACJuQZdgOHcNAHwnSdxmvgmLUo7ed+Vov0gxTgr2 X288dhoKSlloyroqstxr3HqB5DCgwjk+PEHkcDp+zvqJyDzAJ5k9AbhucLxv675HekCfvlT0U4V Z7oJXMo38KOGuCikDOMWv+Erj7ptpaChpgsC7DXL8b5vJqMRpzMp+4WtNnjOVP8uCMTC61lm8Pu Z3WnlJzGYXaYO+E8eHHHdH3NKZnIvRmKaDHrHSej7xKEJkj6TvJec3H7arsDQy0J4/pTtW9yrlP Zhet1ZxFyPTyQ6EB5C8ccN56UuNOYGj5xpvXxE4ZoVtOACLW1WUy+RQXipdeDlF4QoAu8HCtEjg 8wqaSA/ADN7QL/hgOSX1k4qwKBZ3SgYBissjqZDMsdB1HjuEKduP1KpzQu+vWyEoMTBfkZNwu9P SUTvekB/xmQ+C7lUj/cUl/I3w/ X-Received: by 2002:a05:600c:4705:b0:485:a4de:f4f9 with SMTP id 5b1f17b1804b1-4871608406dmr68358185e9.27.1774457102406; Wed, 25 Mar 2026 09:45:02 -0700 (PDT) X-Received: by 2002:a05:600c:4705:b0:485:a4de:f4f9 with SMTP id 5b1f17b1804b1-4871608406dmr68357455e9.27.1774457101754; Wed, 25 Mar 2026 09:45:01 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Subject: [PULL 03/19] treewide: replace qemu_hw_version() with QEMU_HW_VERSION Date: Wed, 25 Mar 2026 17:44:37 +0100 Message-ID: <20260325164453.72127-4-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325164453.72127-1-pbonzini@redhat.com> References: <20260325164453.72127-1-pbonzini@redhat.com> 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=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1774457144116158500 The version is never set on 2.5+ machine types, so qemu_hw_version() and qemu_set_hw_version() are not needed anymore. Reviewed-by: Daniel P. Berrang=C3=A9 Signed-off-by: Paolo Bonzini --- include/hw/core/boards.h | 6 ------ include/qemu/hw-version.h | 18 ++++-------------- hw/ide/core.c | 2 +- hw/scsi/megasas.c | 2 +- hw/scsi/scsi-bus.c | 2 +- hw/scsi/scsi-disk.c | 2 +- system/vl.c | 4 ---- target/s390x/cpu_models.c | 2 +- util/osdep.c | 12 ------------ 9 files changed, 9 insertions(+), 41 deletions(-) diff --git a/include/hw/core/boards.h b/include/hw/core/boards.h index f85f31bd90d..b8dad0a1074 100644 --- a/include/hw/core/boards.h +++ b/include/hw/core/boards.h @@ -197,11 +197,6 @@ typedef struct { * used to provide @cpu_index to socket number mapping, allowing * a machine to group CPU threads belonging to the same socket/package * Returns: socket number given cpu_index belongs to. - * @hw_version: - * Value of QEMU_VERSION when the machine was added to QEMU. - * Set only by old machines because they need to keep - * compatibility on code that exposed QEMU_VERSION to guests in - * the past (and now use qemu_hw_version()). * @possible_cpu_arch_ids: * Returns an array of @CPUArchId architecture-dependent CPU IDs * which includes CPU IDs for present and possible to hotplug CPUs. @@ -297,7 +292,6 @@ struct MachineClass { const char *default_display; const char *default_nic; GPtrArray *compat_props; - const char *hw_version; ram_addr_t default_ram_size; const char *default_cpu_type; bool default_kernel_irqchip_split; diff --git a/include/qemu/hw-version.h b/include/qemu/hw-version.h index 730a8c904d9..ce318cd8435 100644 --- a/include/qemu/hw-version.h +++ b/include/qemu/hw-version.h @@ -1,5 +1,5 @@ /* - * QEMU "hardware version" machinery + * QEMU "hardware version" constant * * This work is licensed under the terms of the GNU GPL, version 2 or late= r. * See the COPYING file in the top-level directory. @@ -8,20 +8,10 @@ #define QEMU_HW_VERSION_H =20 /* - * Starting on QEMU 2.5, qemu_hw_version() returns "2.5+" by default - * instead of QEMU_VERSION, so setting hw_version on MachineClass - * is no longer mandatory. - * - * Do NOT change this string, or it will break compatibility on all - * machine classes that don't set hw_version. + * Starting on QEMU 2.5, devices with a version string in their + * identification data return "2.5+" instead of QEMU_VERSION. Do + * NOT change this string as it is visible to guests. */ #define QEMU_HW_VERSION "2.5+" =20 -/* QEMU "hardware version" setting. Used to replace code that exposed - * QEMU_VERSION to guests in the past and need to keep compatibility. - * Do not use qemu_hw_version() in new code. - */ -void qemu_set_hw_version(const char *); -const char *qemu_hw_version(void); - #endif diff --git a/hw/ide/core.c b/hw/ide/core.c index b45abf067b2..d6719dbf31d 100644 --- a/hw/ide/core.c +++ b/hw/ide/core.c @@ -2660,7 +2660,7 @@ int ide_init_drive(IDEState *s, IDEDevice *dev, IDEDr= iveKind kind, Error **errp) if (dev->version) { pstrcpy(s->version, sizeof(s->version), dev->version); } else { - pstrcpy(s->version, sizeof(s->version), qemu_hw_version()); + pstrcpy(s->version, sizeof(s->version), QEMU_HW_VERSION); } =20 ide_reset(s); diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c index f62e420a91e..0276886d594 100644 --- a/hw/scsi/megasas.c +++ b/hw/scsi/megasas.c @@ -782,7 +782,7 @@ static int megasas_ctrl_get_info(MegasasState *s, Megas= asCmd *cmd) =20 memcpy(info.product_name, base_class->product_name, 24); snprintf(info.serial_number, 32, "%s", s->hba_serial); - snprintf(info.package_version, 0x60, "%s-QEMU", qemu_hw_version()); + snprintf(info.package_version, 0x60, "%s-QEMU", QEMU_HW_VERSION); memcpy(info.image_component[0].name, "APP", 3); snprintf(info.image_component[0].version, 10, "%s-QEMU", base_class->product_version); diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c index 9b8656dd832..1a6b181b9d6 100644 --- a/hw/scsi/scsi-bus.c +++ b/hw/scsi/scsi-bus.c @@ -703,7 +703,7 @@ static bool scsi_target_emulate_inquiry(SCSITargetReq *= r) r->buf[7] =3D 0x10 | (r->req.bus->info->tcq ? 0x02 : 0); /* Sync, = TCQ. */ memcpy(&r->buf[8], "QEMU ", 8); memcpy(&r->buf[16], "QEMU TARGET ", 16); - pstrcpy((char *) &r->buf[32], 4, qemu_hw_version()); + pstrcpy((char *) &r->buf[32], 4, QEMU_HW_VERSION); } return true; } diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index a5201855352..5ba5b46c4f4 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -2543,7 +2543,7 @@ static void scsi_realize(SCSIDevice *dev, Error **err= p) } =20 if (!s->version) { - s->version =3D g_strdup(qemu_hw_version()); + s->version =3D g_strdup(QEMU_HW_VERSION); } if (!s->vendor) { s->vendor =3D g_strdup("QEMU"); diff --git a/system/vl.c b/system/vl.c index 38d7b849e0a..246623b3196 100644 --- a/system/vl.c +++ b/system/vl.c @@ -2212,10 +2212,6 @@ static void qemu_create_machine(QDict *qdict) =20 cpu_exec_init_all(); =20 - if (machine_class->hw_version) { - qemu_set_hw_version(machine_class->hw_version); - } - /* * Get the default machine options from the machine if it is not alrea= dy * specified either by the configuration file or by the command line. diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c index 954a7a99a9e..0b88868289b 100644 --- a/target/s390x/cpu_models.c +++ b/target/s390x/cpu_models.c @@ -955,7 +955,7 @@ static void s390_qemu_cpu_model_class_init(ObjectClass = *oc, const void *data) =20 xcc->is_migration_safe =3D true; xcc->desc =3D g_strdup_printf("QEMU Virtual CPU version %s", - qemu_hw_version()); + QEMU_HW_VERSION); } =20 static void s390_max_cpu_model_class_init(ObjectClass *oc, const void *dat= a) diff --git a/util/osdep.c b/util/osdep.c index 000e7daac8b..4a8b8b5a90f 100644 --- a/util/osdep.c +++ b/util/osdep.c @@ -31,8 +31,6 @@ #include "qemu/hw-version.h" #include "monitor/monitor.h" =20 -static const char *hw_version =3D QEMU_HW_VERSION; - int socket_set_cork(int fd, int v) { #if defined(SOL_TCP) && defined(TCP_CORK) @@ -533,16 +531,6 @@ ssize_t qemu_send_full(int s, const void *buf, size_t = count) return total; } =20 -void qemu_set_hw_version(const char *version) -{ - hw_version =3D version; -} - -const char *qemu_hw_version(void) -{ - return hw_version; -} - #ifdef _WIN32 static void socket_cleanup(void) { --=20 2.53.0 From nobody Thu Apr 2 23:57:07 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1774457170; cv=none; d=zohomail.com; s=zohoarc; b=oKbGVb8+57l4mMaVhkWwWeNzEBqt5l5US3Q47r5Eo0yPmQfkBw1gOCwh43kYd2OKZSMwqndifXZoHBXjPC7WVVRNMbsdZp5M+sYL+jWs1CvCGR6DCKuNmIIdkOUFiNLXDWMTov7a784FRiPl7jkja6tCswRBWBQDG3lYPysAxO0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774457170; 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=xdIMymluD0FqXgTYee5QoJgAjn56Il4INcG1bLrCfmE=; b=TrAvF3H9re+bD0+HQxY0x7f04IOAbEhR0EP3S1GozGWUOQmlTzvLKdTlLbwq19gedZCC4L7YcNxMCEsoSenOg+SxwMlQoS3P7i6S/E2PBbBKUrMotnfEteeLjXfmnJaXWKO6b5RaPXKPt9KkAvRGdpg1NqaXUD02tyirFwNd21E= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774457170384867.2233131044214; Wed, 25 Mar 2026 09:46:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5RLz-0004oj-JJ; Wed, 25 Mar 2026 12:45:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RLy-0004o6-0a for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:10 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RLw-0004bh-6O for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:09 -0400 Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-446-roHaWIXBMouDodFMBpdjaw-1; Wed, 25 Mar 2026 12:45:06 -0400 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-43b86de58d9so6301f8f.0 for ; Wed, 25 Mar 2026 09:45:05 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b919cf2b2sm1028327f8f.18.2026.03.25.09.45.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 09:45:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774457107; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=xdIMymluD0FqXgTYee5QoJgAjn56Il4INcG1bLrCfmE=; b=SZXSlNwr+94K0yjf6KoBsI0cnSIB9f+rR/EbC56rwxnXa/bk/oZvTngBbOD2YRPwHhQWf+ SMaOf42CBgxSSdM5SRSaOj8TlLPPnwqG3fGXMlNWVx0diz/ZCgrJ53uX/zqPmHxKSKNw/8 hgGkOO4L9ZYUc8lTEUCCiTGu0gdCtyU= X-MC-Unique: roHaWIXBMouDodFMBpdjaw-1 X-Mimecast-MFC-AGG-ID: roHaWIXBMouDodFMBpdjaw_1774457105 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774457104; x=1775061904; 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=xdIMymluD0FqXgTYee5QoJgAjn56Il4INcG1bLrCfmE=; b=cZbYqNcoGYnWabsJHFBvOPc8XJzhoyWVtnQh8B2w1BaisjkZ8R67MTa2u4NaFKertZ 9DBxGd+im5ASxPkBQhHx8gbRhQk8/PPZeE7rl2FXHL+z4Ne+NJjQhVhzL/Y2MF9FYcQh B/1UOlI9JVZWa4uxYDo1sB9DXkaPfuyOGJk0wMKL7ZLFgIyXxMVT+WLLeI6XmE+TS8cE aNSbcpSBrP1iO7EmzCK2cPVMFCxPg/fAXnuWASpaR+JHqxZvlgU3+JIJIgfCzD4UVJWi 9vE/vAm0C31M7Rbp/ATdHe7gUEAc8qK6JCC+HVvdNBSa2MVfkEScuXMNTYAoSeiXqehq ObgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774457104; x=1775061904; 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=xdIMymluD0FqXgTYee5QoJgAjn56Il4INcG1bLrCfmE=; b=CP+ozUzGVdpw3iKupNLqGYGYwOJwj80n4zPh7Nh3PaTcGxYqRUMfnT9M5zfPMivsqF LoBn5RpBN1zxYlXTcAhWK+PlgdP1yFzzNVNy224t62tKgySQpio3N4ZR52Vnb31bcXJl /Mm+5AMTxSDKKgsRIvbcFjBlPIL9VprE7W16cU9NAYqVaYUOJZAJCFWMKm5loJD1wH6m fh8P/rDK05HCSOKpoOblnuMRvp8PsuwOKSSzVSp9TEFk5vpUlmTGbozvm8GYVRAvodIc l6xW0Fh97gWxaK6qRLDKJkvVN7iHhC1WS4q7M+6ouNluexboi1B36Jv0tAP0eRLMW9rk R57g== X-Gm-Message-State: AOJu0Yy+AjDVzuz907eexdr+kOiV5snfilEBkc+TZdifFee2cUGsCH1a 6K0WtELs3SsZcPpFtGviUn14qCdAnCLnNIMokC1u/Kp1KD9plmW2mFlVZlzjVZ4BMISwimUjjTt Nm2Wn3fhwxsPc/sO7lrSnJ3kP2pTgGCodN0o1cxxP4ChEXJNL/ZyexMdXNa6qiWNgYGOjq/o+yR 7b7G3fVbVI8OPwpEW2Yxi4xGIw0kZLQ+qPTwkhQl5/ X-Gm-Gg: ATEYQzyeWGrmz5UtNiWD/ktA3Oa4B9ooODT2EyHdehztSHPJiuW4bTR0E0PPTHisX2a Lj4eih1QpACzE+i8RI18SzJnCVCPTBpTTgqAk0TFAJtuNu35baCzY/iGmGtKA4sJKmkSpBY5CBb wuTLsVj4qauql8z4/biiro2VEgh6/InQxf7EEnT8Dww5dRdI2qFr8em/JFkEfz0eQV2g2uJerIF Rrx13Wlwb2RtGk5u0qcNwca4kSy/hIJ/gJshj5wmffMQ6JHGQ5lQhjbItWzrWUz4bn7R/0Z9wnF pzV5n1vWaHqtqwv6btCRs6sgbMoiYtpLf/dCDbZn7Melz4T7i1hm0fDvI4d9OXEOxectysJS3jY ZOIcppmwOQYcU9sbuYJ3SlVoiHDQN2o6xJRLiPTg1Lo2guZv9U0TTBcUCTzeG7TLU3/M9KscLvn Sh3pAToWUMPgVO9foLehSugll9 X-Received: by 2002:a05:600c:3511:b0:487:467:42a2 with SMTP id 5b1f17b1804b1-487160438e2mr66714425e9.18.1774457103743; Wed, 25 Mar 2026 09:45:03 -0700 (PDT) X-Received: by 2002:a05:600c:3511:b0:487:467:42a2 with SMTP id 5b1f17b1804b1-487160438e2mr66713775e9.18.1774457102993; Wed, 25 Mar 2026 09:45:02 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Mohamed Mediouni Subject: [PULL 04/19] whpx: i386: workaround for Windows 10 support Date: Wed, 25 Mar 2026 17:44:38 +0100 Message-ID: <20260325164453.72127-5-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325164453.72127-1-pbonzini@redhat.com> References: <20260325164453.72127-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1774457171900154100 Content-Type: text/plain; charset="utf-8" From: Mohamed Mediouni Windows Server 2022 and later support WHvCapabilityCodeProcessorPerfmonFeatures and WHvPartitionPropertyCodeSyntheticProcessorFeaturesBanks. Windows 10 supports neither of those. As the QEMU executable doesn't have a manifest, OS version queries do not return the actual Windows version but 6.2.9200 which corresponds to Windows 8. Windows Server 2022 and Windows 11 still use the 10.0 number, with distinction being the build number. As such, use the absence of perf monitoring feature query as a cutoff to detect if a legacy OS is present. Signed-off-by: Mohamed Mediouni Link: https://lore.kernel.org/r/20260324151323.74473-2-mohamed@unpredictabl= e.fr Signed-off-by: Paolo Bonzini --- target/i386/whpx/whpx-all.c | 43 ++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c index 4d5d3dbd243..015c0f1dc99 100644 --- a/target/i386/whpx/whpx-all.c +++ b/target/i386/whpx/whpx-all.c @@ -1948,6 +1948,7 @@ int whpx_accel_init(AccelState *as, MachineState *ms) WHV_CAPABILITY_FEATURES features =3D {0}; WHV_PROCESSOR_FEATURES_BANKS processor_features; WHV_PROCESSOR_PERFMON_FEATURES perfmon_features; + bool is_legacy_os =3D false; =20 whpx =3D &whpx_global; =20 @@ -2096,21 +2097,29 @@ int whpx_accel_init(AccelState *as, MachineState *m= s) hr =3D whp_dispatch.WHvGetCapability( WHvCapabilityCodeProcessorPerfmonFeatures, &perfmon_features, sizeof(WHV_PROCESSOR_PERFMON_FEATURES), &whpx_cap_size); + /* + * Relying on this is a crutch to maintain Windows 10 support. + * + * WHvCapabilityCodeProcessorPerfmonFeatures and + * WHvPartitionPropertyCodeSyntheticProcessorFeaturesBanks + * are implemented starting from Windows Server 2022 (build 20348). + */ if (FAILED(hr)) { - error_report("WHPX: Failed to get performance monitoring features,= hr=3D%08lx", hr); - ret =3D -ENOSPC; - goto error; - } - - hr =3D whp_dispatch.WHvSetPartitionProperty( - whpx->partition, - WHvPartitionPropertyCodeProcessorPerfmonFeatures, - &perfmon_features, - sizeof(WHV_PROCESSOR_PERFMON_FEATURES)); - if (FAILED(hr)) { - error_report("WHPX: Failed to set performance monitoring features,= hr=3D%08lx", hr); - ret =3D -EINVAL; - goto error; + warn_report("WHPX: Failed to get performance " + "monitoring features, hr=3D%08lx", hr); + is_legacy_os =3D true; + } else { + hr =3D whp_dispatch.WHvSetPartitionProperty( + whpx->partition, + WHvPartitionPropertyCodeProcessorPerfmonFeatures, + &perfmon_features, + sizeof(WHV_PROCESSOR_PERFMON_FEATURES)); + if (FAILED(hr)) { + error_report("WHPX: Failed to set performance " + "monitoring features, hr=3D%08lx", hr); + ret =3D -EINVAL; + goto error; + } } =20 /* Enable synthetic processor features */ @@ -2138,7 +2147,7 @@ int whpx_accel_init(AccelState *as, MachineState *ms) synthetic_features.Bank0.DirectSyntheticTimers =3D 1; } =20 - if (whpx->hyperv_enlightenments_allowed) { + if (!is_legacy_os && whpx->hyperv_enlightenments_allowed) { hr =3D whp_dispatch.WHvSetPartitionProperty( whpx->partition, WHvPartitionPropertyCodeSyntheticProcessorFeaturesBanks, @@ -2149,6 +2158,10 @@ int whpx_accel_init(AccelState *as, MachineState *ms) ret =3D -EINVAL; goto error; } + } else if (is_legacy_os && whpx->hyperv_enlightenments_required) { + error_report("Hyper-V enlightenments not available on legacy Windo= ws"); + ret =3D -EINVAL; + goto error; } =20 /* Register for MSR and CPUID exits */ --=20 2.53.0 From nobody Thu Apr 2 23:57:07 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1774457165; cv=none; d=zohomail.com; s=zohoarc; b=BbAbJ1Oc/eCI6gIijf3ehH9VAN0b9rXw5LN593jbcNrFiaDu6tMS1B9cJZ7BH8/sfLWLag7PxevgevvOkYQIyLhE39/B1S8eVMszs2Y3biVa27ej+ygz2py5kLvMUIOzv7+1J4swP4jOoqcWmV0RLYOjjYymEGd/RL+l1mQhGYg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774457165; 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=OA7u7CvoBnwrQ6q5MqnN52xv+zOMgAaqhpZaN1iL2Hw=; b=eW7hlXe2iO/G7sRiCFl3NAw4o0I10y7NdrZZ1FnrNJYE6dG6HyEFlpDRf4IqimLg/P9pUudSdi5E5l53JvxkWznLUR8+8hK4PCOHXxSwkp/MCs6/8QygO7RM2C+ms2o/g4rKWtgWcZq1WsKPUr01G+NnUcazFt0LkFNWzBVDxuk= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774457165397495.22659988101407; Wed, 25 Mar 2026 09:46:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5RM1-0004ot-2l; Wed, 25 Mar 2026 12:45:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RLz-0004oi-6Q for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:11 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RLx-0004c6-Ij for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:10 -0400 Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-619-REHUgEpTO1e8ELUAuNIOYQ-1; Wed, 25 Mar 2026 12:45:07 -0400 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-43b7ec737c1so2649410f8f.1 for ; Wed, 25 Mar 2026 09:45:07 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b919cf2b2sm1028522f8f.18.2026.03.25.09.45.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 09:45:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774457108; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OA7u7CvoBnwrQ6q5MqnN52xv+zOMgAaqhpZaN1iL2Hw=; b=eqikfsGsHwMVZGUXH2Mkx27DchBt0bZKOqdpQ7rTIdZkgV8hvL1wOoRtUMPdzjg1WCpKEf VPXRNboigGPyqK++DiK7iRQ4x9SlNh3IgaZRypNFo5s9COQDw1Da/0e1SeOsQloAZQZQHm 9FH6ONf2gt3ImCjJoJGYS5S2ee01iws= X-MC-Unique: REHUgEpTO1e8ELUAuNIOYQ-1 X-Mimecast-MFC-AGG-ID: REHUgEpTO1e8ELUAuNIOYQ_1774457106 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774457105; x=1775061905; 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=OA7u7CvoBnwrQ6q5MqnN52xv+zOMgAaqhpZaN1iL2Hw=; b=rm8zVNfVtyEuMsXInMfi1jGGd2LtOkLxipiEZpbad/HNp2R84lmQDIE6GnPea+tulf lfXw2IBds/EoGaz+JhRvFbE2QjfFQ1XO97KB6HiDYtiKDHucgX50OPPmIVJvblvc2aQn kMyLpj1RoWow7nONkIxgiCbVZv8yu1fdBLLgXT2u98J5YgJ2ECLvmCZINV4ZB7Q4DpkN dYVzUljKns1HOONPjPXH4+5HcexaaMG+9aHiDEhRO74W9z1OlECfZ1poeAGqwXbugfa/ QN2wGyKdIiSSomF/2ilWP4GOtIVcq1WXF2L+g3hkXQz6XMCf4DVFh3g9CoZXPKQsI68E wmsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774457105; x=1775061905; 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=OA7u7CvoBnwrQ6q5MqnN52xv+zOMgAaqhpZaN1iL2Hw=; b=faQB2LT8nAFTRh2re/CdBZa1PY8YvkJokaCD8GQHR/cOJ2lMaarfiLeVfVJeYhzBsV boF+te8gjWQ2CAKXAOKfNk/XBDHpA5QOq+eqLJhdafV1K54otPUHugx6Ei0iQXLhYIkp uneleEbznWCtY5Q6fR0Loc6JPRqkx6esykVLqV+g83xhZqie5gbmd9kPJRDunBcj/6fl Py3mmxp+8+fa7jrSATaIMi4yFlEGDRUKeoMNc7yB5SP67rjP03WF+zJ17Kx49IpMBS2H PfJYowfL87xebkAwLhSSlS+djSQk9XMOK2Zyfq+64LUdhuPBu82pi9rw6dCUma+H854j VXZQ== X-Gm-Message-State: AOJu0YxInfl4ZfJlIxSLWoh5wRQ4QWUlu0+mqXFGiN5WEsboCp7HT1XM Q0CjnvJrgGDk+y777y0WZmVL9qVAhFUib/GH18ewOOfifJQRGez26++izLFCI7k4CmuF4A5qbeE HxUKzBNsR7tLCTigV+/Jj6PWQSf3OVUQpFHTrimqQeRC0Slr5dlRncE8Pj8N/WLvAsuiA+p6ahN 6SqEEVeWeQcxuCGZO+/P+z5ZGi7EkX57Ypz6uNYrSk X-Gm-Gg: ATEYQzz4kcUr3aS7P8dVps9N1NsTxj0XdF96eAFZbsD7atHFDmeq+pGfLahhkQja5fr axHSQeLjN6kEFE0oy1AiW4jSi4Y19B1PVMhfc8O4E9madJRpQDE3+2IuAPK532ZGzdkzwtQU4GJ PslZF3HaKSSvxPgWsQUpgFdQuk3WDtPqLMQomBzaiCwTUmF4CJ4T2x9wd9q3zhVCjDBhfFHo/8Z 5OzVda/29zBwmzsySt0nbKCQDFX3kVDh2SgkakJbQQqByt2e9iq8uv0YsgV2sl4jmpEY9V+Efu8 pXdQTk5yhzClHjTCOeVFyxUV1r/vPkBuM+qOFg3vB5aKl6v2CuUuowtEdXXHapQyErcLfnrAY8+ l+ZVmIQtPIhQaF2KOPtGMRnHZp1yQVlfIrusmjl8WqWB0IRdlF5L1XlNURFzFq8Ba+PwF9Rbs5J ageUoiw6095y1kNnSIvQOCpi7u X-Received: by 2002:a05:6000:2084:b0:439:d74f:2109 with SMTP id ffacd0b85a97d-43b88a39c6fmr6336209f8f.49.1774457105125; Wed, 25 Mar 2026 09:45:05 -0700 (PDT) X-Received: by 2002:a05:6000:2084:b0:439:d74f:2109 with SMTP id ffacd0b85a97d-43b88a39c6fmr6336133f8f.49.1774457104364; Wed, 25 Mar 2026 09:45:04 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Mohamed Mediouni Subject: [PULL 05/19] whpx: i386: enable exceptions VM exit only when needed Date: Wed, 25 Mar 2026 17:44:39 +0100 Message-ID: <20260325164453.72127-6-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325164453.72127-1-pbonzini@redhat.com> References: <20260325164453.72127-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1774457166217158500 Content-Type: text/plain; charset="utf-8" From: Mohamed Mediouni The exceptions VM exit was enabled with an empty bitmask even when not used. Signed-off-by: Mohamed Mediouni Link: https://lore.kernel.org/r/20260324151323.74473-3-mohamed@unpredictabl= e.fr Signed-off-by: Paolo Bonzini --- target/i386/whpx/whpx-all.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c index 015c0f1dc99..8f1835ee95c 100644 --- a/target/i386/whpx/whpx-all.c +++ b/target/i386/whpx/whpx-all.c @@ -903,13 +903,31 @@ static void whpx_init_emu(void) HRESULT whpx_set_exception_exit_bitmap(UINT64 exceptions) { struct whpx_state *whpx =3D &whpx_global; - WHV_PARTITION_PROPERTY prop =3D { 0, }; + WHV_PARTITION_PROPERTY prop; HRESULT hr; =20 if (exceptions =3D=3D whpx->exception_exit_bitmap) { return S_OK; } =20 + /* Register for MSR and CPUID exits */ + memset(&prop, 0, sizeof(WHV_PARTITION_PROPERTY)); + prop.ExtendedVmExits.X64MsrExit =3D 1; + if (exceptions !=3D 0) { + prop.ExtendedVmExits.ExceptionExit =3D 1; + } + + hr =3D whp_dispatch.WHvSetPartitionProperty( + whpx->partition, + WHvPartitionPropertyCodeExtendedVmExits, + &prop, + sizeof(WHV_PARTITION_PROPERTY)); + if (FAILED(hr)) { + error_report("WHPX: Failed to enable extended VM exits, hr=3D%08lx= ", hr); + return hr; + } + + memset(&prop, 0, sizeof(WHV_PARTITION_PROPERTY)); prop.ExceptionExitBitmap =3D exceptions; =20 hr =3D whp_dispatch.WHvSetPartitionProperty( @@ -2167,7 +2185,6 @@ int whpx_accel_init(AccelState *as, MachineState *ms) /* Register for MSR and CPUID exits */ memset(&prop, 0, sizeof(WHV_PARTITION_PROPERTY)); prop.ExtendedVmExits.X64MsrExit =3D 1; - prop.ExtendedVmExits.ExceptionExit =3D 1; =20 hr =3D whp_dispatch.WHvSetPartitionProperty( whpx->partition, @@ -2175,7 +2192,7 @@ int whpx_accel_init(AccelState *as, MachineState *ms) &prop, sizeof(WHV_PARTITION_PROPERTY)); if (FAILED(hr)) { - error_report("WHPX: Failed to enable MSR & CPUIDexit, hr=3D%08lx",= hr); + error_report("WHPX: Failed to enable extended VM exits, hr=3D%08lx= ", hr); ret =3D -EINVAL; goto error; } --=20 2.53.0 From nobody Thu Apr 2 23:57:07 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1774457215; cv=none; d=zohomail.com; s=zohoarc; b=KUSkg3orVrXWctzZzOIg2z94Y0CNOZYSYMBqY7Y8G50nrb+Y9SeE7vkGfQSF7zgPt5cGivuDMzckzAqbYu6obCP4Rxrj/Qk/deutoytNT1VVIYPspfH/U8jB0BvDvCVLHro8PK1TdH8S+/KRzq9p7mYY/7/J6tKwEvAoICltsNA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774457215; 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=DrGcx5SIbojAJCYnCMhhFRMwGUlUPZaltqmhri0jqaE=; b=k7zSuUxCqj5IBqq3mIjCBGUa7wvQbFsip153Z3cKBASZcf7iz6bY9Us+FnBIcUkxnyBTAafoaAgdnf5RMYQD2uwNBEkT+ss2zXlwrx3oeV6YfWaAEitHxsIVXL3e/s+ifoxNA7s6b+IcyVN7dHjwAxP9olM3KBo8ApwXRJvB9us= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774457215323283.3953194581667; Wed, 25 Mar 2026 09:46:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5RM3-0004pW-49; Wed, 25 Mar 2026 12:45:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RM1-0004p8-He for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:13 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RLz-0004cw-Uw for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:13 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-625-IWOal9oFOCqwZ-6WHyOZoA-1; Wed, 25 Mar 2026 12:45:09 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-48532df52c5so556975e9.1 for ; Wed, 25 Mar 2026 09:45:09 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-487116f17f3sm137715975e9.1.2026.03.25.09.45.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 09:45:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774457111; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DrGcx5SIbojAJCYnCMhhFRMwGUlUPZaltqmhri0jqaE=; b=B4ISnXBrRlQIgN3neABoz/iQWgWI/p69ilIn5jR41eFKuhXXQiG7enIHtRNLzf9QOLSxEc vwRwTb4HuM7nKVxyYzYxM/Ff93OcnG5H3D+7vy+fFv3/+e9J9eiSfObBd9cwNZIpc2ry4J 1wqk/i5BeWFRlRkjOchODuLPwdhSp7k= X-MC-Unique: IWOal9oFOCqwZ-6WHyOZoA-1 X-Mimecast-MFC-AGG-ID: IWOal9oFOCqwZ-6WHyOZoA_1774457109 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774457108; x=1775061908; 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=DrGcx5SIbojAJCYnCMhhFRMwGUlUPZaltqmhri0jqaE=; b=dNT427owXfs2JgHTZLYIy4ObrtHllnVxOQaeoU6C7aIz7osJITRJR2wnlD/KYqXBcE z40bMFP+NHwaFEVqzn4y/SODX6aC4zZJFcmSpZwGIeAi+qRu3x+eSB545LpgkqP98a9s dPKG5v4EElCrwRB2dpPxsWgeJ/YLEJw9jSyQrmZmCulvaKhAn/Yp4P+p5ubKPrpe/2B+ y88B6Iyz4ZBUgQf3rtvGoSWKWXbzioePUXcp6yE6dwRrCJcjqSNkdXsiF8qi6ptWJMts MvACYjKk5vXJ5vu0jB7SFLAlCKkzETvlgs7sVew9WEtfibadk5iixgYoOH3ZXXgccw8D Toug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774457108; x=1775061908; 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=DrGcx5SIbojAJCYnCMhhFRMwGUlUPZaltqmhri0jqaE=; b=sGr4P/ZAQLLe4v4S8UxYZWZtxiIsX7Hzd7dTyHvNsoS6KuhLzfbb8tQvANKO4iPFdi IJMdBz+t50G65oSIAvrRzG08UhcCCZREg3C9isUE7zcQ7QjtoDd+KgBhKvGDrLN9kDQC xVPI70RSZOFeWVVQQHiBDsH8END7GjC/1ojljwmIlvDRux2Rza/WPh3ph/1BPh28N4GF u6LNsOEo0zCwOQpHPJ04lc8UlbW21pQCIRbK4K81TC/24cdZRiO4wIAPdZmaS0QFOxkp 3ucvBiTKvnmHWBxLPdSo4tPIT2IqSk9T0d+vUgS1SO42fjxZ/6AnntV/lBYjjwgilmbl F8Mw== X-Gm-Message-State: AOJu0YwiN91BZxyfLbMOCYiZpeTrC6yz1UYrOwJRYHt+gSPjyxouUQ2Z NCXD1+BWeWtW7VHJhmAAGvSBtoQzQ0LO5myqbwmB2mfeFwc4teIUAEDD+lYa4fmbI+kSY57DgV2 Njjt+z9yzi6A5vEjsMuGZ/Gl9wEZf5aYS+N4NZQZ56P3HE+KHaSTkEtVKRdAgH4qj5hEVesxMyc UwEGzQbA8Ulx0gX+U+G/lM8w9hkkHd2IVAq2nYwGy7 X-Gm-Gg: ATEYQzzLcmZNUMktDyXDL3WGsuy/+mhCIQA/AF/nL8byfORWv1j1eI/lrf+l79N0BDa inD3/5iSx6MekX3uCqh5YmahHO5XlJElddRaGp/yoNBtJbqcyiwWC2NPMJFP4dj4VPPMBZnZbIu 0QILVUds3jYFbLjUQ6LCmfnU7IROJXcvUYY6XLNRw3PHz3LFDSyflzNK4nhH/Ouv4505588DHjh O8mebvC8P/nU1XQg9sO9yejEyj/0p96iBR6BgZUw960tA5Xk087GHjyr7/d3LaTa8Miu1s/E8S7 EBNkGST5BSI1Gt/p0r1r6Zj4UNetJvUrpa/rsNI2ot0sPksKcnHIAwPZNNvxD78OFO0Ms27RdJB TmWa25Q+vzquNZY4SEhOKXy23w/h59DjU0am4pH0veGs89OlaertxKI8wp712KfJW4858zwuBGr OuWv3PixEYMv2CBcdWk/jcR+Th X-Received: by 2002:a05:600c:1f86:b0:485:46fd:7887 with SMTP id 5b1f17b1804b1-48715fef87fmr66009765e9.13.1774457107833; Wed, 25 Mar 2026 09:45:07 -0700 (PDT) X-Received: by 2002:a05:600c:1f86:b0:485:46fd:7887 with SMTP id 5b1f17b1804b1-48715fef87fmr66009325e9.13.1774457107300; Wed, 25 Mar 2026 09:45:07 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Mohamed Mediouni Subject: [PULL 06/19] whpx: i386: skip TSC read for MMIO exits Date: Wed, 25 Mar 2026 17:44:40 +0100 Message-ID: <20260325164453.72127-7-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325164453.72127-1-pbonzini@redhat.com> References: <20260325164453.72127-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1774457216445158500 Content-Type: text/plain; charset="utf-8" From: Mohamed Mediouni The TSC value isn't needed for vmexit processing. Signed-off-by: Mohamed Mediouni Link: https://lore.kernel.org/r/20260324151323.74473-4-mohamed@unpredictabl= e.fr Signed-off-by: Paolo Bonzini --- target/i386/whpx/whpx-all.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c index 8f1835ee95c..ac03445d9da 100644 --- a/target/i386/whpx/whpx-all.c +++ b/target/i386/whpx/whpx-all.c @@ -606,7 +606,7 @@ void whpx_get_registers(CPUState *cpu, WHPXStateLevel l= evel) =20 assert(cpu_is_stopped(cpu) || qemu_cpu_is_self(cpu)); =20 - if (!env->tsc_valid) { + if (level > WHPX_LEVEL_FAST_RUNTIME_STATE && !env->tsc_valid) { whpx_get_tsc(cpu); env->tsc_valid =3D !runstate_is_running(); } --=20 2.53.0 From nobody Thu Apr 2 23:57:07 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1774457170; cv=none; d=zohomail.com; s=zohoarc; b=KOk6GXbC8vhxOrOtY6VR/5O0W90G3TB0kVpEHq5nQwMWuXQDg8hkPpsQL78H/3VPToqxFNC0ZK75OBUUPP06JSdZNgK7rYfgnVm1m5cJpv6hjQqxtFxgZ27gSi94jDR2tgczMCeXAGZZb07VDtRosMjw7gAR9/fPT4A2RieILEY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774457170; 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=uUWLt5gqzfgVe+YfJCx/5uk9foGdupZQ9zjYEXh0nyM=; b=RnMWkNRsKaBm3mth9nsCGRwakT/hkYhuz0FVI4Vl9uiZk/ZxQM6LTC7Qvz/TWXupu4/5llQBFHFFWrSLjvkbIW7xwPYFAGX9q6l3YIWMvw6AfheN8e42R1TLSqza4Cf5nQMmKwxJUXt93zhkG4A3a7chtoT3gOAQlBHv2xb/csI= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774457170515118.7704693672971; Wed, 25 Mar 2026 09:46:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5RM4-0004pr-Ff; Wed, 25 Mar 2026 12:45:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RM2-0004pP-L0 for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:14 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RM1-0004dC-1x for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:14 -0400 Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-77-Ix2kJx2LNlKR3ulHWB6gSw-1; Wed, 25 Mar 2026 12:45:11 -0400 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-43b3d3d2d22so16292f8f.0 for ; Wed, 25 Mar 2026 09:45:10 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b919e708asm823510f8f.36.2026.03.25.09.45.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 09:45:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774457112; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=uUWLt5gqzfgVe+YfJCx/5uk9foGdupZQ9zjYEXh0nyM=; b=gi90qzWNSlZaATDpZuNJm3zfNA3I6BG84YFt6ijVOM0a9upzIEZ+edzP/+r0vTlyEwWqDi uVMLAFwT1q5/sSfnua8Att2N2VFDIphyE0weNwfeYJCyyhrY+n0ziv6tiUql0GbzKRetH2 8fb0pp6kLZPdY1OGudTPQWu9YF8DIVw= X-MC-Unique: Ix2kJx2LNlKR3ulHWB6gSw-1 X-Mimecast-MFC-AGG-ID: Ix2kJx2LNlKR3ulHWB6gSw_1774457110 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774457109; x=1775061909; 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=uUWLt5gqzfgVe+YfJCx/5uk9foGdupZQ9zjYEXh0nyM=; b=Wj5OKtT5TZE3OT+zSw34PW9d22UkL9OqqjDGxYwg3WH/GJXF6gs2gkgrmy/QoKSm4E o7fW8mp5Yhwe9bOOUGnlEtuAape8gbcqBh1Tg4wdEX8CtycZwYsVrcQ1jR8dyPGJRGHX 1WWkDVAzI5Wl+H51RKodBUmEOxMio7q9Obr/zH018mXbPHM+328xYcGa5r6ekmdOiWEA ssdVef4gvKD01Fv8yNrLLSSAAO6rlg7KRQgPw/9gzXqCOIjCV5mctNy5Y1JnAv1o4shP 2G+eyo58a2Af7he8LUDBfukL5oHO4u9Buda6x0OOD5zSYcCWYzTOj9FtLucXng7H1gZl aOMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774457109; x=1775061909; 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=uUWLt5gqzfgVe+YfJCx/5uk9foGdupZQ9zjYEXh0nyM=; b=HWVBluv5PyWoui/yR7OxbHnoTMLUNY+o5r1qIvolWyUitftLy+jSq1wZA5/G2+AAhi ANliws+xqt1U/Sc5zu7Y8oYKzjwINnRqEZmPe3kMK/pcN57hh8Bra/d1hmQjst3xUBGk SKnKq0/k6QKchgxOnU0dSPT7nsKSdTAvtucXz0N1lRNiLshuVRXRjTcqlxjIKuh0n8bl ZDh1G26n0lrLnQhqDiC/wHuts8eni8QKtothu5BLLFxJfFEjBQVHFp/RSKXOOJbuoGrz 6OeAyYHgkRosExt+6YzDsmRI9G+WpCPi9AE8bklAnvqXwn19s+YUlMcOfxcOYlv4FQ7P QLlA== X-Gm-Message-State: AOJu0YwTMJA+T4tNcGEwyrnVVAqXN7tPV/WdYNNQyHzRWSWxuEaXCAjh eqf18iDP7eEL0G9daL13mlpMee8p1d7dIGpU6b6hODm1rbwM4o8hFHUlKNzMcc7CXR4b12LVOeL 4sdIZUrt1gNzSSlDzgBQ0T8fi2Y3TG9T8Il/Ey9LcKjJmNZTvl2Yk69ODBwvm1xexnEPxlgZr/+ HtmkTM1NbPtksk16lekgbI7aGaVBSbd+O5TiQ4DVFv X-Gm-Gg: ATEYQzzU1CU4GbKYzgO8q8nRToDpBG5OCUmrMqXAdts73MPdz6krRn+iUD1RLfnLIQN 6jKaubADPtpYI4ckgOEl5veeXz2hOm0GgV575wF4FKTZBCcq0q3x0Fd0OSDB0ivk/bCMN36EPH/ aeAxfDQM9cuNksbd5+q+1RXAWOfSlyhOkN9pMFdh7+rh1N3n/PEo+o2pfmeuvcYJsUjxYF61GjV a5RUIhMxoVQkjGb58ETbfvN89YuDIjPZS8rg7oCVkkOHCgl5GqdHQPssmX/kmeReLy/OWM4np75 Hv6Q8i3f9F/fIGUTMfpammfOPf0N/O02GnTkfm1CjoIKUoYgsLQrBkCWSeU8uuTg+SVqxmden7R LCN2EoA68mCCLBTxf/rkr3HjFXqzLXz0nwRg9X6m2E6JweGdbrdyc8qYFLFuBxVptllH1E89hEG 0dABrOcQ/rWDt25Gqlpc32w6Nd X-Received: by 2002:a05:6000:310b:b0:43b:4c6b:754a with SMTP id ffacd0b85a97d-43b88a0d163mr6314870f8f.53.1774457109225; Wed, 25 Mar 2026 09:45:09 -0700 (PDT) X-Received: by 2002:a05:6000:310b:b0:43b:4c6b:754a with SMTP id ffacd0b85a97d-43b88a0d163mr6314807f8f.53.1774457108531; Wed, 25 Mar 2026 09:45:08 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Mohamed Mediouni Subject: [PULL 07/19] whpx: i386: skip XCRs read for MMIO exits Date: Wed, 25 Mar 2026 17:44:41 +0100 Message-ID: <20260325164453.72127-8-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325164453.72127-1-pbonzini@redhat.com> References: <20260325164453.72127-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1774457171840154100 Content-Type: text/plain; charset="utf-8" From: Mohamed Mediouni The XCR0 value isn't currently needed for vmexit processing. Signed-off-by: Mohamed Mediouni Link: https://lore.kernel.org/r/20260324151323.74473-5-mohamed@unpredictabl= e.fr Signed-off-by: Paolo Bonzini --- target/i386/whpx/whpx-all.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c index ac03445d9da..c0c7ba91772 100644 --- a/target/i386/whpx/whpx-all.c +++ b/target/i386/whpx/whpx-all.c @@ -689,7 +689,9 @@ void whpx_get_registers(CPUState *cpu, WHPXStateLevel l= evel) * Extended control registers needs to be handled separately depending * on whether xsave is supported/enabled or not. */ - whpx_get_xcrs(cpu); + if (level > WHPX_LEVEL_FAST_RUNTIME_STATE) { + whpx_get_xcrs(cpu); + } =20 /* 16 XMM registers */ assert(whpx_register_names[idx] =3D=3D WHvX64RegisterXmm0); --=20 2.53.0 From nobody Thu Apr 2 23:57:07 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1774457218; cv=none; d=zohomail.com; s=zohoarc; b=Gzbdr6vRiyrT/PL3G1rnQ2IdmXPUY8i68mYf3RQqytimIZAHqGDjosHmAWRyP0AsSOsEZzV6BMBvj4u6vQrolPQgoaCbBkzjqIeGlGKLBZgDWFmIDrLvnIknym/i0z2223V+6CaAKmOdkTc8PEkactS3SyGzg42N8Ucv1GdsndM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774457218; 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=0BvefcsBM41Sy57yzhbmwo6+n/NVrQ/jhC7lYqP5BXE=; b=nZZ2aVwsmZMBXp13O4EqiSbgjrY2GvqAgyuGWGIygv6GrEm3f+v25H6xUze8aDm0LgTNqa62m/+RrTSSujazYm0L/WzgUmIfoHb383gYTeOEH8saBv+l3gdJ2DrIlnFd+rWoWzdQKZ5eYQU6ldXN91oaJUm6OQqCE0V6TfwZ3e4= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774457218225511.01102037332475; Wed, 25 Mar 2026 09:46:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5RM5-0004rh-7T; Wed, 25 Mar 2026 12:45:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RM4-0004po-BT for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:16 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RM2-0004di-Lj for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:16 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-33-ugOQ7RwDMEmt8Mjc_yjBKg-1; Wed, 25 Mar 2026 12:45:12 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-48553fdd03dso420055e9.0 for ; Wed, 25 Mar 2026 09:45:12 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48711764625sm147771045e9.14.2026.03.25.09.45.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 09:45:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774457114; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0BvefcsBM41Sy57yzhbmwo6+n/NVrQ/jhC7lYqP5BXE=; b=H3SWsycI+d4qHohlfJt8XEbjEhiGscaxVtSPyMVHQaBRRdq7f07dhfqVWafaxpEDk8npjI 5ukievNeZhdFY9sgwYqO+v4HX6tXHt1Ey7lNIDuBcMuviwcXOti+DzBbtbVLkU28xm72k+ iqP2t2jGAaBEPIqy26uZXmdKEmws9TI= X-MC-Unique: ugOQ7RwDMEmt8Mjc_yjBKg-1 X-Mimecast-MFC-AGG-ID: ugOQ7RwDMEmt8Mjc_yjBKg_1774457111 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774457110; x=1775061910; 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=0BvefcsBM41Sy57yzhbmwo6+n/NVrQ/jhC7lYqP5BXE=; b=JEml2RmBjVepA+I1/2Lx2EfRP5MEPBh7Jcn9C+0+4xMiUGbLm/b/xgxISYkYzhzcD3 dNCzVDu19XNGyZRljmWowbkDb4diR1uJPSmplke+T+j7J4Lc5X3fyUPgfJ2vhAVmgK0e oiTEDsilnnkyGMlHsiS/J0siGoIubutZmmdJTDjmSdI6PCHvQyUOC94JaWV4D8pGcHVn lwEoO3yfBk09lezDXsDxKvyRG/fK7X26Ehvy94ju+UdlzwgMJ0r7/5Uz9hQGr0l0sGZm eSw/BHqOiS0FF9LkWfzI3s7dhHwY1V8CxKQnqX97mAJNwRK1prJqImgEkv+MyC6Junyv ta1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774457110; x=1775061910; 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=0BvefcsBM41Sy57yzhbmwo6+n/NVrQ/jhC7lYqP5BXE=; b=qcfsqfUaISyFT6WjmxXPGWaE/G4w6fKcZHpuLeaGAV9XOsgj/xs46WQQpw0mpUiGAF gFpHz63P2ioh/qfC5DfaOI73kQ0En7i1/q8h8HD9GA7sVQoMqiwy/lUDw1afxnVEmSAv WCg7rJnhYfvdI93fkqkMgO63qUgWexoraoxdivmeqgVf8y1yF+XkABTZ5saVcKcK7reK D01GqGxA0QDh1WL5zrT0VaF0VJyWg/9S3hH1fQRSl9Ol40yJe2fOzFBDAw911wWpwQv2 wFPoVXjVsOketIPuaeM5j8fURAIDz6gj/65brea41oUi8+kEG5MIDVap17LbmOW5sfyv f2WA== X-Gm-Message-State: AOJu0Yw/3WU17LYYhEq/Kq0qQD4jv7/GX9GDNNcz3IcR15BGRUad1+Hp qXn1vQlTB9zCtetf0Cge3/qscUfCNfg1qLISK/iuFpnWPdb0aOM6wJZJ1PydQ9Qs6ORgZnK0mAB /RGkHvTlZWPJPNW5Zd7UE23DZvSlQwnl0qBRZbbUVsItXfEV+jVe7i1F9Ef8Wv5HwA88B4J/lMt 8D/c2fahPF4j64sRKO4wgNBINqaxkwrW2IBCxUJpLh X-Gm-Gg: ATEYQzzxbjzYs8uSE6Zd9/iW4a/eYtpzBPiQVFUlXD+ceZnSHNlkdHEh9TQD293MrEa Bq6GOPhoANk9D+toJdaxcOgAMpWiQydEsOm/XVmQSRsdbjQQtFwWaV6xpkbD7lC8rIubIhlO4tc y/6i/makcSFi7nhKXkZHASHsmcjqDs90Ndh9Zn2ZfCJqxus5NiqGm8uy2oHgS84dNfB2PJlJKNO HQ7fgE3FaI6ajqZzbjdAei/PSkqTtMx4hP+b4ZOAjyDxHhZ9bWWSM2SCSFsdaluMAG4DjwIDSao 5sUYPQQPkgZUA6RG41FWjIDA8cq2by77W9QLBxarlocZEXx2DwDcY1U1b+pGG03hAehUqQMGpqp a9tSGrJ+S6qyjYISQ2W6g4xAlXlpZVbBeDmpDsaGj5g48WOYjAtogFZKCxbm68Bi5v87VO04hNO yRMeLkT/TbKCOMSGsZDhAigLIL X-Received: by 2002:a05:600c:3b12:b0:487:1c2:6a56 with SMTP id 5b1f17b1804b1-48715fc385amr70165715e9.3.1774457110401; Wed, 25 Mar 2026 09:45:10 -0700 (PDT) X-Received: by 2002:a05:600c:3b12:b0:487:1c2:6a56 with SMTP id 5b1f17b1804b1-48715fc385amr70165085e9.3.1774457109814; Wed, 25 Mar 2026 09:45:09 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Mohamed Mediouni Subject: [PULL 08/19] whpx: i386: don't restore segment registers after MMIO handling Date: Wed, 25 Mar 2026 17:44:42 +0100 Message-ID: <20260325164453.72127-9-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325164453.72127-1-pbonzini@redhat.com> References: <20260325164453.72127-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1774457218547154100 Content-Type: text/plain; charset="utf-8" From: Mohamed Mediouni Signed-off-by: Mohamed Mediouni Link: https://lore.kernel.org/r/20260324151323.74473-6-mohamed@unpredictabl= e.fr Signed-off-by: Paolo Bonzini --- target/i386/whpx/whpx-all.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c index c0c7ba91772..69d141e7cce 100644 --- a/target/i386/whpx/whpx-all.c +++ b/target/i386/whpx/whpx-all.c @@ -416,19 +416,21 @@ void whpx_set_registers(CPUState *cpu, WHPXStateLevel= level) assert(whpx_register_names[idx] =3D=3D WHvX64RegisterRflags); lflags_to_rflags(env); vcxt.values[idx++].Reg64 =3D env->eflags; - - /* Translate 6+4 segment registers. HV and QEMU order matches */ assert(idx =3D=3D WHvX64RegisterEs); - for (i =3D 0; i < 6; i +=3D 1, idx +=3D 1) { - vcxt.values[idx].Segment =3D whpx_seg_q2h(&env->segs[i], v86, r86); - } =20 - assert(idx =3D=3D WHvX64RegisterLdtr); - /* - * Skip those registers for synchronisation after MMIO accesses - * as they're not going to be modified in that case. - */ if (level > WHPX_LEVEL_FAST_RUNTIME_STATE) { + + /* Translate 6+4 segment registers. HV and QEMU order matches */ + for (i =3D 0; i < 6; i +=3D 1, idx +=3D 1) { + vcxt.values[idx].Segment =3D whpx_seg_q2h(&env->segs[i], v86, = r86); + } + + assert(idx =3D=3D WHvX64RegisterLdtr); + /* + * Skip those registers for synchronisation after MMIO accesses + * as they're not going to be modified in that case. + */ + vcxt.values[idx++].Segment =3D whpx_seg_q2h(&env->ldt, 0, 0); =20 assert(idx =3D=3D WHvX64RegisterTr); --=20 2.53.0 From nobody Thu Apr 2 23:57:07 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1774457131; cv=none; d=zohomail.com; s=zohoarc; b=V/LK4nXDbX8d7JevmdynIVKT8uMiu9pmMPa7U/gx9WBk8cm8Q8AhYSVwF7PrrrcJDB5uAc1KebDy4fh01VM+mErS7hpwxKwucDt8iuUdrTd4s9J5WOvonanzTl14Brh8toP3UfBNIm+m9BWMJMkB4T8+bXIc05zbdWij9V2HgXE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774457131; 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=iMwtdu8zITy6FiC5AzTGmGzrMXxG2qh+5n3w3ZMaSQU=; b=k2rtxEm3Jmp4VtOAGMpj8vbtgDyEP3tqpnPeuyCNWS1NT2CDE3krd56Oj97pIqxIpOQ2yMznrbqrh1RhRpCP4LbA9ETdL52l3r27ExQ7R2aAB/sesCQuhTdLn2pGzDGSDW1+VLQBZZ0saBKU+cRXlF9lAj0jaGaXh2ZaA3YIKOQ= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774457131791165.97112208728868; Wed, 25 Mar 2026 09:45:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5RM6-0004tJ-QP; Wed, 25 Mar 2026 12:45:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RM5-0004rm-LF for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:17 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RM3-0004dv-T4 for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:17 -0400 Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-371-LBxyhtXbP6eaYcTxyLDq3Q-1; Wed, 25 Mar 2026 12:45:13 -0400 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-4362197d1easo2237311f8f.2 for ; Wed, 25 Mar 2026 09:45:13 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b919df903sm886778f8f.30.2026.03.25.09.45.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 09:45:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774457115; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iMwtdu8zITy6FiC5AzTGmGzrMXxG2qh+5n3w3ZMaSQU=; b=ZA+QL2/lkDGfxxQ1f5apcaizDDPpKn4I0DSaOyCJeynDnnfoRFKr2mtfcpyqvs4XvDwBb5 RLYK5mMw6oPhP1J1ALxHsw1QfGjOPy6DcpVacophNUbpBE/7R9/HCZa+OyIUg0EI4lgCoQ OthSCKUpSspweXmQi9mHQDgiMqTtRW8= X-MC-Unique: LBxyhtXbP6eaYcTxyLDq3Q-1 X-Mimecast-MFC-AGG-ID: LBxyhtXbP6eaYcTxyLDq3Q_1774457112 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774457112; x=1775061912; 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=iMwtdu8zITy6FiC5AzTGmGzrMXxG2qh+5n3w3ZMaSQU=; b=iQ5ILKyqB+vyjqTodZWQ7hgiN9S7Gnoq67JHB0JTE5s1lGgERaxCKDox74EIFpaBbH AZ7t9z+fKJ1T1AVwXEgf3/ky5WZuQz73Le38/v8dBiKpSPJiOJ+UazkyaNKS1aYzuKb3 sbDPuRE0LjXOtYtEZ8fXJpNMced98GKvNxAQWDmQqhTB1gfG0Nf97eGzMInYPsYN+Jf0 l5Qkq02zhyMYyiaM7nfYw6/u8EWs6JuHaFSr1VPc1j1pFaVZER9tl8O+shof8XjqNLRK A1ipDdqMXOUsYa6i7NLmqoPRw2Q4D+Czdrnn/AYCYAXscsf8MJ0ACxk8r/QotJuyYKcc cEiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774457112; x=1775061912; 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=iMwtdu8zITy6FiC5AzTGmGzrMXxG2qh+5n3w3ZMaSQU=; b=LWvY1fwKyXJ+2zWdgdGn6q0J2lMqp72mAczNBsX7WFBQ9fyf3lKByyC3DAbt/cPfla +hnc7VQUJjg90eMHRVqYpEBAolTWXWmKVmvJpjGzxqv0BGR2msZliHs3yTWPqz0guBTp 9fchr7V8XztiTynXBNSqE/AZhlgRFmx9NLOn3Y0qaHBRa7zc+G+QaQkzT4nQbpTOHgxC xcLzc8pqJhC4Rl4URmJ23VBrYhgnda3AGxyxMyT7xvjmV24ijsvtI8s3SfHq0eqExnrZ MBwBDW/EcnPhc9/16vlj/1V8gzkPpfgEbz+uWWF4PiHRIgukk86V4npPW6+Xf1Erj1pr sMfQ== X-Gm-Message-State: AOJu0Yyut0rpNIRFq4G9imiNTtQO2ThT3ymunsi08SNcy84qbhYjf9L8 oy7JdyE+kveTqrHGzSVD/7JJ+9wIdca63/J5oIab1SFuwWNfRzB4zHa2b61N6ANS86xy+R9d1HD TWIFf9Cm2b4dbhcePtBke6B+n8eu/Qx0rUtSFKkxlxyveSsKX43y4vN1KV+2W0DoyzdXZGMQQQ7 u/+ljyhuWjY2OQaslP2/J4xNM46NFpjARZskyLoo6V X-Gm-Gg: ATEYQzwpPGQ3SGZlpbzcZUGj/0rxKEBSoodtHuVVcUp8m4lQ8I7sJ5tJnTK1zW5mxE9 cJM7Jq6FtWFIZJQpgI0OTynUBNBhrxmaTxZWaXsEwtRNCKw8NPS09c1VqEybxK6bhChjcLmPvmr 91Dx4YECFdhx0WHyJekestMRNnwOj8z+nhWfUqqyt2k4rzRUxCO9UuuyB0slVyICBfsISEEDIUF utHrGLT2kilvj089N/9MsyTtgd5YExzvsg98TP1eTkSPehH1TFA5AZjS/GKaaTCz9etB6COEZz8 z40jqEi+/oLGsm5U5VSnhFmCAhsaWTb82vwrQDRpN1gVQ98Pm+rK0jCD/tdXcDKJ5gHuqgK6NlW DekpGhg16UTe03bd+f8CZX6CVSgEYTiAZpFoHIwENsNH4Ufqa9LtOJA3wVV07EzGYGMTd4Eqqen h5FNAl7jHpmSx2pALhBz0iqvmR X-Received: by 2002:a05:600c:1548:b0:487:338:b4df with SMTP id 5b1f17b1804b1-48715fffad0mr67833705e9.15.1774457111618; Wed, 25 Mar 2026 09:45:11 -0700 (PDT) X-Received: by 2002:a05:600c:1548:b0:487:338:b4df with SMTP id 5b1f17b1804b1-48715fffad0mr67833235e9.15.1774457111068; Wed, 25 Mar 2026 09:45:11 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Mohamed Mediouni Subject: [PULL 09/19] target/i386: emulate: add new callbacks Date: Wed, 25 Mar 2026 17:44:43 +0100 Message-ID: <20260325164453.72127-10-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325164453.72127-1-pbonzini@redhat.com> References: <20260325164453.72127-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1774457133506154100 Content-Type: text/plain; charset="utf-8" From: Mohamed Mediouni On Hyper-V fetching some guest registers is really expensive, so add a way to query some state from information provided by Hyper-V to save time on vmexits. Signed-off-by: Mohamed Mediouni Link: https://lore.kernel.org/r/20260324151323.74473-7-mohamed@unpredictabl= e.fr Signed-off-by: Paolo Bonzini --- target/i386/emulate/x86_emu.h | 3 +++ target/i386/emulate/x86_helpers.c | 6 ++++++ target/i386/emulate/x86_mmu.c | 3 +++ 3 files changed, 12 insertions(+) diff --git a/target/i386/emulate/x86_emu.h b/target/i386/emulate/x86_emu.h index 0f284b0c3d1..4ed970bd536 100644 --- a/target/i386/emulate/x86_emu.h +++ b/target/i386/emulate/x86_emu.h @@ -32,6 +32,9 @@ struct x86_emul_ops { int size, int count); void (*simulate_rdmsr)(CPUState *cs); void (*simulate_wrmsr)(CPUState *cs); + bool (*is_protected_mode)(CPUState *cpu); + bool (*is_long_mode)(CPUState *cpu); + bool (*is_user_mode)(CPUState *cpu); }; =20 extern const struct x86_emul_ops *emul_ops; diff --git a/target/i386/emulate/x86_helpers.c b/target/i386/emulate/x86_he= lpers.c index 024f9a2afcf..ebbf40f2b05 100644 --- a/target/i386/emulate/x86_helpers.c +++ b/target/i386/emulate/x86_helpers.c @@ -211,6 +211,9 @@ bool x86_is_protected(CPUState *cpu) X86CPU *x86_cpu =3D X86_CPU(cpu); CPUX86State *env =3D &x86_cpu->env; uint64_t cr0 =3D env->cr[0]; + if (emul_ops->is_protected_mode) { + return emul_ops->is_protected_mode(cpu); + } =20 return cr0 & CR0_PE_MASK; } @@ -234,6 +237,9 @@ bool x86_is_long_mode(CPUState *cpu) uint64_t efer =3D env->efer; uint64_t lme_lma =3D (MSR_EFER_LME | MSR_EFER_LMA); =20 + if (emul_ops->is_long_mode) { + return emul_ops->is_long_mode(cpu); + } return ((efer & lme_lma) =3D=3D lme_lma); } =20 diff --git a/target/i386/emulate/x86_mmu.c b/target/i386/emulate/x86_mmu.c index 4e39bae025e..670939acdba 100644 --- a/target/i386/emulate/x86_mmu.c +++ b/target/i386/emulate/x86_mmu.c @@ -49,6 +49,9 @@ =20 static bool is_user(CPUState *cpu) { + if (emul_ops->is_user_mode) { + return emul_ops->is_user_mode(cpu); + } return false; } =20 --=20 2.53.0 From nobody Thu Apr 2 23:57:07 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1774457203; cv=none; d=zohomail.com; s=zohoarc; b=Z5ubKvMzFwYokKjLHnHfj6DwSKq5o2RcyCSiHMsn7xZq8gTfHpyHZG3G7VtG2cEmjsYfSSNZtMOweWnQ+7D3+/58HeYV1wQdo8Bb2C5HcwB931zyxP3ZdRL+X7exDy2x731/G9d3C+LS67SNaHqhEp10TFGoC/K6lnKZ41/ikYw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774457203; 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=MxYFYP7I8/UmLBT4u89F6moDzoIJLHvVc253l2LtIz0=; b=iw110plvYpq2H/xMz3o5knX1wP8pEqGsAd5XUEh8VcjNsfQYDM7HZ9hj63s+c5YM/VvU0Camj3sq6nA/OrAziujOO1PkM0YyueqsHKkT46/GSeqfPeufxyYNcRArd0BBEVxSbr5jTtMhcSsQ/WZJ1UacDVFTTTtdXchZhioXS+k= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774457203626488.7438189581794; Wed, 25 Mar 2026 09:46:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5RMK-0004us-Qj; Wed, 25 Mar 2026 12:45:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RM7-0004tq-NG for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:20 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RM5-0004eL-Vl for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:19 -0400 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-336-HeWQe6J3PkqffxAFfQjOxA-1; Wed, 25 Mar 2026 12:45:15 -0400 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-48532df52c5so557925e9.1 for ; Wed, 25 Mar 2026 09:45:15 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48711701804sm144417675e9.4.2026.03.25.09.45.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 09:45:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774457117; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MxYFYP7I8/UmLBT4u89F6moDzoIJLHvVc253l2LtIz0=; b=Tm+u6u9hHhu1YVyE2ni1KaRDGiRXbu8kX+Hjk4XXxmvDnEo0TU7GmQhsUWDvWz6yHg8vZf 9o0J+IpEpPEcDmsmDSe1NCLvquE5+ynvlI+pS8H4GP3mhRQYZOpgQH6rWVKcWMIZ4/RLIm sve+mJwMHYCW8f/HpUPI8tkGZnN4A/c= X-MC-Unique: HeWQe6J3PkqffxAFfQjOxA-1 X-Mimecast-MFC-AGG-ID: HeWQe6J3PkqffxAFfQjOxA_1774457114 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774457113; x=1775061913; 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=MxYFYP7I8/UmLBT4u89F6moDzoIJLHvVc253l2LtIz0=; b=BDI/m8VAK7152fQfGarQMhWzOOaVtmQgWuSvK/9LErt2wFwU4H6ZFDju7JquUUkJb7 AwR0lY63BEQm3Vyi4aZ7gxhzmZi8CjhpYcNi4978WnwEewIiKlqToKUtucgwj1HNeN+p mPp9YXWYIDhO22m2sYWg/b8aPKz8rPuEWouj2cogWLnaQktdG1H3GU/w24yCiiKSdCy/ ntCNu8i26lFSkJsm6hrty96SL8aDquVos+/BBOZHs1lruf6O7PUziykuImGDx5ys2bAE 5SyRgutCCs5xGbSCPOfXGSl82yyeclM9BmXX8jYtaRVNBIrUDqnbAcOZ9IdYGajN8boB Wlig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774457113; x=1775061913; 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=MxYFYP7I8/UmLBT4u89F6moDzoIJLHvVc253l2LtIz0=; b=AX0U/MV5/W4j1Pi0FWuzL+rAxXKmxi45LZaZeEjAflEiFh4Bq5/BOvo+XeAoB5RE4T rPvLKy+EqRUYHXBMi8ZsCIbZXr579h3F34DORGv7CTHIc/m8Ewz+74pqbgL+77Ilc9kH pbA6jBTja3si2mZ2R6Ap3lGcKJGVDagyspABMX9CvVPpmrEedg3RP8TnFJE2GbAgyibb FG+gZYMNUZ/2wBzP+UW5WQFL6GSNoBx5WMCmlm8cTF7f7ZDs6Q77chdqDpoMNxooVCc5 eGedEIpkE/OPjmxW3i6uXoguAAebjEkr5Lfn7iVGuioeU6qKLtLDENOWE4NCs817Iv4K v/Ag== X-Gm-Message-State: AOJu0Ywcghz5YBVMF1BlZj61Zu/X0vNFuocIvSIqGgBEuF9rsCsqInFA CMDvcafmCBTtPZ31lC/mYbQB9OaBx+0UWOy0t/IYRuFeUe5avx/RA4W8v9ANyGn9pz6jkWTweBI 5ncYf/M5+OK3+Mtz3nZYHjhTul7PswPtd3ZSWxRHlFUZKg3FaNHKQIwBaUc3+QL+glPOV0Xk/44 WsEIFDCnYMZg/ae1Dslkl0vRdAqerPXo9DbZ+UL/+I X-Gm-Gg: ATEYQzzyeyx48nWuKHZnKp/Cl7BIjB5hW5n+xJc3bh+yaMbbuEmB4HmuT9r0C/dop6J YWSBi1n9xrcWTSjLTXobGOXMTHFWEVHRejU1d9uw9eWeLq5+4MSot7F6N8cMTq9kp5KEIT2dkLd GIp47pTNdYFpT4EOg1iPQEJ96oz+wNnx67X6ccoA51qdqTk5Iha2U3tofOgoYeGR3PjGQzbQH5N DaGP18zjFeneinBPS3ajkUCtuOxD+d3eNFXxUQdaND+k6XL3VklzjXs+qcy2CoiLjiTZQSyQEuR K80+CmKLJFxEbalMTa7IZxkHgHedstjdglOM3vHVKIO3z34nJYb/NLPTYVeQwLOih3sb2Nt7Aga 9DgMkvMojqQx5pboDasjNH256r5EXBcpXaTfA/gSCG9F3pfTL2NL3HbfsMpFm7c5+6isj5tBJVD CIPEHXqho5uYEN9TE18qv5UfNY X-Received: by 2002:a05:600c:1f86:b0:485:46fd:7887 with SMTP id 5b1f17b1804b1-48715fef87fmr66013445e9.13.1774457112842; Wed, 25 Mar 2026 09:45:12 -0700 (PDT) X-Received: by 2002:a05:600c:1f86:b0:485:46fd:7887 with SMTP id 5b1f17b1804b1-48715fef87fmr66012985e9.13.1774457112316; Wed, 25 Mar 2026 09:45:12 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Mohamed Mediouni Subject: [PULL 10/19] whpx: i386: add implementation of new x86_emul_ops Date: Wed, 25 Mar 2026 17:44:44 +0100 Message-ID: <20260325164453.72127-11-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325164453.72127-1-pbonzini@redhat.com> References: <20260325164453.72127-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1774457204561158500 Content-Type: text/plain; charset="utf-8" From: Mohamed Mediouni target/i386/emulate now has new ops for fetching whether the guest is in protected mode, long mode or user mode without fetching control registers. Use those for faster vmexits. Signed-off-by: Mohamed Mediouni Link: https://lore.kernel.org/r/20260324151323.74473-8-mohamed@unpredictabl= e.fr Signed-off-by: Paolo Bonzini --- target/i386/whpx/whpx-all.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c index 69d141e7cce..b97dc9fd514 100644 --- a/target/i386/whpx/whpx-all.c +++ b/target/i386/whpx/whpx-all.c @@ -885,10 +885,32 @@ static void read_segment_descriptor(CPUState *cpu, } } =20 +static bool is_protected_mode(CPUState *cpu) +{ + AccelCPUState *vcpu =3D cpu->accel; + + return vcpu->exit_ctx.VpContext.ExecutionState.Cr0Pe =3D=3D 1; +} + +static bool is_long_mode(CPUState *cpu) +{ + AccelCPUState *vcpu =3D cpu->accel; + + return vcpu->exit_ctx.VpContext.ExecutionState.EferLma =3D=3D 1; +} + +static bool is_user_mode(CPUState *cpu) +{ + AccelCPUState *vcpu =3D cpu->accel; + return vcpu->exit_ctx.VpContext.ExecutionState.Cpl =3D=3D 3; +} =20 static const struct x86_emul_ops whpx_x86_emul_ops =3D { .read_segment_descriptor =3D read_segment_descriptor, - .handle_io =3D handle_io + .handle_io =3D handle_io, + .is_protected_mode =3D is_protected_mode, + .is_long_mode =3D is_long_mode, + .is_user_mode =3D is_user_mode }; =20 static void whpx_init_emu(void) --=20 2.53.0 From nobody Thu Apr 2 23:57:07 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1774457169; cv=none; d=zohomail.com; s=zohoarc; b=knrBMc0zJ7kyagFtKODoE8xr7+GhjFoW81CzuTJQZbBbYg8NqSgqcjYOUN2c2RyMdNsBRhwQxgRgJokSJJoUmc9CqfIFh2AX9W2MSpRgF9I5bLqsql/ZfofWnGVuHmY1hlMLvE+A6lTcfuqzRm4dEBMfGHRcJx6wuogoxafLgTs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774457169; 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=hdngwf9IxLRWLplWOn/lnOHhD3mhIw/hOaoolbTXnJo=; b=JblaxRfsQXvUcLoxi+9XE5IyzTCiaRawcNoUcfjMa77iNIwZpIVR8BqQViBA/TaCKaWrZrV/QpahrAgFeB1JSIJN5S8TqiMiU27WuZNgpFSZGdn41C8vy20jGG05FdY+NrnEpmGg6x3XFE2eanH3uQopra084ax5l0kwcv4hOHM= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17744571697370.4994058890457609; Wed, 25 Mar 2026 09:46:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5RMN-00057D-67; Wed, 25 Mar 2026 12:45:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RMD-0004uY-IV for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:26 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RM9-0004eu-5l for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:23 -0400 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-318-3WSHYkn6OHq158K6NRzR-g-1; Wed, 25 Mar 2026 12:45:18 -0400 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-48531e8ae62so1942665e9.3 for ; Wed, 25 Mar 2026 09:45:18 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b9192e3f9sm1200821f8f.7.2026.03.25.09.45.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 09:45:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774457119; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hdngwf9IxLRWLplWOn/lnOHhD3mhIw/hOaoolbTXnJo=; b=UQaxRUGii21usLh1xL51Z8d/IePm0jKXHmOWEjxbqm4+g8Gv3do21Ff+JuUVsiNqoWHnm0 5toquzYhmtG6ytvx/4UYZoIVnW9LxBuf7NqdIHQCYeBSoMPcjdCJDtUlFFKOWsE/fF1cDo irEbIfAD4KTTbFW/iIlrw6XXLBbXiVU= X-MC-Unique: 3WSHYkn6OHq158K6NRzR-g-1 X-Mimecast-MFC-AGG-ID: 3WSHYkn6OHq158K6NRzR-g_1774457117 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774457116; x=1775061916; 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=hdngwf9IxLRWLplWOn/lnOHhD3mhIw/hOaoolbTXnJo=; b=RcJPCnnsGmJMAON5WTi0mBx/cKZD6rH8n/9E6NAH+FhW8A721/FdO3/TDlEkmLAwUU sRTL7Ak+jlquoWw85L7T/22bf/mjgwEOmbAuborI5XjXfO1MvrELiT6tiRpW7I0pbc4m B2FrSRMz9UVrv3aHS+IAFOL6WvaPnDMdoE9TENLb7lP5kW4DMb2XEbMzJUDmrln0lpF3 afjVPKzOrg7S1nUL4WacP6LtZ4iRBU2BNL9sft+3RQdr+s7O2jlzBilaZak4r1ayMeVn ohDlbZksVjIafpiWh/ydCsLG0V5ZCsBuBhQt+W5ymiktSl2Cj8+2EU6T14EO0QJeLsC6 zjkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774457116; x=1775061916; 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=hdngwf9IxLRWLplWOn/lnOHhD3mhIw/hOaoolbTXnJo=; b=SoOH3CVGl9CfNOk8uX0KqSTYL918fZ1jLcrL6NspqaY6iaXYItjq+7ogTZyxMpoZtm L8AZ6ma0Gyh9YZHO8xpoNkSZvPQ+UaPqNMJFk9yvUWu+qvy5F5ld6KRU3C6Q/q2kIb0T Uz4ML+tFN18Qcd2i9Fap+dvwhFx4ZtXwqvE444qwmJqK7a1XFWMhegjva9Y5RHUDdN66 7JswkCI3KZoFswFpPprCQby1AAmlAwVSS1GKkdTMn2V8kj8ltriNbslDtVZ6AghlWz1D rpxLXAh5T4B/LLebFzXjQGY1W5lgGTQI/ycH7a6HTGykUvAExfkmeSKqAw1W5WDwx2FJ E18Q== X-Gm-Message-State: AOJu0YybyGpWSUmZONmXW5qb8v7vY2bO1x1Z3i4GjuVEP9Y9vRqFipDf mocxUEhZgyNRO1RhrfkP7xfNoNXQtQ2oLhgDemyX06DCyoyzlUww9icIn+vjmbqk4jGVoq2qWH9 byDPzyQxB8HcrbpUGvhgBQTEfZc2VAocII/3SsGOLr0CYFrzc5YHnSFrJ92uX+8jAWd+93syDVP 9UtZ1aivxg/76Tb86QV84umtXVG1jHRauf86rj3jzp X-Gm-Gg: ATEYQzwPWNoh2a5nJyDB00WdRC5XsvXHD9mSpSwRUPynq21Kea0gjm7wPVVA8lfxFpA dloOgI0JsbQhxTapOSDknA021Rdupmx5ExhOPINR1nWdl6Z/207ZjBVrbqbUabx3/XxkdzG/UKX SmszO3fRibsWtBycRypn2fSTkVZz/N+hHVqamUbb2VWTztSo5Jyj7PPM6QJnuchLkcg75fIJ/n/ U2X9FFwPuciE8xrGMaEHwarLdi4Nz+hxNdINKhyqwJrPaO+3U6CtTzKdsHl54GVFuYpqeochr6k 5iC1jPXivotzAfTLFW4RePAsQ5m1PrVj8DwL0VrCtyLdtghKNrBODueooAwkI26PvfwQt+vq7oe jWNdZPo35ro969jWzbBn8HJNM7790fAN8kUZet9Sq9amehY8hF9b7EyIR6xBfkoZ8yK5A8bwqEn b04I89tQtl9tUGZPI988eZ5HWe X-Received: by 2002:a05:600c:4f48:b0:485:3d00:efd with SMTP id 5b1f17b1804b1-48715fbfc42mr67524635e9.7.1774457116122; Wed, 25 Mar 2026 09:45:16 -0700 (PDT) X-Received: by 2002:a05:600c:4f48:b0:485:3d00:efd with SMTP id 5b1f17b1804b1-48715fbfc42mr67523955e9.7.1774457115522; Wed, 25 Mar 2026 09:45:15 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Mohamed Mediouni Subject: [PULL 11/19] target/i386: emulate: indirect access to CRs Date: Wed, 25 Mar 2026 17:44:45 +0100 Message-ID: <20260325164453.72127-12-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325164453.72127-1-pbonzini@redhat.com> References: <20260325164453.72127-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1774457172311158500 Content-Type: text/plain; charset="utf-8" From: Mohamed Mediouni Prepare to have on-demand fetch of registers from the backend during faults. For x86_64 macOS, copy the function there too. Signed-off-by: Mohamed Mediouni Link: https://lore.kernel.org/r/20260324151323.74473-9-mohamed@unpredictabl= e.fr Signed-off-by: Paolo Bonzini --- target/i386/emulate/x86_emu.h | 3 +++ target/i386/emulate/x86_helpers.c | 27 ++++++++++++++++----------- target/i386/emulate/x86_mmu.c | 8 ++------ target/i386/hvf/x86.c | 11 +++++++++++ 4 files changed, 32 insertions(+), 17 deletions(-) diff --git a/target/i386/emulate/x86_emu.h b/target/i386/emulate/x86_emu.h index 4ed970bd536..a8d4c93098d 100644 --- a/target/i386/emulate/x86_emu.h +++ b/target/i386/emulate/x86_emu.h @@ -28,6 +28,7 @@ struct x86_emul_ops { MMUTranslateResult (*mmu_gva_to_gpa) (CPUState *cpu, target_ulong gva,= uint64_t *gpa, MMUTranslateFlags flags); void (*read_segment_descriptor)(CPUState *cpu, struct x86_segment_desc= riptor *desc, enum X86Seg seg); + target_ulong (*read_cr) (CPUState *cpu, int cr); void (*handle_io)(CPUState *cpu, uint16_t port, void *data, int direct= ion, int size, int count); void (*simulate_rdmsr)(CPUState *cs); @@ -45,6 +46,8 @@ void x86_emul_raise_exception(CPUX86State *env, int excep= tion_index, int error_c =20 target_ulong read_reg(CPUX86State *env, int reg, int size); void write_reg(CPUX86State *env, int reg, target_ulong val, int size); +target_ulong x86_read_cr(CPUState *cpu, int cr); + target_ulong read_val_from_reg(void *reg_ptr, int size); void write_val_to_reg(void *reg_ptr, target_ulong val, int size); bool write_val_ext(CPUX86State *env, struct x86_decode_op *decode, target_= ulong val, int size); diff --git a/target/i386/emulate/x86_helpers.c b/target/i386/emulate/x86_he= lpers.c index ebbf40f2b05..c817015ef92 100644 --- a/target/i386/emulate/x86_helpers.c +++ b/target/i386/emulate/x86_helpers.c @@ -206,15 +206,26 @@ bool x86_read_call_gate(CPUState *cpu, struct x86_cal= l_gate *idt_desc, return true; } =20 -bool x86_is_protected(CPUState *cpu) +target_ulong x86_read_cr(CPUState *cpu, int cr) { X86CPU *x86_cpu =3D X86_CPU(cpu); CPUX86State *env =3D &x86_cpu->env; - uint64_t cr0 =3D env->cr[0]; + + if (emul_ops->read_cr) { + return emul_ops->read_cr(cpu, cr); + } + return env->cr[cr]; +} + +bool x86_is_protected(CPUState *cpu) +{ + uint64_t cr0; + if (emul_ops->is_protected_mode) { return emul_ops->is_protected_mode(cpu); } =20 + cr0 =3D x86_read_cr(cpu, 0); return cr0 & CR0_PE_MASK; } =20 @@ -245,9 +256,7 @@ bool x86_is_long_mode(CPUState *cpu) =20 bool x86_is_la57(CPUState *cpu) { - X86CPU *x86_cpu =3D X86_CPU(cpu); - CPUX86State *env =3D &x86_cpu->env; - uint64_t is_la57 =3D env->cr[4] & CR4_LA57_MASK; + uint64_t is_la57 =3D x86_read_cr(cpu, 4) & CR4_LA57_MASK; return is_la57; } =20 @@ -259,18 +268,14 @@ bool x86_is_long64_mode(CPUState *cpu) =20 bool x86_is_paging_mode(CPUState *cpu) { - X86CPU *x86_cpu =3D X86_CPU(cpu); - CPUX86State *env =3D &x86_cpu->env; - uint64_t cr0 =3D env->cr[0]; + uint64_t cr0 =3D x86_read_cr(cpu, 0); =20 return cr0 & CR0_PG_MASK; } =20 bool x86_is_pae_enabled(CPUState *cpu) { - X86CPU *x86_cpu =3D X86_CPU(cpu); - CPUX86State *env =3D &x86_cpu->env; - uint64_t cr4 =3D env->cr[4]; + uint64_t cr4 =3D x86_read_cr(cpu, 4); =20 return cr4 & CR4_PAE_MASK; } diff --git a/target/i386/emulate/x86_mmu.c b/target/i386/emulate/x86_mmu.c index 670939acdba..ba0ebe4268d 100644 --- a/target/i386/emulate/x86_mmu.c +++ b/target/i386/emulate/x86_mmu.c @@ -114,8 +114,6 @@ static bool get_pt_entry(CPUState *cpu, struct gpt_tran= slation *pt, static MMUTranslateResult test_pt_entry(CPUState *cpu, struct gpt_translat= ion *pt, int level, int *largeness, bool pae, MMUTranslat= eFlags flags) { - X86CPU *x86_cpu =3D X86_CPU(cpu); - CPUX86State *env =3D &x86_cpu->env; uint64_t pte =3D pt->pte[level]; =20 if (!pte_present(pte)) { @@ -130,7 +128,7 @@ static MMUTranslateResult test_pt_entry(CPUState *cpu, = struct gpt_translation *p *largeness =3D level; } =20 - uint32_t cr0 =3D env->cr[0]; + uint32_t cr0 =3D x86_read_cr(cpu, 0); /* check protection */ if (cr0 & CR0_WP_MASK) { if (mmu_validate_write(flags) && !pte_write_access(pte)) { @@ -184,11 +182,9 @@ static inline uint64_t large_page_gpa(struct gpt_trans= lation *pt, bool pae, static MMUTranslateResult walk_gpt(CPUState *cpu, target_ulong addr, MMUTr= anslateFlags flags, struct gpt_translation *pt, bool pae) { - X86CPU *x86_cpu =3D X86_CPU(cpu); - CPUX86State *env =3D &x86_cpu->env; int top_level, level; int largeness =3D 0; - target_ulong cr3 =3D env->cr[3]; + target_ulong cr3 =3D x86_read_cr(cpu, 3); uint64_t page_mask =3D pae ? PAE_PTE_PAGE_MASK : LEGACY_PTE_PAGE_MASK; MMUTranslateResult res; =20 diff --git a/target/i386/hvf/x86.c b/target/i386/hvf/x86.c index 7fe710aca3b..bae2f30fa28 100644 --- a/target/i386/hvf/x86.c +++ b/target/i386/hvf/x86.c @@ -143,6 +143,17 @@ bool x86_is_la57(CPUState *cpu) return false; } =20 +target_ulong x86_read_cr(CPUState *cpu, int cr) +{ + X86CPU *x86_cpu =3D X86_CPU(cpu); + CPUX86State *env =3D &x86_cpu->env; + + if (emul_ops->read_cr) { + return emul_ops->read_cr(cpu, cr); + } + return env->cr[cr]; +} + bool x86_is_long64_mode(CPUState *cpu) { struct vmx_segment desc; --=20 2.53.0 From nobody Thu Apr 2 23:57:07 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1774457184; cv=none; d=zohomail.com; s=zohoarc; b=b7nnH7FEmMB61I9DV5kMy6JYQfFSQApUcOyNYauo/b1EKMtkgcLqVy6/YpdA+7GQbGqim+pnIFndD9fdtDkZyUpP8ZuzpN8AfAvQMbQodTQhdaGQjdYNDDCY2REBsslZPgNBPnURa4A5Pi5DEdI1+VqXfpEuAf9I15zATnjycTQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774457184; 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=gVD6uAi4AdJLbgGot/VRbxtOsgGbrhgZgoqUeF+TBQI=; b=GJu15a9PamKZxoBp2/QkxKNfcIT7kP+Dqugd/unyGkqogqitZ8NxGP0SeQMjZtd/4RfxFwgKhocfzEz8gqCphSlyvpdDiqmpYqMETHo6+HO5SkUPnDtN3OgDk22w8cSLONPQT17ZdBrvXE88E67EW37LEonfhxllWMZtINH3qtQ= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774457184257496.8997031536511; Wed, 25 Mar 2026 09:46:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5RMO-000597-Q5; Wed, 25 Mar 2026 12:45:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RMD-0004uZ-IX for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:26 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RM9-0004f5-Pm for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:23 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-3-E4gsIstsNqqI8ON1bDI9Hw-1; Wed, 25 Mar 2026 12:45:19 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-486ff4498b2so3462585e9.0 for ; Wed, 25 Mar 2026 09:45:19 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-487165be1e3sm28475055e9.1.2026.03.25.09.45.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 09:45:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774457121; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gVD6uAi4AdJLbgGot/VRbxtOsgGbrhgZgoqUeF+TBQI=; b=JYLt/PHnQN4MP2XlEYroIQ45foo9qP48IsUojfKJvCSa/sHAL6oYz1wNXLfkWYEARubnxB qgroPrDJvwynbpKwq/4p7WmmxNgdJeiM2JizeiNq3itZ8rHa7Hn9T1Ds2l1+1XVDkjaDgD vKxaKehUi7EYm1+3drFY/I2+WYfYe40= X-MC-Unique: E4gsIstsNqqI8ON1bDI9Hw-1 X-Mimecast-MFC-AGG-ID: E4gsIstsNqqI8ON1bDI9Hw_1774457119 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774457117; x=1775061917; 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=gVD6uAi4AdJLbgGot/VRbxtOsgGbrhgZgoqUeF+TBQI=; b=CJOgFVVcm/+aXDihUVg8KwChmtWFGPDgooX06r6yFuSBBEQB30Zw2p27GtOkM3Usfg lLL9rExoaBpkdFr+0bjYZ/0AGQ2fz2lIAqPhlnTj5m0sbiRiTcllQESxEC/XJJ45JtLu uUNMY98R9B8VdLgOjfT7bJwrXHdsCvvV7pQ45tbIk8sBEPv1ot+7LDszCKbNcYcLbksw KjspiGYJChYQoBc8ZelRWA13kG7q7G8+VW5RpBnKXznXw0XNSHRiFSI2M7mrFRNl7r02 efc5/6a0+hBjTgJllld35eZxgdEL8CWCVbVjc5rbcWbxbwJLyimglLCTpczYMr65hIHG +aEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774457117; x=1775061917; 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=gVD6uAi4AdJLbgGot/VRbxtOsgGbrhgZgoqUeF+TBQI=; b=Tno2aE0sXpFAhmu46C9TjyHFRPdHKQyv2fwCskL6bct1N0ykQJ1Zo0leIvrVO27/43 8Fr6q1TfrztTYGtN2AD32tBYh0VDBAzOHUCL3V+9LDg4ppJQVFCyiUX5qctso6UQycpa huT6EBj5qAxtAKGrYHNZN7mS9Wvk+Bpdc5zejPrhmrRGzvV5DaEk2qc47tVM8uG5b2uJ Y9hZP4tqXtXKKpH17XQXb+yC82nDDaByd+gaBtuAs2KwSFZTS3yYFhxnO1Q5Us//EdBS QBrsnrLC2/narZnYCZM39OwO+HEZpAh9lZcL+Z7AXyFIWdLNEVbvC/0BqL87q09ipAJp 6MOA== X-Gm-Message-State: AOJu0Yzg61gJy0Y7AqbEuxmWHvUJ1NjqTuZyR7x5rT8pn37qoJIsFlZd W603f+BcAvreiCMgu9Mcmz8F/cYLN0cN5gllKHlKyHThvHJ6+sa1CEG1EXStwfa1ijaeb7mLurn tg24zAuwIcMN9VWn9QYmmsTLjuTfKeC9tfwxgluVVn3GY1be6yN6c5wmG0hDAvhkQGJY+MkREQT 2fzktCqWvOcgpeRkpdtzN4t0f6KzHdKpdYSvNXJEU/ X-Gm-Gg: ATEYQzzvDnj+JykF8Usd0J8ZRDCN/t8Rf9kz1/ZisjpUKVenkQauPLuKgtKKZPZ5vKw /2opBUcelh/ugmTKCinaWxA3KgSWb5V6EK3UON6ufOu9BXrtnr3M2D0nP05lWqeuP8LYiY/9GYC OXzd4aY2piBEuVfpelHLQlryOebDYz3jwcAWHkMihbeV8XyXQoIygVxEg+nl6lx4bO2ww9LG9EE UjWB2jSMq97TId900fPQ3W/84ggNEZhEVi8ku7oGESbu/EKsT8qeSiPKfH3vE4YURSa4LGCgDfH xEgC458yTZf9HFytM91f7rT289J1dqCotxsusOy1oGDPGwMzA1l3P703ATxnrmXemikxXuWoWog zv9lzILsGUsAHxVSdsACE/MQkjKfShzoHP+fBD25Oe1ssw3l2lGCZD3lue50oIZFqi7uPA3RqQN JpxgKFZIK+jkYdZ+hkZEddHcnX X-Received: by 2002:a05:600c:6089:b0:485:3f72:324d with SMTP id 5b1f17b1804b1-48716008471mr60870585e9.14.1774457117181; Wed, 25 Mar 2026 09:45:17 -0700 (PDT) X-Received: by 2002:a05:600c:6089:b0:485:3f72:324d with SMTP id 5b1f17b1804b1-48716008471mr60870145e9.14.1774457116709; Wed, 25 Mar 2026 09:45:16 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Mohamed Mediouni Subject: [PULL 12/19] whpx: i386: indirect access to CRs Date: Wed, 25 Mar 2026 17:44:46 +0100 Message-ID: <20260325164453.72127-13-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325164453.72127-1-pbonzini@redhat.com> References: <20260325164453.72127-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1774457186289158500 Content-Type: text/plain; charset="utf-8" From: Mohamed Mediouni Signed-off-by: Mohamed Mediouni Link: https://lore.kernel.org/r/20260324151323.74473-10-mohamed@unpredictab= le.fr Signed-off-by: Paolo Bonzini --- target/i386/whpx/whpx-all.c | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c index b97dc9fd514..71b33a632ac 100644 --- a/target/i386/whpx/whpx-all.c +++ b/target/i386/whpx/whpx-all.c @@ -905,12 +905,42 @@ static bool is_user_mode(CPUState *cpu) return vcpu->exit_ctx.VpContext.ExecutionState.Cpl =3D=3D 3; } =20 +static target_ulong read_cr(CPUState *cpu, int cr) +{ + WHV_REGISTER_NAME whv_cr; + WHV_REGISTER_VALUE val; + + switch (cr) { + case 0: + whv_cr =3D WHvX64RegisterCr0; + break; + case 2: + whv_cr =3D WHvX64RegisterCr2; + break; + case 3: + whv_cr =3D WHvX64RegisterCr3; + break; + case 4: + whv_cr =3D WHvX64RegisterCr4; + break; + case 8: + whv_cr =3D WHvX64RegisterCr8; + break; + default: + abort(); + } + whpx_get_reg(cpu, whv_cr, &val); + + return val.Reg64; +} + static const struct x86_emul_ops whpx_x86_emul_ops =3D { .read_segment_descriptor =3D read_segment_descriptor, .handle_io =3D handle_io, .is_protected_mode =3D is_protected_mode, .is_long_mode =3D is_long_mode, - .is_user_mode =3D is_user_mode + .is_user_mode =3D is_user_mode, + .read_cr =3D read_cr }; =20 static void whpx_init_emu(void) --=20 2.53.0 From nobody Thu Apr 2 23:57:07 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1774457227; cv=none; d=zohomail.com; s=zohoarc; b=ewacvXLPyWrZ5fOzCaj20uN6tBX1uYgWOFwf5XNPF33Yy4xzuQjF0bKRnJ20puTAQTqG+tgUBMnM2EZ/nQQFQgVcpbtny22KVjywRJBngZ4i4xyUADudmY1bbtZmf6qjYZAoB0lvexB3saJReW0NcoXmbKJS7XNyQhQwqNf6X9U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774457227; 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=SDJ/PcBLUSV5Q5FoJHAa+eAa0xCv+PFTV5gWg0XZbs8=; b=NNQ6uoY2MMhdbTdg1pVNqWhv2QcQH0qF0RjVxUwh7OlUcNK51BvT0Z9EoSgfRg4YTqHuDcLwI5rmHUsiJWD6iZxvtZcBTkU4SrcwBYNoUoFkO1tueyMW+dcQLR5jCH4VrAKxwP6UITeZQFebOxhMBrpvbNSDqqEhvbdhClWRx6w= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774457227166999.0907189725807; Wed, 25 Mar 2026 09:47:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5RMN-000590-Q6; Wed, 25 Mar 2026 12:45:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RMH-0004v2-85 for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:32 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RME-0004fy-IY for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:28 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-653-3OUkllTUOn-I4KXkZMaYtQ-1; Wed, 25 Mar 2026 12:45:23 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-486f830f4e4so585985e9.1 for ; Wed, 25 Mar 2026 09:45:22 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4871e6cb664sm7908065e9.12.2026.03.25.09.45.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 09:45:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774457125; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=SDJ/PcBLUSV5Q5FoJHAa+eAa0xCv+PFTV5gWg0XZbs8=; b=fM9HK4WPpCMeWK0KkdBDP2DWc8xxtwDTL0aubuy8LrwH5/XIoXqCvia1lSMttQcSn3JmFD ynCtQ6qTTjyrh4wtSCC+28QglsLOnRLFr5jpvw+yCA6MgenPhILnjLMAClB/8K35pt8fvG bU07K0HD9ZMbwESxoM0QbwTbAst1xOQ= X-MC-Unique: 3OUkllTUOn-I4KXkZMaYtQ-1 X-Mimecast-MFC-AGG-ID: 3OUkllTUOn-I4KXkZMaYtQ_1774457122 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774457121; x=1775061921; 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=SDJ/PcBLUSV5Q5FoJHAa+eAa0xCv+PFTV5gWg0XZbs8=; b=BpkclhlVH5psdU2fEPFxBeBlDDKosab9m+o6QszzVx37BFYAXyka23UjcSHWCeufbj evG9ikhII6mOxYLEXHOHsbXe5kCyUSA76+rbFrdlxdykFDWGNAjVRb+JBn9EGFZGyGqx /dqezZ4cs4gGTZctTWtvUyqaWZEyHcF4VOcJ0Xg2jXSzjefHJRObWZ+sBz4ULcihZxaf FkW3DREsQQx/OVNADZqgSPM+Y2cztYmKSx+KI2Ot4sQWILxhtYmb3b35LGt0E9ND1Gc2 wiy+GaecXHkT4Z3Zbn/TFI5eb3ESqUr1a1D64tu0DMJA2SU5bZyRKr9e+GSxQ+slD2gc ntWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774457121; x=1775061921; 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=SDJ/PcBLUSV5Q5FoJHAa+eAa0xCv+PFTV5gWg0XZbs8=; b=fM8k4RDZbXWRpOQ6OoJIQQBId7wLUVnrv7H+TyIlK0U0ZGPnDa1/7Z677R+dixcxBl zh/fNsWC2cWF0pUAIU1kXqw82RdMgfv3Z0TS6gJPkfH4vka0lBNKivRBd2Dop3mLbI+n 76NR6rmcj/JTTNwSiGOsIUeFulCJ73oa8cq19paoQSkh2ds7Le9JXcIM7wNf9pU0jblb /VfsjRDT6EPZa4EW+3UXvsZlq7FazCtp7bx06ugd7nIxwijsSQv2DYK71xlKlG3riQXQ FMRnSzqN7HAX6igMIEVS/TSUm3ylRFmAcDegAWSZYbERHqNn/x8DxFukAFTWTpL391YP 19Nw== X-Gm-Message-State: AOJu0YxId5xxswy/teZ+eTcKIg/QidHcXW07UfXx0NphWuxX9e8j69vR 5IysL3aBYn1fd3DwnWTgRBmcci5j0KYpblyMyWH5TF1uau6XjDiJCgeDGqfoLXDFRXc+etqGj1/ kyB0Bb8fZ3J9DZQV7cVvR0uLljtjZxCs2JvEZnOzjsqQ1ewni/j/khFdJylB/27xBFe8PDBIW3s ZycM1wlq72PPghT+8VcwtiVV6f2AJjGDYCKs5aEAQE X-Gm-Gg: ATEYQzzYUJPsVd9Zilvmi8Dh+PtZ8NWpcd3p8vcQJMzFarAmyHTUx4PICWGyYBrmG5X BFimkUEss03Ih21It3a4td8fAygr5hYlbStUdCTOrXbo9mtNBk8ziiGvEpJOuRCEFDwyq44C36I FXlTFMy1q9kgV9Dp1fTS/V9Ego4Qa1tcpxHohKhhfgLxXLNUD4SSo4zhBGMItSYAbckETrUS5O2 RbgPiX5WQ2G/Dgi1n8koq+O8s8X2sl73JFooiyUvZguzNbrmdo5irsk/UvSzboaXXrqmeqgWEAk 9J24pbh85hFlh6dK9/Rwtl4f2S03fWdTtZ5YWQhxuu2O9K4GHwfN4tq4UjsmXljeMZXnvCQR6wo pOvJ//G6uJgWPE2xb0ura9fntAy6E9sgesCsGOOApPNbSM+6K+FHX6+oihn4tsZ8O44yeDMwGC6 zqBmmvDi+8J3M2nbd6QeG1Q9Wd X-Received: by 2002:a05:600c:3d90:b0:485:2a4b:7bc3 with SMTP id 5b1f17b1804b1-48715fc38f3mr62050785e9.4.1774457120733; Wed, 25 Mar 2026 09:45:20 -0700 (PDT) X-Received: by 2002:a05:600c:3d90:b0:485:2a4b:7bc3 with SMTP id 5b1f17b1804b1-48715fc38f3mr62050135e9.4.1774457120072; Wed, 25 Mar 2026 09:45:20 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Mohamed Mediouni Subject: [PULL 13/19] target/i386: emulate: segmentation rework Date: Wed, 25 Mar 2026 17:44:47 +0100 Message-ID: <20260325164453.72127-14-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325164453.72127-1-pbonzini@redhat.com> References: <20260325164453.72127-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1774457228563158500 Content-Type: text/plain; charset="utf-8" From: Mohamed Mediouni Make accesses to segments all go through read_segment_descriptor to be able to fetch segment state on-demand. Switch away from SegmentCache to the x86_segment_descriptor that is already used by read_segment_descriptor. Signed-off-by: Mohamed Mediouni Link: https://lore.kernel.org/r/20260324151323.74473-11-mohamed@unpredictab= le.fr Signed-off-by: Paolo Bonzini --- target/i386/emulate/x86_helpers.c | 50 ++++++++++++------------------- 1 file changed, 19 insertions(+), 31 deletions(-) diff --git a/target/i386/emulate/x86_helpers.c b/target/i386/emulate/x86_he= lpers.c index c817015ef92..63bae3582fe 100644 --- a/target/i386/emulate/x86_helpers.c +++ b/target/i386/emulate/x86_helpers.c @@ -43,49 +43,37 @@ static CpuMode cpu_mode(CPUState *cpu) return m; } =20 -static bool segment_type_ro(const SegmentCache *seg) +static bool segment_type_ro(const x86_segment_descriptor desc) { - uint32_t type_ =3D (seg->flags >> DESC_TYPE_SHIFT) & 15; + uint32_t type_ =3D desc.type; return (type_ & (~RWRX_SEGMENT_TYPE)) =3D=3D 0; } =20 -static bool segment_type_code(const SegmentCache *seg) +static bool segment_type_code(const x86_segment_descriptor desc) { - uint32_t type_ =3D (seg->flags >> DESC_TYPE_SHIFT) & 15; + uint32_t type_ =3D desc.type; return (type_ & CODE_SEGMENT_TYPE) !=3D 0; } =20 -static bool segment_expands_down(const SegmentCache *seg) +static bool segment_expands_down(const x86_segment_descriptor desc) { - uint32_t type_ =3D (seg->flags >> DESC_TYPE_SHIFT) & 15; + uint32_t type_ =3D desc.type; =20 - if (segment_type_code(seg)) { + if (segment_type_code(desc)) { return false; } =20 return (type_ & EXPAND_DOWN_SEGMENT_TYPE) !=3D 0; } =20 -static uint32_t segment_limit(const SegmentCache *seg) +static uint8_t segment_db(const x86_segment_descriptor desc) { - uint32_t limit =3D seg->limit; - uint32_t granularity =3D (seg->flags & DESC_G_MASK) !=3D 0; - - if (granularity !=3D 0) { - limit =3D (limit << 12) | 0xFFF; - } - - return limit; + return desc.db; } =20 -static uint8_t segment_db(const SegmentCache *seg) +static uint32_t segment_max_limit(const x86_segment_descriptor desc) { - return (seg->flags >> DESC_B_SHIFT) & 1; -} - -static uint32_t segment_max_limit(const SegmentCache *seg) -{ - if (segment_db(seg) !=3D 0) { + if (segment_db(desc) !=3D 0) { return 0xFFFFFFFF; } return 0xFFFF; @@ -96,15 +84,15 @@ static int linearize(CPUState *cpu, X86Seg seg_idx) { enum CpuMode mode; - X86CPU *x86_cpu =3D X86_CPU(cpu); - CPUX86State *env =3D &x86_cpu->env; - SegmentCache *seg =3D &env->segs[seg_idx]; - target_ulong base =3D seg->base; + struct x86_segment_descriptor desc; + target_ulong base; target_ulong logical_addr_32b; uint32_t limit; /* TODO: the emulator will not pass us "write" indicator yet */ bool write =3D false; =20 + emul_ops->read_segment_descriptor(cpu, &desc, seg_idx); + base =3D x86_segment_base(&desc); mode =3D cpu_mode(cpu); =20 switch (mode) { @@ -116,21 +104,21 @@ static int linearize(CPUState *cpu, break; case PROTECTED_MODE: case REAL_MODE: - if (segment_type_ro(seg) && write) { + if (segment_type_ro(desc) && write) { error_report("Cannot write to read-only segment"); return -1; } =20 logical_addr_32b =3D logical_addr & 0xFFFFFFFF; - limit =3D segment_limit(seg); + limit =3D x86_segment_limit(&desc); =20 - if (segment_expands_down(seg)) { + if (segment_expands_down(desc)) { if (logical_addr_32b >=3D limit) { error_report("Address exceeds limit (expands down)"); return -1; } =20 - limit =3D segment_max_limit(seg); + limit =3D segment_max_limit(desc); } =20 if (logical_addr_32b > limit) { --=20 2.53.0 From nobody Thu Apr 2 23:57:07 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1774457230; cv=none; d=zohomail.com; s=zohoarc; b=Z3IVKmcJBrK6AaPwWa9Ex6gZ3e/6VTXklaDhp2WxjFwqQCxhsqHxSq24BF9PQsupuWm7cY6gizGcHJbjHkd3+HkM4V9sPhsaB+ElFtJso7sfqHp26wHuHjoG0Dmr/Gwz8akSVt/wVPAIcO87famYMWhQ9+SUGXON32sbSQV/u/8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774457230; 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=n6sdL1vsVWO3ZuG6mgc20dg8BLq/JVi1oEu7UYtVDpI=; b=PL6t7a7UsSaOwnrwKWbAsLzxhxxxcJDy6uHzLhwKr+aq5qQ0AERrCBxXCzQ3JmxN8XuwBaqcwubY54aoQZCbGEkeXctyxKT0eGEHPPHppgoW7tdJPHpJTQ610VtQQLTZQJUh4Esmyy/RnqGvlnMFZO2tLkd5C3PBoIQcVzv+clQ= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774457230363403.3459590605157; Wed, 25 Mar 2026 09:47:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5RMP-0005A3-CY; Wed, 25 Mar 2026 12:45:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RML-00050Q-0l for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:33 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RMF-0004fw-Lj for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:30 -0400 Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-509-PETlQdw2OXCRUONf7NU0aA-1; Wed, 25 Mar 2026 12:45:24 -0400 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-48553fdd03dso420885e9.0 for ; Wed, 25 Mar 2026 09:45:24 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4871e6aeef4sm6495635e9.9.2026.03.25.09.45.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 09:45:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774457125; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=n6sdL1vsVWO3ZuG6mgc20dg8BLq/JVi1oEu7UYtVDpI=; b=T3e+dMX0z0mBp1nF3MSq2/Cl0CtlXbX0N5sVssDfHJECTIMDCu5BpV9VIrbkppGKiegZXy XhqOIlUqX2PAYgQGbJHTdBRQ18Zmhk9+WGDfXG95c4kPccQBSVfVSEBWBkV8EgChFnFrms ooIUREMGeUECnnk/7XlDWFxiby1Zd20= X-MC-Unique: PETlQdw2OXCRUONf7NU0aA-1 X-Mimecast-MFC-AGG-ID: PETlQdw2OXCRUONf7NU0aA_1774457123 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774457122; x=1775061922; 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=n6sdL1vsVWO3ZuG6mgc20dg8BLq/JVi1oEu7UYtVDpI=; b=a4O+iwd+UT8pQlSnOoe7hDZJ2b26MdKzkl7K6cN+24R8PxBJNo3PQ+qbeug7WwKxsh Noe6W2Ram1Gg5Uu+qsJtChR4VBZn17F4Nd12MH/M9xz9sJjonIf3MH7a3nH0oYnK5oiV XdRqMoG63wvpT7TTSCXqrgqug5iFDArzzwEo0dWE97ff/kZCY4ME1qVS8vwLdbB77u3/ TB6Ak1P8hkwyG2sRtFFnH+Q5vTffuPOAElES6bhpcMgNFqPgGAhc9XauYaXO7kxG5sZh H3yCv0HtFwU7wD7nbEDiOdn5RuotxkipVEQEFQcJvXnvLjv6Omr1HoYUZBH+QtIQ1HWe eqOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774457122; x=1775061922; 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=n6sdL1vsVWO3ZuG6mgc20dg8BLq/JVi1oEu7UYtVDpI=; b=Mil2yJyVoxkHAN8CyoO6jK1KPVWAxObSLqlCL9IXHdjFVTxk05qPmS3vlAXyMrT64I TB/4UQV6qgMc/RU59tpbVHNxeVcbwHrHr7QCgJ3boY0YrCdV39OCNoZqyir4+1XAPLRR YV+kiCOYd0DwxLKkM+0UC4bu8y6Qb/bfo4kM6hAWwauMm3zmO6V6SsUGgbkdjuswxzY8 5KrAQpIHdYpvx7s+Xy/4oDauIGenDuQ5USt1emGDpvZiTHAWnXK2X/eSi3gjNny0VgKr dZAuAKR7Shk3ETfngNAsWuFUAM6PV//Rsz0JZV3qul5dJAV4xtK2lKfB7Zeb1DU0MaCB DBTA== X-Gm-Message-State: AOJu0YxhwKNbJznrsYCAt80HZn6twzQDZryUFx6wOQIsUEgOEsyuW+jN AYP+1Ya5CDeRg655BxsOoxItYAgB05LYIQBF7celxTEIcsPFEHhbIfxp5Oc59jeHoernQUdDiS9 n3lv3IZf9wqJ3fI032B7WTYetAPxI2MmCeHNMWMKd4e9iK/nR40FUCrBrYkl0r7hJQmlQq6sK6D b7z1xP13vyVzT+66Q6PepfdmwlNNf8FaVfovgCEBGR X-Gm-Gg: ATEYQzxMMTR4dr1X4ap8RJZ8v2HosukdGn+UortMapsVNnfqcREuC+MnHv/fvSvgBfX xWU6bZlsBB36m2b8wkQJ0/UsHEHD1STOLPg854s6NgFGKFSP9RlLqjHcEQ8xOknVqvdxyBNrrjr A5ujjG7SCMHQ6BqQ9p6GklN38Jn1X7PysecrVjkKSbmNfBR2vtv4n5x4hZ6nz4tsMohIldugJxP a3ABII3OtWnxE28GC0RGsVfasCzP2PjcdIYm/4IzJRVf4WCvctsu6riX4jrUpWXXE8nfcR6UtO7 Qnw1llAM09GWvIU5UIwJNWDOFrZTSbyyTWfiiFEJLNu4kWHb4NZ4nq3NgG6ULjsHJ0dueE2Up0x Rkjgts1ADn4F7iFuQ3TGNCka+fPqt6FOm/+d833E0JFDeM7RYsN4NxZ4xNjdPz2WuuBLmSfGukG onRgnsBknf51PXOKfnRAdpYygY X-Received: by 2002:a05:600c:8489:b0:485:6e40:5584 with SMTP id 5b1f17b1804b1-48715fc38femr60002615e9.6.1774457121826; Wed, 25 Mar 2026 09:45:21 -0700 (PDT) X-Received: by 2002:a05:600c:8489:b0:485:6e40:5584 with SMTP id 5b1f17b1804b1-48715fc38femr60002095e9.6.1774457121265; Wed, 25 Mar 2026 09:45:21 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Mohamed Mediouni Subject: [PULL 14/19] whpx: i386: fetch segments on-demand Date: Wed, 25 Mar 2026 17:44:48 +0100 Message-ID: <20260325164453.72127-15-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325164453.72127-1-pbonzini@redhat.com> References: <20260325164453.72127-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1774457232937154100 Content-Type: text/plain; charset="utf-8" From: Mohamed Mediouni Instead of save/restore, fetch segments dynamically. Rely on the fetched state instead of loading from memory. Or, if available, on the VM exit context. Signed-off-by: Mohamed Mediouni Link: https://lore.kernel.org/r/20260324151323.74473-12-mohamed@unpredictab= le.fr Signed-off-by: Paolo Bonzini --- target/i386/whpx/whpx-all.c | 71 +++++++++++++++++++++++++++++++------ 1 file changed, 60 insertions(+), 11 deletions(-) diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c index 71b33a632ac..6f232786422 100644 --- a/target/i386/whpx/whpx-all.c +++ b/target/i386/whpx/whpx-all.c @@ -868,21 +868,70 @@ static int whpx_handle_portio(CPUState *cpu, return 0; } =20 +static void whpx_segment_to_x86_descriptor(CPUState *cpu, WHV_X64_SEGMENT_= REGISTER* reg, + struct x86_segment_descriptor *desc) +{ + uint32_t limit; + desc->g =3D reg->Granularity; + + /* + * Hyper-V can return reg->Granularity =3D=3D 0 + * with a higher limit than 0xfffff. + * + * Detect that case and set desc->g + * with shifting the limit properly. + */ + if (!desc->g && reg->Limit <=3D 0xfffff) { + limit =3D reg->Limit; + } else { + limit =3D (reg->Limit >> 12); + desc->g =3D 1; + } + + x86_set_segment_limit(desc, limit); + x86_set_segment_base(desc, reg->Base); + + desc->type =3D reg->SegmentType; + desc->s =3D reg->NonSystemSegment; + desc->dpl =3D reg->DescriptorPrivilegeLevel; + desc->p =3D reg->Present; + desc->avl =3D reg->Available; + desc->l =3D reg->Long; + desc->db =3D reg->Default; +} + +static void whpx_read_segment_descriptor(CPUState *cpu, WHV_X64_SEGMENT_RE= GISTER* reg, + X86Seg seg) +{ + AccelCPUState *vcpu =3D cpu->accel; + WHV_REGISTER_NAME reg_name =3D WHvX64RegisterEs + seg; + WHV_REGISTER_VALUE val; + + if (seg =3D=3D R_CS) { + *reg =3D vcpu->exit_ctx.VpContext.Cs; + return; + } + if (vcpu->exit_ctx.ExitReason =3D=3D WHvRunVpExitReasonX64IoPortAccess= ) { + if (seg =3D=3D R_DS) { + *reg =3D vcpu->exit_ctx.IoPortAccess.Ds; + return; + } else if (seg =3D=3D R_ES) { + *reg =3D vcpu->exit_ctx.IoPortAccess.Es; + return; + } + } + + whpx_get_reg(cpu, reg_name, &val); + *reg =3D val.Segment; +} + static void read_segment_descriptor(CPUState *cpu, struct x86_segment_descriptor *desc, enum X86Seg seg_idx) { - bool ret; - X86CPU *x86_cpu =3D X86_CPU(cpu); - CPUX86State *env =3D &x86_cpu->env; - SegmentCache *seg =3D &env->segs[seg_idx]; - x86_segment_selector sel =3D { .sel =3D seg->selector & 0xFFFF }; - - ret =3D x86_read_segment_descriptor(cpu, desc, sel); - if (ret =3D=3D false) { - error_report("failed to read segment descriptor"); - abort(); - } + WHV_X64_SEGMENT_REGISTER reg; + whpx_read_segment_descriptor(cpu, ®, seg_idx); + whpx_segment_to_x86_descriptor(cpu, ®, desc); } =20 static bool is_protected_mode(CPUState *cpu) --=20 2.53.0 From nobody Thu Apr 2 23:57:07 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1774457162; cv=none; d=zohomail.com; s=zohoarc; b=HSMgu7eyhvWPOqpqSwS/YAC/AFEC5f9ikhPwq3GH+j4O6PiI6UY13krw45dZmUCec1rp3DEB+ujTabHjV0SYA/ckV5g1gEXyXwpGDtg+Pw0+eRyAqQ5AaTcUhUxxaafVCTvG1ltcJjfa0cjula8jC/HDG9p764+5GONt82RWkyg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774457162; 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=Ta7T0mi+8d9DVcASb2OtQTo0e14u/mzL90h8oJVlsXE=; b=YlpxW8isd0ndQLgxD57ajENm93sOyzRujhYdTmjvIWVEXyexFE2DHB1LK2nuFQD28JY5cyakEfTkkR6akPS30xYh4DcyWC5jClRI5w9oyF2HgiCfw2c4rv09JfsFNAew10RrK8It/RVLlv084Jsiof3velBqGCJ14I1zOtshJrU= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774457162312290.43610446197135; Wed, 25 Mar 2026 09:46:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5RMM-000565-W4; Wed, 25 Mar 2026 12:45:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RML-00050m-2N for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:33 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RMH-0004g8-1A for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:31 -0400 Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-99-x8it0dRNNW6rF6HlvQfCHg-1; Wed, 25 Mar 2026 12:45:26 -0400 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-43b42eee946so1017117f8f.1 for ; Wed, 25 Mar 2026 09:45:26 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48711764509sm142682835e9.13.2026.03.25.09.45.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 09:45:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774457128; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Ta7T0mi+8d9DVcASb2OtQTo0e14u/mzL90h8oJVlsXE=; b=bIni7stUK+EOdfY7yi7cHhl3eCCgfiQbuDhXs7YbV/1rfD9n+Km28uzQz6Dpj62gU/nq3H wsgUjLUU3rytwCF4suvb4Hq7+4Yll7tlTIqWOThyH56hEiEyqgvTtrjp1uHV55vdomz9ZP XB4RDpLtaniJFDfesHfx4tzilp0BwLU= X-MC-Unique: x8it0dRNNW6rF6HlvQfCHg-1 X-Mimecast-MFC-AGG-ID: x8it0dRNNW6rF6HlvQfCHg_1774457126 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774457125; x=1775061925; 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=Ta7T0mi+8d9DVcASb2OtQTo0e14u/mzL90h8oJVlsXE=; b=mfqW6lTQ4UQ0fYOLJnYu9tD0N4XXetRusAD5d18A3YNfIm390unN/70QLVBtUUe4Cq SrgrH8RratF89osCqNk/aJDkc1n6lP90/C+OwPdK+sQI7VjnoxIocXa+NvzuJ1qkwZ70 d/NxPDZsE1Ayq6Iyw/tU9/C6u1P1AVbXbGzoXviUVMTvPFJRkC1CDZuCNTyAKBiO+jQ9 W6BCeoVeaascLMkPA4o8cMdWdXU9VDCuDJ7WYz7Mtsl/jhIoejIpPeeDfObwZExJOZm9 NCQGnk/wcJNnuc6Q0X5dXVU2K9p8DtDOqYLjYpaOFhDMopT6J/BSm2HIuF+aW9LNMVbV 3C5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774457125; x=1775061925; 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=Ta7T0mi+8d9DVcASb2OtQTo0e14u/mzL90h8oJVlsXE=; b=cCFK8zshpUAsC+kZOUrYZNjDLonl5QQgz0/NvY5i8N6y+OjhOVZQ1QHjXLnzdAyJb/ hg8YUjSgaJrR6M7io+/mim2Nj5OT3DkCgtI6NxOBTZj/x2ob0RfN/U1DZUrTTMr9BOc6 eGbLHRckUwqP+uWOEw4YL14sS9Hwhk9X+1M4xumAAlgElZ7plHQ6QJ7RVYM4ir2gOPzB XX5p0l/81W29JjVGc0CxYrwK+ToKHoXI+DDwPVclLvfNsIUXFQXleYtKUQFxVfv6GkL5 vQ5BYC+fiCd6nUQ5qvb5dKDDI3p/2YMlc2KzFnpl1y84HVQCPOHc3pHFQWLQU31nCDU6 FqNA== X-Gm-Message-State: AOJu0YxUwp/iLE8RfTyHcRez8Q0O+EwQvdZ4XPrIPKqZMP1djDwOFyTK YUVEv1+aAnM2WWhvdTJS9VUDKonkkcVGbdm1se3Ncec/S1c9u5l6xwBC7yd3OI8mmDbvDtRJgLo 9pJr3ZDdBkWzwSiW2wWIQXXkg444ZJo5sDdw26946RFXI1foJyoUxPRBvJvRJl4enx0xTZCqUSJ O7fHiVcKEq9Ih0CMVGhJe9qYcKaPdEd8mSR/60sjd2 X-Gm-Gg: ATEYQzxwYaox9WQeW6P+xsEjPq4fES3SieJ9CeKZ1XURmKsotlSjJ2nppxblIoTkORC 0BmPWMgn36ErnhKm0dqWTMgmKzlWlNS7I6KqhA/tFlC4c5DMN1hq6y9L19eyBuhAa/3fv53QVBC MnaSP+rvqPoYgNg3o/G16zedchuhsydT3D4P77OAGurEtmwyyUxlfBMwjWnaiBQgl1/JFbYoQQt /dif46vj8u6D1KgA71ymNzXA6AC2ScmtePmKK2p50E1haROUUxzNGQIrpv01Aw3ebgnua2W/P0H Ap3h6cyhpYnzzGSDN5bOLkmyAE1m5pmnLxkJXas6VY8Rz2MBRSI3cKzU7Qyc7RV5Wg3zXPfkFi2 B2qo//MC+6rlhvampGgepq/kD/P1cQnCYhPodT0DT8A9cYVVng6nUjG0HdBMYWNvqojev6mPRWj SYul+q7IG5v8e0Mr+5cc7TYslY X-Received: by 2002:a05:600c:8708:b0:486:fe83:861c with SMTP id 5b1f17b1804b1-487160241b4mr59526735e9.7.1774457125085; Wed, 25 Mar 2026 09:45:25 -0700 (PDT) X-Received: by 2002:a05:600c:8708:b0:486:fe83:861c with SMTP id 5b1f17b1804b1-487160241b4mr59526435e9.7.1774457124415; Wed, 25 Mar 2026 09:45:24 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Mohamed Mediouni Subject: [PULL 15/19] whpx: i386: fast runtime state reads Date: Wed, 25 Mar 2026 17:44:49 +0100 Message-ID: <20260325164453.72127-16-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325164453.72127-1-pbonzini@redhat.com> References: <20260325164453.72127-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1774457163912154100 Content-Type: text/plain; charset="utf-8" From: Mohamed Mediouni Now that there's an on-demand interface for fetching CRs and segments, only query GPRs and query everything else on-demand for vmexits. Signed-off-by: Mohamed Mediouni Link: https://lore.kernel.org/r/20260324151323.74473-13-mohamed@unpredictab= le.fr Signed-off-by: Paolo Bonzini --- target/i386/whpx/whpx-all.c | 77 +++++++++++++++++++++++++++++++++---- 1 file changed, 70 insertions(+), 7 deletions(-) diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c index 6f232786422..acae61e089d 100644 --- a/target/i386/whpx/whpx-all.c +++ b/target/i386/whpx/whpx-all.c @@ -156,6 +156,26 @@ static const WHV_REGISTER_NAME whpx_register_names[] = =3D { */ }; =20 +static const WHV_REGISTER_NAME whpx_register_names_for_vmexit[] =3D { + /* X64 General purpose registers */ + WHvX64RegisterRax, + WHvX64RegisterRcx, + WHvX64RegisterRdx, + WHvX64RegisterRbx, + WHvX64RegisterRsp, + WHvX64RegisterRbp, + WHvX64RegisterRsi, + WHvX64RegisterRdi, + WHvX64RegisterR8, + WHvX64RegisterR9, + WHvX64RegisterR10, + WHvX64RegisterR11, + WHvX64RegisterR12, + WHvX64RegisterR13, + WHvX64RegisterR14, + WHvX64RegisterR15, +}; + struct whpx_register_set { WHV_REGISTER_VALUE values[RTL_NUMBER_OF(whpx_register_names)]; }; @@ -593,6 +613,47 @@ static void whpx_get_xcrs(CPUState *cpu) cpu_env(cpu)->xcr0 =3D xcr0.Reg64; } =20 +static void whpx_get_registers_for_vmexit(CPUState *cpu, WHPXStateLevel le= vel) +{ + struct whpx_state *whpx =3D &whpx_global; + AccelCPUState *vcpu =3D cpu->accel; + X86CPU *x86_cpu =3D X86_CPU(cpu); + CPUX86State *env =3D &x86_cpu->env; + struct whpx_register_set vcxt; + HRESULT hr; + int idx; + int idx_next; + + assert(cpu_is_stopped(cpu) || qemu_cpu_is_self(cpu)); + + hr =3D whp_dispatch.WHvGetVirtualProcessorRegisters( + whpx->partition, cpu->cpu_index, + whpx_register_names_for_vmexit, + RTL_NUMBER_OF(whpx_register_names_for_vmexit), + &vcxt.values[0]); + if (FAILED(hr)) { + error_report("WHPX: Failed to get virtual processor context, hr=3D= %08lx", + hr); + } + + idx =3D 0; + + /* Indexes for first 16 registers match between HV and QEMU definition= s */ + idx_next =3D 16; + for (idx =3D 0; idx < CPU_NB_REGS; idx +=3D 1) { + env->regs[idx] =3D vcxt.values[idx].Reg64; + } + idx =3D idx_next; + + env->eip =3D vcpu->exit_ctx.VpContext.Rip; + env->eflags =3D vcpu->exit_ctx.VpContext.Rflags; + rflags_to_lflags(env); + + assert(idx =3D=3D RTL_NUMBER_OF(whpx_register_names_for_vmexit)); + + x86_update_hflags(env); +} + void whpx_get_registers(CPUState *cpu, WHPXStateLevel level) { struct whpx_state *whpx =3D &whpx_global; @@ -608,7 +669,11 @@ void whpx_get_registers(CPUState *cpu, WHPXStateLevel = level) =20 assert(cpu_is_stopped(cpu) || qemu_cpu_is_self(cpu)); =20 - if (level > WHPX_LEVEL_FAST_RUNTIME_STATE && !env->tsc_valid) { + if (level =3D=3D WHPX_LEVEL_FAST_RUNTIME_STATE) { + return whpx_get_registers_for_vmexit(cpu, level); + } + + if (!env->tsc_valid) { whpx_get_tsc(cpu); env->tsc_valid =3D !runstate_is_running(); } @@ -623,7 +688,7 @@ void whpx_get_registers(CPUState *cpu, WHPXStateLevel l= evel) hr); } =20 - if (level > WHPX_LEVEL_FAST_RUNTIME_STATE && whpx_irqchip_in_kernel())= { + if (whpx_irqchip_in_kernel()) { /* * Fetch the TPR value from the emulated APIC. It may get overwrit= ten * below with the value from CR8 returned by @@ -680,7 +745,7 @@ void whpx_get_registers(CPUState *cpu, WHPXStateLevel l= evel) env->cr[4] =3D vcxt.values[idx++].Reg64; assert(whpx_register_names[idx] =3D=3D WHvX64RegisterCr8); tpr =3D vcxt.values[idx++].Reg64; - if (level > WHPX_LEVEL_FAST_RUNTIME_STATE && tpr !=3D vcpu->tpr) { + if (tpr !=3D vcpu->tpr) { vcpu->tpr =3D tpr; cpu_set_apic_tpr(x86_cpu->apic_state, whpx_cr8_to_apic_tpr(tpr)); } @@ -691,9 +756,7 @@ void whpx_get_registers(CPUState *cpu, WHPXStateLevel l= evel) * Extended control registers needs to be handled separately depending * on whether xsave is supported/enabled or not. */ - if (level > WHPX_LEVEL_FAST_RUNTIME_STATE) { - whpx_get_xcrs(cpu); - } + whpx_get_xcrs(cpu); =20 /* 16 XMM registers */ assert(whpx_register_names[idx] =3D=3D WHvX64RegisterXmm0); @@ -768,7 +831,7 @@ void whpx_get_registers(CPUState *cpu, WHPXStateLevel l= evel) =20 assert(idx =3D=3D RTL_NUMBER_OF(whpx_register_names)); =20 - if (level > WHPX_LEVEL_FAST_RUNTIME_STATE && whpx_irqchip_in_kernel())= { + if (whpx_irqchip_in_kernel()) { whpx_apic_get(x86_cpu->apic_state); } =20 --=20 2.53.0 From nobody Thu Apr 2 23:57:07 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1774457196; cv=none; d=zohomail.com; s=zohoarc; b=jXdh79Q2VUXeRtFUeHLkEz5JBDHlnaVyDK9fs44TS8mJKbliPc9PoR384XbP2LZxgONsOGBbdV3z9TYms+JAvH7VI/jvUcPkae1ybTE3jqjnNX1/WzOEOF+iMFEQzlKhgibHxp8/jNxoB3mEf0MgYN5ne1OQeGgh7RlObgg3GK8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774457196; 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=3AkzjVoFkHIfZOrj/YsNsJ8NaWzRuqCtr/53yzsJlxY=; b=CqBLmu8i5PaEjcT5uvlgc8G2hL86o3b4cz6Z9dtwDKkcI+yJHoaz9nM8pCcYGZnvuhGSozkYmnVkRaxgPXGIjkHDWecAyLGcMXkYAKyjOg761hJUVevpbsYpHTinEMIO4aZqs0WKRRHfZJ+EDgvuFasMRj2UOX1PGHFYasEW7+c= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774457196377110.03957343367051; Wed, 25 Mar 2026 09:46:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5RMQ-0005AW-7n; Wed, 25 Mar 2026 12:45:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RMO-00059c-UZ for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:36 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RMK-0004gP-Pq for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:35 -0400 Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-695-E_4u33v2NtGe4cU8-qnNSQ-1; Wed, 25 Mar 2026 12:45:28 -0400 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-43b8cb800f5so1256319f8f.1 for ; Wed, 25 Mar 2026 09:45:28 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b91942f24sm1174717f8f.11.2026.03.25.09.45.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 09:45:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774457130; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=3AkzjVoFkHIfZOrj/YsNsJ8NaWzRuqCtr/53yzsJlxY=; b=D2WnCvSbZjtAb3/3zZnLlat6kElGjbMdM2uE9v4piQVBILTHeqX77SYq7RbRT9KjhMClOb RqLpHs+Z0L1S5tZ2uVPDOUGUvY3xYu7k68dqjObRBcdPFzO8qRwBWZmKhzptHmI87lqDgg Fzwp9ahx0gvkqPZPZ/+E1+5GLAHP030= X-MC-Unique: E_4u33v2NtGe4cU8-qnNSQ-1 X-Mimecast-MFC-AGG-ID: E_4u33v2NtGe4cU8-qnNSQ_1774457127 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774457126; x=1775061926; 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=3AkzjVoFkHIfZOrj/YsNsJ8NaWzRuqCtr/53yzsJlxY=; b=QsUI1zNfu3cBX+PnthXGfW4/p6zFQS/xtkZy47l9NFUSN/PcA6htYW6Rk7nLL90a17 UcUpJT1FwJpLo61+Tsd7VxCsmWnWjR/p2mCrlgvWDymr8H/KftFPgAO5dPKtrGPqz7vh IiwwjxeINYjJNEBnkB9LMZKOOVF2rE3zt6mCVHI8a78cv9e6sNMSbDE9AyNLrLNi9u5h +AI6cm/6p2tPuDC7RHfY0xyL/zkZUUEUjK9cTs7atKoynE9OnA6x6uyF0xuDjuWyKt6U pVUijYvG25jyOopjGqHKCmGKCw7jwmOFm8tB2sNi1Sa8Ok63YGA2bjv5B43ZrDzszhoE 0u/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774457126; x=1775061926; 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=3AkzjVoFkHIfZOrj/YsNsJ8NaWzRuqCtr/53yzsJlxY=; b=kevnAihXvUN5/SSE67dpKBI3J1LnBkV5jCgxoEpEzDAwEcozOxaORM2ODNSmM2Xk4U GMdLES34f7F7QDR7D/xT2zUpIbT4tM62q1nDS8T7RP88JzRb/fPkylAFfKnDjd4p2YSw MZhLSlNYfsiWxjQQbtTWz38kRvRZ7+ee4DDOSNoGeh3mzKDrfbpUNny2fSrX9MIDt2/Z KErUiWZZFV7KXlVUjtycYjao+2dGCSQa7b5xax1+qZGbf6teu2VXi9x2oIsXuXf0WDMh R0SZocpjfAZfhmIDCcC6yfmuUN6HHzJikcctPaeD5BZ2KNk9f4I8ucyJlM0H6FgQT1M1 dJrQ== X-Gm-Message-State: AOJu0YxS1eslxi3N+z0gnavGfPgQSHogn2dboTw3OTAzzioB/VRDsR6p iyrHDFV8l+7++woPpqgoAqoauVwHI/k/PAqhliBf8KIfsCKR8QppWOE5vYOvIc5cinW4RIhFO6w R76924Y9UNkBjabI2aOpqpxEUXylO7HP1B/DRzCCoSW8d93QILajdAqo/gqfy9Ugv9VvLv2JGzV AN/wXDqFOOtLQUmk7ecuM8ndAoWqcXZUjDs74XO6hO X-Gm-Gg: ATEYQzwC4ilWCTrPljq14gWhLXiCYYbt8C8WLxif8+XNxOdzzioUbhobd3j6wHo+EjP qv3WcMg+cM3fOhlNFVhHdkIBfSoRg9fYnL0IMok0rTeuohtuBrzKcC3k6R5HnTVRO0c1bh5CMl4 eABIPhZWvXp1pMu8wQiXcKJggUrH14R4izblS8WgbefMLMrlwZjPgC4Gr4ndyVqW+X6GZ6Odk1A s5pxw5QVLdlh72NiPIn3EiGPw28tDcf8NLffrIIORNYUwSnnoYDf36LUD2LkZ49aXrGRUlmG8oU RWL/nqwpiSNAop1ajLfy415swA4Z2H+r952fThabG1YQYUsJnxqFMAMzBy8EJVZouKCMWazNhvp eXU3IIt5/k1S5czIYlp99aSXl7/qIAxuOXYk2622KXskSYib4Ljo43Rra8rlTP9NuHBDgcGJwdr AHYlrZ4yiDDMR/IDcg5rk7iZB0 X-Received: by 2002:a05:6000:2c06:b0:43b:633b:da88 with SMTP id ffacd0b85a97d-43b88a1aa65mr5929264f8f.36.1774457126224; Wed, 25 Mar 2026 09:45:26 -0700 (PDT) X-Received: by 2002:a05:6000:2c06:b0:43b:633b:da88 with SMTP id ffacd0b85a97d-43b88a1aa65mr5929207f8f.36.1774457125545; Wed, 25 Mar 2026 09:45:25 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Jenny Guanni Qu , qemu-stable@nongnu.org Subject: [PULL 16/19] hw/audio/sb16: validate VMState fields in post_load Date: Wed, 25 Mar 2026 17:44:50 +0100 Message-ID: <20260325164453.72127-17-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325164453.72127-1-pbonzini@redhat.com> References: <20260325164453.72127-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1774457198230154100 Content-Type: text/plain; charset="utf-8" From: Jenny Guanni Qu The SB16 VMState loads in_index and out_data_len as raw INT32 values with no bounds validation. A crafted migration stream or VM snapshot can set these to values exceeding their respective buffer sizes (in2_data[10] and out_data[50]), causing heap OOB write in dsp_write() and heap OOB read in dsp_read(). Add bounds checks in sb16_post_load() to reject invalid values before they can be used as array indices. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3326 Reported-by: Jenny Guanni Qu Signed-off-by: Jenny Guanni Qu Link: https://lore.kernel.org/r/20260318192918.65481-1-qguanni@gmail.com Cc: qemu-stable@nongnu.org Signed-off-by: Paolo Bonzini --- hw/audio/sb16.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hw/audio/sb16.c b/hw/audio/sb16.c index 1b5e452a29b..1838d3ef7bd 100644 --- a/hw/audio/sb16.c +++ b/hw/audio/sb16.c @@ -1286,6 +1286,13 @@ static int sb16_post_load (void *opaque, int version= _id) { SB16State *s =3D opaque; =20 + + if (s->in_index < 0 || s->in_index > (int)sizeof(s->in2_data)) { + return -1; + } + if (s->out_data_len < 0 || s->out_data_len > (int)sizeof(s->out_data))= { + return -1; + } if (s->voice) { audio_be_close_out(s->audio_be, s->voice); s->voice =3D NULL; --=20 2.53.0 From nobody Thu Apr 2 23:57:07 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1774457219; cv=none; d=zohomail.com; s=zohoarc; b=GcLOCS3EQH7i6uw/LQ8VfO01x/4j+lWKuPTBu+/IqxPUcIfphm3umsWmTle7yJQu7180RmRjEE483TezD9k64yLhY8Jd0f8oTHoy1wOC9UIV5wi7PjnkUCn+uEGvkwlTNhnXtV5nK9E+5iV8HQCU9j8/Aqfxnez1t+F0g/fUwl8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774457219; 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=lpNDy6y1w/fo9WvmajHhnQ/yfO8JE34pImny9o9u5IQ=; b=F9FIG8cIJhRzKopDBNJIkMkuDUkq91upX37uGto0EaPNMpCFMnamzSpuWa3h7pKEghC0HFRMEcPcWKzhcUlB8bCMxCY9AK1eGJQrECbl3wDBoRO1ygUmk9iF1tPpC/cdfJA9SzIl9csJdcufeb7b2XfzUPvo2jtspYtN3IZfDAQ= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774457219795964.5105068441256; Wed, 25 Mar 2026 09:46:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5RMN-000593-VQ; Wed, 25 Mar 2026 12:45:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RMN-00056a-07 for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:35 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RMK-0004gV-PZ for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:34 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-201-EwkUZWCoMWuSZ8_nuOkdIg-1; Wed, 25 Mar 2026 12:45:29 -0400 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-48531e8ae62so1945765e9.3 for ; Wed, 25 Mar 2026 09:45:29 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4871e6e7c69sm6510875e9.15.2026.03.25.09.45.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 09:45:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774457131; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=lpNDy6y1w/fo9WvmajHhnQ/yfO8JE34pImny9o9u5IQ=; b=f6osi1MplqcKhCGPAC4xQiMw1M0WvpW8bbumFxmk0BWpG8ZRJqcIOiP9CEoAET2MT5CHk+ SMphh7+MbQlxI2D+aHqJF2ha3pA+vPuqnQuq6ovYGSNIJj2GFm/l1dXABghq9Jz7m4Ty89 FOM9N+FMgLipAKdgb+9IHsjqmhMFW4A= X-MC-Unique: EwkUZWCoMWuSZ8_nuOkdIg-1 X-Mimecast-MFC-AGG-ID: EwkUZWCoMWuSZ8_nuOkdIg_1774457128 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774457128; x=1775061928; 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; bh=lpNDy6y1w/fo9WvmajHhnQ/yfO8JE34pImny9o9u5IQ=; b=gkq1c1mald2CR9VvyTfQRnwIZrEHtwufEyUveINWDO5R6phsWtUsgoTwCeeL5EKujj 73VSyJA37d+lCam6UbVowgxOsKU2YIr2HhIYKDd32wb+mv4OX9JXFaZMdwx3azbOMPzj SzhBnMUmzdRJ4UGqW2zzcwuemCINpzOFM49UOkKaeR+C+WRXYwUw68L261GTyx6va5p/ QXPlP68SzHx2xH5mAU3j7VN5zotJlFits0go+kxpoKcJAepqJZsOzFq044DpN6ZaVF+a XEpSXMz2y9s//YlILcWJFnhZMMkGOK2LqsZzA5vliXmtYVYr1aX0tiKp3e1WqHScXH7l 6oHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774457128; x=1775061928; 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; bh=lpNDy6y1w/fo9WvmajHhnQ/yfO8JE34pImny9o9u5IQ=; b=go6l7KopTDcmXMBDCOyMj2UVVbmlHssNbTRKNIdKqGdTEFUTXF41jALs8d8hUQPdpb VIYiASmZdZdIMKLbnjJE8sbUVHMfJFFRFQJ7FQHovOL0ZSiNdcCt132wUUz8r5G2CC7f bL7x+xJ2w71LxH12y++jA1KrrhBf7wTjEdGFeS1Uu0ODrWufAtXWm+5ak7jOpj/v/UCr XGsr3ZfYu7yoh293V0Q7zRruAyqUV2ltZYJmIojbkEuN6apK6Wst9cFSCAetfKNHfU3v SwfktEpxbfxOpG04yb0Ma4vCdou1swMEcRULbvIVQePOVkoIXItu/UoKT4DruP3pJqfw OuzA== X-Gm-Message-State: AOJu0YwLQvgHAdUCP0KnhiQF4UfTggi576hYWsxDhg6uanaixRl65qMu 5qRlsAlQD56LlHCvEIm2SQRdzsGVLEaQuXe823WoV9HPzpGP8C4EUiKTJZYCeDOKx9lnXX9h/65 rLmgXM0WnGZoJM/ZFXlH+ocJl93S0IGBchpkT1tIu8a/RshCQtNs30Pf+sIaz6LVHM43/+jNh+f L8czkJnhypXF7UvNKgrGV4D9+P1/MVXx0+ozlD9/g6 X-Gm-Gg: ATEYQzw/FxJUVwaJrlAPhYMDADL5+1gjQHtGSEdh/j/U0suW0+gZn99sbuyUcuFzc+v ZhrWRBApTS0R2L+Xg0JzMCL1GnoOTgyUx428E2YoNfCESWLnXlfUE/5rGjrVH/6wtKnW2IeZat4 XAULMIl4rRhMDRsFZNxL4BfBsd5nkGKsm/ClTxATm9Aptz9wiN/ZP6smdO/e9PMymgEJLoAsd11 iQKIieNeo39cWhjK4tYWTzSGKVv9ob31dW/B0WRope0qHhIXfYVEWIbSHfRM7gRyNXMAPaI+FMS TNs3ewy4ToULvBhlSzK7mNEcl8SWe5fkV29zu6fnxz+1goH8T5VzCjrQU8MMDJmSLb65iG1/mlJ lnI+SbLrirNWEZu0uLQoiajuGKlVvc2TBfj3O716zYEh60pE7l1DEOqVgTmcRuSeHs3szrVH5oN P4iLSap4MmV+whFmgMNrJP2g9E X-Received: by 2002:a05:600c:1f8e:b0:485:3fa9:358c with SMTP id 5b1f17b1804b1-4871605677amr66269625e9.17.1774457127613; Wed, 25 Mar 2026 09:45:27 -0700 (PDT) X-Received: by 2002:a05:600c:1f8e:b0:485:3fa9:358c with SMTP id 5b1f17b1804b1-4871605677amr66268985e9.17.1774457126930; Wed, 25 Mar 2026 09:45:26 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 17/19] target/i386: expose AMD GMET feature Date: Wed, 25 Mar 2026 17:44:51 +0100 Message-ID: <20260325164453.72127-18-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325164453.72127-1-pbonzini@redhat.com> References: <20260325164453.72127-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1774457220576154100 Content-Type: text/plain; charset="utf-8" This is implemented entirely by the hypervisor, so only the bit has to be exposed. Signed-off-by: Paolo Bonzini --- target/i386/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index b5e483e8cd2..d02f6f0653e 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -1170,7 +1170,7 @@ FeatureWordInfo feature_word_info[FEATURE_WORDS] =3D { "tsc-scale", "vmcb-clean", "flushbyasid", "decodeassists", NULL, NULL, "pause-filter", NULL, "pfthreshold", "avic", NULL, "v-vmsave-vmload", - "vgif", NULL, NULL, NULL, + "vgif", "gmet", NULL, NULL, NULL, NULL, NULL, NULL, NULL, "vnmi", NULL, NULL, "svme-addr-chk", NULL, NULL, NULL, --=20 2.53.0 From nobody Thu Apr 2 23:57:07 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1774457190; cv=none; d=zohomail.com; s=zohoarc; b=YStFnyYRYpqnG/5mZ0UAWTwbHJ5uzz7DPg9KVZKzBYlAYUzG7gPqAF6C/4Ms79cjtOKsRS4Q93dPAghhFJDpI5akg9kUTeYJyOulmW3MtjMhu6cFo1PcA92507DV78UIDnN73m+zTi8jRHFqCHlxAYf1AK+DI5ongthivjRoG1o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774457190; 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=CCwiRC482EaZQxhfSATpmEqEFzUxiMA0FuQ+ZG2bLL0=; b=c8YY6QNXW0L/yBWZeG572sc3DhxsqFHcU751rEgY76eglihqQkpsvFl7sLkKwNppeeNs9OMzK4muDU+Hc0YsjLHaFS8BcRXimP0e8cghm38wOPeTfvKaf84+rt/DSq5e2xPJgPi/EX5Qx/EWjKJFS4f6AGz4aWUbjZMCT8GQD1M= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774457190311687.3740912791476; Wed, 25 Mar 2026 09:46:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5RMS-0005Fg-NN; Wed, 25 Mar 2026 12:45:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RMQ-0005B0-Q7 for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:38 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RMN-0004gz-Mk for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:38 -0400 Received: from mail-lf1-f72.google.com (mail-lf1-f72.google.com [209.85.167.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-269-EEdCzltIOdqTnnzYiKwOMA-1; Wed, 25 Mar 2026 12:45:33 -0400 Received: by mail-lf1-f72.google.com with SMTP id 2adb3069b0e04-5a277331b57so71514e87.1 for ; Wed, 25 Mar 2026 09:45:32 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a2a064c17csm17482e87.28.2026.03.25.09.45.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 09:45:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774457134; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=CCwiRC482EaZQxhfSATpmEqEFzUxiMA0FuQ+ZG2bLL0=; b=FtJ/EGAfgyo7chvpMBkawk/fiW4W3FwPJUwvsDIH4TP3UpMlYGHpKv2HhY0LK5sqkKdoiR PDGva2VZC6NQeK2HtuD8rznKaUkNywHnMJPmqRe5LlQIjEfV3aviHA6tFWOUhPxzWF2cyR uf1CUkXVjYtMuHnnEblUto3oesRvoCA= X-MC-Unique: EEdCzltIOdqTnnzYiKwOMA-1 X-Mimecast-MFC-AGG-ID: EEdCzltIOdqTnnzYiKwOMA_1774457131 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774457130; x=1775061930; 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=CCwiRC482EaZQxhfSATpmEqEFzUxiMA0FuQ+ZG2bLL0=; b=gM2HwZOrLF1e/FKpmAyNko7pu9N1YMS57redulxb6NGBUxgwvu9h4a1kaXVvEWonS7 MOcwtEvRPme1i/4oolQsNurfT6k5ymV3Xb2DBTRb0CE5xqbd8b8axU8bvK24C+D6GlKw b59tyZqoGtlLMdb52IyJ8/Rz7YOQWb0e5ggw2uNWFq+Ch2uDKdC7SC8Of2C3gEpDcGkC EKXd/weEsiNEs/65MQT6zaT+SZUfBy3VqnjmN24ZEke+xbxiPC7i4bboalXNiDoVoFRI IA87XwI4Wf6LR18nw+wlxfajWIwQU4I4KEMlHl6DNkowVjCOSW55mbtsxfZBHNqHcfUl ILVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774457130; x=1775061930; 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=CCwiRC482EaZQxhfSATpmEqEFzUxiMA0FuQ+ZG2bLL0=; b=oWLeAekmrhGxOMs36dBbJSRsy8kKStdZvnk5D/Bqy6priqv4RKmZxgZV/9TZBKSjid ikAIIA90wgInVapjzjxaV8ytGWGLkkfzR8nbESGyzdHqEIhjRi9JPea3xYe7+4Fg5qBY 7yVcqjfVcfBaFLJ7fr8RzFpvZTsad2/aLhE9wy4MZKLiRrqp+Jdy2EBgcSzxUmZ6yKTs Ywqej/L3B2Al3NEW7fhANL8AqiMS7hp3LHRhYq/mWIWDjUzDlHsRisvDzjO8hUvOyqeI Fy/ln5abSQ+QOFfgHnbkRkjk2NCSnYtFyeyAIBaFeazBMxbeRFXeradEn2O1Q4qc+S/9 MbZw== X-Gm-Message-State: AOJu0YzSdrdEB5JW8j1Z/5jcVq4PKTtWtucaRUKHi8F4okK51bOKEwYJ ZpR9Jrh2qqruT7N+5QN9yYNZbFNHWYHIRf0TPXlH4pNXb1R+c7PuUvp3r6Os16uhztwE8vWi+OM LoXMPRmbJAmE1Qj12U6EGT87SARodrBXArM9p3J6Zm1iVcyWwVZhpghCbFB9lgleqKn6NYT/LCX 3oLE4/tRYDpeLg14KVm6eT6I4lfsl2/wniwyhqcQyN X-Gm-Gg: ATEYQzyXjcbT3Fd/YfYZKtxFsLma+yLy2aWUQMK/Gb5fdWdyqLFVLeSrMebHiiy2MKb 1bE+nEhK5vQRtvPXcanaVc1p2sWxuh0cUyEIPBZSrIYl6KrihSopJQPg2X0PYatc2/8jO0nC5bY MHapv27JRmpD9ReGwTl6q0/8A02uY1rD7EBoa3FaQfDfmIPzWxfTLn5JG2pKYdAlle6qaj5Es5h W2ZYTgHln/5ELvcBdf4UJbf51P5z+9zlfCNFdJDT2zmTBLkImadEMFIVX1TIlpPIHH9JQTcMd9n RSbPuyePOxHjDmUc+bixjNmlLSAOKv9dkYUoCuBFeef2/qpAfMZ2VP1hiSw/5r2eBMARGhpEU2c zoaeN/XdpofrxeWjcmqnbBpgbZfrBjiSZHpEpxnTTc0/Zhnx8NC0Ow8Be+lrl4qW63oBN3JvfAj dTuWij7Sv29gkvjdF3V4C7aFXG X-Received: by 2002:a05:6512:3d10:b0:5a2:851a:264a with SMTP id 2adb3069b0e04-5a29b97ecc8mr1575625e87.10.1774457129893; Wed, 25 Mar 2026 09:45:29 -0700 (PDT) X-Received: by 2002:a05:6512:3d10:b0:5a2:851a:264a with SMTP id 2adb3069b0e04-5a29b97ecc8mr1575606e87.10.1774457129255; Wed, 25 Mar 2026 09:45:29 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Mohamed Mediouni Subject: [PULL 18/19] target/i386: emulate: set PG_ERROR_W_MASK as expected Date: Wed, 25 Mar 2026 17:44:52 +0100 Message-ID: <20260325164453.72127-19-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325164453.72127-1-pbonzini@redhat.com> References: <20260325164453.72127-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1774457192385154100 Content-Type: text/plain; charset="utf-8" From: Mohamed Mediouni Make setting PG_ERROR_W_MASK no longer dependent on the access being a priv violation. Signed-off-by: Mohamed Mediouni Link: https://lore.kernel.org/r/20260324230016.80914-2-mohamed@unpredictabl= e.fr Signed-off-by: Paolo Bonzini --- target/i386/emulate/x86_mmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/i386/emulate/x86_mmu.c b/target/i386/emulate/x86_mmu.c index ba0ebe4268d..1aa373f5b38 100644 --- a/target/i386/emulate/x86_mmu.c +++ b/target/i386/emulate/x86_mmu.c @@ -248,7 +248,7 @@ static int translate_res_to_error_code(MMUTranslateResu= lt res, bool is_write, bo if (!(res & MMU_TRANSLATE_PAGE_NOT_MAPPED)) { error_code |=3D PG_ERROR_P_MASK; } - if (is_write && (res & MMU_TRANSLATE_PRIV_VIOLATION)) { + if (is_write) { error_code |=3D PG_ERROR_W_MASK; } if (res & MMU_TRANSLATE_INVALID_PT_FLAGS) { --=20 2.53.0 From nobody Thu Apr 2 23:57:07 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1774457181; cv=none; d=zohomail.com; s=zohoarc; b=NoZLkZvHLRXqGY3O66fgVutb2UmO/vfCWvkIeesR9VnDgjwlTTYn+aAoNO9lpVyjUbYqTbSQj7UKY5r2+cyT22SONxVa/RFWZHKjrMgYejm7dgF9wCm7pL4MdmpWJNZyxCqtBZpqVdQhPWaVCZsTtx00qYRb8BloCXnGBQLhRRk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774457181; 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=JZY+lfUSv0hQPzNSpxZLNfkq473QlRLdQ/ZgmDN/wsc=; b=gsnuaoHkwlkygJynd4PZaRxWmLilb/R1bKXYNeAJ7qru2YI/r1/NR1n6xCwoaiBAvtypEBEgnaEM9RTjXG66VBLdv1LarYY3qUdEnRd316gjBVfVcGvqwkbWJbcP9pqlzYstwr0UWN/+/8arJgimPbrzIjyObCQnsBy+F5c23ME= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774457181073740.66266967288; Wed, 25 Mar 2026 09:46:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5RMU-0005MY-7m; Wed, 25 Mar 2026 12:45:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RMS-0005G3-Pm for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:40 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5RMP-0004h4-Up for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:39 -0400 Received: from mail-yw1-f197.google.com (mail-yw1-f197.google.com [209.85.128.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-312-UDDvAeeqP5-1mknoODAUrg-1; Wed, 25 Mar 2026 12:45:34 -0400 Received: by mail-yw1-f197.google.com with SMTP id 00721157ae682-79ac9fad874so234907b3.2 for ; Wed, 25 Mar 2026 09:45:34 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id 00721157ae682-79b17e4359csm463357b3.20.2026.03.25.09.45.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 09:45:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774457136; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JZY+lfUSv0hQPzNSpxZLNfkq473QlRLdQ/ZgmDN/wsc=; b=A0sF6F5uS+5PjSpKq3rU7pHm5M7OTpobYs7kRwVphj/Mwfs60Bxq0C1WejstmZhhLVcWVg swXm4pnHleD2kJ7UCO27L/cre95jRUlV/lT/UdXP6aZPgCfLXK/uR5K+QplAgARyIwkYYU 9wRgZycI5UCpRQAs6qVmC6Aep3T8aJM= X-MC-Unique: UDDvAeeqP5-1mknoODAUrg-1 X-Mimecast-MFC-AGG-ID: UDDvAeeqP5-1mknoODAUrg_1774457134 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774457133; x=1775061933; 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=JZY+lfUSv0hQPzNSpxZLNfkq473QlRLdQ/ZgmDN/wsc=; b=cpnpsR/QypEJ11QZdYrnn0NrlKj9ja7bn82VjQVBiop2hGa6zgx2RsdBdZBRNNf+8k 1Z5CN55m4lPeDEwTHf5B3OwGSWp8g7B0g+BxzlVHbPkm5RoG0c4Zsesl6oRqAXoYRf4M B1ZzQtaY52VxN2u7bNE5M4ExwtcjuEpulckfMqPAhW4o6axHMjXRRkScTnERTFPjc8MP XROQroIlItaxU0cmpXu3GNroWxTFEnxu7w0F0KofDksXDqoNj+8Eq73emkswvCWAdM0Z Ze6BRaG7XyB4YITLr13I371JgD/6N46FUUJ8dytyoRjur1mq/2WKHv2b6c2cx22TmUWW KsCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774457133; x=1775061933; 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=JZY+lfUSv0hQPzNSpxZLNfkq473QlRLdQ/ZgmDN/wsc=; b=kIcLznsOJdZZezM0NbE79IQOZtDhU1/Q03poL5OXXJxlII1NDvuT/fqVH3Y04cFdYw rLJVtAbdKUfm7KaD8AfgHTPe2iiOJf63x3cKSB8XodkQoWi7K/ZyJ3oqI5JPys9HFC+S PY54A4+2dyeA7mmiUdqRT/DlNfV/cTwofJU/9Cs7UAz9KSphfzfZAhONRpgVSbuXQyjP hXQwTf9if4hwk30GK+ZbtziFyHF9MzmVPwh6vYZzEZW+6Lg+ogI1Q+tmMncxU9hauuYA GtZ5yZAN7F3RwAzPMilP0OtK52nAA/CiyJGmecFL2Ao63xDEHpym+pXSpKBm1w4ylCu5 PIOg== X-Gm-Message-State: AOJu0YxyEfOeyCAVzEk5PT2CumPG5IzJchPh7xZjhOhNhtV8tLvqqdwg LJG4G0nihDGw2YngLOp3AD5R9RYR5IV3e+1G6rgXThITESQFyrQMr20Lz6HA5J/7I/kl7BvcLKt fE4OWuOOJeBwEnwQpePVqYetxkPQKWE1oWkiFO6IYEYj3gmkcydjkvOs569KHnmz7h+fWcn6EUm fkBr7+h8k6fG9znGjiyBz0NIfuPHITdb9Z42r5daTh X-Gm-Gg: ATEYQzza6Jg9BNEqDE+wb9/p4GNzfx4JvKfIWsHaTpnlQF5/3zs0Gii6Ew3RXLSTH1z bAufeabMYWih6BwKX3fS6jx9kYaywPRC6DUkd+rPfIiKlqWFB7zXAFH+/0+NiLAVQ3fW8rHovED /bfF+xs87EKK9ZatCCr8PjgQBJ3IU1kDX/t0xJzUgmYxkkeEP6QmXRcgAxG9D+5QsGvydnTXnqO ZkmSTePU4gWK1LDlVMAsJ3vnHkJOp5asKXfRo0606ozx/2sAeylnVJt73gGU89WBxwN+Lfm4+Dv KdWLGUJlvmrdjXFK0yiobG4BDuirvxWbN+uhCT4UeSW8+J5Gzi3f9FXQQIFrPcBKdcs+Xq/GE2N dSF0AJVPXGA0u0JG9lpc6CQXs7Tx/teYgFK9stWq8bozbYHt2y3sQNknpTBPI+iHYlAv+CvfJAF 95t8guQFjVfO2HU7T4SAocH8F6 X-Received: by 2002:a05:690c:46c8:b0:79a:67a0:adfa with SMTP id 00721157ae682-79acf65926fmr44787667b3.44.1774457132957; Wed, 25 Mar 2026 09:45:32 -0700 (PDT) X-Received: by 2002:a05:690c:46c8:b0:79a:67a0:adfa with SMTP id 00721157ae682-79acf65926fmr44787227b3.44.1774457132256; Wed, 25 Mar 2026 09:45:32 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Mohamed Mediouni Subject: [PULL 19/19] target/i386: emulate: follow priv_check_exempt Date: Wed, 25 Mar 2026 17:44:53 +0100 Message-ID: <20260325164453.72127-20-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325164453.72127-1-pbonzini@redhat.com> References: <20260325164453.72127-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1774457182279158500 Content-Type: text/plain; charset="utf-8" From: Mohamed Mediouni Follow priv_check_exempt flag argument for x86_write_mem_priv/x86_read_mem_priv. Signed-off-by: Mohamed Mediouni Link: https://lore.kernel.org/r/20260324230016.80914-3-mohamed@unpredictabl= e.fr Signed-off-by: Paolo Bonzini --- target/i386/emulate/x86_mmu.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/target/i386/emulate/x86_mmu.c b/target/i386/emulate/x86_mmu.c index 1aa373f5b38..c69ae96acb7 100644 --- a/target/i386/emulate/x86_mmu.c +++ b/target/i386/emulate/x86_mmu.c @@ -263,14 +263,19 @@ static MMUTranslateResult x86_write_mem_ex(CPUState *= cpu, void *data, target_ulo CPUX86State *env =3D &x86_cpu->env; =20 MMUTranslateResult translate_res =3D MMU_TRANSLATE_SUCCESS; + MMUTranslateFlags translate_flags =3D MMU_TRANSLATE_VALIDATE_WRITE; MemTxResult mem_tx_res; uint64_t gpa; =20 + if (priv_check_exempt) { + translate_flags |=3D MMU_TRANSLATE_PRIV_CHECKS_EXEMPT; + } + while (bytes > 0) { /* copy page */ int copy =3D MIN(bytes, 0x1000 - (gva & 0xfff)); =20 - translate_res =3D mmu_gva_to_gpa(cpu, gva, &gpa, MMU_TRANSLATE_VAL= IDATE_WRITE); + translate_res =3D mmu_gva_to_gpa(cpu, gva, &gpa, translate_flags); if (translate_res) { int error_code =3D translate_res_to_error_code(translate_res, = true, is_user(cpu)); env->cr[2] =3D gva; @@ -311,14 +316,19 @@ static MMUTranslateResult x86_read_mem_ex(CPUState *c= pu, void *data, target_ulon CPUX86State *env =3D &x86_cpu->env; =20 MMUTranslateResult translate_res =3D MMU_TRANSLATE_SUCCESS; + MMUTranslateFlags translate_flags =3D 0; MemTxResult mem_tx_res; uint64_t gpa; =20 + if (priv_check_exempt) { + translate_flags |=3D MMU_TRANSLATE_PRIV_CHECKS_EXEMPT; + } + while (bytes > 0) { /* copy page */ int copy =3D MIN(bytes, 0x1000 - (gva & 0xfff)); =20 - translate_res =3D mmu_gva_to_gpa(cpu, gva, &gpa, 0); + translate_res =3D mmu_gva_to_gpa(cpu, gva, &gpa, translate_flags); if (translate_res) { int error_code =3D translate_res_to_error_code(translate_res, = false, is_user(cpu)); env->cr[2] =3D gva; --=20 2.53.0