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

Re: [PATCH 2/5] x86/ucode: Abort parallel load early on any control thread error


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Date: Wed, 22 Oct 2025 20:28:10 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=1wiwpXb9H5o2rwRD0HoxRXVJ0oBd7lMdccOSUWvLQ0c=; b=doc5AlP6R2nvBv9VD/5oAnE7n+XjX9umk5VhPZybJ2f1UfiGvBp4NNNuyxWqFDKIbqc1row7DT/MXbotEKyuzOhnsaMXh1UUhSmGG6TSmRoHY5Bz+ZzajWkTkna7w1dyDpNW01gUUyl/G3ttHizVGjsEEz7WtP4R0hplIEIM0bNYghRpPDw5Fv1pZ+AnJsZ8BWCDSBds1SdRkYu/zduVfHOdoNY9qJGi91GnVLOMelqJMwB0SkK0AXlbxWcap+sZPiy+Qt/jjqbo3ALAB+gT+5iEJ40z976/wn9gA34NRZ2DooWi/0rpZRtGPWU88s5cI+9t8ugsB79ZKPzgXPyyrg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZeZyFDvEkFBMl/E5rXDzOr881p9vQ/ynnYlEd+SWiolf9IXyjQ/DomaCdnocltRJIS5KRFv8r52tZNrWmZTtod8hhToq+y2m/9+3K1qV08oJpEEiXKHtqgafWuRHLlPbRH1FWfRsNT9zIcFP7nITRDUyjPnMwoyZd26Pc3B1Kxf66iNah17tsWLMaKTx0aNH4sM8QfCEZeTiF0zGojxYShu94TBoSvVvuQAENDyteTa7mdo0zPIHcUkjaE+XqRieaufa3c1HhOYs7gAFQvla8hKJPaFYdriokLJpoV8eyujY53qnUUs5A6iYlhZxrD3jJLwGsLpNb4nRe801nkOA2w==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Roger Pau Monné <roger.pau@xxxxxxxxxx>, Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Wed, 22 Oct 2025 19:28:45 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 20/10/2025 4:55 pm, Jan Beulich wrote:
> On 20.10.2025 15:19, Andrew Cooper wrote:
>> EIO is not the only error that ucode_ops.apply_microcode() can produce.
>> EINVAL, EEXISTS and ENXIO can be generated too, each of which mean that Xen 
>> is
>> unhappy in some way with the proposed blob.
> Yes, yet wasn't that the case already when the EIO check was added? Were we
> perhaps trying to deal with a certain level of asymmetry in the system? I
> think a little more is needed here, also to ...
>
>> Some of these can be bypassed with --force, which will cause the parallel 
>> load
>> to be attempted.
>>
>> Fixes: 5ed12565aa32 ("microcode: rendezvous CPUs in NMI handler and load 
>> ucode")
> ... justify there being a Fixes: tag. It would also seem possible that the
> check was intentional and correct at the time of introduction, but was
> rendered stale by some later change.

The parallel load logic more bugs than lines of code.  What hasn't
already been rewritten either has pending patches, or pending bugs
needing fixing.

I didn't care to check why it was limited to EIO at the time.  It's
definitely wrong.

But if you insist that I waste time doing so, at the time EIO was
introduced, both apply_microcode()'s could fail with -ENOENT for a NULL
pointer, -EINVAL for "patch isn't for this CPU".

I.e. it was definitely wrong at the time too.

~Andrew



 


Rackspace

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