rpms/kernel/devel linux-2.6-x86-unwinder-fixes.patch, NONE, 1.1 kernel-2.6.spec, 1.2726, 1.2727 linux-2.6-xen.patch, 1.71, 1.72

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Tue Oct 3 17:32:56 UTC 2006


Author: davej

Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv28497

Modified Files:
	kernel-2.6.spec linux-2.6-xen.patch 
Added Files:
	linux-2.6-x86-unwinder-fixes.patch 
Log Message:
unwinder fixes

linux-2.6-x86-unwinder-fixes.patch:
 a/arch/i386/kernel/stacktrace.c   |   93 ----------------
 arch/i386/kernel/entry.S          |   18 ++-
 arch/i386/kernel/traps.c          |   25 ++--
 arch/x86_64/kernel/stacktrace.c   |  214 ++++----------------------------------
 arch/x86_64/kernel/traps.c        |    3 
 b/arch/i386/kernel/Makefile       |    1 
 b/arch/i386/kernel/entry.S        |   13 ++
 b/arch/i386/kernel/process.c      |   10 -
 b/arch/i386/kernel/stacktrace.c   |   11 -
 b/arch/i386/kernel/traps.c        |  108 ++++++++++++++-----
 b/arch/s390/kernel/stacktrace.c   |   17 +--
 b/arch/x86_64/kernel/stacktrace.c |   14 --
 b/arch/x86_64/kernel/traps.c      |   99 +++++++++++++----
 b/arch/x86_64/lib/Makefile        |    2 
 b/arch/x86_64/lib/clear_page.S    |   47 ++++----
 b/arch/x86_64/lib/copy_page.S     |   53 ++++++---
 b/arch/x86_64/lib/copy_user.S     |   39 +++++-
 b/arch/x86_64/lib/csum-copy.S     |   26 +++-
 b/arch/x86_64/lib/getuser.S       |   32 +++--
 b/arch/x86_64/lib/iomap_copy.S    |   10 +
 b/arch/x86_64/lib/memcpy.S        |   69 ++++++------
 b/arch/x86_64/lib/memset.S        |   79 +++++++-------
 b/arch/x86_64/lib/putuser.S       |   35 +++---
 b/arch/x86_64/lib/rwlock.S        |   38 ++++++
 b/arch/x86_64/lib/thunk.S         |   30 -----
 b/include/asm-i386/dwarf2.h       |    3 
 b/include/asm-i386/rwlock.h       |   39 ------
 b/include/asm-i386/stacktrace.h   |    2 
 b/include/asm-i386/unwind.h       |    4 
 b/include/asm-x86_64/rwlock.h     |   68 +-----------
 b/include/asm-x86_64/spinlock.h   |   12 --
 b/include/asm-x86_64/stacktrace.h |   19 +++
 b/include/asm-x86_64/unwind.h     |    5 
 b/include/linux/stacktrace.h      |    7 -
 b/init/main.c                     |    3 
 b/kernel/lockdep.c                |    6 -
 b/kernel/unwind.c                 |    5 
 b/lib/Kconfig.debug               |    3 
 kernel/lockdep.c                  |    5 
 39 files changed, 585 insertions(+), 682 deletions(-)

--- NEW FILE linux-2.6-x86-unwinder-fixes.patch ---
>From davej  Tue Sep 26 21:05:15 2006
Return-Path: <git-commits-head-owner at vger.kernel.org>
X-Spam-Checker-Version: SpamAssassin 3.1.4 (2006-07-25) on 
	pressure.kernelslacker.org
X-Spam-Level: 
X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,
	UNPARSEABLE_RELAY autolearn=ham version=3.1.4
Received: from pobox.devel.redhat.com [10.11.255.8]
	by pressure.kernelslacker.org with IMAP (fetchmail-6.3.4)
	for <davej at localhost> (single-drop); Tue, 26 Sep 2006 21:05:15 -0400 (EDT)
Received: from pobox.devel.redhat.com ([unix socket])
	 by pobox.devel.redhat.com (Cyrus v2.2.12-Invoca-RPM-2.2.12-3.RHEL4.1) with LMTPA;
	 Tue, 26 Sep 2006 21:05:11 -0400
X-Sieve: CMU Sieve 2.2
Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254])
	by pobox.devel.redhat.com (8.13.1/8.13.1) with ESMTP id k8R15BG8028119;
	Tue, 26 Sep 2006 21:05:11 -0400
Received: from mx3.redhat.com (mx3.redhat.com [172.16.48.32])
	by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k8R15A6a011197;
	Tue, 26 Sep 2006 21:05:10 -0400
Received: from vger.kernel.org (vger.kernel.org [209.132.176.167])
	by mx3.redhat.com (8.13.1/8.13.1) with ESMTP id k8QMVSDg000343;
	Tue, 26 Sep 2006 21:05:03 -0400
Received: (majordomo at vger.kernel.org) by vger.kernel.org via listexpand
	id S964895AbWIZXAu (ORCPT <rfc822;davej at redhat.com> + 4 others);
	Tue, 26 Sep 2006 19:00:50 -0400
Received: (majordomo at vger.kernel.org) by vger.kernel.org id S964921AbWIZXAu
	(ORCPT <rfc822;git-commits-head-outgoing>);
	Tue, 26 Sep 2006 19:00:50 -0400
Received: from hera.kernel.org ([140.211.167.34]:58816 "EHLO hera.kernel.org")
	by vger.kernel.org with ESMTP id S964895AbWIZXAi (ORCPT
	<rfc822;git-commits-head at vger.kernel.org>);
	Tue, 26 Sep 2006 19:00:38 -0400
Received: from hera.kernel.org (IDENT:U2FsdGVkX1+415A2z0D3yhz6U8YOI4TMZvOS8+8912g at localhost [127.0.0.1])
	by hera.kernel.org (8.13.7/8.13.7) with ESMTP id k8QN0ReG014082
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
	for <git-commits-head at vger.kernel.org>; Tue, 26 Sep 2006 23:00:28 GMT
Received: (from dwmw2 at localhost)
	by hera.kernel.org (8.13.7/8.13.1/Submit) id k8QN0RZd014081
	for git-commits-head at vger.kernel.org; Tue, 26 Sep 2006 23:00:27 GMT
Date: 	Tue, 26 Sep 2006 23:00:27 GMT
Message-Id: <200609262300.k8QN0RZd014081 at hera.kernel.org>
From: Linux Kernel Mailing List <linux-kernel at vger.kernel.org>
To: git-commits-head at vger.kernel.org
Subject: [PATCH] Clean up read write lock assembly
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Git-Commit: 9a0b26e6bc4ae1979d9bcc6194e57a71b2b5cac6
X-Git-Parent: b4062b16094038334d9bbadac0397a3fc9e981b0
Sender: git-commits-head-owner at vger.kernel.org
Precedence: bulk
X-Mailing-List: 	git-commits-head at vger.kernel.org
X-RedHat-Spam-Score: 0.005 
Status: RO
Content-Length: 6909
Lines: 241

commit 9a0b26e6bc4ae1979d9bcc6194e57a71b2b5cac6
tree 01601a502007b85d4fc88f79de7a93c257ef9d97
parent b4062b16094038334d9bbadac0397a3fc9e981b0
author Andi Kleen <ak at suse.de> 1159260748 +0200
committer Andi Kleen <andi at basil.nowhere.org> 1159260748 +0200

[PATCH] Clean up read write lock assembly

- Move the slow path fallbacks to their own assembly files
This makes them much easier to read and is needed for the next change.
- Add CFI annotations for unwinding (XXX need review)
- Remove constant case which can never happen with out of line spinlocks
- Use patchable LOCK prefixes
- Don't use lock sections anymore for inline code because they can't
be expressed by the unwinder (this adds one taken jump to the lock
fast path)

Cc: jbeulich at novell.com

Signed-off-by: Andi Kleen <ak at suse.de>

 arch/x86_64/lib/Makefile      |    2 -
 arch/x86_64/lib/rwlock.S      |   38 +++++++++++++++++++++++
 arch/x86_64/lib/thunk.S       |   30 ------------------
 include/asm-x86_64/rwlock.h   |   68 ++++++------------------------------------
 include/asm-x86_64/spinlock.h |   11 +-----
 5 files changed, 51 insertions(+), 98 deletions(-)

diff --git a/arch/x86_64/lib/Makefile b/arch/x86_64/lib/Makefile
index ccef6ae..b78d417 100644
--- a/arch/x86_64/lib/Makefile
+++ b/arch/x86_64/lib/Makefile
@@ -9,4 +9,4 @@ obj-y := io.o iomap_copy.o
 lib-y := csum-partial.o csum-copy.o csum-wrappers.o delay.o \
 	usercopy.o getuser.o putuser.o  \
 	thunk.o clear_page.o copy_page.o bitstr.o bitops.o
-lib-y += memcpy.o memmove.o memset.o copy_user.o
+lib-y += memcpy.o memmove.o memset.o copy_user.o rwlock.o
diff --git a/arch/x86_64/lib/rwlock.S b/arch/x86_64/lib/rwlock.S
new file mode 100644
index 0000000..0cde1f8
--- /dev/null
+++ b/arch/x86_64/lib/rwlock.S
@@ -0,0 +1,38 @@
+/* Slow paths of read/write spinlocks. */
+
+#include <linux/linkage.h>
+#include <asm/rwlock.h>
+#include <asm/alternative-asm.i>
+#include <asm/dwarf2.h>
+
+/* rdi:	pointer to rwlock_t */
+ENTRY(__write_lock_failed)
+	CFI_STARTPROC
+	LOCK_PREFIX
+	addl $RW_LOCK_BIAS,(%rdi)
+1:	rep
+	nop
+	cmpl $RW_LOCK_BIAS,(%rdi)
+	jne 1b
+	LOCK_PREFIX
+	subl $RW_LOCK_BIAS,(%rdi)
+	jnz  __write_lock_failed
+	ret
+	CFI_ENDPROC
+END(__write_lock_failed)
+
+/* rdi:	pointer to rwlock_t */
+ENTRY(__read_lock_failed)
+	CFI_STARTPROC
+	LOCK_PREFIX
+	incl (%rdi)
+1:	rep
+	nop
+	cmpl $1,(%rdi)
+	js 1b
+	LOCK_PREFIX
+	decl (%rdi)
+	js __read_lock_failed
+	ret
+	CFI_ENDPROC
+END(__read_lock_failed)
diff --git a/arch/x86_64/lib/thunk.S b/arch/x86_64/lib/thunk.S
index 332ea5d..6cff27c 100644
--- a/arch/x86_64/lib/thunk.S
+++ b/arch/x86_64/lib/thunk.S
@@ -67,33 +67,3 @@ restore_norax:	
 	RESTORE_ARGS 1
 	ret
 	CFI_ENDPROC
-
-#ifdef CONFIG_SMP
-/* Support for read/write spinlocks. */
-	.text
-/* rax:	pointer to rwlock_t */	
-ENTRY(__write_lock_failed)
-	lock
-	addl $RW_LOCK_BIAS,(%rax)
-1:	rep
-	nop
-	cmpl $RW_LOCK_BIAS,(%rax)
-	jne 1b
-	lock 
-	subl $RW_LOCK_BIAS,(%rax)
-	jnz  __write_lock_failed
-	ret
-
-/* rax:	pointer to rwlock_t */	
-ENTRY(__read_lock_failed)
-	lock
-	incl (%rax)
-1:	rep
-	nop
-	cmpl $1,(%rax)
-	js 1b
-	lock
-	decl (%rax)
-	js __read_lock_failed
-	ret
-#endif
diff --git a/include/asm-x86_64/rwlock.h b/include/asm-x86_64/rwlock.h
index dea0e94..28a080d 100644
--- a/include/asm-x86_64/rwlock.h
+++ b/include/asm-x86_64/rwlock.h
@@ -18,69 +18,21 @@
 #ifndef _ASM_X86_64_RWLOCK_H
 #define _ASM_X86_64_RWLOCK_H
 
-#include <linux/stringify.h>
-
 #define RW_LOCK_BIAS		 0x01000000
-#define RW_LOCK_BIAS_STR	"0x01000000"
+#define RW_LOCK_BIAS_STR	 "0x01000000"
 
-#define __build_read_lock_ptr(rw, helper)   \
+#define __build_read_lock(rw)   \
 	asm volatile(LOCK_PREFIX "subl $1,(%0)\n\t" \
-		     "js 2f\n" \
-		     "1:\n" \
-		    LOCK_SECTION_START("") \
-		     "2:\tcall " helper "\n\t" \
[...3240 lines suppressed...]
committer Linus Torvalds <torvalds at g5.osdl.org> 1159546691 -0700

[PATCH] unwind: fix unused variable warning when !CONFIG_MODULES

Fix "variable defined but not used" compiler warning in unwind.c when
CONFIG_MODULES is not set.

Signed-off-by: Chuck Ebbert <76306.1226 at compuserve.com>
Cc: Jan Beulich <jbeulich at novell.com>
Cc: Andi Kleen <ak at muc.de>
Signed-off-by: Andrew Morton <akpm at osdl.org>
Signed-off-by: Linus Torvalds <torvalds at osdl.org>

 kernel/unwind.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/kernel/unwind.c b/kernel/unwind.c
index 3430475..2e23686 100644
--- a/kernel/unwind.c
+++ b/kernel/unwind.c
@@ -102,7 +102,7 @@ static struct unwind_table {
 	unsigned long size;
 	struct unwind_table *link;
 	const char *name;
-} root_table, *last_table;
+} root_table;
 
 struct unwind_item {
 	enum item_location {
@@ -174,6 +174,8 @@ void __init unwind_init(void)
 
 #ifdef CONFIG_MODULES
 
+static struct unwind_table *last_table;
+
 /* Must be called with module_mutex held. */
 void *unwind_add_table(struct module *module,
                        const void *table_start,
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html




More information about the fedora-cvs-commits mailing list