2007-10-25 19:55:22

by Sam Ravnborg

[permalink] [raw]
Subject: [PATCH 0/6] kill i386 and x86_64 directories

This series kill the old i386 and x86_64 directories.
The relevant files are moved and adapted and
Kconfig.debug was consolidated (thanks to Randy).

I had to modify both the top-lvel Makefile and the kconfig
Makefile to accomplish this. It was done in such a way that
it is trivial for other archs to use the same mechanism
should they have the need.

To solve the defconfig issue (i386 and x86_64 cannot share one)
the arch/x86/configs/ directory were introduced. This has
been used by other archs for some time now but x86 had not had
the need until now.

The Kconfig files could be consolidated much more - I only
did the minimal changes to make it work in the new place.

Total diffstat (in git format):

Makefile | 7 ++-
arch/i386/.gitignore | 1 -
arch/{i386 => x86}/Kconfig.cpu | 0
arch/{i386 => x86}/Kconfig.debug | 51 +++++++++++++---
arch/{i386/Kconfig => x86/Kconfig.i386} | 4 +-
arch/{x86_64/Kconfig => x86/Kconfig.x86_64} | 6 +--
arch/x86/Makefile | 16 +++++
arch/{i386/Makefile => x86/Makefile_32} | 7 +--
arch/{i386/Makefile.cpu => x86/Makefile_32.cpu} | 0
arch/{x86_64/Makefile => x86/Makefile_64} | 5 +-
.../{i386/defconfig => x86/configs/i386_defconfig} | 0
.../defconfig => x86/configs/x86_64_defconfig} | 0
arch/x86_64/.gitignore | 1 -
arch/x86_64/Kconfig.debug | 61 --------------------
scripts/kconfig/Makefile | 35 +++++++-----
15 files changed, 89 insertions(+), 105 deletions(-)

Patches follows.
The full serie can be pulled from:

git://git.kernel.org/pub/scm/linux/kernel/git/sam/x86.git

Note: The serie were slightly modfied compared to the fist published
version.

Sam


2007-10-25 20:01:36

by Sam Ravnborg

[permalink] [raw]
Subject: [PATCH 1/6] x86: move i386 and x86_64 Makefiles to arch/x86

>From 9d80894bef9805c70795f73ce1758d2a9e4cb077 Mon Sep 17 00:00:00 2001
From: Sam Ravnborg <[email protected]>
Date: Thu, 25 Oct 2007 19:42:04 +0200
Subject: [PATCH] x86: move i386 and x86_64 Makefiles to arch/x86

Moving the ARCH specific Makefiles for i386 and x86_64
required a litle bit tweaking in the top-lvel Makefile.

SRCARCH is now set in the top-level Makefile
because we need this info to include the correct
arch Makefile.

Signed-off-by: Sam Ravnborg <[email protected]>
---
Makefile | 7 +++++--
arch/x86/Makefile | 13 +++++++++++++
arch/{i386/Makefile => x86/Makefile_32} | 7 ++-----
arch/{i386/Makefile.cpu => x86/Makefile_32.cpu} | 0
arch/{x86_64/Makefile => x86/Makefile_64} | 5 +----
5 files changed, 21 insertions(+), 11 deletions(-)
create mode 100644 arch/x86/Makefile
rename arch/{i386/Makefile => x86/Makefile_32} (98%)
rename arch/{i386/Makefile.cpu => x86/Makefile_32.cpu} (100%)
rename arch/{x86_64/Makefile => x86/Makefile_64} (99%)

diff --git a/Makefile b/Makefile
index 2a47290..8816060 100644
--- a/Makefile
+++ b/Makefile
@@ -196,6 +196,9 @@ CROSS_COMPILE ?=
UTS_MACHINE := $(ARCH)
SRCARCH := $(ARCH)

+# for i386 and x86_64 we use SRCARCH equal to x86
+SRCARCH := $(if $(filter x86_64 i386,$(SRCARCH)),x86,$(SRCARCH))
+
KCONFIG_CONFIG ?= .config

# SHELL used by kbuild
@@ -418,7 +421,7 @@ ifeq ($(config-targets),1)
# Read arch specific Makefile to set KBUILD_DEFCONFIG as needed.
# KBUILD_DEFCONFIG may point out an alternative default configuration
# used for 'make defconfig'
-include $(srctree)/arch/$(ARCH)/Makefile
+include $(srctree)/arch/$(SRCARCH)/Makefile
export KBUILD_DEFCONFIG

config %config: scripts_basic outputmakefile FORCE
@@ -497,7 +500,7 @@ else
KBUILD_CFLAGS += -O2
endif

-include $(srctree)/arch/$(ARCH)/Makefile
+include $(srctree)/arch/$(SRCARCH)/Makefile

ifdef CONFIG_FRAME_POINTER
KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
new file mode 100644
index 0000000..65077d7
--- /dev/null
+++ b/arch/x86/Makefile
@@ -0,0 +1,13 @@
+# Unified Makefile for i386 and x86_64
+
+# No need to remake these files
+$(srctree)/arch/x86/Makefile%: ;
+
+ifeq ($(ARCH),i386)
+ include $(srctree)/arch/x86/Makefile_32
+else
+ include $(srctree)/arch/x86/Makefile_64
+endif
+
+
+
diff --git a/arch/i386/Makefile b/arch/x86/Makefile_32
similarity index 98%
rename from arch/i386/Makefile
rename to arch/x86/Makefile_32
index f5b9a37..346ac07 100644
--- a/arch/i386/Makefile
+++ b/arch/x86/Makefile_32
@@ -1,5 +1,5 @@
#
-# i386/Makefile
+# i386 Makefile
#
# This file is included by the global makefile so that you can add your own
# architecture-specific flags and dependencies. Remember to do have actions
@@ -17,9 +17,6 @@
# 20050320 Kianusch Sayah Karadji <[email protected]>
# Added support for GEODE CPU

-# Fill in SRCARCH
-SRCARCH := x86
-
# BITS is used as extension for files which are available in a 32 bit
# and a 64 bit version to simplify shared Makefiles.
# e.g.: obj-y += foo_$(BITS).o
@@ -46,7 +43,7 @@ KBUILD_CFLAGS += -pipe -msoft-float -mregparm=3 -freg-struct-return
KBUILD_CFLAGS += $(call cc-option,-mpreferred-stack-boundary=2)

# CPU-specific tuning. Anything which can be shared with UML should go here.
-include $(srctree)/arch/i386/Makefile.cpu
+include $(srctree)/arch/x86/Makefile_32.cpu

# temporary until string.h is fixed
cflags-y += -ffreestanding
diff --git a/arch/i386/Makefile.cpu b/arch/x86/Makefile_32.cpu
similarity index 100%
rename from arch/i386/Makefile.cpu
rename to arch/x86/Makefile_32.cpu
diff --git a/arch/x86_64/Makefile b/arch/x86/Makefile_64
similarity index 99%
rename from arch/x86_64/Makefile
rename to arch/x86/Makefile_64
index 20eb69b..57e714a 100644
--- a/arch/x86_64/Makefile
+++ b/arch/x86/Makefile_64
@@ -1,5 +1,5 @@
#
-# x86_64/Makefile
+# x86_64 Makefile
#
# This file is included by the global makefile so that you can add your own
# architecture-specific flags and dependencies. Remember to do have actions
@@ -21,9 +21,6 @@
#
# $Id: Makefile,v 1.31 2002/03/22 15:56:07 ak Exp $

-# Fill in SRCARCH
-SRCARCH := x86
-
# BITS is used as extension for files which are available in a 32 bit
# and a 64 bit version to simplify shared Makefiles.
# e.g.: obj-y += foo_$(BITS).o
--
1.5.3.4.1157.g0e74-dirty

2007-10-25 20:02:26

by Sam Ravnborg

[permalink] [raw]
Subject: [PATCH 2/6] x86: move defconfig files for i386 and x86_64 to x86

>From 81ee173db26217c54731bbc4c5b864fa01c6f28c Mon Sep 17 00:00:00 2001
From: Sam Ravnborg <[email protected]>
Date: Thu, 25 Oct 2007 20:31:19 +0200
Subject: [PATCH] x86: move defconfig files for i386 and x86_64 to x86

With some small changes to kconfig makefile we can now
locate the defconfig files for i386 and x86_64 in
the configs/ subdirectory under x86.
make ARCH=i386 defconfig and make defconfig
works as expected also after this change.
But arch maintainers shall now update a defconfig file in
the configs/ directory.

Signed-off-by: Sam Ravnborg <[email protected]>
---
arch/x86/Makefile | 5 ++++-
.../{i386/defconfig => x86/configs/i386_defconfig} | 0
.../defconfig => x86/configs/x86_64_defconfig} | 0
scripts/kconfig/Makefile | 6 +++---
4 files changed, 7 insertions(+), 4 deletions(-)
rename arch/{i386/defconfig => x86/configs/i386_defconfig} (100%)
rename arch/{x86_64/defconfig => x86/configs/x86_64_defconfig} (100%)

diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 65077d7..3095973 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -1,6 +1,9 @@
# Unified Makefile for i386 and x86_64

-# No need to remake these files
+# select defconfig based on actual architecture
+KBUILD_DEFCONFIG := $(ARCH)_defconfig
+
+# # No need to remake these files
$(srctree)/arch/x86/Makefile%: ;

ifeq ($(ARCH),i386)
diff --git a/arch/i386/defconfig b/arch/x86/configs/i386_defconfig
similarity index 100%
rename from arch/i386/defconfig
rename to arch/x86/configs/i386_defconfig
diff --git a/arch/x86_64/defconfig b/arch/x86/configs/x86_64_defconfig
similarity index 100%
rename from arch/x86_64/defconfig
rename to arch/x86/configs/x86_64_defconfig
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index 83c5e76..fbf39cc 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -60,12 +60,12 @@ defconfig: $(obj)/conf
ifeq ($(KBUILD_DEFCONFIG),)
$< -d arch/$(ARCH)/Kconfig
else
- @echo *** Default configuration is based on '$(KBUILD_DEFCONFIG)'
- $(Q)$< -D arch/$(ARCH)/configs/$(KBUILD_DEFCONFIG) arch/$(ARCH)/Kconfig
+ @echo "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'"
+ $(Q)$< -D arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) arch/$(ARCH)/Kconfig
endif

%_defconfig: $(obj)/conf
- $(Q)$< -D arch/$(ARCH)/configs/$@ arch/$(ARCH)/Kconfig
+ $(Q)$< -D arch/$(SRCARCH)/configs/$@ arch/$(ARCH)/Kconfig

# Help text used by make help
help:
--
1.5.3.4.1157.g0e74-dirty

2007-10-25 20:03:15

by Sam Ravnborg

[permalink] [raw]
Subject: [PATCH 3/6] x86: unification of i386 and x86_64 Kconfig.debug

>From 16b853f53463e43bfce341965ac10a78a3755a14 Mon Sep 17 00:00:00 2001
From: Randy Dunlap <[email protected]>
Date: Wed, 24 Oct 2007 15:50:43 -0700
Subject: [PATCH] x86: unification of i386 and x86_64 Kconfig.debug

Adding proper dependencies so the two Kconfig.debug files
are now identical.

Signed-off-by: Randy Dunlap <[email protected]>
Signed-off-by: Sam Ravnborg <[email protected]>
---
arch/i386/Kconfig.debug | 51 ++++++++++++++++++++++++++++-------
arch/x86_64/Kconfig | 4 ---
arch/{i386 => x86_64}/Kconfig.debug | 51 ++++++++++++++++++++++++++++-------
3 files changed, 82 insertions(+), 24 deletions(-)
copy arch/{i386 => x86_64}/Kconfig.debug (65%)

diff --git a/arch/i386/Kconfig.debug b/arch/i386/Kconfig.debug
index f03531e..970b2de 100644
--- a/arch/i386/Kconfig.debug
+++ b/arch/i386/Kconfig.debug
@@ -1,14 +1,14 @@
menu "Kernel hacking"

config TRACE_IRQFLAGS_SUPPORT
- bool
- default y
+ def_bool y

source "lib/Kconfig.debug"

config EARLY_PRINTK
bool "Early printk" if EMBEDDED && DEBUG_KERNEL
default y
+ depends on X86_32
help
Write kernel log output directly into the VGA buffer or to a serial
port.
@@ -37,10 +37,12 @@ config DEBUG_STACK_USAGE

comment "Page alloc debug is incompatible with Software Suspend on i386"
depends on DEBUG_KERNEL && HIBERNATION
+ depends on X86_32

config DEBUG_PAGEALLOC
bool "Debug page memory allocations"
depends on DEBUG_KERNEL && !HIBERNATION && !HUGETLBFS
+ depends on X86_32
help
Unmap pages from the kernel linear mapping after free_pages().
This results in a large slowdown, but helps to find certain types
@@ -59,6 +61,7 @@ config DEBUG_RODATA
config 4KSTACKS
bool "Use 4Kb for kernel stacks instead of 8Kb"
depends on DEBUG_KERNEL
+ depends on X86_32
help
If you say Y here the kernel will use a 4Kb stacksize for the
kernel stack attached to each process/thread. This facilitates
@@ -67,22 +70,50 @@ config 4KSTACKS
will also use IRQ stacks to compensate for the reduced stackspace.

config X86_FIND_SMP_CONFIG
- bool
+ def_bool y
depends on X86_LOCAL_APIC || X86_VOYAGER
- default y
+ depends on X86_32

config X86_MPPARSE
- bool
+ def_bool y
depends on X86_LOCAL_APIC && !X86_VISWS
- default y
+ depends on X86_32

config DOUBLEFAULT
default y
bool "Enable doublefault exception handler" if EMBEDDED
+ depends on X86_32
+ help
+ This option allows trapping of rare doublefault exceptions that
+ would otherwise cause a system to silently reboot. Disabling this
+ option saves about 4k and might cause you much additional grey
+ hair.
+
+config IOMMU_DEBUG
+ bool "Enable IOMMU debugging"
+ depends on IOMMU && DEBUG_KERNEL
+ depends on X86_64
help
- This option allows trapping of rare doublefault exceptions that
- would otherwise cause a system to silently reboot. Disabling this
- option saves about 4k and might cause you much additional grey
- hair.
+ Force the IOMMU to on even when you have less than 4GB of
+ memory and add debugging code. On overflow always panic. And
+ allow to enable IOMMU leak tracing. Can be disabled at boot
+ time with iommu=noforce. This will also enable scatter gather
+ list merging. Currently not recommended for production
+ code. When you use it make sure you have a big enough
+ IOMMU/AGP aperture. Most of the options enabled by this can
+ be set more finegrained using the iommu= command line
+ options. See Documentation/x86_64/boot-options.txt for more
+ details.
+
+config IOMMU_LEAK
+ bool "IOMMU leak tracing"
+ depends on DEBUG_KERNEL
+ depends on IOMMU_DEBUG
+ help
+ Add a simple leak tracer to the IOMMU code. This is useful when you
+ are debugging a buggy device driver that leaks IOMMU mappings.
+
+#config X86_REMOTE_DEBUG
+# bool "kgdb debugging stub"

endmenu
diff --git a/arch/x86_64/Kconfig b/arch/x86_64/Kconfig
index 308970a..1bc0268 100644
--- a/arch/x86_64/Kconfig
+++ b/arch/x86_64/Kconfig
@@ -97,10 +97,6 @@ config X86_CMPXCHG
bool
default y

-config EARLY_PRINTK
- bool
- default y
-
config GENERIC_ISA_DMA
bool
default y
diff --git a/arch/i386/Kconfig.debug b/arch/x86_64/Kconfig.debug
similarity index 65%
copy from arch/i386/Kconfig.debug
copy to arch/x86_64/Kconfig.debug
index f03531e..970b2de 100644
--- a/arch/i386/Kconfig.debug
+++ b/arch/x86_64/Kconfig.debug
@@ -1,14 +1,14 @@
menu "Kernel hacking"

config TRACE_IRQFLAGS_SUPPORT
- bool
- default y
+ def_bool y

source "lib/Kconfig.debug"

config EARLY_PRINTK
bool "Early printk" if EMBEDDED && DEBUG_KERNEL
default y
+ depends on X86_32
help
Write kernel log output directly into the VGA buffer or to a serial
port.
@@ -37,10 +37,12 @@ config DEBUG_STACK_USAGE

comment "Page alloc debug is incompatible with Software Suspend on i386"
depends on DEBUG_KERNEL && HIBERNATION
+ depends on X86_32

config DEBUG_PAGEALLOC
bool "Debug page memory allocations"
depends on DEBUG_KERNEL && !HIBERNATION && !HUGETLBFS
+ depends on X86_32
help
Unmap pages from the kernel linear mapping after free_pages().
This results in a large slowdown, but helps to find certain types
@@ -59,6 +61,7 @@ config DEBUG_RODATA
config 4KSTACKS
bool "Use 4Kb for kernel stacks instead of 8Kb"
depends on DEBUG_KERNEL
+ depends on X86_32
help
If you say Y here the kernel will use a 4Kb stacksize for the
kernel stack attached to each process/thread. This facilitates
@@ -67,22 +70,50 @@ config 4KSTACKS
will also use IRQ stacks to compensate for the reduced stackspace.

config X86_FIND_SMP_CONFIG
- bool
+ def_bool y
depends on X86_LOCAL_APIC || X86_VOYAGER
- default y
+ depends on X86_32

config X86_MPPARSE
- bool
+ def_bool y
depends on X86_LOCAL_APIC && !X86_VISWS
- default y
+ depends on X86_32

config DOUBLEFAULT
default y
bool "Enable doublefault exception handler" if EMBEDDED
+ depends on X86_32
+ help
+ This option allows trapping of rare doublefault exceptions that
+ would otherwise cause a system to silently reboot. Disabling this
+ option saves about 4k and might cause you much additional grey
+ hair.
+
+config IOMMU_DEBUG
+ bool "Enable IOMMU debugging"
+ depends on IOMMU && DEBUG_KERNEL
+ depends on X86_64
help
- This option allows trapping of rare doublefault exceptions that
- would otherwise cause a system to silently reboot. Disabling this
- option saves about 4k and might cause you much additional grey
- hair.
+ Force the IOMMU to on even when you have less than 4GB of
+ memory and add debugging code. On overflow always panic. And
+ allow to enable IOMMU leak tracing. Can be disabled at boot
+ time with iommu=noforce. This will also enable scatter gather
+ list merging. Currently not recommended for production
+ code. When you use it make sure you have a big enough
+ IOMMU/AGP aperture. Most of the options enabled by this can
+ be set more finegrained using the iommu= command line
+ options. See Documentation/x86_64/boot-options.txt for more
+ details.
+
+config IOMMU_LEAK
+ bool "IOMMU leak tracing"
+ depends on DEBUG_KERNEL
+ depends on IOMMU_DEBUG
+ help
+ Add a simple leak tracer to the IOMMU code. This is useful when you
+ are debugging a buggy device driver that leaks IOMMU mappings.
+
+#config X86_REMOTE_DEBUG
+# bool "kgdb debugging stub"

endmenu
--
1.5.3.4.1157.g0e74-dirty

2007-10-25 20:03:49

by Sam Ravnborg

[permalink] [raw]
Subject: [PATCH 4/6] kconfig: small code refactoring in kconfig Makefile

>From 7cadfc607d91f536996a46c186711c82378e75ec Mon Sep 17 00:00:00 2001
From: Sam Ravnborg <[email protected]>
Date: Thu, 25 Oct 2007 20:42:18 +0200
Subject: [PATCH] kconfig: small code refactoring in kconfig Makefile

Do not hardcode the arch/$(ARCH)/Kconfig name all over

Signed-off-by: Sam Ravnborg <[email protected]>
---
scripts/kconfig/Makefile | 28 +++++++++++++++-------------
1 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index fbf39cc..3c9db07 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -4,23 +4,25 @@

PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config

+Kconfig := arch/$(ARCH)/Kconfig
+
xconfig: $(obj)/qconf
- $< arch/$(ARCH)/Kconfig
+ $< $(Kconfig)

gconfig: $(obj)/gconf
- $< arch/$(ARCH)/Kconfig
+ $< $(Kconfig)

menuconfig: $(obj)/mconf
- $< arch/$(ARCH)/Kconfig
+ $< $(Kconfig)

config: $(obj)/conf
- $< arch/$(ARCH)/Kconfig
+ $< $(Kconfig)

oldconfig: $(obj)/conf
- $< -o arch/$(ARCH)/Kconfig
+ $< -o $(Kconfig)

silentoldconfig: $(obj)/conf
- $< -s arch/$(ARCH)/Kconfig
+ $< -s $(Kconfig)

# Create new linux.po file
# Adjust charset to UTF-8 in .po file to accept UTF-8 in Kconfig files
@@ -45,27 +47,27 @@ update-po-config: $(obj)/kxgettext
PHONY += randconfig allyesconfig allnoconfig allmodconfig defconfig

randconfig: $(obj)/conf
- $< -r arch/$(ARCH)/Kconfig
+ $< -r $(Kconfig)

allyesconfig: $(obj)/conf
- $< -y arch/$(ARCH)/Kconfig
+ $< -y $(Kconfig)

allnoconfig: $(obj)/conf
- $< -n arch/$(ARCH)/Kconfig
+ $< -n $(Kconfig)

allmodconfig: $(obj)/conf
- $< -m arch/$(ARCH)/Kconfig
+ $< -m $(Kconfig)

defconfig: $(obj)/conf
ifeq ($(KBUILD_DEFCONFIG),)
- $< -d arch/$(ARCH)/Kconfig
+ $< -d $(Kconfig)
else
@echo "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'"
- $(Q)$< -D arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) arch/$(ARCH)/Kconfig
+ $(Q)$< -D arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
endif

%_defconfig: $(obj)/conf
- $(Q)$< -D arch/$(SRCARCH)/configs/$@ arch/$(ARCH)/Kconfig
+ $(Q)$< -D arch/$(SRCARCH)/configs/$@ $(Kconfig)

# Help text used by make help
help:
--
1.5.3.4.1157.g0e74-dirty

2007-10-25 20:04:31

by Sam Ravnborg

[permalink] [raw]
Subject: [PATCH 5/6] x86: move i386 and x86_64 Kconfig files to x86 directory

>From 6654a98eb8587f0538904c9bdb9aeaf9d577f182 Mon Sep 17 00:00:00 2001
From: Sam Ravnborg <[email protected]>
Date: Thu, 25 Oct 2007 21:04:16 +0200
Subject: [PATCH] x86: move i386 and x86_64 Kconfig files to x86 directory

After a small change in kconfig Makefile we could
move all x86 Kconfig files to x86 directory.

Signed-off-by: Sam Ravnborg <[email protected]>
---
arch/{i386 => x86}/Kconfig.cpu | 0
arch/{i386 => x86}/Kconfig.debug | 0
arch/{i386/Kconfig => x86/Kconfig.i386} | 4 +-
arch/{x86_64/Kconfig => x86/Kconfig.x86_64} | 2 +-
arch/x86_64/Kconfig.debug | 119 ---------------------------
scripts/kconfig/Makefile | 7 ++-
6 files changed, 9 insertions(+), 123 deletions(-)
rename arch/{i386 => x86}/Kconfig.cpu (100%)
rename arch/{i386 => x86}/Kconfig.debug (100%)
rename arch/{i386/Kconfig => x86/Kconfig.i386} (99%)
rename arch/{x86_64/Kconfig => x86/Kconfig.x86_64} (99%)
delete mode 100644 arch/x86_64/Kconfig.debug

diff --git a/arch/i386/Kconfig.cpu b/arch/x86/Kconfig.cpu
similarity index 100%
rename from arch/i386/Kconfig.cpu
rename to arch/x86/Kconfig.cpu
diff --git a/arch/i386/Kconfig.debug b/arch/x86/Kconfig.debug
similarity index 100%
rename from arch/i386/Kconfig.debug
rename to arch/x86/Kconfig.debug
diff --git a/arch/i386/Kconfig b/arch/x86/Kconfig.i386
similarity index 99%
rename from arch/i386/Kconfig
rename to arch/x86/Kconfig.i386
index b4437ce..7331efe 100644
--- a/arch/i386/Kconfig
+++ b/arch/x86/Kconfig.i386
@@ -287,7 +287,7 @@ config ES7000_CLUSTERED_APIC
default y
depends on SMP && X86_ES7000 && MPENTIUMIII

-source "arch/i386/Kconfig.cpu"
+source "arch/x86/Kconfig.cpu"

config HPET_TIMER
bool "HPET Timer Support"
@@ -1272,7 +1272,7 @@ source "fs/Kconfig"

source "kernel/Kconfig.instrumentation"

-source "arch/i386/Kconfig.debug"
+source "arch/x86/Kconfig.debug"

source "security/Kconfig"

diff --git a/arch/x86_64/Kconfig b/arch/x86/Kconfig.x86_64
similarity index 99%
rename from arch/x86_64/Kconfig
rename to arch/x86/Kconfig.x86_64
index 1bc0268..04b8095 100644
--- a/arch/x86_64/Kconfig
+++ b/arch/x86/Kconfig.x86_64
@@ -831,7 +831,7 @@ source fs/Kconfig

source "kernel/Kconfig.instrumentation"

-source "arch/x86_64/Kconfig.debug"
+source "arch/x86/Kconfig.debug"

source "security/Kconfig"

