On Thu, May 10, 2012 at 12:35:53PM +0000, Christoph Egger wrote:
> Module Name:  src
> Committed By: cegger
> Date:         Thu May 10 12:35:53 UTC 2012
> 
> Modified Files:
>       src/sys/arch/x86/x86: cpu_ucode_amd.c
> 
> Log Message:
> xc_wait() does not wait for all cpus to finish
> their callback. That means the ucode buffer is released while still in use
> and this causes a crash.
> Quick fix: check if the ucode buffer has been freed and abort.
> You may need to run 'cpuctl ucode' twice to apply it to all cpus.
> 
> Per discussion with rmind@ use low priority xcalls and splhigh.

Why don't you just provide each CPU with a copy of the ucode and let it
free it once done? Even for 256 CPU with 16KB ucode, it would be only
4MB of temporary memory.

Joerg

Reply via email to