X-Recipient: archive-cygwin@delorie.com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9453E3857C43
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
	s=default; t=1594911431;
	bh=FAHWHp2h0y43U1JFJkWL6JpsXt08EU96dhTvXhjzEh4=;
	h=To:Subject:Date:References:In-Reply-To:List-Id:List-Unsubscribe:
	 List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
	 From;
	b=JfN7Udsoo9pBseWpgwwHsQhlNyh9FsQ+NPyxa25D/12jDlNyOtHQw6AGqUCtySdtG
	 YHS+aIWQgB+yVOG2+Cqy+l7qdn8eMRsgW8E0ouCVtgwM3zLWvB2rSHeoUT5d+s2ba6
	 +8OUwW28VUuIMo+2+vCOzX6n1XWZsh16t0mQXbY4=
X-Original-To: cygwin@cygwin.com
Delivered-To: cygwin@cygwin.com
DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org C74313857C43
IronPort-SDR: /X9116VdU14eM1E893W6lPPi8t0nL98t/MLpNLhyzCLoP0ZGSnb8H+wEV6luM3oP3Hx7qwDWAD
 JRLRYyQukTIw==
X-SBRS-Extended: Low
X-IronPortListener: ces-out
X-IronPort-AV: E=Sophos;i="5.75,359,1589256000"; d="scan'208";a="203279303"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=S2UlmMJgp1RMJfAo0YVPBWXoN8Dh9OxYWSrQDb/7kpb8wowT5UMZ6hT9TbIME7hvp87o/h7chmDHmIgcMfgRfvKGxlCPSuUNvzQtjwg+573G9qWIQP7mUFhY3pcs8P8gScljEZwbzP7yTGsw0QFVQ3W1eNpxb7QMoJpzb232U3Ww3fUR1E3gSPPtd1bd3v6v7CQ+xmnv+Zq9WA//besJDEcwfK1y95jVHbhmSmzSqBKbq48fD1JstNzJ1/nPD/2H1AEC12w8tk6ACoqo1lDkIQHhMYMyHvXpFccCG1nfkQgiCFDWY+2+/hqoIxDDhG3oX64fPcvCPWteBkrrHj3VGQ==
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-SenderADCheck;
 bh=3Ynysp0S/VqFSX7NLVIruQ380hs1QGXVrZ0Esgp8RfA=;
 b=Q2sGG1YY7vekJocNh8JaaH9DpUVB8xTXLFHQB9NojMWVsCCc/ukyyGRjpOzkDHuhfALpdpWRDInU/tUM7WvQ0PMhgJa1GYq4PVxpEKUcZYXRdEY9zszTO4VfgEW8jfiFUPDdl0CLLB3cMXSsKC27cQ8uarLFgm0GKRd32Gtm37A6poYe555DP0A3N5yfb4P54NCBEn1um+e+Sb0k1bJ4NUQCgDrA5No0H1uvgAzWM3e4cgkWodXw2ElBpRLlHvLfvrSN4nUGhY2gUts6Oa/ofhQ9nTSqKu41qO97ioPYdzzcLKlRyEnhG86liLoTWd9sGxaw2X4Vsi9FtBzs7U02nw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=ncbi.nlm.nih.gov; dmarc=pass action=none
 header.from=ncbi.nlm.nih.gov; dkim=pass header.d=ncbi.nlm.nih.gov; arc=none
To: "cygwin@cygwin.com" <cygwin@cygwin.com>
Subject: RE: CPU microcode reported wrong in /proc/cpuinfo
Thread-Topic: CPU microcode reported wrong in /proc/cpuinfo
Thread-Index: AdY/ZP3Tm77I+PDqSUG9KVpRrcT6MwW9HUVgAUgiHLA=
Date: Thu, 16 Jul 2020 14:56:56 +0000
Message-ID: <DM6PR09MB40436391B9BA65DDA951DE97A57F0@DM6PR09MB4043.namprd09.prod.outlook.com>
References: <DM6PR09MB404382AB07B3636AFAF09B97A5830@DM6PR09MB4043.namprd09.prod.outlook.com>
 <5f880838-55ad-6f6e-33a6-6a57d7ae9c92@SystematicSw.ab.ca>
 <68eea787-9cde-d6ed-499b-61dfc036adff@SystematicSw.ab.ca>
