From nobody Fri Feb 13 07:24:45 2026 Received: from mail-pl1-f202.google.com (mail-pl1-f202.google.com [209.85.214.202]) (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 DABA164B for ; Sat, 29 Jun 2024 00:39:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719621591; cv=none; b=R11sSbqOWwV7y7dihJ0U2sWiz+3euVYsBl+qq4Vzwbd2OKRtyr+p0lRADCHLccbkzAHk2wvkOEThl63kRUjfwwVjw8DDOVR0GucARUjKAlmDx3lx5pQkVS1XZv8eWUXg+bys1krt3VtBDT+ak1OQCiDjfT79LX8/56IXJuml2D0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719621591; c=relaxed/simple; bh=Pz1g6G51mK00H5AnS6wutafS0Fk3njl56e8LnVQCYEg=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=XFduGTs48C4gIAFVnvldOYWNe/eSMFZUcWPUTypEUzjBgAsujAu6hQ/MeS8riwnzn6BSES7jaZo2KpvMZq/h9m7qHF7pCnd8QX7Y8ddOA549PT9SrRy8Xbts6hSHB2syDVZePbz+H0gpozXvJHLSKLld/2db4qAs5D8+PA3mLDI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=QazDbcR8; arc=none smtp.client-ip=209.85.214.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="QazDbcR8" Received: by mail-pl1-f202.google.com with SMTP id d9443c01a7336-1f9ae96e9a0so8090645ad.3 for ; Fri, 28 Jun 2024 17:39:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719621589; x=1720226389; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=kd3C0sxfCNKdrD+Sbh/WadBLxxHhTCxArwWdu5Y0sb8=; b=QazDbcR8Tr8V7rvoVIDkvCJ1vkf4C/q70yf4o31o4pntaZV+gTqwNcEIk9Wc7IQays MOh9znsjRis8VhmPzSLrsm5p5Nc0VWjTqC1O4JJop/4447HlXLcBAeEhW07dy8BpDjyq 2iu76Kd184MOL0KA3i7lHMx+974WMHRVh9LeSufELa+CjAxyOaAEsXbLqmKVY9g9XH6O YhYfQfZmh3ZBjMptePuF6tUJW+7tvXS5VqZyarVCWOpRm5f2CbxuReD1EtvQIJxuxjz2 +5oYcW4F63NssvhlS2JfAom5ynSJj5TZS2Yo9tK02IboQkIQW9AuiCCiu8PW0+EIFNSw M+sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719621589; x=1720226389; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=kd3C0sxfCNKdrD+Sbh/WadBLxxHhTCxArwWdu5Y0sb8=; b=Qc9uayStJecNHw9/1F4aJ9aammm7U2rEczb+BBXcVi2nBrs7BzGvryiEuQEXieuGD1 3dbmutxziND0qOU52v+5Zng+AusRc1W5gJFrSKZ7UEnupg6xDbPyMZufj5UKxISKs/Lr oEUZAiavlnp5LHFcigosbEjRfrQnXwYE4lzl5mPD4ehXeWuAP+cIRwLWnMKPdl9nNM+Z Adlke74O9Pu0OmaRUJX9eBvcx+vZoTU2LX20EgkaW+2+fUd9TPwcCBUrOYCS0Xww3h3P axKAz4CUthbLnrAPiLXf05g275PAFXL1FSFZ388u9c3MZFpkNPbwvea6YmX8W+03Uipz YQvw== X-Forwarded-Encrypted: i=1; AJvYcCWQfXHBg8mJDNgBYvEpQkWagJiQaI1hRlw26lhRt/WlSOGuw5whyre1sxiwjr8PII8EX7PrGuVJVOoIcoztGO64eurvkswqZa7VaBU8 X-Gm-Message-State: AOJu0YwG75Djt/JmtVAhNSFMcURmUIY8fr4DeMJPdNlModAudp2VZw4z wF48vSB6F42vabwgnuCvsAHbpUeAUMBZCe8rj8nb6z88jiAt3OP4XmRm8X4rB7Sko/Oxze4kWzI upg== X-Google-Smtp-Source: AGHT+IH5WTUkkd8iv6KEo2gRcH1NiuxVcmzirqhZXKgqjKBjtRlrKsDdROzmt+BiaVDpGkl18D1t3Aq7D48= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a17:902:c40a:b0:1fa:2984:3d32 with SMTP id d9443c01a7336-1fa29843ebdmr20431675ad.0.1719621589051; Fri, 28 Jun 2024 17:39:49 -0700 (PDT) Date: Fri, 28 Jun 2024 17:39:47 -0700 In-Reply-To: <2fccf35715b5ba8aec5e5708d86ad7015b8d74e6.1718214999.git.reinette.chatre@intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <2fccf35715b5ba8aec5e5708d86ad7015b8d74e6.1718214999.git.reinette.chatre@intel.com> Message-ID: Subject: VMX Preemption Timer appears to be buggy on SKX, CLX, and ICX From: Sean Christopherson To: Reinette Chatre Cc: isaku.yamahata@intel.com, pbonzini@redhat.com, erdemaktas@google.com, vkuznets@redhat.com, vannapurve@google.com, jmattson@google.com, mlevitsk@redhat.com, xiaoyao.li@intel.com, chao.gao@intel.com, rick.p.edgecombe@intel.com, yuan.yao@intel.com, kvm@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: multipart/mixed; charset="UTF-8"; boundary="FoqhM4pZbXonoqbf" Content-Transfer-Encoding: quoted-printable --FoqhM4pZbXonoqbf Content-Disposition: inline MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Rm9ya2luZyB0aGlzIG9mZiB0byB0cnkgYW5kIGF2b2lkIGNvbmZ1c2lvbi4uLgoKT24gV2VkLCBK dW4gMTIsIDIwMjQsIFJlaW5ldHRlIENoYXRyZSB3cm90ZToKPiArLyoKPiArICogUG9zc2libGUg VERDUiB2YWx1ZXMgd2l0aCBtYXRjaGluZyBkaXZpZGUgY291bnQuIFVzZWQgdG8gbW9kaWZ5IEFQ SUMKPiArICogdGltZXIgZnJlcXVlbmN5Lgo+ICsgKi8KPiArc3RhdGljIHN0cnVjdCB7Cj4gKwl1 aW50MzJfdCB0ZGNyOwo+ICsJdWludDMyX3QgZGl2aWRlX2NvdW50Owo+ICt9IHRkY3JzW10gPTNE IHsKPiArCXsweDAsIDJ9LAo+ICsJezB4MSwgNH0sCj4gKwl7MHgyLCA4fSwKPiArCXsweDMsIDE2 fSwKPiArCXsweDgsIDMyfSwKPiArCXsweDksIDY0fSwKPiArCXsweGEsIDEyOH0sCj4gKwl7MHhi LCAxfSwKPiArfTsKCi4uLgoKPiArc3RhdGljIHZvaWQgYXBpY19ndWVzdF9jb2RlKHZvaWQpCj4g K3sKPiArCXVpbnQ2NF90IHRzY19oeiA9M0QgKHVpbnQ2NF90KXRzY19raHogKiAxMDAwOwo+ICsJ Y29uc3QgdWludDMyX3QgdG1pY3QgPTNEIH4wdTsKPiArCXVpbnQ2NF90IHRzYzAsIHRzYzEsIGZy ZXE7Cj4gKwl1aW50MzJfdCB0bWNjdDsKPiArCWludCBpOwo+ICsKPiArCWFwaWNfZW5hYmxlKCk7 Cj4gKwo+ICsJLyoKPiArCSAqIFNldHVwIG9uZS1zaG90IHRpbWVyLiAgVGhlIHZlY3RvciBkb2Vz IG5vdCBtYXR0ZXIgYmVjYXVzZSB0aGUKPiArCSAqIGludGVycnVwdCBzaG91bGQgbm90IGZpcmUu Cj4gKwkgKi8KPiArCWFwaWNfd3JpdGVfcmVnKEFQSUNfTFZUVCwgQVBJQ19MVlRfVElNRVJfT05F U0hPVCB8IEFQSUNfTFZUX01BU0tFRCk7Cj4gKwo+ICsJZm9yIChpID0zRCAwOyBpIDwgQVJSQVlf U0laRSh0ZGNycyk7IGkrKykgewo+ICsKPiArCQlhcGljX3dyaXRlX3JlZyhBUElDX1REQ1IsIHRk Y3JzW2ldLnRkY3IpOwo+ICsJCWFwaWNfd3JpdGVfcmVnKEFQSUNfVE1JQ1QsIHRtaWN0KTsKPiAr Cj4gKwkJdHNjMCA9M0QgcmR0c2MoKTsKPiArCQl1ZGVsYXkoZGVsYXlfbXMgKiAxMDAwKTsKPiAr CQl0bWNjdCA9M0QgYXBpY19yZWFkX3JlZyhBUElDX1RNQ0NUKTsKPiArCQl0c2MxID0zRCByZHRz YygpOwo+ICsKPiArCQkvKgo+ICsJCSAqIFN0b3AgdGhlIHRpbWVyIF9hZnRlcl8gcmVhZGluZyB0 aGUgY3VycmVudCwgZmluYWwgY291bnQsIGFzCj4gKwkJICogd3JpdGluZyB0aGUgaW5pdGlhbCBj b3VudGVyIGFsc28gbW9kaWZpZXMgdGhlIGN1cnJlbnQgY291bnQuCj4gKwkJICovCj4gKwkJYXBp Y193cml0ZV9yZWcoQVBJQ19UTUlDVCwgMCk7Cj4gKwo+ICsJCWZyZXEgPTNEICh0bWljdCAtIHRt Y2N0KSAqIHRkY3JzW2ldLmRpdmlkZV9jb3VudCAqIHRzY19oeiAvICh0c2MxIC0gdHM9CmMwKTsK PiArCQkvKiBDaGVjayBpZiBtZWFzdXJlZCBmcmVxdWVuY3kgaXMgd2l0aGluIDElIG9mIGNvbmZp Z3VyZWQgZnJlcXVlbmN5LiAqLwo+ICsJCUdVRVNUX0FTU0VSVChmcmVxIDwgYXBpY19oeiAqIDEw MSAvIDEwMCk7Cj4gKwkJR1VFU1RfQVNTRVJUKGZyZXEgPiBhcGljX2h6ICogOTkgLyAxMDApOwo+ ICsJfQoKVGhpcyB0ZXN0IGZhaWxzIG9uIG91ciBTS1gsIENMWCwgYW5kIElDWCBzeXN0ZW1zIGR1 ZSB0byB3aGF0IGFwcGVhcnMgdG8gYmUgPQphIENQVQpidWcuICBJdCBsb29rcyBsaWtlIHNvbWV0 aGluZyBBUElDdiByZWxhdGVkIGlzIGNsb2JiZXJpbmcgaW50ZXJuYWwgVk1YIHRpbWU9CnIgc3Rh dGU/Ck9yIG1heWJlIHRoZXJlJ3MgYSB0ZWFyaW5nIG9yIHRydW5jYXRpb24gaXNzdWU/CgpBcyBt ZW50aW9uZWQgYWQgbmF1c2V1bSBhdCB0aGlzIHBvaW50LCBJJ20gb2ZmbGluZSBhbGwgb2YgbmV4 dCB3ZWVrLCBzbyBob3A9CmVmdWxseQp0aGVyZSdzIGVub3VnaCBpbmZvIGhlcmUgdG8gZ2V0IGEg cm9vdCBjYXVzZS4uLgoKCkEgc3B1cmlvdXMgVk0tRXhpdCB3aWxsIG9jY3VyIGFmdGVyIHByb2dy YW1taW5nIGEgdm1jcy5QUkVFTVBUSU9OX1RJTUVSX1ZBTD0KVUUgdGhhdApzaG91bGRuJ3QgZXhp dC4gIEV2ZXJ5IG9ic2VydmVkIGZhaWx1cmUgb2NjdXJzIHdoZW4gYml0cyAyNzoxNiBhcmUgemVy bywgd2k9CnRoIGEKc21hbGwgdmFsdWUgaW4gYml0cyAxNTowLCBlLmcuIFZNLUVudGVyIHdpdGgg YSB0aW1lciB2YWx1ZSBvZiAweGUwMDAzYmY3IG9yCjB4YTAwMDZkYjYgd2lsbCBjYXVzZSBhIG5l YXItaW1tZWRpYXRlIFZNLUV4aXQuCgpXZWlyZGx5LCBpdCBkb2Vzbid0IGFsd2F5cyBoYXBwZW4s IGUuZy4gSSd2ZSBvYnNlcnZlZCByb2xsb3ZlciBmcm9tIDB4YTAwMHg9Cnh4eAp0byAweDlmZmZ4 eHh4IHdpdGhvdXQgZmFpbHVyZS4gIEhvd2V2ZXIsIHRoZSAqdGVzdCogZmFpbHVyZSBpcyAxMDAl IHJlcHJvZHU9CmNpYmxlLAppLmUuIGl0J3Mgbm90IF90aGF0XyByYXJlIG9mIGEgZmFpbHVyZS4g IFNvIG1heWJlIHRoZXJlJ3Mgc3RhdGUgYnVpbGQtdXAgcmU9CnF1aXJlZD8KRS5nLiBpbiB0aGUg ZmFpbGluZyBjYXNlcywgdGhlcmUgYXJlIDEwcyBvZiBlbnRyaWVzIHdpdGggYSBzbGlnaHRseSBs YXJnZXIgPQp0aW1lcgp2YWx1ZSwgd2l0aCBubyBwcmVlbXB0aW9uIHRpbWVyIGV4aXQgKHRoZSBo b3N0J3MgdGljayBJUlEgaW50ZXJydXB0cyB0aGUgZ3U9CmVzdCwKYW5kIHRoZW4gS1ZNIHJlcHJv Z3JhbXMgdGhlIFZNWCB0aW1lcikuCgpFdmVuIG1vcmUgc2tldGNoeSwgdGhlIGZhaWx1cmUgb25s eSBvY2N1cnMgaWYgQVBJQ3YgaXMgZW5hYmxlZC4gIFR1cm5pbmcgb2Y9CmYgQVBJQ3YKbWFrZXMg dGhlIHByb2JsZW0gZ28gYXdheSAoSSBpbml0aWFsbHkgc3VzcGVjdGVkIEtWTSB3YXMgc29tZWhv dyBib3RjaGluZyB0PQpoZSBUTUNDVAplbXVsYXRpb24pLiAgSSBhbSA5OS45JSBjZXJ0YWluIHRo ZXJlIGlzIG5vIEtWTSBBUElDdiBidWcgdGhhdCBpcyBjYXVzaW5nIHA9CnJvYmxlbXMuCk91ciBJ VkIgc2VydmVycyBkb24ndCBmYWlsIChldmVuIHdpdGggQVBJQ3YgZW5hYmxlZCksIG5vciBkb2Vz IG15IFJhcHRvciBMYT0Ka2UgY2xpZW50CmJveCAod2l0aCBBUElDdiBlbmFibGVkKS4gIEFuZCBJ IGNvbmZpcm1lZCB0aGF0IHRoZSBWTVggdGltZXIgaXMgc3RpbGwgZ2V0dD0KaW5nCnByb2dyYW1t ZWQgd2l0aCB0aGUgc2FtZSBzZXF1ZW5jZSB0aGF0IGZhaWxzIHdoZW4gQVBJQ3YgaXMgZW5hYmxl ZC4KCihCZWZvcmUgSSByZWFsaXplZCB0aGUgcGF0dGVybiBvZiB2YWx1ZXMpLCBJIHNhbml0eSBj aGVja2VkIHRoZSBWTUNTIGZpZWxkID0KanVzdApiZWZvcmUgVk0tRW50ZXIsIGFuZCBhZ2FpbiBh ZnRlciBWTS1FeGl0IChLVk0gcnVucyB3aXRob3V0IHRoZSBDUFUgc2F2ZQp2bWNzLlBSRUVNUFRJ T05fVElNRVJfVkFMVUUgb24gZXhpdCkuCgpJIGFsc28gdmVyaWZpZWQgdGhlIENQVSB0aGlua3Mg dGhlIHRpbWVyIGhhcyBleHBpcmVkIGJ5IGVuYWJsaW5nICJzYXZlIG9uIGU9CnhpdCIKYW5kIHZl cmlmeWluZyB2bWNzLlBSRUVNUFRJT05fVElNRVJfVkFMVUUgaXMgaW5kZWVkICcwJywgYW5kIHRo YXQgS1ZNIHJlYWxsPQp5IGRpZApnZXQgYSBQUkVFTVBUSU9OX1RJTUVSIGV4aXQuCgpBdHRhY2hl ZCBpcyB0aGUgZGVidWcgcGF0Y2ggSSB1c2VkIHRvIGdldCB0aGUgYmVsb3cgZGF0YSAoc29ydCBv Zjsgb25lIG9mIHQ9CmhlCnBvc3QtZXhpdCBwcmludHMgaXMgd2l0aG91dCBzYXZpbmcgdm1jcy5Q UkVFTVBUSU9OX1RJTUVSX1ZBTFVFIG9uIGV4aXQpLgoKSW4ga3ZtX2h5cGVyY2FsbCAoaWdub3Jl IHRoZSBuYW1lLCBJIHBpZ2d5YmFja2VkIGEgdHJhY2Vwb2ludCBiZWNhdXNlIHRyeWluPQpnIHRv CmxvZyB0byBkbWVzZyB3YXMgdG9vIHNsb3csIGd1ZXN0IGxpdGVyYWxseSBjb3VsZG4ndCBtYWtl IGZvcndhcmQgcHJvZ3Jlc3MpLD0KIGExIGlzCnRoZSBWTVggdGltZXIgdmFsdWUgcHJvZ3JhbW1l ZCBieSBLVk0gKDB4ZTAwMDNiZjcpLgo9MjAKIGFwaWNfYnVzX2Nsb2NrXy0xMTQxOSAgIFswNTZd IGQuLjIuICAgMTQ2Ljc3MTE3OToga3ZtX2h5cGVyY2FsbDogbnIgMHgyYzhhPQo5ZTljYzY3MDNj IGEwIDB4MmM4YjBlOWNlNDZjMzcgYTEgMHhlMDAwM2JmNyBhMiAweGUwMDAzYmY3IGEzIDB4NyA9 MjAKIGFwaWNfYnVzX2Nsb2NrXy0xMTQxOSAgIFswNTZdIGQuLjIuICAgMTQ2Ljc3MTI0Mjoga3Zt X2V4aXQ6IHZjcHUgMCByZWFzb24gPQpQUkVFTVBUSU9OX1RJTUVSIHJpcCAweDQwMjA2NSBpbmZv MSAweDAwMDAwMDAwMDAwMDAwMDAgaW5mbzIgMHgwMDAwMDAwMDAwMDA9CjAwMDAgaW50cl9pbmZv IDB4MDAwMDAwMDAgZXJyb3JfY29kZSAweDAwMDAwMDAwCiBWTVggdGltZXIgZXhpdCwgVk1DUyA9 M0QgZTAwMDNiZjcsIGRlbHRhID0zRCBlMDAwMzY5MAoKYW5kIHRoZSBwb3N0LWV4aXQgcHJpbnQg d2l0aCB0aGUgYXR0YWNoZWQgcGF0Y2g6CgogIGt2bV9pbnRlbDogVk1YIHRpbWVyIGV4aXQsIEVY SVRfUkVBU09OID0zRCAzNCwgVk1DUyA9M0QgMCwgZGVsdGEgPTNEIGUwMDA9CjM3ZTkKCkFuZCBJ J3ZlIGJlZW4gZmlkZGxpbmcgd2l0aCB0aGUgYmVsb3cgaGFjayB0byBjb2VyY2UgS1ZNIGludG8g cHJvZ3JhbW1pbmcgVj0KTVgKdGltZXIgdmFsdWVzLiAgSGFkIEkgbW9yZSB0aW1lLCBJIHdvdWxk IGhhdmUgYm9vdGVkIGtlcm5lbHMgd2l0aCB0aGUgYWJpbGl0PQp5IHRvCnByb3Blcmx5IGZ1enog dGhlIHRpbWVyIHZhbHVlcy4KCk5vdGUsIHdpdGggVE1JQ1Q9M0QtMSwgb25seSBkaXZpZGVfY291 bnQ9M0QxIHdpbGwgZmFpbCwgYmVjYXVzZSBsYXJnZXIgZGl2aT0KZGUgY291bnRzCnJlc3VsdCBp biBhIHRpbWVvdXQgdGhhdCBkb2Vzbid0IGZpdCBpbnRvIHRoZSAzMi1iaXQgVk1YIHRpbWVyIGZp ZWxkIChkb24ndD0KIGFzawptZSBob3cgbG9uZyBpdCB0b29rIG1lIHRvIHJlYWxpemUgdGhlIGRp dmlkZSBjb3VudCBhZmZlY3RzIHRoZSB0aW1lIGZyZXF1ZW49CmN5LApub3QgdGhlIGFjdHVhbCBj b3VudCwgKnNpZ2gqKS4KCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0v eDg2XzY0L2FwaWNfYnVzX2Nsb2NrX3Rlc3QuYyBiL3Rvbz0KbHMvdGVzdGluZy9zZWxmdGVzdHMv a3ZtL3g4Nl82NC9hcGljX2J1c19jbG9ja190ZXN0LmMKaW5kZXggZjg5MTZiYjM0NDA1Li40ZWI0 OWUyMGZmOWMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODZfNjQv YXBpY19idXNfY2xvY2tfdGVzdC5jCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94 ODZfNjQvYXBpY19idXNfY2xvY2tfdGVzdC5jCkBAIC0yMiwxMyArMjIsMTMgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCB7CiAgICAgICAgY29uc3QgdWludDMyX3QgdGRjcjsKICAgICAgICBjb25zdCB1 aW50MzJfdCBkaXZpZGVfY291bnQ7CiB9IHRkY3JzW10gPTNEIHsKLSAgICAgICB7MHgwLCAyfSwK LSAgICAgICB7MHgxLCA0fSwKLSAgICAgICB7MHgyLCA4fSwKLSAgICAgICB7MHgzLCAxNn0sCi0g ICAgICAgezB4OCwgMzJ9LAotICAgICAgIHsweDksIDY0fSwKLSAgICAgICB7MHhhLCAxMjh9LAor ICAgICAgIC8vIHsweDAsIDJ9LAorICAgICAgIC8vIHsweDEsIDR9LAorICAgICAgIC8vIHsweDIs IDh9LAorICAgICAgIC8vIHsweDMsIDE2fSwKKyAgICAgICAvLyB7MHg4LCAzMn0sCisgICAgICAg Ly8gezB4OSwgNjR9LAorICAgICAgIC8vIHsweGEsIDEyOH0sCiAgICAgICAgezB4YiwgMX0sCiB9 Owo9MjAKQEAgLTU1LDEwICs1NSwxMSBAQCBzdGF0aWMgdm9pZCBhcGljX3dyaXRlX3JlZyh1bnNp Z25lZCBpbnQgcmVnLCB1aW50MzJfdCB2PQphbCkKICAgICAgICAgICAgICAgIHhhcGljX3dyaXRl X3JlZyhyZWcsIHZhbCk7CiB9Cj0yMAordWludDMyX3QgdG1pY3QgPTNEIH4wdTsKKwogc3RhdGlj IHZvaWQgYXBpY19ndWVzdF9jb2RlKHVpbnQ2NF90IGFwaWNfaHosIHVpbnQ2NF90IGRlbGF5X21z KQogewogICAgICAgIHVpbnQ2NF90IHRzY19oeiA9M0QgZ3Vlc3RfdHNjX2toeiAqIDEwMDA7Ci0g ICAgICAgY29uc3QgdWludDMyX3QgdG1pY3QgPTNEIH4wdTsKICAgICAgICB1aW50NjRfdCB0c2Mw LCB0c2MxLCBmcmVxOwogICAgICAgIHVpbnQzMl90IHRtY2N0OwogICAgICAgIGludCBpOwpAQCAt MTMzLDYgKzEzNCw3IEBAIHN0YXRpYyB2b2lkIHJ1bl9hcGljX2J1c19jbG9ja190ZXN0KHVpbnQ2 NF90IGFwaWNfaHosIHU9CmludDY0X3QgZGVsYXlfbXMsCiAgICAgICAgdm0gPTNEIHZtX2NyZWF0 ZSgxKTsKPTIwCiAgICAgICAgc3luY19nbG9iYWxfdG9fZ3Vlc3Qodm0sIGlzX3gyYXBpYyk7Cisg ICAgICAgc3luY19nbG9iYWxfdG9fZ3Vlc3Qodm0sIHRtaWN0KTsKPTIwCiAgICAgICAgdm1fZW5h YmxlX2NhcCh2bSwgS1ZNX0NBUF9YODZfQVBJQ19CVVNfQ1lDTEVTX05TLAogICAgICAgICAgICAg ICAgICAgICAgTlNFQ19QRVJfU0VDIC8gYXBpY19oeik7CkBAIC0xNzQsNyArMTc2LDcgQEAgaW50 IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPTIwCiAgICAgICAgVEVTVF9SRVFVSVJFKGt2 bV9oYXNfY2FwKEtWTV9DQVBfWDg2X0FQSUNfQlVTX0NZQ0xFU19OUykpOwo9MjAKLSAgICAgICB3 aGlsZSAoKG9wdCA9M0QgZ2V0b3B0KGFyZ2MsIGFyZ3YsICJkOmY6aCIpKSAhPTNEIC0xKSB7Cisg ICAgICAgd2hpbGUgKChvcHQgPTNEIGdldG9wdChhcmdjLCBhcmd2LCAiZDpmOmk6aCIpKSAhPTNE IC0xKSB7CiAgICAgICAgICAgICAgICBzd2l0Y2ggKG9wdCkgewogICAgICAgICAgICAgICAgY2Fz ZSAnZic6CiAgICAgICAgICAgICAgICAgICAgICAgIGFwaWNfaHogPTNEIGF0b2lfcG9zaXRpdmUo IkFQSUMgYnVzIGZyZXF1ZW5jeSIsIG9wdD0KYXJnKSAqIDEwMDAgKiAxMDAwOwpAQCAtMTgyLDYg KzE4NCw5IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgICAgICAgICAg ICBjYXNlICdkJzoKICAgICAgICAgICAgICAgICAgICAgICAgZGVsYXlfbXMgPTNEIGF0b2lfcG9z aXRpdmUoIkRlbGF5IGluIG1pbGxpc2Vjb25kcyIsPQogb3B0YXJnKTsKICAgICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICBjYXNlICdpJzoKKyAgICAgICAgICAgICAg ICAgICAgICAgdG1pY3QgPTNEIH4wdSAtIGF0b2lfcG9zaXRpdmUoIm9mZnNldCIsIG9wdGFyZyk7 CisgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAnaCc6 CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICBoZWxwKGFy Z3ZbMF0pOw== --FoqhM4pZbXonoqbf Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0001-debug.patch" From 42da584d5e4e2dfaf4296f2ea666f3a04c82052f Mon Sep 17 00:00:00 2001 From: Sean Christopherson Date: Fri, 28 Jun 2024 16:33:32 -0700 Subject: [PATCH] debug --- arch/x86/kvm/vmx/vmx.c | 33 +++++++++++++++++++++++++++++---- arch/x86/kvm/vmx/vmx.h | 1 + arch/x86/kvm/x86.c | 1 + 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c index f18c2d8c7476..e83351c690d9 100644 --- a/arch/x86/kvm/vmx/vmx.c +++ b/arch/x86/kvm/vmx/vmx.c @@ -4431,8 +4431,7 @@ static u32 vmx_vmexit_ctrl(void) * Not used by KVM and never set in vmcs01 or vmcs02, but emulated for * nested virtualization and thus allowed to be set in vmcs12. */ - vmexit_ctrl &= ~(VM_EXIT_SAVE_IA32_PAT | VM_EXIT_SAVE_IA32_EFER | - VM_EXIT_SAVE_VMX_PREEMPTION_TIMER); + vmexit_ctrl &= ~(VM_EXIT_SAVE_IA32_PAT | VM_EXIT_SAVE_IA32_EFER); if (vmx_pt_mode_is_system()) vmexit_ctrl &= ~(VM_EXIT_PT_CONCEAL_PIP | @@ -5997,6 +5996,8 @@ static fastpath_t handle_fastpath_preemption_timer(struct kvm_vcpu *vcpu, bool force_immediate_exit) { struct vcpu_vmx *vmx = to_vmx(vcpu); + u32 delta_tsc; + u64 tscl; /* * In the *extremely* unlikely scenario that this is a spurious VM-Exit @@ -6020,6 +6021,16 @@ static fastpath_t handle_fastpath_preemption_timer(struct kvm_vcpu *vcpu, if (is_guest_mode(vcpu)) return EXIT_FASTPATH_NONE; + tscl = rdtsc(); + if (vmx->hv_deadline_tsc > tscl) + delta_tsc = (u32)((vmx->hv_deadline_tsc - tscl) >> cpu_preemption_timer_multi); + else + delta_tsc = 0; + + pr_warn("VMX timer exit, EXIT_REASON = %x, VMCS = %x, delta = %x\n", + vmcs_read32(VM_EXIT_REASON), + vmcs_read32(VMX_PREEMPTION_TIMER_VALUE), delta_tsc); + kvm_lapic_expired_hv_timer(vcpu); return EXIT_FASTPATH_REENTER_GUEST; } @@ -7197,6 +7208,8 @@ static void vmx_update_hv_timer(struct kvm_vcpu *vcpu, bool force_immediate_exit u32 delta_tsc; if (force_immediate_exit) { + trace_kvm_hypercall(0, 0, 0, 0, 0); + vmx->preemption_timer = 0; vmcs_write32(VMX_PREEMPTION_TIMER_VALUE, 0); vmx->loaded_vmcs->hv_timer_soft_disabled = false; } else if (vmx->hv_deadline_tsc != -1) { @@ -7208,9 +7221,14 @@ static void vmx_update_hv_timer(struct kvm_vcpu *vcpu, bool force_immediate_exit else delta_tsc = 0; + trace_kvm_hypercall(tscl, vmx->hv_deadline_tsc, delta_tsc, + ((vmx->hv_deadline_tsc - tscl) >> cpu_preemption_timer_multi), + cpu_preemption_timer_multi); + vmx->preemption_timer = delta_tsc; vmcs_write32(VMX_PREEMPTION_TIMER_VALUE, delta_tsc); vmx->loaded_vmcs->hv_timer_soft_disabled = false; } else if (!vmx->loaded_vmcs->hv_timer_soft_disabled) { + trace_kvm_hypercall(-1, -1, -1, -1, -1); vmcs_write32(VMX_PREEMPTION_TIMER_VALUE, -1); vmx->loaded_vmcs->hv_timer_soft_disabled = true; } @@ -7218,6 +7236,8 @@ static void vmx_update_hv_timer(struct kvm_vcpu *vcpu, bool force_immediate_exit void noinstr vmx_update_host_rsp(struct vcpu_vmx *vmx, unsigned long host_rsp) { + WARN_ON(!vmx->loaded_vmcs->hv_timer_soft_disabled && + vmcs_read32(VMX_PREEMPTION_TIMER_VALUE) != vmx->preemption_timer); if (unlikely(host_rsp != vmx->loaded_vmcs->host_state.rsp)) { vmx->loaded_vmcs->host_state.rsp = host_rsp; vmcs_writel(HOST_RSP, host_rsp); @@ -8128,7 +8148,7 @@ int vmx_set_hv_timer(struct kvm_vcpu *vcpu, u64 guest_deadline_tsc, delta_tsc && u64_shl_div_u64(delta_tsc, kvm_caps.tsc_scaling_ratio_frac_bits, vcpu->arch.l1_tsc_scaling_ratio, &delta_tsc)) - return -ERANGE; + goto out_of_range; /* * If the delta tsc can't fit in the 32 bit after the multi shift, @@ -8137,11 +8157,16 @@ int vmx_set_hv_timer(struct kvm_vcpu *vcpu, u64 guest_deadline_tsc, * on every vmentry is costly so we just use an hrtimer. */ if (delta_tsc >> (cpu_preemption_timer_multi + 32)) - return -ERANGE; + goto out_of_range; + trace_kvm_hypercall(tscl, vmx->hv_deadline_tsc, delta_tsc, -1, -1); vmx->hv_deadline_tsc = tscl + delta_tsc; *expired = !delta_tsc; return 0; + +out_of_range: + vmx->hv_deadline_tsc = -1; + return -ERANGE; } void vmx_cancel_hv_timer(struct kvm_vcpu *vcpu) diff --git a/arch/x86/kvm/vmx/vmx.h b/arch/x86/kvm/vmx/vmx.h index 42498fa63abb..ecafbb11519d 100644 --- a/arch/x86/kvm/vmx/vmx.h +++ b/arch/x86/kvm/vmx/vmx.h @@ -341,6 +341,7 @@ struct vcpu_vmx { /* apic deadline value in host tsc */ u64 hv_deadline_tsc; + u32 preemption_timer; unsigned long host_debugctlmsr; diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 994743266480..00847259bcc4 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -14024,6 +14024,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_nested_intercepts); EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_write_tsc_offset); EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_ple_window_update); EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_pml_full); +EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_hypercall); EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_pi_irte_update); EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_avic_unaccelerated_access); EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_avic_incomplete_ipi); base-commit: 128c71b7f489d8115d29a487367c648f8acc8374 -- 2.45.2.803.g4e1b14247a-goog --FoqhM4pZbXonoqbf--