>-----Original Message----- >From: Fan Ni <nifan.cxl@xxxxxxxxx> >Sent: 10 February 2025 17:53 >To: Shiju Jose <shiju.jose@xxxxxxxxxx> >Cc: linux-edac@xxxxxxxxxxxxxxx; linux-cxl@xxxxxxxxxxxxxxx; linux- >acpi@xxxxxxxxxxxxxxx; linux-mm@xxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; >linux-doc@xxxxxxxxxxxxxxx; bp@xxxxxxxxx; tony.luck@xxxxxxxxx; >rafael@xxxxxxxxxx; lenb@xxxxxxxxxx; mchehab@xxxxxxxxxx; >dan.j.williams@xxxxxxxxx; dave@xxxxxxxxxxxx; Jonathan Cameron ><jonathan.cameron@xxxxxxxxxx>; dave.jiang@xxxxxxxxx; >alison.schofield@xxxxxxxxx; vishal.l.verma@xxxxxxxxx; ira.weiny@xxxxxxxxx; >david@xxxxxxxxxx; Vilas.Sridharan@xxxxxxx; leo.duran@xxxxxxx; >Yazen.Ghannam@xxxxxxx; rientjes@xxxxxxxxxx; jiaqiyan@xxxxxxxxxx; >Jon.Grimm@xxxxxxx; dave.hansen@xxxxxxxxxxxxxxx; >naoya.horiguchi@xxxxxxx; james.morse@xxxxxxx; jthoughton@xxxxxxxxxx; >somasundaram.a@xxxxxxx; erdemaktas@xxxxxxxxxx; pgonda@xxxxxxxxxx; >duenwen@xxxxxxxxxx; gthelen@xxxxxxxxxx; >wschwartz@xxxxxxxxxxxxxxxxxxx; dferguson@xxxxxxxxxxxxxxxxxxx; >wbs@xxxxxxxxxxxxxxxxxxxxxx; nifan.cxl@xxxxxxxxx; tanxiaofei ><tanxiaofei@xxxxxxxxxx>; Zengtao (B) <prime.zeng@xxxxxxxxxxxxx>; Roberto >Sassu <roberto.sassu@xxxxxxxxxx>; kangkang.shen@xxxxxxxxxxxxx; >wanghuiqiang <wanghuiqiang@xxxxxxxxxx>; Linuxarm ><linuxarm@xxxxxxxxxx>; a.manzanares@xxxxxxxxxxx; >nmtadam.samsung@xxxxxxxxx; anisa.su887@xxxxxxxxx >Subject: Re: [PATCH v19 00/15] EDAC: Scrub: introduce generic EDAC RAS >control feature driver + CXL/ACPI-RAS2 drivers > >On Fri, Feb 07, 2025 at 02:44:29PM +0000, shiju.jose@xxxxxxxxxx wrote: >> From: Shiju Jose <shiju.jose@xxxxxxxxxx> >> >> The CXL patches of this series has dependency on Dave's CXL fwctl >> series [1]. >> >> The code is based on v3 of CXL fwctl series [1] posted by Dave and >> v3 of FWCTL series [2] posted by Jason and rebased on top of >> v6.14-rc1. >> >> [1]: >> https://lore.kernel.org/linux-cxl/20250204220430.4146187-1-dave.jiang@ >> intel.com/ >> [2]: >> https://lore.kernel.org/linux-cxl/0-v3-960f17f90f17+516-fwctl_jgg@nvid >> ia.com/#r >> >> >> Userspace code for CXL memory repair features [3] and sample >> boot-script for CXL memory repair [4]. >> >> [3]: >> https://lore.kernel.org/lkml/20250207143028.1865-1-shiju.jose@huawei.c >> om/ >> [4]: >> https://lore.kernel.org/lkml/20250207143028.1865-5-shiju.jose@huawei.c >> om/ >> > >Hi Shiju, >Is this series the same as in branch >https://github.com/shijujose4/linux/tree/edac-enhancement-ras-features_v19? > >I hit some compile errors wen trying to test with the above branch directly. > >Here are two cases where I found the code cannot compile. Please check if it is a >false alarm. > >Case 1: CONFIG_CXL_RAS_FEATURES=m > >fan:~/cxl/linux-edac$ cat .config | egrep -i "edac|cxl|ras" | grep -v "^#" >CONFIG_ACPI_RAS2=y >CONFIG_ACPI_APEI_EINJ_CXL=y >CONFIG_PCIEAER_CXL=y >CONFIG_CXL_BUS=y >CONFIG_CXL_PCI=y >CONFIG_CXL_MEM_RAW_COMMANDS=y >CONFIG_CXL_ACPI=y >CONFIG_CXL_PMEM=y >CONFIG_CXL_MEM=y >CONFIG_CXL_FWCTL=y >CONFIG_CXL_PORT=y >CONFIG_CXL_SUSPEND=y >CONFIG_CXL_REGION=y >CONFIG_CXL_REGION_INVALIDATION_TEST=y >CONFIG_CXL_RAS_FEATURES=m >CONFIG_MMC_SDHCI_OF_ARASAN=y >CONFIG_EDAC_ATOMIC_SCRUB=y >CONFIG_EDAC_SUPPORT=y >CONFIG_EDAC=y >CONFIG_EDAC_LEGACY_SYSFS=y >CONFIG_EDAC_DEBUG=y >CONFIG_EDAC_DECODE_MCE=m >CONFIG_EDAC_GHES=m >CONFIG_EDAC_SCRUB=y >CONFIG_EDAC_ECS=y >CONFIG_EDAC_MEM_REPAIR=y >CONFIG_EDAC_IGEN6=m >CONFIG_RAS=y >CONFIG_MEM_ACPI_RAS2=y >CONFIG_DEV_DAX_CXL=m >fan:~/cxl/linux-edac$ > > >fan:~/cxl/linux-edac$ make -j16 >mkdir -p /home/fan/cxl/linux-edac/tools/objtool && make >O=/home/fan/cxl/linux-edac subdir=tools/objtool --no-print-directory -C objtool > CALL scripts/checksyscalls.sh > INSTALL libsubcmd_headers > UPD include/generated/utsversion.h > CC init/version-timestamp.o > KSYMS .tmp_vmlinux0.kallsyms.S > AS .tmp_vmlinux0.kallsyms.o > LD .tmp_vmlinux1 >ld: vmlinux.o: in function `cxl_region_probe': >/home/fan/cxl/linux-edac/drivers/cxl/core/region.c:3456:(.text+0x7b296f): >undefined reference to `devm_cxl_region_edac_register' >ld: vmlinux.o: in function `cxl_mem_probe': >/home/fan/cxl/linux-edac/drivers/cxl/mem.c:188:(.text+0x7b8ad1): undefined >reference to `devm_cxl_memdev_edac_register' >make[2]: *** [scripts/Makefile.vmlinux:77: vmlinux] Error 1 >make[1]: *** [/home/fan/cxl/linux-edac/Makefile:1226: vmlinux] Error 2 >make: *** [Makefile:251: __sub-make] Error 2 > >When compile with CONFIG_CXL_RAS_FEATURES=y, it can compile. > Hi Fan, Thanks for checking this and reporting. This error is with CONFIG_CXL_RAS_FEATURES=m and CONFIG_CXL_BUS=y and CONFIG_CXL_MEM=y. Now changed CONFIG_CXL_RAS_FEATURES for tristate -> boolean as this implemented only interface functions for the CXL RAS features. > >CASE 2: CONFIG_EDAC=m > >fan:~/cxl/linux-edac$ cat .config | egrep -i "edac|cxl|ras" | grep -v "^#" >CONFIG_CRASH_RESERVE=y >CONFIG_CRASH_DUMP=y >CONFIG_CRASH_HOTPLUG=y >CONFIG_CRASH_MAX_MEMORY_RANGES=8192 >CONFIG_ARCH_SUPPORTS_CRASH_DUMP=y >CONFIG_ARCH_DEFAULT_CRASH_DUMP=y >CONFIG_ARCH_SUPPORTS_CRASH_HOTPLUG=y >CONFIG_ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION=y >CONFIG_ACPI_RAS2=y >CONFIG_ACPI_APEI_EINJ_CXL=y >CONFIG_PCIEAER_CXL=y >CONFIG_CXL_BUS=y >CONFIG_CXL_PCI=y >CONFIG_CXL_MEM_RAW_COMMANDS=y >CONFIG_CXL_ACPI=y >CONFIG_CXL_PMEM=y >CONFIG_CXL_MEM=y >CONFIG_CXL_FWCTL=y >CONFIG_CXL_PORT=y >CONFIG_CXL_SUSPEND=y >CONFIG_CXL_REGION=y >CONFIG_CXL_REGION_INVALIDATION_TEST=y >CONFIG_CXL_RAS_FEATURES=y >CONFIG_MMC_SDHCI_OF_ARASAN=y >CONFIG_EDAC_ATOMIC_SCRUB=y >CONFIG_EDAC_SUPPORT=y >CONFIG_EDAC=m >CONFIG_EDAC_LEGACY_SYSFS=y >CONFIG_EDAC_DEBUG=y >CONFIG_EDAC_DECODE_MCE=m >CONFIG_EDAC_GHES=m >CONFIG_EDAC_SCRUB=y >CONFIG_EDAC_ECS=y >CONFIG_EDAC_MEM_REPAIR=y >CONFIG_EDAC_IGEN6=m >CONFIG_RAS=y >CONFIG_MEM_ACPI_RAS2=y >CONFIG_DEV_DAX_CXL=m >fan:~/cxl/linux-edac$ > >fan:~/cxl/linux-edac$ make -j16 >mkdir -p /home/fan/cxl/linux-edac/tools/objtool && make >O=/home/fan/cxl/linux-edac subdir=tools/objtool --no-print-directory -C objtool > CALL scripts/checksyscalls.sh > INSTALL libsubcmd_headers > UPD include/generated/utsversion.h > CC init/version-timestamp.o > KSYMS .tmp_vmlinux0.kallsyms.S > AS .tmp_vmlinux0.kallsyms.o > LD .tmp_vmlinux1 >ld: vmlinux.o: in function `devm_cxl_region_edac_register': >/home/fan/cxl/linux- >edac/drivers/cxl/core/memfeature.c:1720:(.text+0x7b665d): undefined >reference to `edac_dev_register' >ld: vmlinux.o: in function `devm_cxl_memdev_edac_register': >/home/fan/cxl/linux- >edac/drivers/cxl/core/memfeature.c:1697:(.text+0x7b7241): undefined >reference to `edac_dev_register' >ld: vmlinux.o: in function `ras2_probe': >/home/fan/cxl/linux-edac/drivers/ras/acpi_ras2.c:363:(.text+0xb0ecc8): >undefined reference to `edac_dev_register' >make[2]: *** [scripts/Makefile.vmlinux:77: vmlinux] Error 1 >make[1]: *** [/home/fan/cxl/linux-edac/Makefile:1226: vmlinux] Error 2 >make: *** [Makefile:251: __sub-make] Error 2 > Here the symbol 'edac_dev_register' can't find with CONFIG_CXL_BUS=y CONFIG_CXL_RAS_FEATURES=y and CONFIG_EDAC=m. Modified CXL_RAS_FEATURES depends on EDAC=y || (CXL_BUS=m && EDAC=m) to fix this. > > >Fan > > Thanks, Shiju