VMware – 14.1.2 Released – Fixes Annoying Bug..

VMware 14.1.2 has been released, and details are here:  https://docs.vmware.com/en/VMware-Workstation-Pro/14/rn/workstation-1412-release-notes.html

This version fixes the annoying ‘window resizing’ bug, which caused the guest to suddenly flip from fullscreen to windowed, and then attempted to resize the window.

As with 14.1.1, this version is OK with the latest Linux kernels (tested with 14.6.10 and 14.7-rc6).

Robert Gadsdon.   May 22, 2018.

Kernel – 4.17-rc6 Out – Includes GCC8 Compile Fixes..

Kernel 4.17-rc6 has been released, and details of changes since -rc5 are here:  http://lkml.iu.edu/hypermail/linux/kernel/1805.2/03965.html

This version is still OK with the latest VMware (14.1.1) and NVIDIA (396.24) drivers, but also includes fixes for repeated GCC8 / objtool warnings at compile time:

……………….
Josh Poimboeuf (5):
……….
objtool: Support GCC 8’s cold subfunctions
objtool: Support GCC 8 switch tables
…………….

I have confirmed these with GCC 8.1.1 (Fedora 28)..

Robert Gadsdon.  May 20, 2018.

Kernel – GCC8 / ‘Objtool Warnings’ Patches..

There are now patches available to deal with the host of ‘objtool‘ warnings when compiling the kernel with GCC8:

...................................
drivers/video/fbdev/core/fbmem.o: warning: objtool: fb_set_var()+0x209: sibling call from callable instruction with modified stack frame
drivers/video/fbdev/core/fbmem.o: warning: objtool: do_remove_conflicting_framebuffers()+0xa6: sibling call from callable instruction with modified stack frame
drivers/video/fbdev/core/fbmem.o: warning: objtool: register_framebuffer()+0x14b: sibling call from callable instruction with modified stack frame
................... etc....

More details in this thread:  http://lkml.iu.edu/hypermail/linux/kernel/1805.1/02193.html

I have applied the 3 patches, and with Kernel 4.17 (4.17-rc5) the compile is now – relatively – free from ‘warnings’, apart from a few after executing # make xconfig..    The patches also apply cleanly to 4.16 (4.16.8) and do also remove the objtool-related warnings, but still leave a number of ‘syscall‘ and other warnings, which do not occur with 4.17..:

..................
./include/linux/compat.h:52:18: warning: ‘compat_sys_x86_clone’ alias between functions of incompatible types ‘long int(long unsigned int, long unsigned int, int *, long unsigned int, int *)’ and ‘long int(long int, long int, long int, long int, long int)’ [-Wattribute-alias]
 asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))\
 ^~~~~~~~~~
./include/linux/compat.h:47:2: note: in expansion of macro ‘COMPAT_SYSCALL_DEFINEx’
 COMPAT_SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
 ^~~~~~~~~~~~~~~~~~~~~~
arch/x86/ia32/sys_ia32.c:240:1: note: in expansion of macro ‘COMPAT_SYSCALL_DEFINE5’
 COMPAT_SYSCALL_DEFINE5(x86_clone, unsigned long, clone_flags,
 ^~~~~~~~~~~~~~~~~~~~~~
./include/linux/compat.h:56:18: note: aliased declaration here
 asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__))\
 ^~~~~~~~~~
./include/linux/compat.h:47:2: note: in expansion of macro ‘COMPAT_SYSCALL_DEFINEx’
 COMPAT_SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
 ^~~~~~~~~~~~~~~~~~~~~~
