missing export of cpu_2_node
PATCH 1/1 missing export of cpu_2_node
Hi -
While compiling on a NUMAQ with st as a module, cpu_2_node comes up as undefined:
WARNING: /lib/modules/2.6.2-rc2/kernel/drivers/scsi/st.ko needs unknown symbol cpu_2_node
This patch exports cpu_2_node.
===== arch/i386/kernel/smpboot.c 1.67 vs edited =====
arch/i386/kernel/smpboot.c +2 -0
@@ -33,6 +33,7 @@* Dave Jones : Report invalid combinations of Athlon CPUs. * Rusty Russell : Hacked into shape for new "hotplug" boot process. */ +#include <linux/module.h> #include <linux/config.h> #include <linux/init.h> #include <linux/kernel.h>
@@ -503,6 +504,7 @@ { [0 ... MAX_NUMNODES-1] = CPU_MASK_NONE };/* which node each logical CPU is on */ int cpu_2_node[NR_CPUS ] = { [0 ...NR_CPUS -1 ] =0 }; +EXPORT_SYMBOL (cpu_2_node);/* set up a mapping between cpu and node. */ static inline void map_cpu_to_node (int cpu,int node)
Quoted 5 lines · Patrick Mansfield
While compiling on a NUMAQ with st as a module,
cpu_2_nodecomes up as undefined:WARNING:
/lib/modules/2.6.2-rc2/kernel/drivers/scsi/st.koneeds unknown symbolcpu_2_node
I'm curious to know why st.o needs cpu_to_node(). I can't make it do it here. Can you check the cpp output and enlighten me?
Thanks.
Quoted 9 lines · Andrew Morton
Quoted 5 lines · Patrick Mansfield
While compiling on a NUMAQ with st as a module,
cpu_2_nodecomes up as undefined:WARNING:
/lib/modules/2.6.2-rc2/kernel/drivers/scsi/st.koneeds unknown symbolcpu_2_nodeI'm curious to know why st.o needs
cpu_to_node(). I can't make it do it here. Can you check the cpp output and enlighten me?
st.c usees alloc_pages(). include/linux/gfp.h:
#define alloc_pages(gfp_mask, order) \
alloc_pages_node(numa_node_id(), gfp_mask, order)
And in include/linux/mmzone.h:
#define numa_node_id() (cpu_to_node(smp_processor_id()))
And asm-i386/topology.h has:
static inline int cpu_to_node(int cpu)
{
return cpu_2_node[cpu];
}Also, here is my .config, maybe CONFIG_X86_NUMAQ must also be set to hit it?
CONFIG_X86=yCONFIG_MMU=yCONFIG_UID16=yCONFIG_GENERIC_ISA_DMA=y
CONFIG_EXPERIMENTAL=yCONFIG_BROKEN=yCONFIG_BROKEN_ON_SMP=y
CONFIG_SWAP=yCONFIG_SYSVIPC=yCONFIG_SYSCTL=yCONFIG_LOG_BUF_SHIFT=16CONFIG_IKCONFIG=yCONFIG_IKCONFIG_PROC=yCONFIG_KALLSYMS=yCONFIG_FUTEX=yCONFIG_EPOLL=yCONFIG_IOSCHED_NOOP=yCONFIG_IOSCHED_AS=yCONFIG_IOSCHED_DEADLINE=y
CONFIG_MODULES=yCONFIG_MODULE_UNLOAD=yCONFIG_MODULE_FORCE_UNLOAD=yCONFIG_OBSOLETE_MODPARM=yCONFIG_KMOD=y
CONFIG_X86_NUMAQ=yCONFIG_MPENTIUMIII=yCONFIG_X86_CMPXCHG=yCONFIG_X86_XADD=yCONFIG_X86_L1_CACHE_SHIFT=5CONFIG_RWSEM_XCHGADD_ALGORITHM=yCONFIG_X86_WP_WORKS_OK=yCONFIG_X86_INVLPG=yCONFIG_X86_BSWAP=yCONFIG_X86_POPAD_OK=yCONFIG_X86_GOOD_APIC=yCONFIG_X86_INTEL_USERCOPY=yCONFIG_X86_USE_PPRO_CHECKSUM=yCONFIG_HPET_TIMER=yCONFIG_SMP=yCONFIG_NR_CPUS=32CONFIG_X86_LOCAL_APIC=yCONFIG_X86_IO_APIC=yCONFIG_X86_CPUID=yCONFIG_HIGHMEM64G=yCONFIG_HIGHMEM=yCONFIG_X86_PAE=yCONFIG_NUMA=yCONFIG_DISCONTIGMEM=yCONFIG_HAVE_ARCH_BOOTMEM_NODE=yCONFIG_HIGHPTE=yCONFIG_HAVE_DEC_LOCK=y
CONFIG_ACPI_BOOT=y
CONFIG_PCI=yCONFIG_PCI_GOANY=yCONFIG_PCI_BIOS=yCONFIG_PCI_DIRECT=yCONFIG_PCI_LEGACY_PROC=yCONFIG_PCI_NAMES=yCONFIG_ISA=yCONFIG_HOTPLUG=y
CONFIG_PCMCIA_PROBE=y
CONFIG_BINFMT_ELF=yCONFIG_BINFMT_AOUT=yCONFIG_BINFMT_MISC=y
CONFIG_PNP=y
CONFIG_BLK_DEV_FD=yCONFIG_BLK_DEV_LOOP=yCONFIG_LBD=y
CONFIG_SCSI=yCONFIG_SCSI_PROC_FS=y
CONFIG_BLK_DEV_SD=yCONFIG_CHR_DEV_ST=mCONFIG_BLK_DEV_SR=mCONFIG_CHR_DEV_SG=m
CONFIG_SCSI_MULTI_LUN=yCONFIG_SCSI_REPORT_LUNS=yCONFIG_SCSI_CONSTANTS=yCONFIG_SCSI_LOGGING=y
CONFIG_SCSI_AIC7XXX=yCONFIG_AIC7XXX_CMDS_PER_DEVICE=32CONFIG_AIC7XXX_RESET_DELAY_MS=15000CONFIG_AIC7XXX_DEBUG_ENABLE=yCONFIG_AIC7XXX_DEBUG_MASK=0CONFIG_AIC7XXX_REG_PRETTY_PRINT=yCONFIG_SCSI_EATA_PIO=mCONFIG_SCSI_QLOGIC_ISP=yCONFIG_SCSI_QLA2XXX_CONFIG=yCONFIG_SCSI_QLA2XXX=mCONFIG_SCSI_QLA23XX=mCONFIG_SCSI_DEBUG=m
CONFIG_MD=yCONFIG_BLK_DEV_MD=yCONFIG_MD_LINEAR=yCONFIG_MD_RAID0=yCONFIG_MD_RAID1=yCONFIG_MD_RAID5=yCONFIG_MD_MULTIPATH=yCONFIG_BLK_DEV_DM=yCONFIG_DM_IOCTL_V4=y
CONFIG_IEEE1394=m
CONFIG_IEEE1394_OHCI1394=m
CONFIG_IEEE1394_SBP2=m
CONFIG_NET=y
CONFIG_PACKET=yCONFIG_UNIX=yCONFIG_INET=yCONFIG_IP_MULTICAST=y
CONFIG_IPV6_SCTP__=y
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
CONFIG_NET_ETHERNET=yCONFIG_MII=y
CONFIG_NET_TULIP=yCONFIG_TULIP=yCONFIG_TULIP_MWI=yCONFIG_TULIP_MMIO=yCONFIG_NET_PCI=yCONFIG_ADAPTEC_STARFIRE=y
CONFIG_INPUT=y
CONFIG_INPUT_MOUSEDEV=yCONFIG_INPUT_MOUSEDEV_PSAUX=yCONFIG_INPUT_MOUSEDEV_SCREEN_X=1024CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_SOUND_GAMEPORT=yCONFIG_SERIO=yCONFIG_SERIO_I8042=yCONFIG_SERIO_SERPORT=y
CONFIG_INPUT_KEYBOARD=yCONFIG_KEYBOARD_ATKBD=yCONFIG_INPUT_MOUSE=yCONFIG_MOUSE_PS2=yCONFIG_MOUSE_SERIAL=y
CONFIG_VT=yCONFIG_VT_CONSOLE=yCONFIG_HW_CONSOLE=y
CONFIG_SERIAL_8250=yCONFIG_SERIAL_8250_CONSOLE=yCONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_CORE=yCONFIG_SERIAL_CORE_CONSOLE=yCONFIG_UNIX98_PTYS=yCONFIG_UNIX98_PTY_COUNT=256
CONFIG_RAW_DRIVER=yCONFIG_MAX_RAW_DEVS=256
CONFIG_VIDEO_SELECT=y
CONFIG_VGA_CONSOLE=yCONFIG_DUMMY_CONSOLE=y
CONFIG_USB=mCONFIG_USB_DEBUG=y
CONFIG_USB_DEVICEFS=y
CONFIG_USB_EHCI_HCD=mCONFIG_USB_OHCI_HCD=mCONFIG_USB_UHCI_HCD=m
CONFIG_USB_STORAGE=mCONFIG_USB_STORAGE_DEBUG=y
CONFIG_EXT2_FS=yCONFIG_EXT3_FS=yCONFIG_EXT3_FS_XATTR=yCONFIG_JBD=yCONFIG_FS_MBCACHE=y
CONFIG_ISO9660_FS=y
CONFIG_PROC_FS=yCONFIG_PROC_KCORE=yCONFIG_DEVPTS_FS=yCONFIG_TMPFS=yCONFIG_RAMFS=y
CONFIG_MSDOS_PARTITION=y
CONFIG_NLS=yCONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_PROFILING=yCONFIG_OPROFILE=y
CONFIG_DEBUG_KERNEL=yCONFIG_MAGIC_SYSRQ=yCONFIG_X86_FIND_SMP_CONFIG=yCONFIG_X86_MPPARSE=y
CONFIG_CRC32=yCONFIG_X86_SMP=yCONFIG_X86_HT=yCONFIG_X86_BIOS_REBOOT=yCONFIG_X86_TRAMPOLINE=yCONFIG_PC=y