On 5/28/14 8:32 , takashi ary via illumos-discuss wrote: > Hi Robert, Bill, > > Thanks for your reply. > > 2014-05-28 9:42 GMT+09:00 Robert Mustacchi <r...@joyent.com>: >> A while back I was looking at a bug that doesn't seem dissimilar. What's >> the size of the actual microcode itself? > > Sorry, how to calculate actual body size? > File size is 1854360 bytes. > >> There's a size cap on the size of the body today, see >> http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/sys/ucode.h#209. >> I suspect that if you increased that on a system then it would work, >> note that you would need to rebuild the entire system with that. > > This is truss output before change the size cap. > > root@omnios:/tmp/microcode# > root@omnios:/tmp/microcode# ucodeadm -u intel-ucode.txt > ucodeadm: intel-ucode.txt: File header is invalid > root@omnios:/tmp/microcode# > root@omnios:/tmp/microcode# truss -fl ucodeadm -u intel-ucode.txt > 13523/1: execve("/usr/sbin/ucodeadm", 0x08047DF0, 0x08047E00) argc = 3 > > <snip> > > 13523/1: read(3, " 0 2 6 0 3 6 ,\n 0 x b 5".., 4096) = 4096 > 13523/1: read(3, " 0 0 ,\t 0 x d 5 7 2 3 1".., 4096) = 2968 > 13523/1: read(3, 0x0822A2D4, 4096) = 0 > 13523/1: llseek(3, 0, SEEK_CUR) = 1854360 > 13523/1: close(3) = 0 > 13523/1: fstat64(2, 0x08046D30) = 0 > ucodeadm13523/1: write(2, " u c o d e a d m", 8) = 8 > : 13523/1: write(2, " : ", 2) = 2 > intel-ucode.txt13523/1: write(2, " i n t e l - u c o d e .".., 15) = 15 > : 13523/1: write(2, " : ", 2) = 2 > File header is invalid13523/1: write(2, " F i l e h e a d e r ".., > 22) = 22 > 13523/1: write(2, "\n", 1) = 1 > 13523/1: _exit(3) > root@omnios:/tmp/microcode# > > > I tried setting "UCODE_MAX_SIZE UCODE_KB(32)", > "UCODE_MAX_COMBINED_SIZE UCODE_MB(32)", > "modunload" ucode kernel module, "modload" new ucode kernel module. > > > root@omnios:/tmp/microcode# > root@omnios:/tmp/microcode# ./ucodeadm -u intel-ucode.txt > ucodeadm: microcode update: File header is invalid > root@omnios:/tmp/microcode# > root@omnios:/tmp/microcode# truss -fl ./ucodeadm -u intel-ucode.txt > 13538/1: execve("ucodeadm", 0x08047DF8, 0x08047E08) argc = 3 > > <snip> > > 13538/1: read(3, " 0 2 6 0 3 6 ,\n 0 x b 5".., 4096) = 4096 > 13538/1: read(3, " 0 0 ,\t 0 x d 5 7 2 3 1".., 4096) = 2968 > 13538/1: read(3, 0x0822A2D4, 4096) = 0 > 13538/1: llseek(3, 0, SEEK_CUR) = 1854360 > 13538/1: close(3) = 0 > 13538/1: open("/dev/ucode", O_RDONLY) = 3 > 13538/1: ioctl(3, (('u'<<24)|('c'<<16)|('o'<<8)|1), 0x08047D0C) = 0 > 13538/1: fstat64(2, 0x08046D30) = 0 > ucodeadm13538/1: write(2, " u c o d e a d m", 8) = 8 > : 13538/1: write(2, " : ", 2) = 2 > microcode update13538/1: write(2, " m i c r o c o d e u p".., > 16) = 16 > : 13538/1: write(2, " : ", 2) = 2 > File header is invalid13538/1: write(2, " F i l e h e a d e r ".., > 22) = 22 > 13538/1: write(2, "\n", 1) = 1 > 13538/1: close(3) = 0 > 13538/1: _exit(3) > root@omnios:/tmp/microcode# > > > "microcode update" output from ucodeadm.c line 752? > http://src.illumos.org/source/xref/illumos-gate/usr/src/cmd/ucodeadm/ucodeadm.c#752 > > rebuild the entire system is difficult now...
Unfortunately, that value is used outside of the various microcode modules, so I suspect at a minimum you would need to also update all of the associated userland utilities and more. The comment in uts/common/sys/ucode.h+200 would make me definitely not want to risk guessing around with replacing one offs versus updating everything. Robert ------------------------------------------- illumos-discuss Archives: https://www.listbox.com/member/archive/182180/=now RSS Feed: https://www.listbox.com/member/archive/rss/182180/21175430-2e6923be Modify Your Subscription: https://www.listbox.com/member/?member_id=21175430&id_secret=21175430-6a77cda4 Powered by Listbox: http://www.listbox.com