From: "Jan Beulich" <JBeulich@novell.com>
To: <linux-kernel@vger.kernel.org>
Subject: [PATCH 16/39] NLKD - core adjustments
Date: Wed, 09 Nov 2005 15:11:00 +0100 [thread overview]
Message-ID: <43721184.76F0.0078.0@novell.com> (raw)
In-Reply-To: 43721142.76F0.0078.0@novell.com
[-- Attachment #1: Type: text/plain, Size: 124 bytes --]
The core NLKD adjustments to pre-existing code.
Signed-Off-By: Jan Beulich <jbeulich@novell.com>
(actual patch attached)
[-- Attachment #2: linux-2.6.14-nlkd.patch --]
[-- Type: application/octet-stream, Size: 7333 bytes --]
The core NLKD adjustments to pre-existing code.
Signed-Off-By: Jan Beulich <jbeulich@novell.com>
Index: 2.6.14-nlkd/include/asm-generic/bug.h
===================================================================
--- 2.6.14-nlkd.orig/include/asm-generic/bug.h 2005-11-09 10:40:16.000000000 +0100
+++ 2.6.14-nlkd/include/asm-generic/bug.h 2005-11-04 16:19:34.000000000 +0100
@@ -5,6 +5,44 @@
#include <linux/config.h>
#ifdef CONFIG_BUG
+
+# ifdef CONFIG_NLKD
+
+# ifndef _LINUX_NLKD_H
+# define _LINUX_NLKD_H
+# include <linux/nlkd.h>
+# undef _LINUX_NLKD_H
+# endif
+
+# ifdef HAVE_ARCH_BUG
+# undef BUG
+# else
+# define HAVE_ARCH_BUG
+# endif
+# define BUG() nlkdAssert("BUG", __FILE__, __PRETTY_FUNCTION__, __LINE__)
+
+# ifdef HAVE_ARCH_BUG_ON
+# undef BUG_ON
+# else
+# define HAVE_ARCH_BUG_ON
+# endif
+# define BUG_ON(condition) (unlikely(condition) \
+ ? nlkdAssert("!(" #condition ")", __FILE__, __PRETTY_FUNCTION__, __LINE__) \
+ : (void)0)
+
+# ifdef HAVE_ARCH_WARN_ON
+# undef WARN_ON
+# else
+# define HAVE_ARCH_WARN_ON
+# endif
+# define WARN_ON(condition) (unlikely(condition) \
+ ? printk("Badness in %s at %s:%d\n", __PRETTY_FUNCTION__, __FILE__, __LINE__), \
+ dump_stack(), \
+ nlkdDebugEvent(DEBUG_EVENT_MESSAGE, #condition) \
+ : (void)0)
+
+# endif /* CONFIG_NLKD */
+
#ifndef HAVE_ARCH_BUG
#define BUG() do { \
printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \
Index: 2.6.14-nlkd/include/linux/sched.h
===================================================================
--- 2.6.14-nlkd.orig/include/linux/sched.h 2005-11-04 16:19:34.000000000 +0100
+++ 2.6.14-nlkd/include/linux/sched.h 2005-11-04 16:19:34.000000000 +0100
@@ -298,6 +298,10 @@ struct mm_struct {
/* Architecture-specific MM context */
mm_context_t context;
+#ifdef CONFIG_NLKD
+ struct cdeBPStruct_s *bpList;
+#endif
+
/* Token based thrashing protection. */
unsigned long swap_token_time;
char recent_pagein;
@@ -681,6 +685,10 @@ struct task_struct {
struct mm_struct *mm, *active_mm;
+#ifdef CONFIG_NLKD
+ struct cdeBPStruct_s *bpList;
+#endif
+
/* task state */
struct linux_binfmt *binfmt;
long exit_state;
@@ -689,6 +697,9 @@ struct task_struct {
/* ??? */
unsigned long personality;
unsigned did_exec:1;
+#ifdef CONFIG_NLKD
+ unsigned kstep:1; /* kernel-debugger single stepping this task */
+#endif
pid_t pid;
pid_t tgid;
/*
Index: 2.6.14-nlkd/init/Kconfig
===================================================================
--- 2.6.14-nlkd.orig/init/Kconfig 2005-11-07 10:51:19.000000000 +0100
+++ 2.6.14-nlkd/init/Kconfig 2005-11-07 10:51:19.000000000 +0100
@@ -275,7 +275,7 @@ config KALLSYMS
config KALLSYMS_TRADITIONAL
bool "Traditional kallsyms symbol table format"
depends on KALLSYMS
- default !MODULES
+ default !MODULES && !NLKD
help
Say N here if you want the kernel symbol table to be consistent with
that loadable modules use (i.e. the ELF symbol table extracted from
Index: 2.6.14-nlkd/init/main.c
===================================================================
--- 2.6.14-nlkd.orig/init/main.c 2005-11-07 10:53:53.000000000 +0100
+++ 2.6.14-nlkd/init/main.c 2005-11-07 10:53:53.000000000 +0100
@@ -47,6 +47,7 @@
#include <linux/rmap.h>
#include <linux/mempolicy.h>
#include <linux/key.h>
+#include <linux/nlkd.h>
#include <net/sock.h>
#include <asm/io.h>
@@ -482,6 +483,7 @@ asmlinkage void __init start_kernel(void
sort_main_extable();
trap_init();
kallsyms_early_init();
+ nlkd_init();
rcu_init();
init_IRQ();
pidhash_init();
@@ -709,6 +711,7 @@ static int init(void * unused)
* we're essentially up and running. Get rid of the
* initmem segments and start the user-mode stuff..
*/
+ nlkd_init_done();
kallsyms_init_done();
free_initmem();
unlock_kernel();
Index: 2.6.14-nlkd/kernel/exit.c
===================================================================
--- 2.6.14-nlkd.orig/kernel/exit.c 2005-11-09 10:40:16.000000000 +0100
+++ 2.6.14-nlkd/kernel/exit.c 2005-11-04 16:19:34.000000000 +0100
@@ -28,6 +28,7 @@
#include <linux/cpuset.h>
#include <linux/syscalls.h>
#include <linux/signal.h>
+#include <linux/nlkd.h>
#include <asm/uaccess.h>
#include <asm/unistd.h>
@@ -794,6 +795,7 @@ fastcall NORET_TYPE void do_exit(long co
struct task_struct *tsk = current;
int group_dead;
+ bp_list_clear(tsk);
profile_task_exit(tsk);
WARN_ON(atomic_read(&tsk->fs_excl));
Index: 2.6.14-nlkd/kernel/fork.c
===================================================================
--- 2.6.14-nlkd.orig/kernel/fork.c 2005-11-04 16:19:34.000000000 +0100
+++ 2.6.14-nlkd/kernel/fork.c 2005-11-04 16:19:34.000000000 +0100
@@ -42,6 +42,7 @@
#include <linux/profile.h>
#include <linux/rmap.h>
#include <linux/acct.h>
+#include <linux/nlkd.h>
#include <asm/pgtable.h>
#include <asm/pgalloc.h>
@@ -337,6 +338,9 @@ static struct mm_struct * mm_init(struct
if (likely(!mm_alloc_pgd(mm))) {
mm->def_flags = 0;
+#if defined(CONFIG_CDE) || defined(CONFIG_CDE_MODULE)
+ mm->bpList = NULL;
+#endif
return mm;
}
free_mm(mm);
@@ -377,6 +381,7 @@ void fastcall __mmdrop(struct mm_struct
void mmput(struct mm_struct *mm)
{
if (atomic_dec_and_test(&mm->mm_users)) {
+ bp_list_clear(mm);
exit_aio(mm);
exit_mmap(mm);
if (!list_empty(&mm->mmlist)) {
Index: 2.6.14-nlkd/kernel/power/swsusp.c
===================================================================
--- 2.6.14-nlkd.orig/kernel/power/swsusp.c 2005-11-09 10:40:16.000000000 +0100
+++ 2.6.14-nlkd/kernel/power/swsusp.c 2005-11-04 16:19:34.000000000 +0100
@@ -67,6 +67,7 @@
#include <linux/highmem.h>
#include <linux/bio.h>
#include <linux/mount.h>
+#include <linux/nlkd.h>
#include <asm/uaccess.h>
#include <asm/mmu_context.h>
@@ -1044,6 +1045,7 @@ int swsusp_suspend(void)
/* Restore control flow magically appears here */
restore_processor_state();
BUG_ON (nr_copy_pages_check != nr_copy_pages);
+ bp_load();
restore_highmem();
device_power_up();
local_irq_enable();
@@ -1064,6 +1066,7 @@ int swsusp_resume(void)
*/
BUG_ON(!error);
restore_processor_state();
+ bp_load();
restore_highmem();
touch_softlockup_watchdog();
device_power_up();
Index: 2.6.14-nlkd/kernel/sched.c
===================================================================
--- 2.6.14-nlkd.orig/kernel/sched.c 2005-11-09 10:40:16.000000000 +0100
+++ 2.6.14-nlkd/kernel/sched.c 2005-11-04 16:19:34.000000000 +0100
@@ -47,6 +47,7 @@
#include <linux/syscalls.h>
#include <linux/times.h>
#include <linux/acct.h>
+#include <linux/nlkd.h>
#include <asm/tlb.h>
#include <asm/unistd.h>
@@ -1568,12 +1569,17 @@ task_t * context_switch(runqueue_t *rq,
struct mm_struct *mm = next->mm;
struct mm_struct *oldmm = prev->active_mm;
+ bp_list_disable(1, prev);
+
if (unlikely(!mm)) {
next->active_mm = oldmm;
atomic_inc(&oldmm->mm_count);
enter_lazy_tlb(oldmm, next);
- } else
+ } else {
+ bp_list_disable(oldmm && oldmm != mm, oldmm);
switch_mm(oldmm, mm, next);
+ bp_list_enable(oldmm != mm, mm);
+ }
if (unlikely(!prev->mm)) {
prev->active_mm = NULL;
@@ -1584,6 +1590,8 @@ task_t * context_switch(runqueue_t *rq,
/* Here we just switch the register state and the stack. */
switch_to(prev, next, prev);
+ bp_list_enable(1, current);
+
return prev;
}
next prev parent reply other threads:[~2005-11-09 14:10 UTC|newest]
Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-09 13:54 [PATCH 0/39] NLKD - Novell Linux Kernel Debugger Jan Beulich
2005-11-09 13:56 ` [PATCH 1/39] NLKD - an alternative kallsyms approach Jan Beulich
2005-11-09 13:57 ` [PATCH 2/39] NLKD - an alternative early ioremap approach Jan Beulich
2005-11-09 13:58 ` [PATCH 3/39] NLKD - early/late CPU up/down notification Jan Beulich
2005-11-09 13:59 ` [PATCH 4/39] NLKD/i386 " Jan Beulich
2005-11-09 14:01 ` [PATCH 5/39] NLKD/x86-64 " Jan Beulich
2005-11-10 13:10 ` Andi Kleen
2005-11-14 8:04 ` [discuss] " Jan Beulich
2005-11-14 12:37 ` Andi Kleen
2005-11-09 14:01 ` [PATCH 6/39] NLKD - early panic notification Jan Beulich
2005-11-09 14:02 ` [PATCH 7/39] NLKD - task create/destroy notification Jan Beulich
2005-11-09 14:03 ` [PATCH 8/39] NLKD - rmmod notification Jan Beulich
2005-11-09 14:04 ` [PATCH 9/39] NLKD - hotkey notification Jan Beulich
2005-11-09 14:05 ` [PATCH 10/39] NLKD - console layout change notification Jan Beulich
2005-11-09 14:06 ` [PATCH 11/39] NLKD - time adjustment Jan Beulich
2005-11-09 14:06 ` [PATCH 12/39] NLKD/i386 " Jan Beulich
2005-11-09 19:10 ` George Anzinger
2005-11-10 8:12 ` Jan Beulich
2005-11-11 0:17 ` George Anzinger
2005-11-09 14:08 ` [PATCH 13/39] NLKD/x86-64 " Jan Beulich
2005-11-09 14:13 ` [PATCH 18/39] NLKD/x86-64 - INT1/INT3 handling changes Jan Beulich
2005-11-09 14:14 ` [PATCH 19/39] NLKD/x86-64 - stack-pointer-invalid markers Jan Beulich
2005-11-09 14:15 ` [PATCH 20/39] NLKD/x86-64 - switch_to() floating point adjustment Jan Beulich
2005-11-09 14:16 ` [PATCH 21/39] NLKD/x86-64 - core adjustments Jan Beulich
2005-11-10 13:24 ` [PATCH 20/39] NLKD/x86-64 - switch_to() floating point adjustment Andi Kleen
2005-11-10 14:07 ` Jan Beulich
2005-11-10 13:23 ` [PATCH 19/39] NLKD/x86-64 - stack-pointer-invalid markers Andi Kleen
2005-11-10 14:25 ` Jan Beulich
2005-11-10 13:21 ` [PATCH 18/39] NLKD/x86-64 - INT1/INT3 handling changes Andi Kleen
2005-11-10 14:07 ` Jan Beulich
2005-11-10 14:25 ` Andi Kleen
2005-11-10 15:00 ` Jan Beulich
2005-11-11 3:39 ` [discuss] " Andi Kleen
2005-11-10 13:19 ` [PATCH 13/39] NLKD/x86-64 - time adjustment Andi Kleen
2005-11-10 14:23 ` Jan Beulich
2005-11-11 2:12 ` Andi Kleen
2005-11-12 9:22 ` Vojtech Pavlik
2005-11-12 17:21 ` Andi Kleen
2005-11-12 20:44 ` Vojtech Pavlik
2005-11-15 0:38 ` George Anzinger
2005-11-15 1:05 ` [discuss] " Andi Kleen
2005-11-15 7:50 ` Vojtech Pavlik
2005-11-15 8:24 ` Jan Beulich
2005-11-10 14:43 ` Vojtech Pavlik
2005-11-09 14:09 ` [PATCH 14/39] NLKD - kernel trace buffer access Jan Beulich
2005-11-09 14:09 ` [PATCH 15/39] NLKD - early pseudo-fs Jan Beulich
2005-11-09 14:11 ` Jan Beulich [this message]
2005-11-09 14:11 ` [PATCH 17/39] NLKD/i386 - core adjustments Jan Beulich
2005-11-09 19:00 ` Adrian Bunk
2005-11-10 8:04 ` Jan Beulich
2005-11-10 10:29 ` Adrian Bunk
2005-11-10 11:52 ` Jan Beulich
2005-11-10 12:36 ` Lars Marowsky-Bree
2005-11-09 14:18 ` [PATCH 22/39] NLKD - core Jan Beulich
2005-11-09 14:19 ` [PATCH 23/39] NLKD/x86 " Jan Beulich
2005-11-09 14:20 ` [PATCH 24/39] NLKD/i386 " Jan Beulich
2005-11-09 14:21 ` [PATCH 25/39] NLKD/x86-64 " Jan Beulich
2005-11-10 13:30 ` Andi Kleen
2005-11-09 14:22 ` [PATCH 26/39] NLKD - run time library Jan Beulich
2005-11-09 14:23 ` [PATCH 27/39] NLKD/i386 " Jan Beulich
2005-11-09 14:23 ` [PATCH 28/39] NLKD/x86-64 " Jan Beulich
2005-11-10 13:32 ` Andi Kleen
[not found] ` <437214B7.76F0.0078.0@novell.com>
[not found] ` <4372156A.76F0.0078.0@novell.com>
2005-11-09 14:28 ` [PATCH 34/39] NLKD/x86 - Console Debug Agent Jan Beulich
[not found] ` <43721600.76F0.0078.0@novell.com>
2005-11-09 14:30 ` [PATCH 38/39] NLKD/i386 - Remote " Jan Beulich
2005-11-09 14:31 ` [PATCH 39/39] NLKD/x86-64 " Jan Beulich
2005-11-09 14:29 ` [PATCH 15/39] NLKD - early pseudo-fs Al Viro
2005-11-09 14:37 ` Jan Beulich
2005-11-09 15:00 ` Al Viro
2005-11-09 16:00 ` Jan Beulich
2005-11-10 5:44 ` [PATCH 14/39] NLKD - kernel trace buffer access Keith Owens
2005-11-10 8:02 ` Jan Beulich
2005-11-09 18:51 ` [PATCH 11/39] NLKD - time adjustment George Anzinger
2005-11-09 16:50 ` [PATCH 6/39] NLKD - early panic notification Greg KH
2005-11-09 16:45 ` [PATCH 3/39] NLKD - early/late CPU up/down notification Greg KH
2005-11-09 17:09 ` Jan Beulich
2005-11-09 17:19 ` Greg KH
2005-11-10 7:41 ` Jan Beulich
2005-11-10 20:59 ` Sam Ravnborg
2005-11-11 7:52 ` Jan Beulich
2005-11-12 20:52 ` Randy.Dunlap
2005-11-10 23:01 ` Greg KH
2005-11-11 10:06 ` [PATCH 2/39] NLKD - an alternative early ioremap approach Pavel Machek
2005-11-11 10:19 ` Jan Beulich
2005-11-09 16:50 ` [PATCH 1/39] NLKD - an alternative kallsyms approach Randy.Dunlap
2005-11-09 16:57 ` Greg KH
2005-11-09 17:20 ` Jan Beulich
2005-11-09 16:59 ` [PATCH 0/39] NLKD - Novell Linux Kernel Debugger Jeff Garzik
2005-11-09 17:06 ` Randy.Dunlap
2005-11-09 17:14 ` Jan Beulich
2005-11-09 17:56 ` Alan Cox
2005-11-09 18:05 ` Greg KH
2005-11-09 18:54 ` Paul Jackson
2005-11-10 12:41 ` Christoph Hellwig
2005-11-13 1:09 ` Andi Kleen
2005-11-13 2:53 ` jmerkey
2005-11-13 3:44 ` Andi Kleen
2005-11-13 3:26 ` Jeff V. Merkey
2005-11-13 3:32 ` Jeff V. Merkey
2005-11-09 17:53 ` Alan Cox
2005-11-09 16:25 ` Jeffrey V. Merkey
2005-11-10 14:48 ` Mark Lord
2005-11-10 15:28 ` Tom Rini
2005-11-10 16:37 ` Alan Cox
2005-11-13 1:11 ` Andi Kleen
[not found] ` <437214E4.76F0.0078.0@novell.com>
[not found] ` <4372153C.76F0.0078.0@novell.com>
2005-11-10 13:33 ` [PATCH 32/39] NLKD/x86-64 - Core Debug Engine Andi Kleen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=43721184.76F0.0078.0@novell.com \
--to=jbeulich@novell.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox