From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5B23C1A682F for ; Thu, 9 Apr 2026 17:36:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775756199; cv=none; b=lrin2IBsGBTsZyrzPBPZo2Vbe47urrEdj4xslAdIMsqH4VxOtIgzXB4viK/vzmlBd0mH2K5r64fGBmuD3H9s2HsVyLDl8jS8SUpcE30+poV9HeXHJRbYu4zSXP8r03BPM1qA8b4mcHzkYerd9yvD2GtKR8TzIsSt2aXXjNZGCo0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775756199; c=relaxed/simple; bh=/nFp3H1jvzcz3wzZQIK+M0rRkKvkk739gDNT6ihiLsA=; h=Content-Type:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To; b=Jm3Q2SjNOuO6760nmZ+E/TMB3W3HxEHGU3YqUH7R+OpT5Pr5ax8lVOuUTvScPJ4OMSxQ8mZWu22WRz5vv+hcrzzuJ3EJI9kb9yjYnrckIq8t8gqE18KM+5o6VsU7RE+UZsaCnU4DZPhsi0Bgji/P/jTQal+JnQOtH6CGnoIH+6k= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=LSVMjyHI; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="LSVMjyHI" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-488a29e6110so13146765e9.3 for ; Thu, 09 Apr 2026 10:36:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775756197; x=1776360997; darn=vger.kernel.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=VikJJNd5VhOwaHnCnCCu6joDVLiO8EzhNeusI2Ghpa8=; b=LSVMjyHIR8G+niZA8P9b2AMes/mYV3bebY8+Lfkze0SKT9zvt7ZbVDgiNNNPvXE4JC jtptQgc6tDB9pRma1QE/0nA7MEr1+DZAydQSkrOakHB2zdp8l1/0Avvx9YT5ZgEtxK8p 68FH7awfLKypUe29Z7vf297WrNQNsAblbJNK9zDK/lCEbnJcgZmrWu8bT3P8/B1KwDoD a6KUdbRUTfTqlDsEviYgZcyR+8s65MTLfXruz68VVr8aTLLrfnb07A3TsSyS8lN1L6RS 1KfvGFnhV0VYXMw2REFQR1stUhkz7Nvr+c0FeUqz8g3Zf1WuIBRmvaGbF4gSlUFmg/aY TE5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775756197; x=1776360997; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-gg:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=VikJJNd5VhOwaHnCnCCu6joDVLiO8EzhNeusI2Ghpa8=; b=m/nU/UUpwdqc0hbjGe6mBLzqop19t3X/GKBu8a9rf8luSUGpKX5S0kpDuojyK1+wqq ix6kXXuV3n8/o1RZ7mWaxrWDmkKqQRtmNKsLIWo7xn6Vsa4Nx9OJvGKmkxdczjPR3xt9 VfZpksPO4766vmsN0qZy9DcFrTEFnqkOfzYf0BwUWcGKuzM4JiakADB7VX+5tg8H9GIl hJaXKyQn3dKOG2qIGpucz+fTAUSqYIPdjYk6kaaZ5D6WsC8/EnAfn4ogbrEmb0d923Js OMdoiyoFw9NXlxKtaiaRhvRbLmt3d3MTCQCd06jur5esszocnvVNRPTWUSiqi5TMfGTO /1uQ== X-Forwarded-Encrypted: i=1; AJvYcCX+/Syt4Uwvda8PjXvwEZQWKPeAP7e6QxlHMnzkoLggF+YVmvp+OYGzFxgI2LmPU3NO0U75X23oB+/iwus=@vger.kernel.org X-Gm-Message-State: AOJu0Ywij03QmYkO+UoWqFpk4Xds8PQo6eays37O0Wgvh26yZZ0eQQ7F a4nQ+IegMvT+UliE/Eor42SQdDserhqHKIovxUoeZihZ1St0UYgmpeVd X-Gm-Gg: AeBDietmee9E9I7NwznT9oc9DNHGRFCzEDDvH8Yiv3Z8wHavyld966LIelJ0BkTHURK ZBZ7kVj+2bjdV+odsmtB8Pcw+3tVHbMIJyfB7XmxWUUOqty9ODeP3RY2s/ESb4HciajNyeRi9o3 KFHZUcw1PqNfOWMdonu+O+QkLe69GxGn3YeKbD0fwtep1he1wchogSPysVvD5JCl8GvzKrvYxbF +RJYczvSP2zd4tWnUmUzX//jCuDavEgS+NUOy4igT6gLHF3bF/pZ+/0zWBzWqR3curpayF7g8Sm jjrJoFiwnjyfiJFbqsZfnu9saNiMRY/TFjG8VgjakOvs//Ccp/419wuEtKzBDOQQi2+KqB3zsjc 8RpmLW0KEii9UshMbvZ96drfue5AMwLYNZrFnTM5fhs4F5rdjk5DSyT9cdHZAVtwbLZG3IfhPoU 0sf4EASWM3fka5boDeyqfQDYdeqhzkjlJzqXKJh6i2IFs/iLPsIKeaybj+1t6r2i22NGrmeZl2/ uUitSn/al5BIm3o/KeYA7JqgJ4/TT3UjU21WjApCbJm+tV6trhNM5FU X-Received: by 2002:a05:600c:3f0a:b0:487:2439:b7c8 with SMTP id 5b1f17b1804b1-488996a206dmr383393495e9.1.1775756196592; Thu, 09 Apr 2026 10:36:36 -0700 (PDT) Received: from [192.168.1.100] ([46.248.82.114]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488d58a414bsm6710175e9.4.2026.04.09.10.36.35 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 09 Apr 2026 10:36:35 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------REQjjt0ep03aOgQcIyxRW5f2" Message-ID: <57796f12-53f7-426b-be4c-abf0b2ce2061@gmail.com> Date: Thu, 9 Apr 2026 19:36:34 +0200 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 7/7] KVM: VMX: replace vmx_spec_ctrl_restore_host with RESTORE_HOST_SPEC_CTRL_BODY To: Paolo Bonzini , linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: seanjc@google.com, chang.seok.bae@intel.com References: <20260408182213.522713-1-pbonzini@redhat.com> <20260408182213.522713-8-pbonzini@redhat.com> Content-Language: en-US From: Uros Bizjak In-Reply-To: <20260408182213.522713-8-pbonzini@redhat.com> This is a multi-part message in MIME format. --------------REQjjt0ep03aOgQcIyxRW5f2 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 4/8/26 20:22, Paolo Bonzini wrote: > Reuse the same assembly as SVM, just with alternatives instead > of cpu_feature_enabled(X86_FEATURE_KERNEL_IBRS). > > Due to the dearth of registers in 32-bit x86, save/restore %eax > across the restoring sequence, keeping it simple; the main alternative > would be to leave vmx and flags on the stack, avoiding the need to read > flags from %ebx. It's not really measurable difference. You don't need to save/restore %eax. Considering that RESTORE_HOST_SPEC_CTRL_BODY doesn't touch %ebx, and that testl $KVM_ENTER_SAVE_SPEC_CTRL, \enter_flags is placed at the beginning of the macro, you can put @flags into %eax: + pop %_ASM_AX /* @flags */ + pop %_ASM_DI /* @vmx */ + + /* Clobbers RAX, RCX, RDX, RSI. */ + ALTERNATIVE "jmp .Lspec_ctrl_host_done", "", X86_FEATURE_MSR_SPEC_CTRL + RESTORE_HOST_SPEC_CTRL_BODY VMX_spec_ctrl(%_ASM_DI), %eax, .Lspec_ctrl_host_done +.Lspec_ctrl_host_done: + + CLEAR_BRANCH_HISTORY_VMEXIT The above macro will clobber %eax via clear_bhb_loop(), so you should leave: /* Put return value in AX */ mov %_ASM_BX, %_ASM_AX after it, like in the attached (partial) patch. BR, Uros. --------------REQjjt0ep03aOgQcIyxRW5f2 Content-Type: text/plain; charset=UTF-8; name="vmx.diff.txt" Content-Disposition: attachment; filename="vmx.diff.txt" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm1lbnRlci5TIGIvYXJjaC94ODYva3Zt L3ZteC92bWVudGVyLlMKaW5kZXggNDQyNmQzNDgxMWZjLi5iNzA3ZWJmNmU3YTUgMTAwNjQ0 Ci0tLSBhL2FyY2gveDg2L2t2bS92bXgvdm1lbnRlci5TCisrKyBiL2FyY2gveDg2L2t2bS92 bXgvdm1lbnRlci5TCkBAIC0yODYsMTAgKzI4NiwxMyBAQCBTWU1fSU5ORVJfTEFCRUxfQUxJ R04odm14X3ZtZXhpdCwgU1lNX0xfR0xPQkFMKQogCUZJTExfUkVUVVJOX0JVRkZFUiAlX0FT TV9DWCwgUlNCX0NMRUFSX0xPT1BTLCBYODZfRkVBVFVSRV9SU0JfVk1FWElULFwKIAkJCSAg IFg4Nl9GRUFUVVJFX1JTQl9WTUVYSVRfTElURQogCi0JcG9wICVfQVNNX0FSRzIJLyogQGZs YWdzICovCi0JcG9wICVfQVNNX0FSRzEJLyogQHZteCAqLworCXBvcCAlX0FTTV9BWAkvKiBA ZmxhZ3MgKi8KKwlwb3AgJV9BU01fREkJLyogQHZteCAqLwogCi0JY2FsbCB2bXhfc3BlY19j dHJsX3Jlc3RvcmVfaG9zdAorCS8qIENsb2JiZXJzIFJBWCwgUkNYLCBSRFgsIFJTSS4gICov CisJQUxURVJOQVRJVkUgImptcCAuTHNwZWNfY3RybF9ob3N0X2RvbmUiLCAiIiwgWDg2X0ZF QVRVUkVfTVNSX1NQRUNfQ1RSTAorCVJFU1RPUkVfSE9TVF9TUEVDX0NUUkxfQk9EWSBWTVhf c3BlY19jdHJsKCVfQVNNX0RJKSwgJWVheCwgLkxzcGVjX2N0cmxfaG9zdF9kb25lCisuTHNw ZWNfY3RybF9ob3N0X2RvbmU6CiAKIAlDTEVBUl9CUkFOQ0hfSElTVE9SWV9WTUVYSVQKIAo= --------------REQjjt0ep03aOgQcIyxRW5f2--