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