| To: | linux-mips@linux-mips.org |
|---|---|
| Subject: | [Patch 5/6] Scheduler support for HARDWARE_WATCHPOINTS. |
| From: | David Daney <ddaney@avtrex.com> |
| Date: | Mon, 21 Apr 2008 17:33:04 -0700 |
| Cc: | linux-kernel@vger.kernel.org |
| In-reply-to: | <480D2151.2020701@avtrex.com> |
| Original-recipient: | rfc822;linux-mips@linux-mips.org |
| References: | <480D2151.2020701@avtrex.com> |
| Sender: | linux-mips-bounce@linux-mips.org |
| User-agent: | Thunderbird 2.0.0.12 (X11/20080226) |
This is the meat of the patch. Here we install the watch register values when
we
schedule a new thread.
The implemtation of __restore_watch() is in asm/watch.h. In the case where
there
are no watch registers to install (the normal case) the overhead is 5 machine
instructions with gcc-3.4.3.
Signed-off-by: David Daney <ddaney@avtrex.com>
---
include/asm-mips/system.h | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/include/asm-mips/system.h b/include/asm-mips/system.h
index a944eda..cd30f83 100644
--- a/include/asm-mips/system.h
+++ b/include/asm-mips/system.h
@@ -20,6 +20,7 @@
#include <asm/cmpxchg.h>
#include <asm/cpu-features.h>
#include <asm/dsp.h>
+#include <asm/watch.h>
#include <asm/war.h>
@@ -76,6 +77,7 @@ do {
\
__restore_dsp(current); \
if (cpu_has_userlocal) \
write_c0_userlocal(current_thread_info()->tp_value); \
+ __restore_watch(); \
} while (0)
static inline unsigned long __xchg_u32(volatile int * m, unsigned int val)
--
1.5.5
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [Patch 4/6] Watch trap handling for HARDWARE_WATCHPOINTS., David Daney |
|---|---|
| Next by Date: | [Patch 6/6] Ptrace support for HARDWARE_WATCHPOINTS., David Daney |
| Previous by Thread: | [Patch 4/6] Watch trap handling for HARDWARE_WATCHPOINTS., David Daney |
| Next by Thread: | [Patch 6/6] Ptrace support for HARDWARE_WATCHPOINTS., David Daney |
| Indexes: | [Date] [Thread] [Top] [All Lists] |