diff --git a/arch/x86_64/Kconfig.debug b/arch/x86_64/Kconfig.debug
deleted file mode 100644
index 970b2de..0000000
--- a/arch/x86_64/Kconfig.debug
+++ /dev/null
@@ -1,119 +0,0 @@
-menu "Kernel hacking"
-
-config TRACE_IRQFLAGS_SUPPORT
- def_bool y
-
-source "lib/Kconfig.debug"
-
-config EARLY_PRINTK
- bool "Early printk" if EMBEDDED && DEBUG_KERNEL
- default y
- depends on X86_32
- help
- Write kernel log output directly into the VGA buffer or to a serial
- port.
-
- This is useful for kernel debugging when your machine crashes very
- early before the console code is initialized. For normal operation
- it is not recommended because it looks ugly and doesn't cooperate
- with klogd/syslogd or the X server. You should normally N here,
- unless you want to debug such a crash.
-
-config DEBUG_STACKOVERFLOW
- bool "Check for stack overflows"
- depends on DEBUG_KERNEL
- help
- This option will cause messages to be printed if free stack space
- drops below a certain limit.
-
-config DEBUG_STACK_USAGE
- bool "Stack utilization instrumentation"
- depends on DEBUG_KERNEL
- help
- Enables the display of the minimum amount of free stack which each
- task has ever had available in the sysrq-T and sysrq-P debug output.
-
- This option will slow down process creation somewhat.
-
-comment "Page alloc debug is incompatible with Software Suspend on i386"
- depends on DEBUG_KERNEL && HIBERNATION
- depends on X86_32
-
-config DEBUG_PAGEALLOC
- bool "Debug page memory allocations"
- depends on DEBUG_KERNEL && !HIBERNATION && !HUGETLBFS
- depends on X86_32
- help
- Unmap pages from the kernel linear mapping after free_pages().
- This results in a large slowdown, but helps to find certain types
- of memory corruptions.
-
-config DEBUG_RODATA
- bool "Write protect kernel read-only data structures"
- depends on DEBUG_KERNEL
- help
- Mark the kernel read-only data as write-protected in the pagetables,
- in order to catch accidental (and incorrect) writes to such const
- data. This option may have a slight performance impact because a
- portion of the kernel code won't be covered by a 2MB TLB anymore.
- If in doubt, say "N".
-
-config 4KSTACKS
- bool "Use 4Kb for kernel stacks instead of 8Kb"
- depends on DEBUG_KERNEL
- depends on X86_32
- help
- If you say Y here the kernel will use a 4Kb stacksize for the
- kernel stack attached to each process/thread. This facilitates
- running more threads on a system and also reduces the pressure
- on the VM subsystem for higher order allocations. This option
- will also use IRQ stacks to compensate for the reduced stackspace.
-
-config X86_FIND_SMP_CONFIG
- def_bool y
- depends on X86_LOCAL_APIC || X86_VOYAGER
- depends on X86_32
-
-config X86_MPPARSE
- def_bool y
- depends on X86_LOCAL_APIC && !X86_VISWS
- depends on X86_32
-
-config DOUBLEFAULT
- default y
- bool "Enable doublefault exception handler" if EMBEDDED
- depends on X86_32
- help
- This option allows trapping of rare doublefault exceptions that
- would otherwise cause a system to silently reboot. Disabling this
- option saves about 4k and might cause you much additional grey
- hair.
-
-config IOMMU_DEBUG
- bool "Enable IOMMU debugging"
- depends on IOMMU && DEBUG_KERNEL
- depends on X86_64
- help
- Force the IOMMU to on even when you have less than 4GB of
- memory and add debugging code. On overflow always panic. And
- allow to enable IOMMU leak tracing. Can be disabled at boot
- time with iommu=noforce. This will also enable scatter gather
- list merging. Currently not recommended for production
- code. When you use it make sure you have a big enough
- IOMMU/AGP aperture. Most of the options enabled by this can
- be set more finegrained using the iommu= command line
- options. See Documentation/x86_64/boot-options.txt for more
- details.
-
-config IOMMU_LEAK
- bool "IOMMU leak tracing"
- depends on DEBUG_KERNEL
- depends on IOMMU_DEBUG
- help
- Add a simple leak tracer to the IOMMU code. This is useful when you
- are debugging a buggy device driver that leaks IOMMU mappings.
-
-#config X86_REMOTE_DEBUG
-# bool "kgdb debugging stub"
-
-endmenu
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index 3c9db07..5959412 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -4,7 +4,12 @@

PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config

-Kconfig := arch/$(ARCH)/Kconfig
+# If a arch/$(SRCARCH)/Kconfig.$(ARCH) file exist use it
+ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/Kconfig.$(ARCH)),)
+ Kconfig := arch/$(SRCARCH)/Kconfig.$(ARCH)
+else
+ Kconfig := arch/$(SRCARCH)/Kconfig
+endif

xconfig: $(obj)/qconf
$< $(Kconfig)
--
1.5.3.4.1157.g0e74-dirty

2007-10-25 20:05:07

by Sam Ravnborg

[permalink] [raw]
Subject: [PATCH 6/6] x86: kill the old i386 and x86_64 directories

>From c54efdb8c66e1850be60e2320a24c96957c87372 Mon Sep 17 00:00:00 2001
From: Sam Ravnborg <[email protected]>
Date: Thu, 25 Oct 2007 21:06:56 +0200
Subject: [PATCH] x86: kill the old i386 and x86_64 directories

The last remaining bits were two .gitignore files.
Deleting them and we have no more use of the directories.

git will most likely not delete the directories for
you, so this is a thing to do manually (or create a fresh clone).

Signed-off-by: Sam Ravnborg <[email protected]>
---
arch/i386/.gitignore | 1 -
arch/x86_64/.gitignore | 1 -
2 files changed, 0 insertions(+), 2 deletions(-)
delete mode 100644 arch/i386/.gitignore
delete mode 100644 arch/x86_64/.gitignore

diff --git a/arch/i386/.gitignore b/arch/i386/.gitignore
deleted file mode 100644
index 36ef4c3..0000000
--- a/arch/i386/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-boot
diff --git a/arch/x86_64/.gitignore b/arch/x86_64/.gitignore
deleted file mode 100644
index 36ef4c3..0000000
--- a/arch/x86_64/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-boot
--
1.5.3.4.1157.g0e74-dirty

2007-10-25 20:13:20

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH 0/6] kill i386 and x86_64 directories

On Thu, Oct 25, 2007 at 09:56:44PM +0200, Sam Ravnborg wrote:
> This series kill the old i386 and x86_64 directories.
> The relevant files are moved and adapted and
> Kconfig.debug was consolidated (thanks to Randy).
>
> I had to modify both the top-lvel Makefile and the kconfig
> Makefile to accomplish this. It was done in such a way that
> it is trivial for other archs to use the same mechanism
> should they have the need.
>
> To solve the defconfig issue (i386 and x86_64 cannot share one)
> the arch/x86/configs/ directory were introduced. This has
> been used by other archs for some time now but x86 had not had
> the need until now.
>
> The Kconfig files could be consolidated much more - I only
> did the minimal changes to make it work in the new place.
>
> Total diffstat (in git format):
>
> Makefile | 7 ++-
> arch/i386/.gitignore | 1 -
> arch/{i386 => x86}/Kconfig.cpu | 0
> arch/{i386 => x86}/Kconfig.debug | 51 +++++++++++++---
> arch/{i386/Kconfig => x86/Kconfig.i386} | 4 +-
> arch/{x86_64/Kconfig => x86/Kconfig.x86_64} | 6 +--
> arch/x86/Makefile | 16 +++++
> arch/{i386/Makefile => x86/Makefile_32} | 7 +--
> arch/{i386/Makefile.cpu => x86/Makefile_32.cpu} | 0
> arch/{x86_64/Makefile => x86/Makefile_64} | 5 +-
> .../{i386/defconfig => x86/configs/i386_defconfig} | 0
> .../defconfig => x86/configs/x86_64_defconfig} | 0
> arch/x86_64/.gitignore | 1 -
> arch/x86_64/Kconfig.debug | 61 --------------------
> scripts/kconfig/Makefile | 35 +++++++-----
> 15 files changed, 89 insertions(+), 105 deletions(-)
>

By the way I consider this -rc1 material.
Because:
1) It sort of finishes the initial merge
2) Any breakage should be easy to trigger (build breakage) and easy to fix.

It is 1) that make me say this is -rc1 materail,
and 2) that say that this is an acceptable 'breaking the rules' patch serie.

Sam

2007-10-25 20:18:19

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH 0/6] kill i386 and x86_64 directories

Sam,

On Thu, 25 Oct 2007, Sam Ravnborg wrote:
> This series kill the old i386 and x86_64 directories.
> The relevant files are moved and adapted and
> Kconfig.debug was consolidated (thanks to Randy).
>
> I had to modify both the top-lvel Makefile and the kconfig
> Makefile to accomplish this. It was done in such a way that
> it is trivial for other archs to use the same mechanism
> should they have the need.
>
> To solve the defconfig issue (i386 and x86_64 cannot share one)
> the arch/x86/configs/ directory were introduced. This has
> been used by other archs for some time now but x86 had not had
> the need until now.
>
> The Kconfig files could be consolidated much more - I only
> did the minimal changes to make it work in the new place.

Thanks for doing this.

I think the last remaining bit to cleanup is the symlink from
arch/x86/boot/bzImage. Now that the old directories are gone it does
not make much sense to keep them alive. Andrew will survive it :)

Please send it Linus wards and feel free to add my Acked-by to all of
them.

Thanks,

tglx

2007-10-25 20:20:06

by Kay Sievers

[permalink] [raw]
Subject: Re: [PATCH 0/6] kill i386 and x86_64 directories

On 10/25/07, Sam Ravnborg <[email protected]> wrote:
> On Thu, Oct 25, 2007 at 09:56:44PM +0200, Sam Ravnborg wrote:
> > This series kill the old i386 and x86_64 directories.
> > The relevant files are moved and adapted and
> > Kconfig.debug was consolidated (thanks to Randy).
> >
> > I had to modify both the top-lvel Makefile and the kconfig
> > Makefile to accomplish this. It was done in such a way that
> > it is trivial for other archs to use the same mechanism
> > should they have the need.
> >
> > To solve the defconfig issue (i386 and x86_64 cannot share one)
> > the arch/x86/configs/ directory were introduced. This has
> > been used by other archs for some time now but x86 had not had
> > the need until now.
> >
> > The Kconfig files could be consolidated much more - I only
> > did the minimal changes to make it work in the new place.
> >
> > Total diffstat (in git format):
> >
> > Makefile | 7 ++-
> > arch/i386/.gitignore | 1 -
> > arch/{i386 => x86}/Kconfig.cpu | 0
> > arch/{i386 => x86}/Kconfig.debug | 51 +++++++++++++---
> > arch/{i386/Kconfig => x86/Kconfig.i386} | 4 +-
> > arch/{x86_64/Kconfig => x86/Kconfig.x86_64} | 6 +--
> > arch/x86/Makefile | 16 +++++
> > arch/{i386/Makefile => x86/Makefile_32} | 7 +--
> > arch/{i386/Makefile.cpu => x86/Makefile_32.cpu} | 0
> > arch/{x86_64/Makefile => x86/Makefile_64} | 5 +-
> > .../{i386/defconfig => x86/configs/i386_defconfig} | 0
> > .../defconfig => x86/configs/x86_64_defconfig} | 0
> > arch/x86_64/.gitignore | 1 -
> > arch/x86_64/Kconfig.debug | 61 --------------------
> > scripts/kconfig/Makefile | 35 +++++++-----
> > 15 files changed, 89 insertions(+), 105 deletions(-)
> >
>
> By the way I consider this -rc1 material.
> Because:
> 1) It sort of finishes the initial merge
> 2) Any breakage should be easy to trigger (build breakage) and easy to fix.
>
> It is 1) that make me say this is -rc1 materail,
> and 2) that say that this is an acceptable 'breaking the rules' patch serie.

Hey Sam,
I get this after a simple pull from your tree and a: make clean; make:
LD init/built-in.o
LD .tmp_vmlinux1
arch/x86/kernel/head_64.o: In function `early_idt_handler':
(.text.head+0x1e5): undefined reference to `early_printk'
arch/x86/kernel/head64.o: In function `x86_64_start_kernel':
head64.c:(.init.text+0xa8): undefined reference to `early_printk'
arch/x86/kernel/built-in.o: In function `early_panic':
(.text+0x9c07): undefined reference to `early_printk'
arch/x86/mm/built-in.o: In function `init_memory_mapping':
(.init.text+0xc0a): undefined reference to `early_printk'
make: *** [.tmp_vmlinux1] Error 1

Cheers,
Kay

2007-10-25 20:34:53

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH 0/6] kill i386 and x86_64 directories

On Thu, Oct 25, 2007 at 10:19:40PM +0200, Kay Sievers wrote:
> > Because:
> > 1) It sort of finishes the initial merge
> > 2) Any breakage should be easy to trigger (build breakage) and easy to fix.
> >
> > It is 1) that make me say this is -rc1 materail,
> > and 2) that say that this is an acceptable 'breaking the rules' patch serie.
>
> Hey Sam,
> I get this after a simple pull from your tree and a: make clean; make:
> LD init/built-in.o
> LD .tmp_vmlinux1
> arch/x86/kernel/head_64.o: In function `early_idt_handler':
> (.text.head+0x1e5): undefined reference to `early_printk'
> arch/x86/kernel/head64.o: In function `x86_64_start_kernel':
> head64.c:(.init.text+0xa8): undefined reference to `early_printk'
> arch/x86/kernel/built-in.o: In function `early_panic':
> (.text+0x9c07): undefined reference to `early_printk'
> arch/x86/mm/built-in.o: In function `init_memory_mapping':
> (.init.text+0xc0a): undefined reference to `early_printk'
> make: *** [.tmp_vmlinux1] Error 1

I think this is my changes to the Kconfig.debug path
I received from Randy.

Checking....
Yup - reverting my change bring back EARLY_PRINTK wich is
always required on x86_64.

I will redo the series - and build test a bit more.
Thanks.

Sam

2007-10-25 21:11:22

by Sam Ravnborg

[permalink] [raw]
Subject: [GIT PULL] kill i386 and x86_64 directories

Hi Linus.

This patch serie kill the old i386 and x86_64 directories.
Introducing a few trivial changes in top-level Makefile
and kconfig Makefile allows us to move all files to
arch/x86/ where they belong.

Kay Sievers hit a bug in the first patch-set - this is now fixed and
the updated patch set is uploaded to my x86.git tree.
Build tested on both i386 and x86_64.
I test builded a few other archs just to check that I did not break them.

Shortlog:

Randy Dunlap (1):
x86: unification of i386 and x86_64 Kconfig.debug

Sam Ravnborg (5):
x86: move i386 and x86_64 Makefiles to arch/x86
x86: move defconfig files for i386 and x86_64 to x86
kconfig: small code refactoring in kconfig Makefile
x86: move i386 and x86_64 Kconfig files to x86 directory
x86: kill the old i386 and x86_64 directories

diffstat:

Makefile | 7 ++-
arch/i386/.gitignore | 1 -
arch/{i386 => x86}/Kconfig.cpu | 0
arch/{i386 => x86}/Kconfig.debug | 51 +++++++++++++---
arch/{i386/Kconfig => x86/Kconfig.i386} | 4 +-
arch/{x86_64/Kconfig => x86/Kconfig.x86_64} | 2 +-
arch/x86/Makefile | 16 +++++
arch/{i386/Makefile => x86/Makefile_32} | 7 +--
arch/{i386/Makefile.cpu => x86/Makefile_32.cpu} | 0
arch/{x86_64/Makefile => x86/Makefile_64} | 5 +-
.../{i386/defconfig => x86/configs/i386_defconfig} | 0
.../defconfig => x86/configs/x86_64_defconfig} | 0
arch/x86_64/.gitignore | 1 -
arch/x86_64/Kconfig.debug | 61 --------------------
scripts/kconfig/Makefile | 35 +++++++-----
15 files changed, 89 insertions(+), 101 deletions(-)

A nice patch serie that deletes more lines than it adds.

Under normal circumstances I would not send this to you after the
merge window but this serie give a good hint to the casual
reader that something changed now the directories are gone.
So they do not ask - why are so many files missing. Now they
will hunt for the new location.


Thomas wrote:
On Thu, Oct 25, 2007 at 10:17:53PM +0200, Thomas Gleixner wrote:
>
> Thanks for doing this.
>
> I think the last remaining bit to cleanup is the symlink from
> arch/x86/boot/bzImage. Now that the old directories are gone it does
> not make much sense to keep them alive. Andrew will survive it :)
>
> Please send it Linus wards and feel free to add my Acked-by to all of
> them.

I did not amend the serie to add his acked-by - but just kept it in this mail.

Please pull from:

git://git.kernel.org/pub/scm/linux/kernel/git/sam/x86.git


Sam

2007-10-25 23:30:59

by Yinghai Lu

[permalink] [raw]
Subject: Re: [PATCH 3/6] x86: unification of i386 and x86_64 Kconfig.debug

On 10/25/07, Sam Ravnborg <[email protected]> wrote:
> From 16b853f53463e43bfce341965ac10a78a3755a14 Mon Sep 17 00:00:00 2001
> From: Randy Dunlap <[email protected]>
> Date: Wed, 24 Oct 2007 15:50:43 -0700
> Subject: [PATCH] x86: unification of i386 and x86_64 Kconfig.debug
>
> Adding proper dependencies so the two Kconfig.debug files
> are now identical.
>
> Signed-off-by: Randy Dunlap <[email protected]>
> Signed-off-by: Sam Ravnborg <[email protected]>
> ---
> arch/i386/Kconfig.debug | 51 ++++++++++++++++++++++++++++-------
> arch/x86_64/Kconfig | 4 ---
> arch/{i386 => x86_64}/Kconfig.debug | 51 ++++++++++++++++++++++++++++-------
> 3 files changed, 82 insertions(+), 24 deletions(-)
> copy arch/{i386 => x86_64}/Kconfig.debug (65%)
>
> diff --git a/arch/i386/Kconfig.debug b/arch/i386/Kconfig.debug
> index f03531e..970b2de 100644
> --- a/arch/i386/Kconfig.debug
> +++ b/arch/i386/Kconfig.debug
> @@ -1,14 +1,14 @@
> menu "Kernel hacking"
>
> config TRACE_IRQFLAGS_SUPPORT
> - bool
> - default y
> + def_bool y
>
> source "lib/Kconfig.debug"
>
> config EARLY_PRINTK
> bool "Early printk" if EMBEDDED && DEBUG_KERNEL
> default y
> + depends on X86_32
> help
> Write kernel log output directly into the VGA buffer or to a serial
> port.
> @@ -37,10 +37,12 @@ config DEBUG_STACK_USAGE
...
> diff --git a/arch/x86_64/Kconfig b/arch/x86_64/Kconfig
> index 308970a..1bc0268 100644
> --- a/arch/x86_64/Kconfig
> +++ b/arch/x86_64/Kconfig
> @@ -97,10 +97,6 @@ config X86_CMPXCHG
> bool
> default y
>
> -config EARLY_PRINTK
> - bool
> - default y
> -
> config GENERIC_ISA_DMA
> bool
> default y
> diff --git a/arch/i386/Kconfig.debug b/arch/x86_64/Kconfig.debug
> similarity index 65%
> copy from arch/i386/Kconfig.debug
> copy to arch/x86_64/Kconfig.debug
> index f03531e..970b2de 100644
> --- a/arch/i386/Kconfig.debug
> +++ b/arch/x86_64/Kconfig.debug
> @@ -1,14 +1,14 @@
> menu "Kernel hacking"
>
> config TRACE_IRQFLAGS_SUPPORT
> - bool
> - default y
> + def_bool y
>
> source "lib/Kconfig.debug"
>
> config EARLY_PRINTK
> bool "Early printk" if EMBEDDED && DEBUG_KERNEL
> default y
> + depends on X86_32
> help
> Write kernel log output directly into the VGA buffer or to a serial
> port.
...

why disabling early_printk for x86_64?

YH

2007-10-25 23:35:52

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH 3/6] x86: unification of i386 and x86_64 Kconfig.debug

On Thu, 25 Oct 2007 16:30:48 -0700 Yinghai Lu wrote:

> On 10/25/07, Sam Ravnborg <[email protected]> wrote:
> > From 16b853f53463e43bfce341965ac10a78a3755a14 Mon Sep 17 00:00:00 2001
> > From: Randy Dunlap <[email protected]>
> > Date: Wed, 24 Oct 2007 15:50:43 -0700
> > Subject: [PATCH] x86: unification of i386 and x86_64 Kconfig.debug
> >
> > Adding proper dependencies so the two Kconfig.debug files
> > are now identical.
> >
> > Signed-off-by: Randy Dunlap <[email protected]>
> > Signed-off-by: Sam Ravnborg <[email protected]>
> > ---
> > arch/i386/Kconfig.debug | 51 ++++++++++++++++++++++++++++-------
> > arch/x86_64/Kconfig | 4 ---
> > arch/{i386 => x86_64}/Kconfig.debug | 51 ++++++++++++++++++++++++++++-------
> > 3 files changed, 82 insertions(+), 24 deletions(-)
> > copy arch/{i386 => x86_64}/Kconfig.debug (65%)
> >
> > diff --git a/arch/i386/Kconfig.debug b/arch/i386/Kconfig.debug
> > index f03531e..970b2de 100644
> > --- a/arch/i386/Kconfig.debug
> > +++ b/arch/i386/Kconfig.debug
> > @@ -1,14 +1,14 @@
> > menu "Kernel hacking"
> >
> > config TRACE_IRQFLAGS_SUPPORT
> > - bool
> > - default y
> > + def_bool y
> >
> > source "lib/Kconfig.debug"
> >
> > config EARLY_PRINTK
> > bool "Early printk" if EMBEDDED && DEBUG_KERNEL
> > default y
> > + depends on X86_32
> > help
> > Write kernel log output directly into the VGA buffer or to a serial
> > port.
> > @@ -37,10 +37,12 @@ config DEBUG_STACK_USAGE
> ...
> > diff --git a/arch/x86_64/Kconfig b/arch/x86_64/Kconfig
> > index 308970a..1bc0268 100644
> > --- a/arch/x86_64/Kconfig
> > +++ b/arch/x86_64/Kconfig
> > @@ -97,10 +97,6 @@ config X86_CMPXCHG
> > bool
> > default y
> >
> > -config EARLY_PRINTK
> > - bool
> > - default y
> > -
> > config GENERIC_ISA_DMA
> > bool
> > default y
> > diff --git a/arch/i386/Kconfig.debug b/arch/x86_64/Kconfig.debug
> > similarity index 65%
> > copy from arch/i386/Kconfig.debug
> > copy to arch/x86_64/Kconfig.debug
> > index f03531e..970b2de 100644
> > --- a/arch/i386/Kconfig.debug
> > +++ b/arch/x86_64/Kconfig.debug
> > @@ -1,14 +1,14 @@
> > menu "Kernel hacking"
> >
> > config TRACE_IRQFLAGS_SUPPORT
> > - bool
> > - default y
> > + def_bool y
> >
> > source "lib/Kconfig.debug"
> >
> > config EARLY_PRINTK
> > bool "Early printk" if EMBEDDED && DEBUG_KERNEL
> > default y
> > + depends on X86_32
> > help
> > Write kernel log output directly into the VGA buffer or to a serial
> > port.
> ...
>
> why disabling early_printk for x86_64?

It doesn't do that. EARLY_PRINTK for x86_64 lives in
arch/x86_64/Kconfig (i.e., a different file).

Patches welcome.

---
~Randy

2007-10-25 23:53:16

by H. Peter Anvin

[permalink] [raw]
Subject: Re: [PATCH 3/6] x86: unification of i386 and x86_64 Kconfig.debug

Randy Dunlap wrote:
>
> It doesn't do that. EARLY_PRINTK for x86_64 lives in
> arch/x86_64/Kconfig (i.e., a different file).
>
> Patches welcome.
>

I think Sam's patchset already takes care of that.

-hpa

2007-10-26 01:53:28

by Yinghai Lu

[permalink] [raw]
Subject: Re: [PATCH 5/6] x86: move i386 and x86_64 Kconfig files to x86 directory

On 10/25/07, Sam Ravnborg <[email protected]> wrote:
> From 6654a98eb8587f0538904c9bdb9aeaf9d577f182 Mon Sep 17 00:00:00 2001
> From: Sam Ravnborg <[email protected]>
> Date: Thu, 25 Oct 2007 21:04:16 +0200
> Subject: [PATCH] x86: move i386 and x86_64 Kconfig files to x86 directory
>
> After a small change in kconfig Makefile we could
> move all x86 Kconfig files to x86 directory.
>
> Signed-off-by: Sam Ravnborg <[email protected]>
> ---
> arch/{i386 => x86}/Kconfig.cpu | 0
> arch/{i386 => x86}/Kconfig.debug | 0
> arch/{i386/Kconfig => x86/Kconfig.i386} | 4 +-
> arch/{x86_64/Kconfig => x86/Kconfig.x86_64} | 2 +-
> arch/x86_64/Kconfig.debug | 119 ---------------------------
> scripts/kconfig/Makefile | 7 ++-
> 6 files changed, 9 insertions(+), 123 deletions(-)
> rename arch/{i386 => x86}/Kconfig.cpu (100%)
> rename arch/{i386 => x86}/Kconfig.debug (100%)
> rename arch/{i386/Kconfig => x86/Kconfig.i386} (99%)
> rename arch/{x86_64/Kconfig => x86/Kconfig.x86_64} (99%)
> delete mode 100644 arch/x86_64/Kconfig.debug

arch/i386/Kconfig.debug will be arch/x86/Kconfig.debug

in it, EARLY_PRINTK will depend on X86_32

YH

2007-10-26 01:55:42

by Yinghai Lu

[permalink] [raw]
Subject: Re: [PATCH 3/6] x86: unification of i386 and x86_64 Kconfig.debug

On 10/25/07, H. Peter Anvin <[email protected]> wrote:
> Randy Dunlap wrote:
> >
> > It doesn't do that. EARLY_PRINTK for x86_64 lives in
> > arch/x86_64/Kconfig (i.e., a different file).
> >
> > Patches welcome.
> >
>
> I think Sam's patchset already takes care of that.

arch/x86_64/Kconfig.debug will be removed. in 5/6 patch.
and in the same patch arch/i386/Kconfig.debug will be
arch/x86/Kconfig.debug and it make EARLY_PRINTK depend on x86_32

YH

2007-10-26 02:47:17

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH 5/6] x86: move i386 and x86_64 Kconfig files to x86 directory

On Thu, 25 Oct 2007 18:53:18 -0700 Yinghai Lu wrote:

> On 10/25/07, Sam Ravnborg <[email protected]> wrote:
> > From 6654a98eb8587f0538904c9bdb9aeaf9d577f182 Mon Sep 17 00:00:00 2001
> > From: Sam Ravnborg <[email protected]>
> > Date: Thu, 25 Oct 2007 21:04:16 +0200
> > Subject: [PATCH] x86: move i386 and x86_64 Kconfig files to x86 directory
> >
> > After a small change in kconfig Makefile we could
> > move all x86 Kconfig files to x86 directory.
> >
> > Signed-off-by: Sam Ravnborg <[email protected]>
> > ---
> > arch/{i386 => x86}/Kconfig.cpu | 0
> > arch/{i386 => x86}/Kconfig.debug | 0
> > arch/{i386/Kconfig => x86/Kconfig.i386} | 4 +-
> > arch/{x86_64/Kconfig => x86/Kconfig.x86_64} | 2 +-
> > arch/x86_64/Kconfig.debug | 119 ---------------------------
> > scripts/kconfig/Makefile | 7 ++-
> > 6 files changed, 9 insertions(+), 123 deletions(-)
> > rename arch/{i386 => x86}/Kconfig.cpu (100%)
> > rename arch/{i386 => x86}/Kconfig.debug (100%)
> > rename arch/{i386/Kconfig => x86/Kconfig.i386} (99%)
> > rename arch/{x86_64/Kconfig => x86/Kconfig.x86_64} (99%) <------<
> > delete mode 100644 arch/x86_64/Kconfig.debug |
> |
> arch/i386/Kconfig.debug will be arch/x86/Kconfig.debug |
> |
> in it, EARLY_PRINTK will depend on X86_32 |
|
but EARLY_PRINTK for x86_64 is here ------------------------------- ^

so we didn't lose it. However, they should live in the same place
so that confusion like this does not continue.

You can make a patch. or I can. or Sam can. or someone else can...

---
~Randy

2007-10-26 03:32:45

by Bodo Eggert

[permalink] [raw]
Subject: Re: [PATCH 0/6] kill i386 and x86_64 directories

Thomas Gleixner <[email protected]> wrote:

> I think the last remaining bit to cleanup is the symlink from
> arch/x86/boot/bzImage.

BTW: Is it useful to have (b)zimage under $ARCH while vmlinux is in the root
dir? (Besides being compatible to external scripts)
--
I always tell customers/clients the same thing:
"Good, Fast, Cheap. You can pick two."
-- randem in <[email protected]>
Fri?, Spammer: [email protected] [email protected]

2007-10-26 04:28:00

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH 3/6] x86: unification of i386 and x86_64 Kconfig.debug

On Thu, Oct 25, 2007 at 04:30:48PM -0700, Yinghai Lu wrote:
> > config EARLY_PRINTK
> > bool "Early printk" if EMBEDDED && DEBUG_KERNEL
> > default y
> > + depends on X86_32
> > help
> > Write kernel log output directly into the VGA buffer or to a serial
> > port.
> ...
>
> why disabling early_printk for x86_64?
The abovce disables the prompt but
arch/x86_64/Kconifg.x86_64 set the value to y so EARLY_PRINTK is
always enabled (see answer I wrote to Kay).

This patchset leaves room for futher clean-up which is
welcome. The aim was to unify the two Kconfig.debug file
where Randy did a quick and good job. The aim was not
maximum unification of the Kconfig files used for the two
ARCH's this comes later - and there are much to be done
here.

Please let me know if you see other issues woth the patch serie.

Sam

2007-10-26 05:52:13

by Yinghai Lu

[permalink] [raw]
Subject: Re: [PATCH 5/6] x86: move i386 and x86_64 Kconfig files to x86 directory

On 10/25/07, Randy Dunlap <[email protected]> wrote:
> On Thu, 25 Oct 2007 18:53:18 -0700 Yinghai Lu wrote:
>
> > On 10/25/07, Sam Ravnborg <[email protected]> wrote:
> > > From 6654a98eb8587f0538904c9bdb9aeaf9d577f182 Mon Sep 17 00:00:00 2001
> > > From: Sam Ravnborg <[email protected]>
> > > Date: Thu, 25 Oct 2007 21:04:16 +0200
> > > Subject: [PATCH] x86: move i386 and x86_64 Kconfig files to x86 directory
> > >
> > > After a small change in kconfig Makefile we could
> > > move all x86 Kconfig files to x86 directory.
> > >
> > > Signed-off-by: Sam Ravnborg <[email protected]>
> > > ---
> > > arch/{i386 => x86}/Kconfig.cpu | 0
> > > arch/{i386 => x86}/Kconfig.debug | 0
> > > arch/{i386/Kconfig => x86/Kconfig.i386} | 4 +-
> > > arch/{x86_64/Kconfig => x86/Kconfig.x86_64} | 2 +-
> > > arch/x86_64/Kconfig.debug | 119 ---------------------------
> > > scripts/kconfig/Makefile | 7 ++-
> > > 6 files changed, 9 insertions(+), 123 deletions(-)
> > > rename arch/{i386 => x86}/Kconfig.cpu (100%)
> > > rename arch/{i386 => x86}/Kconfig.debug (100%)
> > > rename arch/{i386/Kconfig => x86/Kconfig.i386} (99%)
> > > rename arch/{x86_64/Kconfig => x86/Kconfig.x86_64} (99%) <------<
> > > delete mode 100644 arch/x86_64/Kconfig.debug |
> > |
> > arch/i386/Kconfig.debug will be arch/x86/Kconfig.debug |
> > |
> > in it, EARLY_PRINTK will depend on X86_32 |
> |
> but EARLY_PRINTK for x86_64 is here ------------------------------- ^
>
> so we didn't lose it. However, they should live in the same place
> so that confusion like this does not continue.
>
> You can make a patch. or I can. or Sam can. or someone else can...

in PATCH 3/5 that Sam sent out.

>From 16b853f53463e43bfce341965ac10a78a3755a14 Mon Sep 17 00:00:00 2001
From: Randy Dunlap <[email protected]>
Date: Wed, 24 Oct 2007 15:50:43 -0700
Subject: [PATCH] x86: unification of i386 and x86_64 Kconfig.debug

Adding proper dependencies so the two Kconfig.debug files
are now identical.

Signed-off-by: Randy Dunlap <[email protected]>
Signed-off-by: Sam Ravnborg <[email protected]>
---
arch/i386/Kconfig.debug | 51 ++++++++++++++++++++++++++++-------
arch/x86_64/Kconfig | 4 ---
arch/{i386 => x86_64}/Kconfig.debug | 51 ++++++++++++++++++++++++++++-------
3 files changed, 82 insertions(+), 24 deletions(-)
copy arch/{i386 => x86_64}/Kconfig.debug (65%)

...
diff --git a/arch/x86_64/Kconfig b/arch/x86_64/Kconfig
index 308970a..1bc0268 100644
--- a/arch/x86_64/Kconfig
+++ b/arch/x86_64/Kconfig
@@ -97,10 +97,6 @@ config X86_CMPXCHG
bool
default y

-config EARLY_PRINTK
- bool
- default y
-
config GENERIC_ISA_DMA
bool
default y

but
in git

http://git.kernel.org/?p=linux/kernel/git/sam/x86.git;a=commitdiff;h=d013a27cb79a01b324f93adb275162c244cca2de

doesn't include that removing..

interesting.

YH

2007-10-26 06:02:35

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH 5/6] x86: move i386 and x86_64 Kconfig files to x86 directory

On Thu, 25 Oct 2007 22:51:56 -0700 Yinghai Lu wrote:

> On 10/25/07, Randy Dunlap <[email protected]> wrote:
> > On Thu, 25 Oct 2007 18:53:18 -0700 Yinghai Lu wrote:
> >
> > > On 10/25/07, Sam Ravnborg <[email protected]> wrote:
> > > > From 6654a98eb8587f0538904c9bdb9aeaf9d577f182 Mon Sep 17 00:00:00 2001
> > > > From: Sam Ravnborg <[email protected]>
> > > > Date: Thu, 25 Oct 2007 21:04:16 +0200
> > > > Subject: [PATCH] x86: move i386 and x86_64 Kconfig files to x86 directory
> > > >
> > > > After a small change in kconfig Makefile we could
> > > > move all x86 Kconfig files to x86 directory.
> > > >
> > > > Signed-off-by: Sam Ravnborg <[email protected]>
> > > > ---
> > > > arch/{i386 => x86}/Kconfig.cpu | 0
> > > > arch/{i386 => x86}/Kconfig.debug | 0
> > > > arch/{i386/Kconfig => x86/Kconfig.i386} | 4 +-
> > > > arch/{x86_64/Kconfig => x86/Kconfig.x86_64} | 2 +-
> > > > arch/x86_64/Kconfig.debug | 119 ---------------------------
> > > > scripts/kconfig/Makefile | 7 ++-
> > > > 6 files changed, 9 insertions(+), 123 deletions(-)
> > > > rename arch/{i386 => x86}/Kconfig.cpu (100%)
> > > > rename arch/{i386 => x86}/Kconfig.debug (100%)
> > > > rename arch/{i386/Kconfig => x86/Kconfig.i386} (99%)
> > > > rename arch/{x86_64/Kconfig => x86/Kconfig.x86_64} (99%) <------<
> > > > delete mode 100644 arch/x86_64/Kconfig.debug |
> > > |
> > > arch/i386/Kconfig.debug will be arch/x86/Kconfig.debug |
> > > |
> > > in it, EARLY_PRINTK will depend on X86_32 |
> > |
> > but EARLY_PRINTK for x86_64 is here ------------------------------- ^
> >
> > so we didn't lose it. However, they should live in the same place
> > so that confusion like this does not continue.
> >
> > You can make a patch. or I can. or Sam can. or someone else can...
>
> in PATCH 3/5 that Sam sent out.
>
> >From 16b853f53463e43bfce341965ac10a78a3755a14 Mon Sep 17 00:00:00 2001
> From: Randy Dunlap <[email protected]>
> Date: Wed, 24 Oct 2007 15:50:43 -0700
> Subject: [PATCH] x86: unification of i386 and x86_64 Kconfig.debug
>
> Adding proper dependencies so the two Kconfig.debug files
> are now identical.
>
> Signed-off-by: Randy Dunlap <[email protected]>
> Signed-off-by: Sam Ravnborg <[email protected]>
> ---
> arch/i386/Kconfig.debug | 51 ++++++++++++++++++++++++++++-------
> arch/x86_64/Kconfig | 4 ---
> arch/{i386 => x86_64}/Kconfig.debug | 51 ++++++++++++++++++++++++++++-------
> 3 files changed, 82 insertions(+), 24 deletions(-)
> copy arch/{i386 => x86_64}/Kconfig.debug (65%)
>
> ...
> diff --git a/arch/x86_64/Kconfig b/arch/x86_64/Kconfig
> index 308970a..1bc0268 100644
> --- a/arch/x86_64/Kconfig
> +++ b/arch/x86_64/Kconfig
> @@ -97,10 +97,6 @@ config X86_CMPXCHG
> bool
> default y
>
> -config EARLY_PRINTK
> - bool
> - default y
> -
> config GENERIC_ISA_DMA
> bool
> default y
>
> but
> in git
>
> http://git.kernel.org/?p=linux/kernel/git/sam/x86.git;a=commitdiff;h=d013a27cb79a01b324f93adb275162c244cca2de
>
> doesn't include that removing..
>
> interesting.

Oh, OK. We'll get it fixed (if it needs fixing).

---
~Randy

2007-10-26 06:13:00

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH 5/6] x86: move i386 and x86_64 Kconfig files to x86 directory

>
> but
> in git
>
> http://git.kernel.org/?p=linux/kernel/git/sam/x86.git;a=commitdiff;h=d013a27cb79a01b324f93adb275162c244cca2de
>
> doesn't include that removing..

That's the bug Kay noticed.
It should not have been removed so I fixedit and pushed out a new change.
Again - please see reply to Kay and read the [GIT PULL] mail.

Sam

2007-10-26 06:22:22

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH 0/6] kill i386 and x86_64 directories

On Thu, Oct 25, 2007 at 10:17:53PM +0200, Thomas Gleixner wrote:
>
> I think the last remaining bit to cleanup is the symlink from
> arch/x86/boot/bzImage. Now that the old directories are gone it does
> not make much sense to keep them alive. Andrew will survive it :)

It is not just Andrew I'm afraid.
We got a Debian bug-report too when we did not have the symlink and I
asume this is true for several others.
We should let it stay in 2.6.24 and remove the symlink for 2.6.25 IMO.

Sam

2007-10-26 06:39:57

by Yinghai Lu

[permalink] [raw]
Subject: Re: [PATCH 5/6] x86: move i386 and x86_64 Kconfig files to x86 directory

On 10/25/07, Sam Ravnborg <[email protected]> wrote:
> >
> > but
> > in git
> >
> > http://git.kernel.org/?p=linux/kernel/git/sam/x86.git;a=commitdiff;h=d013a27cb79a01b324f93adb275162c244cca2de
> >
> > doesn't include that removing..
>
> That's the bug Kay noticed.
> It should not have been removed so I fixedit and pushed out a new change.
> Again - please see reply to Kay and read the [GIT PULL] mail.

Good. that compiles without problem on x86_64.

BTW:
why not using Kconfig.x86_32 instead of Kconfig.i386?

YH

YH

2007-10-26 07:00:26

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH 5/6] x86: move i386 and x86_64 Kconfig files to x86 directory

>
> BTW:
> why not using Kconfig.x86_32 instead of Kconfig.i386?

See scripts/kconfig/Makefile:
Here we use (in the x86 case):
Kconfig := arch/$(SRCARCH)/Kconfig.$(ARCH)

So the "i386" comes from ARCH equals to i386.

The advantage is that the patch to kconfig
is generic so other arch's can use SRCARCH if they like
without having a hardcoded list in the kconfig Makefile.

Sam

2007-10-26 11:59:20

by Alan

[permalink] [raw]
Subject: Re: [PATCH 0/6] kill i386 and x86_64 directories

On Fri, 26 Oct 2007 08:23:36 +0200
Sam Ravnborg <[email protected]> wrote:

> On Thu, Oct 25, 2007 at 10:17:53PM +0200, Thomas Gleixner wrote:
> >
> > I think the last remaining bit to cleanup is the symlink from
> > arch/x86/boot/bzImage. Now that the old directories are gone it does
> > not make much sense to keep them alive. Andrew will survive it :)
>
> It is not just Andrew I'm afraid.
> We got a Debian bug-report too when we did not have the symlink and I
> asume this is true for several others.
> We should let it stay in 2.6.24 and remove the symlink for 2.6.25 IMO.

I would put it on the list and leave it for a couple of years so that
people using old distros have all upgraded at that point. Adrian will
remember to delete it if its on the list to go ....

2007-10-26 14:43:32

by Arjan van de Ven

[permalink] [raw]
Subject: Re: [PATCH 0/6] kill i386 and x86_64 directories

On Fri, 26 Oct 2007 08:23:36 +0200
Sam Ravnborg <[email protected]> wrote:

> On Thu, Oct 25, 2007 at 10:17:53PM +0200, Thomas Gleixner wrote:
> >
> > I think the last remaining bit to cleanup is the symlink from
> > arch/x86/boot/bzImage. Now that the old directories are gone it does
> > not make much sense to keep them alive. Andrew will survive it :)
>
> It is not just Andrew I'm afraid.
> We got a Debian bug-report too when we did not have the symlink and I
> asume this is true for several others.
> We should let it stay in 2.6.24 and remove the symlink for 2.6.25 IMO.

that's the worst of all things to do... either make a change in ONE go,
when you do all the changes anyway (users will remmeber 2.6.24 was the
unification kernel, but 2.6.25 breaking stuff will be a total
surprise)... or keep them around forever. As long as it works, nobody
will change the scripts.