update generic_defconfig to support sn2.
PATCH 2/2 update generic_defconfig to support sn2.
This patch changes the generic_defconfig so it works on all sn2 platforms I have access to. There is only one support configuration which was not tested and that configuration is only a combination of two tested configurations. With this patchset applied, a generic kernel can be booted on either a RHEL 5.2, RHEL5.3, or SLES10 SP1 root and operate. All features needed by SGI's ProPack are also working. I have not tested all features of RHEL or SLES, but they do at least boot.
Index: contention_unroll/arch/ia64/configs/generic_defconfig
=================================--- contention_unroll.orig/arch/ia64/configs/generic_defconfig 2008-08-02 13:16:56.135972118 -0500
+++ contention_unroll/arch/ia64/configs/generic_defconfig 2008-08-02 13:24:13.322305570 -0500
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit # Linux kernel version: 2.6.27-rc1
-# Fri Aug 1 19:33:14 2008
+# Sat Aug 2 13:24:08 2008
# CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -23,10 +23,17 @@ CONFIG_POSIX_MQUEUE=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT
-# CONFIG_CGROUPS is not set +CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+# CONFIG_CGROUP_NS is not set
+# CONFIG_CGROUP_DEVICE is not set +CONFIG_CPUSETS=y
# CONFIG_GROUP_SCHED is not set
+# CONFIG_CGROUP_CPUACCT is not set
+# CONFIG_RESOURCE_COUNTERS is not set
CONFIG_SYSFS_DEPRECATED=y CONFIG_SYSFS_DEPRECATED_V2=y
+CONFIG_PROC_PID_CPUSET=y
# CONFIG_RELAY is not set CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set
@@ -130,6 +137,7 @@ CONFIG_DMI=y
CONFIG_EFI=y
CONFIG_GENERIC_IOMAP=y CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
+CONFIG_IA64_UNCACHED_ALLOCATOR=y
CONFIG_AUDIT_ARCH=y
CONFIG_IA64_GENERIC=y
# CONFIG_IA64_DIG is not set
@@ -158,7 +166,7 @@ CONFIG_IOSAPIC=y
CONFIG_FORCE_MAX_ZONEORDER
# CONFIG_VIRT_CPU_ACCOUNTING is not set CONFIG_SMP=y
-CONFIG_NR_CPUSQ2
+CONFIG_NR_CPUS@96
CONFIG_HOTPLUG_CPU=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -369,7 +377,8 @@ CONFIG_EXTRA_FIRMWARE=""
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
-# CONFIG_CONNECTOR is not set +CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
# CONFIG_MTD is not set
# CONFIG_PARPORT is not set
CONFIG_PNP=y
@@ -403,7 +412,7 @@ CONFIG_MISC_DEVICES=y
CONFIG_SGI_IOC4=y
# CONFIG_TIFM_CORE is not set
# CONFIG_ENCLOSURE_SERVICES is not set
-# CONFIG_SGI_XP is not set
+CONFIG_SGI_XP=m
# CONFIG_HP_ILO is not set
CONFIG_SGI_GRU=m
# CONFIG_SGI_GRU_DEBUG is not set
@@ -1172,7 +1181,7 @@ CONFIG_INFINIBAND_IPOIB_DEBUG=y
# CONFIG_RTC_CLASS is not set
# CONFIG_DMADEVICES is not set
# CONFIG_UIO is not set
-# CONFIG_MSPEC is not set
+CONFIG_MSPEC=m
#
# File systems
@@ -1375,6 +1384,7 @@ CONFIG_CRC_ITU_T=m
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
+CONFIG_GENERIC_ALLOCATOR=y
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
I've locally applied these config updates, but I ran into a regression while running my usual set of test builds.
I build a few uniprocessor configs (by taking files from arch/ia64/configs/ and turning off CONFIG_SMP). The resulting uniprocessor generic_defconfig fails to build with:
drivers/misc/sgi-gru/grutables.h:308: error: field `ms_notifier' has incomplete type
I tried this:
drivers/misc/Kconfig +1 -1
@@ -430,7 +430,7 @@ config SGI_XP depends on IA64_GENERIC || IA64_SGI_SN2 || IA64_SGI_UV || (X86_64 && SMP) select IA64_UNCACHED_ALLOCATOR if IA64_GENERIC || IA64_SGI_SN2 select GENERIC_ALLOCATOR if IA64_GENERIC || IA64_SGI_SN2 - select SGI_GRU if IA64_GENERIC || IA64_SGI_UV || (X86_64 && SMP) + select SGI_GRU if (IA64_GENERIC || IA64_SGI_UV || X86_64) && SMP ---help--- An SGI machine can be divided into multiple Single System Images which act independently of each other and have
As an obvious fix (if SMP is required on X86, then surely it is also required for other arches too). But that just let the build get a bit further until here:
Building modules, stage 2.
MODPOST 163 modules
ERROR: "gru_free_message" [drivers/misc/sgi-xp/xpc.ko] undefined!
ERROR: "gru_get_next_message" [drivers/misc/sgi-xp/xpc.ko] undefined!
ERROR: "gru_send_message_gpa" [drivers/misc/sgi-xp/xpc.ko] undefined!
ERROR: "gru_create_message_queue" [drivers/misc/sgi-xp/xpc.ko] undefined!
ERROR: "gru_copy_gpa" [drivers/misc/sgi-xp/xp.ko] undefined!
So there is obviously something else needed.
-Tony
Quoted 16 lines · Tony
I've locally applied these config updates, but I ran into a regression while running my usual set of test builds.
I build a few uniprocessor configs (by taking files from
arch/ia64/configs/and turning offCONFIG_SMP). The resulting uniprocessorgeneric_defconfigfails to build with:
drivers/misc/sgi-gru/grutables.h:308: error: field `ms_notifier' has incomplete typeI tried this:
drivers/misc/Kconfig +0
-0
drivers/misc/Kconfig config SGI_XP · line 433
Quoted 5 lines
drivers/misc/Kconfig +1
-1@@ -430,7 +430,7 @@ config SGI_XP depends on IA64_GENERIC || IA64_SGI_SN2 || IA64_SGI_UV || (X86_64 && SMP) select IA64_UNCACHED_ALLOCATOR if IA64_GENERIC || IA64_SGI_SN2 select GENERIC_ALLOCATOR if IA64_GENERIC || IA64_SGI_SN2 - select SGI_GRU if IA64_GENERIC || IA64_SGI_UV || (X86_64 && SMP) + select SGI_GRU if (IA64_GENERIC || IA64_SGI_UV || X86_64) && SMP
Wouldn't this allow a !SMP build to not select GRU? That is not correct. I think this is more a depends on thing, but Dean/Jack are more appropriate for that question.
Robin
Quoted 11 lines · Robin Holt
Quoted 10 lines · Tony
I've locally applied these config updates, but I ran into a regression while running my usual set of test builds.
I build a few uniprocessor configs (by taking files from
arch/ia64/configs/and turning offCONFIG_SMP). The resulting uniprocessorgeneric_defconfigfails to build with:
drivers/misc/sgi-gru/grutables.h:308: error: field `ms_notifier' has incomplete type
Quoted 15 lines
drivers/misc/Kconfig config SGI_XP · line 433
Quoted 11 lines
I tried this:
drivers/misc/Kconfig +1
-1@@ -430,7 +430,7 @@ config SGI_XP depends on IA64_GENERIC || IA64_SGI_SN2 || IA64_SGI_UV || (X86_64 && SMP) select IA64_UNCACHED_ALLOCATOR if IA64_GENERIC || IA64_SGI_SN2 select GENERIC_ALLOCATOR if IA64_GENERIC || IA64_SGI_SN2 - select SGI_GRU if IA64_GENERIC || IA64_SGI_UV || (X86_64 && SMP) + select SGI_GRU if (IA64_GENERIC || IA64_SGI_UV || X86_64) && SMPWouldn't this allow a !SMP build to not select GRU? That is not correct. I think this is more a depends on thing, but Dean/Jack are more appropriate for that question.
Dean and I just talked. We think it should really be:
depends on (IA64_GENERIC || IA64_SGI_SN2 || IA64_SGI_UV || X86_64) && SMP
select IA64_UNCACHED_ALLOCATOR if IA64_GENERIC || IA64_SGI_SN2
select GENERIC_ALLOCATOR if IA64_GENERIC || IA64_SGI_SN2
select SGI_GRU if (IA64_GENERIC || IA64_SGI_UV || X86_64) && SMPCould you give it a try? If not, Dean or I can try it tomorrow.
Thanks,
Robin
Quoted 8 lines
Dean and I just talked. We think it should really be:
depends on (IA64_GENERIC || IA64_SGI_SN2 || IA64_SGI_UV || X86_64) && SMP select IA64_UNCACHED_ALLOCATOR if IA64_GENERIC || IA64_SGI_SN2 select GENERIC_ALLOCATOR if IA64_GENERIC || IA64_SGI_SN2 select SGI_GRU if (IA64_GENERIC || IA64_SGI_UV || X86_64) && SMPCould you give it a try? If not, Dean or I can try it tomorrow.
Yes. That works (not sure why I didn't manage to spot what is almost the same messed up expression just three lines above the one that I did see).
I'll fix it like that. Thanks.
-Tony