[PATCH 1/1] x86/elf: Add a new .note section containing Xfeatures information to x86 core files
kernel test robot
lkp at intel.com
Fri Mar 15 23:59:16 AEDT 2024
Hi Vignesh,
kernel test robot noticed the following build errors:
[auto build test ERROR on linus/master]
[also build test ERROR on v6.8 next-20240315]
[cannot apply to kees/for-next/execve tip/x86/core powerpc/next powerpc/fixes]
[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/Vignesh-Balasubramanian/x86-elf-Add-a-new-note-section-containing-Xfeatures-information-to-x86-core-files/20240314-192650
base: linus/master
patch link: https://lore.kernel.org/r/20240314112359.50713-2-vigbalas%40amd.com
patch subject: [PATCH 1/1] x86/elf: Add a new .note section containing Xfeatures information to x86 core files
config: x86_64-randconfig-122-20240315 (https://download.01.org/0day-ci/archive/20240315/202403152037.J6Fn7uiP-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240315/202403152037.J6Fn7uiP-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 at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202403152037.J6Fn7uiP-lkp@intel.com/
All errors (new ones prefixed by >>):
arch/x86/kernel/fpu/xstate.c: In function 'dump_xsave_layout_desc':
>> arch/x86/kernel/fpu/xstate.c:1858:22: error: implicit declaration of function 'dump_emit'; did you mean 'dir_emit'? [-Werror=implicit-function-declaration]
1858 | if (!dump_emit(cprm, &xc, sizeof(struct xfeat_component)))
| ^~~~~~~~~
| dir_emit
arch/x86/kernel/fpu/xstate.c: In function 'elf_coredump_extra_notes_write':
>> arch/x86/kernel/fpu/xstate.c:1903:14: error: implicit declaration of function 'dump_align'; did you mean 'dump_mapping'? [-Werror=implicit-function-declaration]
1903 | if (!dump_align(cprm, 4))
| ^~~~~~~~~~
| dump_mapping
cc1: some warnings being treated as errors
vim +1858 arch/x86/kernel/fpu/xstate.c
1846
1847 struct xfeat_component xc;
1848 int num_records = 0;
1849 int i;
1850
1851 /* XFEATURE_FPU and XFEATURE_SSE, both are fixed legacy states. */
1852 for (i = 0; i < FIRST_EXTENDED_XFEATURE; i++) {
1853 xc.xfeat_type = i;
1854 xc.xfeat_sz = xstate_sizes[i];
1855 xc.xfeat_off = xstate_offsets[i];
1856 xc.xfeat_flags = xstate_flags[i];
1857
> 1858 if (!dump_emit(cprm, &xc, sizeof(struct xfeat_component)))
1859 return 0;
1860 num_records++;
1861 }
1862
1863 for_each_extended_xfeature(i, fpu_user_cfg.max_features) {
1864 xc.xfeat_type = i;
1865 xc.xfeat_sz = xstate_sizes[i];
1866 xc.xfeat_off = xstate_offsets[i];
1867 xc.xfeat_flags = xstate_flags[i];
1868
1869 if (!dump_emit(cprm, &xc, sizeof(struct xfeat_component)))
1870 return 0;
1871 num_records++;
1872 }
1873
1874 return num_records;
1875 }
1876
1877 static int get_xsave_desc_size(void)
1878 {
1879 /* XFEATURE_FP and XFEATURE_SSE, both are fixed legacy states */
1880 int xfeatures_count = 2;
1881 int i;
1882
1883 for_each_extended_xfeature(i, fpu_user_cfg.max_features)
1884 xfeatures_count++;
1885
1886 return xfeatures_count * (sizeof(struct xfeat_component));
1887 }
1888
1889 int elf_coredump_extra_notes_write(struct coredump_params *cprm)
1890 {
1891 const char *owner_name = "LINUX";
1892 int num_records = 0;
1893 struct elf_note en;
1894
1895 en.n_namesz = strlen(owner_name) + 1;
1896 en.n_descsz = get_xsave_desc_size();
1897 en.n_type = NT_X86_XSAVE_LAYOUT;
1898
1899 if (!dump_emit(cprm, &en, sizeof(en)))
1900 return 1;
1901 if (!dump_emit(cprm, owner_name, en.n_namesz))
1902 return 1;
> 1903 if (!dump_align(cprm, 4))
1904 return 1;
1905
1906 num_records = dump_xsave_layout_desc(cprm);
1907 if (!num_records) {
1908 pr_warn("Error adding XSTATE layout ELF note. XSTATE buffer in the core file will be unparseable.");
1909 return 1;
1910 }
1911
1912 /* Total size should be equal to the number of records */
1913 if ((sizeof(struct xfeat_component) * num_records) != en.n_descsz) {
1914 pr_warn("Error adding XSTATE layout ELF note. The size of the .note section does not match with the total size of the records.");
1915 return 1;
1916 }
1917
1918 if (!dump_align(cprm, 4))
1919 return 1;
1920
1921 return 0;
1922 }
1923
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the Linuxppc-dev
mailing list