In-Reply-To: <68eea787-9cde-d6ed-499b-61dfc036adff@SystematicSw.ab.ca>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [130.14.9.135]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: c09ec034-988e-4ae3-802f-08d829987c19
x-ms-traffictypediagnostic: DM6PR09MB4776:
x-microsoft-antispam-prvs: <DM6PR09MB4776CEF0F487B9D220FD95F6A57F0@DM6PR09MB4776.namprd09.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: iwzpLy1kDZhXQ9ruB+SBMwmBDHNY+Tyb/R+eExwe5pmHd5Hjfz4/qLGZTp7LvEr6FftZeonTx4oapgoFlFQoS/1yPWDCpvqWiTbi9GoSRhX/Ad+TYV3xP9/9MyBuNNqlqblV4y+8+K21emnMrG44GhpzEkxDsvmE5MQHcMr3he/20Bnryszqg9cDH4USHkNSDIrksrFWu8LhpZooscsy2QgbIFbQ6tf7gFNmmCbaLBji+WGzoFBseOjvO0mhESvmMTdBhBaQog4hDNQEEVCzBO02C09WAqj1PjN985eiXRybgmylRY6OAV6L+dJ0N47CYutSYhBFmmcbLozK/Zfdgw==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:DM6PR09MB4043.namprd09.prod.outlook.com; PTR:; CAT:NONE;
 SFTY:;
 SFS:(136003)(366004)(396003)(376002)(346002)(39860400002)(64756008)(83380400001)(86362001)(33656002)(66556008)(5660300002)(76116006)(2906002)(52536014)(66446008)(66476007)(66946007)(6506007)(55016002)(8936002)(26005)(9686003)(316002)(6916009)(7696005)(186003)(71200400001)(8676002)(478600001);
 DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata: bTMoUmc1359Hh1hkdieoghby9XoolJudIcooOu17LgFp6hkDBVo/8z1oDa8vPgxgWJmo6u6zm1LHAydZ6Ia5CSgviLH7TJhrizSmGPpZ8nNUhId036uADG80hahW2cw3gEYU0DWSJV2SWWnZfwLw9S31SEpmkQZDV4PvXl6eEYG8VFiEZOTk7GYKNoXPHiwgDb9X4utNwkkm0BqpWVsb4rxdU05MR833/HLd+0ZPF1vp7FPY/Uxj2mYWm9vjCvMqUqJFjysB4r9QszJRyoHNx8xQ7Eeyq30r36bkGq9jsnp/wiVHCaxKCT4xR9kvhAm3sR5J1bds11Oqx7T7gqwAPWRGZqjqLctK4geTl1vkjDNmuA9HydhA2N+CQ9GRu1tgA/k/sqL3y8tT32MOhyhXbh3lgxJIUMoq7fDWH/rvqfQWoomE7hzEixNU8x24gGU5yotxGYUF+Tu32h2sUV9yO1NZS+RFlN0WBofi1LU40is=
x-ms-exchange-transport-forked: True
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR09MB4043.namprd09.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c09ec034-988e-4ae3-802f-08d829987c19
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Jul 2020 14:56:56.5619 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 14b77578-9773-42d5-8507-251ca2dc2b06
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: UuGklWGqDR9/ym9Ng83Qetv2sKWGtFHLbupqMDA/pvdRVWnr8SuRx1aW4bW0OPkd
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR09MB4776
X-OriginatorOrg: ncbi.nlm.nih.gov
X-Spam-Status: No, score=-3.7 required=5.0 tests=BAYES_00, DKIM_SIGNED,
 DKIM_VALID, DKIM_VALID_EF, NO_DNS_FOR_FROM, RCVD_IN_MSPIKE_H3,
 RCVD_IN_MSPIKE_WL, SPF_HELO_PASS, TXREP,
 T_SPF_TEMPERROR autolearn=no autolearn_force=no version=3.4.2
X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on
 server2.sourceware.org
X-BeenThere: cygwin@cygwin.com
X-Mailman-Version: 2.1.29
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-request@cygwin.com?subject=help>
List-Subscribe: <http://cygwin.com/mailman/listinfo/cygwin>,
 <mailto:cygwin-request@cygwin.com?subject=subscribe>
From: "Lavrentiev, Anton \(NIH/NLM/NCBI\) \[C\] via Cygwin" <cygwin@cygwin.com>
Reply-To: "Lavrentiev, Anton \(NIH/NLM/NCBI\) \[C\]" <lavr@ncbi.nlm.nih.gov>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: "Cygwin" <cygwin-bounces@cygwin.com>

> Managed to get this tested and applied thanks to your help and it has landed in
> new Cygwin 3.1.6 so please post your results and any further comments when you
> have a chance to upgrade and test.

I checked it out in the new Cygwin 3.1.6, and it shows microcode version correctly now, but assuming Windows was booted up from the initial power-on, i.e. after BIOS POST.

