Re: [PATCH 07/10] KVM: emulate: add AVX support to register fetch and writeback

kernel test robot
2025-11-14T17:07:04Z

Hi Paolo,

kernel test robot noticed the following build errors:

[auto build test ERROR on v6.18-rc5]
[also build test ERROR on linus/master next-20251114]
[cannot apply to kvm/queue kvm/next mst-vhost/linux-next kvm/linux-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Paolo-Bonzini/KVM-emulate-add-MOVNTDQA/20251114-084216
base: v6.18-rc5
patch link: https://lore.kernel.org/r/20251114003633.60689-8-pbonzini%40redhat.com
patch subject: [PATCH 07/10] KVM: emulate: add AVX support to register fetch and writeback
config: i386-buildonly-randconfig-002-20251114 (https://download.01.org/0day-ci/archive/20251115/202511150016.KszKz14N-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251115/202511150016.KszKz14N-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202511150016.KszKz14N-lkp@intel.com/

All errors (new ones prefixed by >>):

In file included from arch/x86/kvm/emulate.c:24:
In file included from arch/x86/kvm/kvm_emulate.h:16:
>> arch/x86/kvm/fpu.h:60:15: error: register %ymm14 is only available in 64-bit mode
60 | case 14: asm("vmovdqa %0, %%ymm14" : : "m"(*data)); break;
| ^
<inline asm>:1:20: note: instantiated into assembly here
1 | vmovdqa 32(%esi), %ymm14
| ^~~~~~
In file included from arch/x86/kvm/emulate.c:24:
In file included from arch/x86/kvm/kvm_emulate.h:16:
>> arch/x86/kvm/fpu.h:57:15: error: register %ymm11 is only available in 64-bit mode
57 | case 11: asm("vmovdqa %0, %%ymm11" : : "m"(*data)); break;
| ^
<inline asm>:1:20: note: instantiated into assembly here
1 | vmovdqa 32(%esi), %ymm11
| ^~~~~~
In file included from arch/x86/kvm/emulate.c:24:
In file included from arch/x86/kvm/kvm_emulate.h:16:
>> arch/x86/kvm/fpu.h:58:15: error: register %ymm12 is only available in 64-bit mode
58 | case 12: asm("vmovdqa %0, %%ymm12" : : "m"(*data)); break;
| ^
<inline asm>:1:20: note: instantiated into assembly here
1 | vmovdqa 32(%esi), %ymm12
| ^~~~~~
In file included from arch/x86/kvm/emulate.c:24:
In file included from arch/x86/kvm/kvm_emulate.h:16:
>> arch/x86/kvm/fpu.h:55:15: error: register %ymm9 is only available in 64-bit mode
55 | case 9: asm("vmovdqa %0, %%ymm9" : : "m"(*data)); break;
| ^
<inline asm>:1:20: note: instantiated into assembly here
1 | vmovdqa 32(%esi), %ymm9
| ^~~~~
In file included from arch/x86/kvm/emulate.c:24:
In file included from arch/x86/kvm/kvm_emulate.h:16:
>> arch/x86/kvm/fpu.h:61:15: error: register %ymm15 is only available in 64-bit mode
61 | case 15: asm("vmovdqa %0, %%ymm15" : : "m"(*data)); break;
| ^
<inline asm>:1:20: note: instantiated into assembly here
1 | vmovdqa 32(%esi), %ymm15
| ^~~~~~
In file included from arch/x86/kvm/emulate.c:24:
In file included from arch/x86/kvm/kvm_emulate.h:16:
>> arch/x86/kvm/fpu.h:59:15: error: register %ymm13 is only available in 64-bit mode
59 | case 13: asm("vmovdqa %0, %%ymm13" : : "m"(*data)); break;
| ^
<inline asm>:1:20: note: instantiated into assembly here
1 | vmovdqa 32(%esi), %ymm13
| ^~~~~~
In file included from arch/x86/kvm/emulate.c:24:
In file included from arch/x86/kvm/kvm_emulate.h:16:
>> arch/x86/kvm/fpu.h:56:15: error: register %ymm10 is only available in 64-bit mode
56 | case 10: asm("vmovdqa %0, %%ymm10" : : "m"(*data)); break;
| ^
<inline asm>:1:20: note: instantiated into assembly here
1 | vmovdqa 32(%esi), %ymm10
| ^~~~~~
In file included from arch/x86/kvm/emulate.c:24:
In file included from arch/x86/kvm/kvm_emulate.h:16:
>> arch/x86/kvm/fpu.h:54:15: error: register %ymm8 is only available in 64-bit mode
54 | case 8: asm("vmovdqa %0, %%ymm8" : : "m"(*data)); break;
| ^
<inline asm>:1:20: note: instantiated into assembly here
1 | vmovdqa 32(%esi), %ymm8
| ^~~~~
In file included from arch/x86/kvm/emulate.c:24:
In file included from arch/x86/kvm/kvm_emulate.h:16:
arch/x86/kvm/fpu.h:37:15: error: register %ymm14 is only available in 64-bit mode
37 | case 14: asm("vmovdqa %%ymm14, %0" : "=m"(*data)); break;
| ^
<inline asm>:1:10: note: instantiated into assembly here
1 | vmovdqa %ymm14, 32(%esi)
| ^~~~~~~
In file included from arch/x86/kvm/emulate.c:24:
In file included from arch/x86/kvm/kvm_emulate.h:16:
arch/x86/kvm/fpu.h:34:15: error: register %ymm11 is only available in 64-bit mode
34 | case 11: asm("vmovdqa %%ymm11, %0" : "=m"(*data)); break;
| ^
<inline asm>:1:10: note: instantiated into assembly here
1 | vmovdqa %ymm11, 32(%esi)
| ^~~~~~~
In file included from arch/x86/kvm/emulate.c:24:
In file included from arch/x86/kvm/kvm_emulate.h:16:
arch/x86/kvm/fpu.h:35:15: error: register %ymm12 is only available in 64-bit mode
35 | case 12: asm("vmovdqa %%ymm12, %0" : "=m"(*data)); break;
| ^
<inline asm>:1:10: note: instantiated into assembly here
1 | vmovdqa %ymm12, 32(%esi)
| ^~~~~~~
In file included from arch/x86/kvm/emulate.c:24:
In file included from arch/x86/kvm/kvm_emulate.h:16:
arch/x86/kvm/fpu.h:32:15: error: register %ymm9 is only available in 64-bit mode
32 | case 9: asm("vmovdqa %%ymm9, %0" : "=m"(*data)); break;
| ^
<inline asm>:1:10: note: instantiated into assembly here
1 | vmovdqa %ymm9, 32(%esi)
| ^~~~~~
In file included from arch/x86/kvm/emulate.c:24:
In file included from arch/x86/kvm/kvm_emulate.h:16:
arch/x86/kvm/fpu.h:38:15: error: register %ymm15 is only available in 64-bit mode
38 | case 15: asm("vmovdqa %%ymm15, %0" : "=m"(*data)); break;
| ^
<inline asm>:1:10: note: instantiated into assembly here
1 | vmovdqa %ymm15, 32(%esi)
| ^~~~~~~
In file included from arch/x86/kvm/emulate.c:24:
In file included from arch/x86/kvm/kvm_emulate.h:16:
arch/x86/kvm/fpu.h:36:15: error: register %ymm13 is only available in 64-bit mode
36 | case 13: asm("vmovdqa %%ymm13, %0" : "=m"(*data)); break;
| ^
<inline asm>:1:10: note: instantiated into assembly here
1 | vmovdqa %ymm13, 32(%esi)
| ^~~~~~~
In file included from arch/x86/kvm/emulate.c:24:
In file included from arch/x86/kvm/kvm_emulate.h:16:
arch/x86/kvm/fpu.h:33:15: error: register %ymm10 is only available in 64-bit mode
33 | case 10: asm("vmovdqa %%ymm10, %0" : "=m"(*data)); break;
| ^
<inline asm>:1:10: note: instantiated into assembly here
1 | vmovdqa %ymm10, 32(%esi)
| ^~~~~~~
In file included from arch/x86/kvm/emulate.c:24:
In file included from arch/x86/kvm/kvm_emulate.h:16:
arch/x86/kvm/fpu.h:31:15: error: register %ymm8 is only available in 64-bit mode
31 | case 8: asm("vmovdqa %%ymm8, %0" : "=m"(*data)); break;
| ^
<inline asm>:1:10: note: instantiated into assembly here
1 | vmovdqa %ymm8, 32(%esi)
| ^~~~~~
16 errors generated.

Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for I2C_K1
Depends on [n]: I2C [=y] && HAS_IOMEM [=y] && (ARCH_SPACEMIT || COMPILE_TEST [=y]) && OF [=n]
Selected by [m]:
- MFD_SPACEMIT_P1 [=m] && HAS_IOMEM [=y] && (ARCH_SPACEMIT || COMPILE_TEST [=y]) && I2C [=y]

vim +60 arch/x86/kvm/fpu.h

42
43 static inline void _kvm_write_avx_reg(int reg, const avx256_t *data)
44 {
45 switch (reg) {
46 case 0: asm("vmovdqa %0, %%ymm0" : : "m"(*data)); break;
47 case 1: asm("vmovdqa %0, %%ymm1" : : "m"(*data)); break;
48 case 2: asm("vmovdqa %0, %%ymm2" : : "m"(*data)); break;
49 case 3: asm("vmovdqa %0, %%ymm3" : : "m"(*data)); break;
50 case 4: asm("vmovdqa %0, %%ymm4" : : "m"(*data)); break;
51 case 5: asm("vmovdqa %0, %%ymm5" : : "m"(*data)); break;
52 case 6: asm("vmovdqa %0, %%ymm6" : : "m"(*data)); break;
53 case 7: asm("vmovdqa %0, %%ymm7" : : "m"(*data)); break;
> 54 case 8: asm("vmovdqa %0, %%ymm8" : : "m"(*data)); break;
> 55 case 9: asm("vmovdqa %0, %%ymm9" : : "m"(*data)); break;
> 56 case 10: asm("vmovdqa %0, %%ymm10" : : "m"(*data)); break;
> 57 case 11: asm("vmovdqa %0, %%ymm11" : : "m"(*data)); break;
> 58 case 12: asm("vmovdqa %0, %%ymm12" : : "m"(*data)); break;
> 59 case 13: asm("vmovdqa %0, %%ymm13" : : "m"(*data)); break;
> 60 case 14: asm("vmovdqa %0, %%ymm14" : : "m"(*data)); break;
> 61 case 15: asm("vmovdqa %0, %%ymm15" : : "m"(*data)); break;
62 default: BUG();
63 }
64 }
65

--
0-DAY CI Kernel Test Service