Bug 966105

Summary: microcode_ctl.service loading failed (systemd[1813]: Failed at step EXEC spawning /usr/sbin/microcode_ctl: No such file or directory)
Product: [Fedora] Fedora Reporter: Davide Poletto <davide.poletto>
Component: microcode_ctlAssignee: Anton Arapov <anton>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: unspecified    
Version: 18CC: anton, davide.poletto, jonathan, nobody
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-06-10 13:28:31 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Davide Poletto 2013-05-22 13:36:43 UTC
Description of problem:

After fedup upgrade from Fedora 17 to Fedora 18 the microcode_ctl service doesn't start as I expect (as happened on Fedora 17) and, despite been automatically installed/upgraded through fedup/yum, /usr/sbin/microcode_ctl doesn't exist so even executing manually

# /usr/sbin/microcode_ctl -u -f /lib/firmware/microcode.dat

will result in:

-bash: /usr/sbin/microcode_ctl: No such file or directory

Version-Release number of selected component (if applicable):
microcode_ctl-2.0-2.fc18.x86_64

Expected results:
microcode_ctl.service loads successfully.

Additional info:

# yum list microcode*
Loaded plugins: langpacks, presto, refresh-packagekit
Installed Packages
microcode_ctl.x86_64  2:2.0-2.fc18  @fedora

# journalctl -xn
May 22 15:20:12 nozomi.opencore.local systemd[1]: Starting CPU microcode updater...
-- Subject: Unit microcode_ctl.service has begun with start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit microcode_ctl.service has begun starting up.
May 22 15:20:12 nozomi.opencore.local systemd[1813]: Failed at step EXEC spawning /usr/sbin/microcode_ctl: No such file or directory
-- Subject: Process /usr/sbin/microcode_ctl could not be executed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- Documentation: http://www.freedesktop.org/wiki/Software/systemd/catalog/641257651c1b4ec9a8624d7a40a9e1e7
-- 
-- The process /usr/sbin/microcode_ctl could not be executed and failed.
-- 
-- The error number returned while executing this process is 2.
May 22 15:20:12 nozomi.opencore.local systemd[1]: microcode_ctl.service: main process exited, code=exited, status=203/EXEC
May 22 15:20:12 nozomi.opencore.local systemd[1]: Failed to start CPU microcode updater.
-- Subject: Unit microcode_ctl.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- Documentation: http://www.freedesktop.org/wiki/Software/systemd/catalog/be02cf6855d2428ba40df7e9d022f03d
-- 
-- Unit microcode_ctl.service has failed.
-- 
-- The result is failed.
May 22 15:20:12 nozomi.opencore.local systemd[1]: Unit microcode_ctl.service entered failed state.

Indeed /lib/firmware/microcode.dat file exists (12 November 2012).

# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 23
Stepping:              10
CPU MHz:               2003.000
BogoMIPS:              5334.89
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              2048K
NUMA node0 CPU(s):     0-3

a grep of dmesg shows:

# dmesg | grep microcode
[    2.462628] microcode: CPU0 sig=0x1067a, pf=0x10, revision=0xa07
[    2.492716] microcode: CPU0 sig=0x1067a, pf=0x10, revision=0xa07
[    2.493708] microcode: CPU0 updated to revision 0xa0b, date = 2010-09-28
[    2.497878] microcode: CPU1 sig=0x1067a, pf=0x10, revision=0xa07
[    2.497949] microcode: CPU1 sig=0x1067a, pf=0x10, revision=0xa07
[    2.498663] microcode: CPU1 updated to revision 0xa0b, date = 2010-09-28
[    2.502800] microcode: CPU2 sig=0x1067a, pf=0x10, revision=0xa07
[    2.502867] microcode: CPU2 sig=0x1067a, pf=0x10, revision=0xa07
[    2.504585] microcode: CPU2 updated to revision 0xa0b, date = 2010-09-28
[    2.507728] microcode: CPU3 sig=0x1067a, pf=0x10, revision=0xa07
[    2.507820] microcode: CPU3 sig=0x1067a, pf=0x10, revision=0xa07
[    2.511450] microcode: CPU3 updated to revision 0xa0b, date = 2010-09-28
[    2.515333] microcode: Microcode Update Driver: v2.00 <tigran.co.uk>, Peter Oruba
[    3.358794] systemd[1]: Unit microcode_ctl.service entered failed state.

# cat /var/log/messages|grep microcode will show:

May 22 14:16:34 nozomi kernel: [    2.462628] microcode: CPU0 sig=0x1067a, pf=0x10, revision=0xa07
May 22 14:16:34 nozomi kernel: [    2.492716] microcode: CPU0 sig=0x1067a, pf=0x10, revision=0xa07
May 22 14:16:34 nozomi kernel: [    2.493708] microcode: CPU0 updated to revision 0xa0b, date = 2010-09-28
May 22 14:16:34 nozomi kernel: [    2.497878] microcode: CPU1 sig=0x1067a, pf=0x10, revision=0xa07
May 22 14:16:34 nozomi kernel: [    2.497949] microcode: CPU1 sig=0x1067a, pf=0x10, revision=0xa07
May 22 14:16:34 nozomi kernel: [    2.498663] microcode: CPU1 updated to revision 0xa0b, date = 2010-09-28
May 22 14:16:34 nozomi kernel: [    2.502800] microcode: CPU2 sig=0x1067a, pf=0x10, revision=0xa07
May 22 14:16:34 nozomi kernel: [    2.502867] microcode: CPU2 sig=0x1067a, pf=0x10, revision=0xa07
May 22 14:16:34 nozomi kernel: [    2.504585] microcode: CPU2 updated to revision 0xa0b, date = 2010-09-28
May 22 14:16:34 nozomi kernel: [    2.507728] microcode: CPU3 sig=0x1067a, pf=0x10, revision=0xa07
May 22 14:16:34 nozomi kernel: [    2.507820] microcode: CPU3 sig=0x1067a, pf=0x10, revision=0xa07
May 22 14:16:34 nozomi kernel: [    2.511450] microcode: CPU3 updated to revision 0xa0b, date = 2010-09-28
May 22 14:16:34 nozomi kernel: [    2.515333] microcode: Microcode Update Driver: v2.00 <tigran.co.uk>, Peter Oruba
May 22 15:20:12 nozomi systemd[1]: Starting CPU microcode updater...
May 22 15:20:12 nozomi systemd[1813]: Failed at step EXEC spawning /usr/sbin/microcode_ctl: No such file or directory
May 22 15:20:12 nozomi systemd[1]: microcode_ctl.service: main process exited, code=exited, status=203/EXEC
May 22 15:20:12 nozomi systemd[1]: Failed to start CPU microcode updater.
May 22 15:20:12 nozomi systemd[1]: Unit microcode_ctl.service entered failed state.

Comment 1 Davide Poletto 2013-05-22 13:38:43 UTC
# uname -ar
Linux nozomi.opencore.local 3.9.2-200.fc18.x86_64 #1 SMP Mon May 13 13:59:47 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

# cat /etc/redhat-release
Fedora release 18 (Spherical Cow)

Comment 2 Anton Arapov 2013-06-10 13:28:31 UTC
Davide, 
it seems something wrong has happened during the f17->f18 upgrade path. 

Please remove the *service file entirely. New microcode_ctl version doesn't rely on microcode_ctl binary anymore. Linux kernel driver "microcode" handles the load of microcode. IOW, disable the microcode_ctl.service in systemd and remove the .service file entirely.

In the future microcode_ctl package will be retired and cpu microcode be delivered using linux-firmware package.

hth, should you have any further questions, just let me know.
Anton