[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2] x86/amd: do not expose HWCR.TscFreqSel to guests


  • To: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Thu, 14 Sep 2023 16:17:12 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=IIIMpnk0jTAW5p16Gmr9FOBn2wk2mHvhSej75VSPLkc=; b=NCXjqBzLOreBcX7s+PAMLu5f9o4PFuKS3uThKRLtBVyoWdeuMPRtisaDAeabUhvrVvF7wjjfbsA1eAJQhuafqogf7qP1hjRJBtd9jltHOhSmCza1B57SdKDatjctfsxeP1HQMR6zoLUB41zDV7o+KPwyn3DeVbtM+Kt5SeOGJvAWAgh9Rl0oIvTxjMGbAO+yUVx0nLSZI4BRua5s0coff6HjgQbUCtEAla42Q71nOJBAsqkRgwoH57+jSeuKLf8Q/ZV3ac/OEEuUZ1MIbIa6Df9XGh5M1x9MwgKpSGz4pTs7PN3ravGbxSYkZcayMWSbD24xUgd2deXhreliXGq28w==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C+g/7PuOPkxQpAs02C0Xuyrq8tPc+r0yXBpLlUX/bMOneOrVy2bzPtP4L5o632ZlJdmCXySV25DuhWJZBDQAAcoDZ9+Ttg9eAIlFg9PYJ6lUIOlERumREqz1CSCEB1N/W5YFR0P83YpDey1WtBqrzBADZkuTuxdSzpt2lACigSX31S94huEpHD2f4vSOzcvoGHnTABst/XFPD4FXLYAmwnd6x9MatKlPJ5fVtmHbbHhfdWYtBaH6Q6qgbbgRwt96L9iKAQGJiOeky555OTLTI3cgg7OG8g5bQfBREzH6Y8ykz1cTszl41wjN/ikbFNzUdAnUG6nIgpw/7RsJOLNWrQ==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com;
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Solène Rapenne <solene@xxxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • Delivery-date: Thu, 14 Sep 2023 14:17:59 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 14.09.2023 15:39, Roger Pau Monné wrote:
> On Thu, Sep 14, 2023 at 03:16:40PM +0200, Jan Beulich wrote:
>> On 14.09.2023 14:57, Roger Pau Monné wrote:
>>> On Thu, Sep 14, 2023 at 02:49:45PM +0200, Jan Beulich wrote:
>>>> On 14.09.2023 14:37, Roger Pau Monné wrote:
>>>>> On Thu, Sep 14, 2023 at 07:52:33AM +0200, Jan Beulich wrote:
>>>>>> On 13.09.2023 16:52, Roger Pau Monne wrote:
>>>>>>> OpenBSD 7.3 will unconditionally access HWCR if the TSC is reported as
>>>>>>> Invariant, and it will then attempt to also unconditionally access 
>>>>>>> PSTATE0 if
>>>>>>> HWCR.TscFreqSel is set (currently the case on Xen).
>>>>>>>
>>>>>>> The relation between HWCR.TscFreqSel and PSTATE0 is not clearly written 
>>>>>>> down in
>>>>>>> the PPR, but it's natural for OSes to attempt to fetch the P0 frequency 
>>>>>>> if the
>>>>>>> TSC increments at the P0 frequency.
>>>>>>>
>>>>>>> Exposing PSTATEn (PSTATE0 at least) with all zeroes is not a suitable 
>>>>>>> solution
>>>>>>> because the PstateEn bit is read-write, and OSes could legitimately 
>>>>>>> attempt to
>>>>>>> set PstateEn=1 which Xen couldn't handle.
>>>>>>>
>>>>>>> In order to fix expose an empty HWCR, which is an architectural MSR and 
>>>>>>> so must
>>>>>>> be accessible.
>>>>>>>
>>>>>>> Note it was not safe to expose the TscFreqSel bit because it is not
>>>>>>> architectural, and could change meaning between models.
>>>>>>
>>>>>> This imo wants (or even needs) extending to address the aspect of then
>>>>>> exposing, on newer families, a r/o bit with the wrong value.
>>>>>
>>>>> We could always be exposing bits with the wrong values on newer
>>>>> (unreleased?) families, I'm not sure why it needs explicit mentioning
>>>>> here.
>>>>
>>>> Hmm, yes, that's one way to look at things. Yet exposing plain zero is
>>>> pretty clearly not within spec here,
>>>
>>> As I understand it, the fact that HWCR.TscFreqSel is read-only doesn't
>>> exclude the possibility of it changing using other means (iow: we
>>> should consider that a write to a different register could have the
>>> side effect of toggling the bit).
>>>
>>> The PPR I'm reading doesn't mention that the bit must be 1, just that
>>> it's 1 on reset and read-only.
>>
>> Sure; the PPR being incomplete doesn't help here. My interpretation, based
>> on the bit having been r/w in earlier families, is that AMD wanted to retain
>> its meaning without allowing it to be configurable anymore. Possibly a sign
>> of it remaining so going forward.
> 
> What about:
> 
> "Note it was not safe to expose the TscFreqSel bit because it is not
> architectural, and could change meaning between models.  Since HWCR
> contains both architectural and non-architectural bits, going forward
> care must be taken to assert the exposed value is correct on newer
> CPU families."

Fine with me.

Jan



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.