arch/x86/ia32/sys_ia32.c:240:1: note: in expansion of macro ‘COMPAT_SYSCALL_DEFINE5’
 COMPAT_SYSCALL_DEFINE5(x86_clone, unsigned long, clone_flags,
..............  (repeated) ...............

So – at least with 4.17 Kernels, the GCC8 warnings have been dealt with..   These patches are still work-in-progress, but hopefully will make it to mainline soon..

Robert Gadsdon.  May 14, 2018.

GCC – Update to 8.1.1 – Still Gives Kernel Compile Warnings..

Fedora 28 has GCC 8.1.1 available (currently in ‘updates-testing‘ repo), and I tested this with Kernel 4.17-rc4, to see if there was any improvement in the horde of warnings generated with 8.0.1.

In short, there is no real difference:

....................................
 CC security/keys/request_key.o
arch/x86/kvm/lapic.o: warning: objtool: kvm_lapic_reg_read()+0x126: sibling call from callable instruction with modified stack frame
arch/x86/kvm/lapic.o: warning: objtool: limit_periodic_timer_frequency.part.16()+0x3b: sibling call from callable instruction with modified stack frame
arch/x86/kvm/lapic.o: warning: objtool: kvm_irq_delivery_to_apic_fast()+0x373: sibling call from callable instruction with modified stack frame
arch/x86/kvm/lapic.o: warning: objtool: kvm_intr_is_single_vcpu_fast()+0x286: sibling call from callable instruction with modified stack frame
arch/x86/kvm/lapic.o: warning: objtool: kvm_lapic_set_base()+0xf0: sibling call from callable instruction with modified stack frame
arch/x86/kvm/lapic.o: warning: objtool: kvm_create_lapic()+0x39: sibling call from callable instruction with modified stack frame
arch/x86/kvm/lapic.o: warning: objtool: kvm_lapic_set_base.cold.24()+0x16: sibling call from callable instruction with modified stack frame
..................... etc, etc....................

There were patches proposed for the kernel, for GCC 8, but these would not appear to have made it into mainstream, yet..    There may be some debate over whether the fix is with GCC, or with kernel code…   Older versions of the kernel (tested with 4.9.98) compile more ‘cleanly’..

Robert Gadsdon.    May 7th, 2018.

Fedora – F28 GCC 8 Now OK with Kernel 4.16.7, and fix for Grub-Customizer..

Tried Kernel 4.16.7 on Fedora 28 (GCC 8.0.1), and this now compiles successfully, although still with a lot of ‘warnings’..

I use grub-customizer with each new kernel, and the F28 version of this fails:

# grub-customizer
Error creating proxy: The connection is closed (g-io-error-quark, 18)
 *** initializing (w/o specified bootloader type)…
 * reading partition info…
/usr/include/c++/8/bits/basic_string.h:1048: std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::reference std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator[](std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::reference = char&; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]: Assertion '__pos <= size()' failed.
Aborted (core dumped)

Workaround, is to install the F27 version:

rpm -Uvh grub-customizer-5.0.6-6.fc27.x86_64.rpm --force

– and this works OK, again..

Robert Gadsdon.   May 2, 2018.

Fedora – 28 Released, but Fails with GCC 8 and Kernel 4.16…

Fedora 28 has been released, but this includes GCC 8 (8.0.1) which – currently – is not capable of compiling Kernel 4.16 as-is (tested with 4.16.6):

 ..................................
CC /usr/src/linux-4.16.6/tools/objtool/objtool.o
 CC /usr/src/linux-4.16.6/tools/objtool/libstring.o
 CC /usr/src/linux-4.16.6/tools/objtool/str_error_r.o
../lib/str_error_r.c: In function ‘str_error_r’:
../lib/str_error_r.c:25:3: error: passing argument 1 to restrict-qualified parameter aliases with argument 5 [-Werror=restrict]
 snprintf(buf, buflen, "INTERNAL ERROR: strerror_r(%d, %p, %zd)=%d", errnum, buf, buflen, err);
 ^~~~~~~~
 HOSTCC scripts/mod/file2alias.o
cc1: all warnings being treated as errors
.....................................

See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84919

Kernel 4.17 (4.17-rc3) does compile, but with multiple warnings:

 .....................
CC lib/earlycpio.o
drivers/dma/dmaengine.o: warning: objtool: dma_async_device_register()+0x22: sibling call from callable instruction with modified stack frame
lib/earlycpio.o: warning: objtool: find_cpio_data()+0x218: sibling call from callable instruction with modified stack frame
 CC lib/extable.o
 CC drivers/dma/virt-dma.o
fs/nfsd/vfs.o: warning: objtool: nfsd_lookup_dentry()+0x6d: sibling call from callable instruction with modified stack frame
fs/nfsd/vfs.o: warning: objtool: nfsd_vfs_write()+0x230: sibling call from callable instruction with modified stack frame
fs/nfsd/vfs.o: warning: objtool: nfsd_symlink()+0x92: sibling call from callable instruction with modified stack frame
fs/nfsd/vfs.o: warning: objtool: nfsd_link()+0xdd: sibling call from callable instruction with modified stack frame
fs/nfsd/vfs.o: warning: objtool: nfsd_unlink()+0x8b: sibling call from callable instruction with modified stack frame
fs/nfsd/vfs.o: warning: objtool: nfsd_setattr()+0x140: sibling call from callable instruction with modified stack frame
fs/nfsd/vfs.o: warning: objtool: do_nfsd_create()+0x114: sibling call from callable instruction with modified stack frame
fs/nfsd/vfs.o: warning: objtool: nfsd_create()+0xbf: sibling call from callable instruction with modified stack frame
fs/nfsd/vfs.o: warning: objtool: nfsd_racache_shutdown()+0xb: sibling call from callable instruction with modified stack frame
fs/nfsd/vfs.o: warning: objtool: nfsd_racache_init()+0x3e: sibling call from callable instruction with modified stack frame
 CC [M] fs/nfsd/export.o
....................................
 CC lib/kobject.o
In function ‘fill_kobj_path’,
 inlined from ‘kobject_get_path’ at lib/kobject.c:155:2:
lib/kobject.c:128:3: warning: ‘strncpy’ output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation]
 strncpy(path + length, kobject_name(parent), cur);
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/kobject.c: In function ‘kobject_get_path’:
lib/kobject.c:125:13: note: length computed here
 int cur = strlen(kobject_name(parent));
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
.................................   etc..........