There's another problem, though...  After wakeup (from sleep), Windows reports microcode versions in the registry weirdly.

Only the CPU0 (which in my case core 0) is reported with the same info that was reported for all cores after the initial boot-up, all other cores are reported with some old microcode version (I presume that's the microcode that Windows has on its own in one of its CPU driver DLLs).

So for core 0 it is as it was (and for all of them after the boot-up):

C:\Windows\system32>regtool list -v /proc/registry/HKEY_LOCAL_MACHINE/HARDWARE/DESCRIPTION/System/CentralProcessor/0/
Component Information (REG_BINARY) = 00 00 00 00 00 00 00 00
Identifier (REG_SZ) = "Intel64 Family 6 Model 23 Stepping 10"
Configuration Data (REG_FULL_RESOURCE_DESCRIPTOR) = ?
ProcessorNameString (REG_SZ) = "Intel(R) Xeon(R) CPU           X5470  @ 3.33GHz"
VendorIdentifier (REG_SZ) = "GenuineIntel"
FeatureSet (REG_DWORD) = 0x215b3ffe (559628286)
~MHz (REG_DWORD) = 0x00000d04 (3332)
Update Signature (REG_BINARY) = 00 00 00 00 0e 0a 00 00
Update Status (REG_DWORD) = 0x00000007 (7)
Previous Update Signature (REG_BINARY) = 00 00 00 00 0e 0a 00 00
Platform ID (REG_DWORD) = 0x00000040 (64)

For other cores (1-3), it's this (after wake-up; but after the boot-up it was the same as the above for core 0):

C:\Windows\system32>regtool list -v /proc/registry/HKEY_LOCAL_MACHINE/HARDWARE/DESCRIPTION/System/CentralProcessor/1/
Component Information (REG_BINARY) = 00 00 00 00 00 00 00 00
Identifier (REG_SZ) = "Intel64 Family 6 Model 23 Stepping 10"
Configuration Data (REG_FULL_RESOURCE_DESCRIPTOR) = ?
ProcessorNameString (REG_SZ) = "Intel(R) Xeon(R) CPU           X5470  @ 3.33GHz"
VendorIdentifier (REG_SZ) = "GenuineIntel"
FeatureSet (REG_DWORD) = 0x215b3ffe (559628286)
~MHz (REG_DWORD) = 0x00000d04 (3332)
Update Signature (REG_BINARY) = 00 00 00 00 0b 0a 00 00
Update Status (REG_DWORD) = 0x00000000 (0)
Previous Update Signature (REG_BINARY) = 00 00 00 00 00 00 00 00
Platform ID (REG_DWORD) = 0x00000040 (64)

Note that there's no "Previous Update Signature" in the latter case, and "Update Status" is 0 (instead of 7, for core 0, and what it also was for these same cores 1-3 after the boot-up).  I'm being repetitive to underscore the noted differences.

So Cygwin reports these same values in its /proc/cpuinfo output (core0: 0xA0E, cores1-3: 0xA0B)...  Meanwhile, Intel CPU ID utility keeps saying the CPU microcode version is still 0xA0E (they don't show "per-core" values, if that was the thing at all), and so does HWiNFO64 (again for the CPU as a whole).

I'm not exactly sure how to read Window's registry values with cores on the same CPU having different microcode versions (is that even possible?)

I tried to dig into what "Update Status" means, but I couldn't find any useful information, unfortunately.

I suspect that "0" means a successful update, but that would also mean that Windows updated ucode in cores 1-3 from nothing to 0xA0B -- and I checked that that's the latest microcode that is shipped with this version of Windows, as a Windows Update, for this CPU.  I found one post that said that "Update Status" 6 would mean no matching update found, but there is no 6 in my case.

An interesting fact is that when I run Linux in VMWare on Windows woken up from sleep, allocating two CPUs for the VM, I can get a mix of one 0xA0E and one 0xA0B ucode reported in "/proc/cpuinfo" for the cores, or it can be two 0xA0Bs.  But it looks like Linux knows exactly it is run virtualized on VMWare, and so may not be reporting from the actual values from the MSRs for that.  I also noticed that it does not attempt to load any microcode in this case.  When I use VirtualBox for the same, I get a completely different microcode version output (but so far consistent and same for both cores), 0x60B (which I don't think is a valid value at all, TBH).  Yet the same, it does not looks like it attempts to load any on its own because it knows it is run virtualized (yet it does not state exactly the host OS VM software unlike it does with VMWare).

So, apologies for the long post.  I just tried to be thorough ;-)

Thanks,
Anton

--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple
