Cannot migrate on X201

I tried to use opensuse-migration-tool to go from Leap 15.6 to 16.0 on a ThinkPad X201. CPU check shows:
`howard@X201-oS15KDE:~> /lib64/ld-linux-x86-64.so.2 --help
Usage: /lib64/ld-linux-x86-64.so.2 [OPTION]… EXECUTABLE-FILE [ARGS-FOR-PROGRAM…]
You have invoked ‘ld.so’, the program interpreter for dynamically-linked
ELF programs. Usually, the program interpreter is invoked automatically
when a dynamically-linked executable is started.

This program interpreter self-identifies as: /lib64/ld-linux-x86-64.so.2

Shared library search path:
(libraries located via /etc/ld.so.cache)
/lib64 (system search path)
/usr/lib64 (system search path)

Subdirectories of glibc-hwcaps directories, in priority order:
x86-64-v4
x86-64-v3
x86-64-v2 (supported, searched)
howard@X201-oS15KDE:~>
`
So has v2. But the tool returns:


What’s happening here?

That’s not a sufficient test. It doesn’t necessarily confirm that the CPU actually supports all required v2 instruction set extensions.

You need to check exactly which flags are missing…
grep -o 'sse4_2\|popcnt\|cx16\|ssse3\|sse3\|lahf_lm' /proc/cpuinfo | sort -u. That’s what the opensuse-migration-tool checks against.

If any of the x86-64-v2 features (like sse4_2 or popcnt) are absent, then Leap 16 will not install.

howard@X201-oS15KDE:~> grep -o 'sse4_2\|popcnt\|cx16\|ssse3\|sse3\|lahf_lm' /proc/cpuinfo | sort -u
cx16
lahf_lm
popcnt
sse4_2
ssse3
howard@X201-oS15KDE:~> 

so sse3 is missing, hence no installation. Sad, I really like this X201.
Thanks,
Howard

Your CPU mostly likely supports sse3, grep for pni instead:
https://www.reddit.com/r/linuxquestions/comments/1faed5o/why_does_cpuinfo_show_i_have_up_to_sse42_but_not/

Yes, the pni flag is present:

howard@X201-oS15KDE:~> grep -o 'pni' /proc/cpuinfo | sort -u
pni
howard@X201-oS15KDE:~> 

The Info Center lists the flags as:

Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt aes lahf_lm pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid dtherm ida arat vnmi flush_l1d

but something must be missing that the opensuse-migration-tool requires.

Looking at opensuse-migration-tool at line 133 I read:

required_v2_flags=("cx16" "sse4_1" "sse4_2" "popcnt" "xsave")

so am I missing something? sse3/pni does not seem to have a role?

Looks as “xsave” is missing?

In glibc, xsave is not in v2, but in v3:
https://sourceware.org/git/?p=glibc.git;a=blob;f=elf/elf.h;h=33aea7f743b885c5d74736276e55ef21756293ee;hb=3d1aed874918c466a4477af1da35983ab036690e#l1405

There’s a bug report:
https://bugzilla.opensuse.org/show_bug.cgi?id=1251249

2 Likes

It is opensuse-migration-tool that is using the wrong test.

Mod edit: Unnecessary arrogant comments removed.

Is that the reason why the migration tool claims the processors on my kvm host are not v2 and won’t update the system from 15.6 to 16 even though that same system runs new installs of Leap 16 perfectly fine in virtual machines?

The file at (opensuse-migration-tool/opensuse-migration-tool at main · openSUSE/opensuse-migration-tool · GitHub) deletes the movbe flag. How do I run it?

You can download the code from github via zip file. Unpack the zip file. Runthe tool as usual (as described on the github page and the Leap upgrade wiki). You need to specify the file path or the old script supplied by the rpm will still get used.

Run it:
sudo /path-to-where-you-have-unpacked-the-file/opensuse-migration-tool

I got the file without movbe, but had to edit it to remove the xsave requirement. It is now running, downloading 3182 packages.

1 Like

Consider submitting an issue (or, better, PR) then. Indeed, xsave is defined for x86_64-v3.

The issue with xsave is already identified and reported. Only a PR would be needed…

Strictly speaking, the v2 check lacks lahf and ssse3. False negative is relatively harmless, false positive may lead to the unbootable system.

Thanks, all. My X201 is now running Leap 16.0. Deleting movbe and xsave requirements from the migration tool let it run.
Howard