Despite all this, the resulting kernel loads/runs OK:

# uname -a
Linux rgup 4.17.0-rc3 #1 SMP Sun Apr 29 18:19:03 PDT 2018 x86_64 x86_64 x86_64 GNU/Linux

So, for the time being, I am staying with Fedora 27 on my main system..

Robert Gadsdon.   May 2, 2018.

VMware – Patch, If You Need Better ‘Meltdown/Spectre’ Protection..

Thanks – again – to Michal Kubeček, who  has pointed out that there is still a vulnerability in some VMware (vmmon) code, that is not mitigated by Kernel/Compiler retpoline fixes, as it is written in assembler..   ( See comment on previous article – http://rglinuxtech.com/?p=2277 )

He has provided an appropriate fix for this, at https://github.com/mkubecek/vmware-host-modules/tree/player-14.1.1

Robert Gadsdon.   April 30, 2018.
(updated May 2, to fix missing text..)

 

Kernel – 4.17-rc3 Released – Still OK with Latest NVIDIA and VMware..

Kernel 4.17-rc3 is out, and brief details of changes from -rc2 are here:  http://lkml.iu.edu/hypermail/linux/kernel/1804.3/05507.html

Tested with NVIDIA 396.18 and VMware 14.1.1 (vmmon and vmnet), and all still compile OK..

Robert Gadsdon.   April 29, 2018.

IA64 – Updated to 4.17-rc1..

Updated the IA64 system (HP RX2600) to 4.17-rc1, and the compile and install/boot was without incident..    The python-related warning with 4.16 was no longer present.. (see http://rglinuxtech.com/?p=2222 ).

...............
[ OK ] Started Getty on tty1.
[ OK ] Reached target Login Prompts.
[ OK ] Started Login Service.
[ OK ] Reached target Multi-User System.
[ OK ] Reached target Graphical Interface.

This is rgia64.unknown_domain (Linux ia64 4.17.0-rc1) 13:07:54
........................
# uname -a
Linux rgia64 4.17.0-rc1 #1 SMP Mon Apr 16 12:18:06 PDT 2018 ia64 Madison GenuineIntel GNU/Linux

Robert Gadsdon.  April 16, 2018.

Kernel – 4.17-rc1 Out – OK with Latest NVIDIA and VMware..

Kernel 4.17-rc1 has been released, and brief details are here:  http://lkml.iu.edu/hypermail/linux/kernel/1804.1/06654.html

With the latest code-on-git milestone reached, there is speculation that a version bump to 5.x might be a possibility – but not just yet!

The latest NVIDIA driver (396.18) and VMware (14.1.1vmmon and vmnet) all compile OK..

Robert Gadsdon.   April 15, 2018