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

Re: [Xen-devel] pvops microcode support for AMD FAM >= 15



On Wed, 2012-12-05 at 17:27 +0000, Boris Ostrovsky wrote:
> On 12/05/2012 12:02 PM, Jan Beulich wrote:
> > But all of this shouldn't lead to equivalent ID mismatches, should
> > it? It ought to simply find nothing to update...
> 
> 
> The patch file (/lib/firmware/amd-ucode/microcode_amd_fam15h.bin) may 
> contain more than one patch. The driver goes over this file patch by 
> patch and tries to see whether to apply it.
> 
> I think what happened in Ian's case was that the patch file contained 
> two patches --- one for this processor (ID 6012) and another for a 
> different processor (ID 6101). (Both are family 15h but different revs).
> 
> The driver applied the first patch on core 0. Then, on core 1, the code 
> tried the first patch (at file offset 60) and noticed that it is already 
> applied. So it continued to the next patch (at offset 2660) which is not 
> meant for this processor, thus generating the "does not match" message.

I added some debugging and can confirm this is what happens:

        (XEN) microcode: collect_cpu_info: CPU0 patch_id=0x6000626
        (XEN) CPU0: current patch level 0x6000626
        (XEN) microcode: size 5260, block size 2592, offset 60
        (XEN) microcode: CPU0 found a matching microcode update with version 
0x6000629 (current=0x6000626)
        (XEN) CPU0: apply_microcodeA: current patch level 0x6000626. Patch is 
0x6000629
        (XEN) CPU0: apply_microcodeB: new patch level 0x6000629. Patch is 
0x6000629
        (XEN) microcode: CPU0 updated from revision 0x6000626 to 0x6000629
        
        (XEN) microcode: collect_cpu_info: CPU1 patch_id=0x6000629
        (XEN) CPU1: current patch level 0x6000629
        (XEN) microcode: size 5260, block size 2592, offset 60
        (XEN) CPU1: microcode_fits: older patch 0x6000629 <= 0x6000629, 
returning
        (XEN) microcode: size 5260, block size 2592, offset 2660
        (XEN) microcode: CPU1 patch does not match (patch is 6101, cpu base id 
is 6012) 
        
> So we have at least a problem in how the error is reported to the log -- 
> it is confusing. I'll try to make it more understandable.

FWIW it also results in an error from the hypercall overall as well as
the logging stuff.

> And maybe core 1 shouldn't go into the second patch in the first place 
> because it already found a patch for this processor (but decided that it 
> is not needed based on patch ID).

-- 
Ian Campbell

* PerlGeek is really a space alien
* Knghtktty believes PerlGeek


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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