Re: [PATCH] Add PM_TRACE x86_64 support.

2007-02-15 Thread Andrew Morton
On Thu, 08 Feb 2007 13:08:06 +1100 Nigel Cunningham <[EMAIL PROTECTED]> wrote:

> This patch add x86_64 support for PM_TRACE, and shifts per-arch code to
> the appropriate subdirectories.

ia64 allmodconfig:

include/linux/resume-trace.h:4:30: asm/resume-trace.h: No such file or directory
drivers/base/power/resume.c: In function `resume_device':
drivers/base/power/resume.c:28: warning: implicit declaration of function 
`TRACE_RESUME'
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Add PM_TRACE x86_64 support.

2007-02-13 Thread Pavel Machek
On Sat 2007-02-10 09:42:17, Jens Axboe wrote:
> On Fri, Feb 09 2007, Pavel Machek wrote:
> > Hi!
> > 
> > > > > Nigel Cunningham <[EMAIL PROTECTED]> writes:
> > > > > 
> > > > > > -   for (tracedata = &__tracedata_start ; tracedata < 
> > > > > > &__tracedata_end ; tracedata += 6) {
> > > > > > +   for (tracedata = &__tracedata_start ; tracedata < 
> > > > > > &__tracedata_end ; tracedata += 2 + sizeof(unsigned long)) {
> > > > > 
> > > > > Could you split this line?
> > > > 
> > > > Sure.
> > > > 
> > > > -- New version -- (What's the right way to do this?)
> > > > 
> > > > This patch add x86_64 support for PM_TRACE, and shifts per-arch code to
> > > > the appropriate subdirectories.
> > > > 
> > > > Symbol exports are added so tracing can be used from drivers built as
> > > > modules too.
> > > 
> > > Don't include exports in a patch that doesn't use them. Introduce the
> > > exports in a later patch series, for when you actually need it.
> > 
> > It is debugging infrastructure, so export actually makes sense... It
> > will not ever be used in mainline kernel; you need to modify code
> > manually to use this code..
> 
> Then add the exports while you are modifying the other code, it's no
> reason to put it in mainline.

Same could be said for the rest of the code, too... but Linus added it
to the mainline.

(Actually it has one example user somewhere, iirc)

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Add PM_TRACE x86_64 support.

2007-02-10 Thread Jens Axboe
On Fri, Feb 09 2007, Pavel Machek wrote:
> Hi!
> 
> > > > Nigel Cunningham <[EMAIL PROTECTED]> writes:
> > > > 
> > > > > - for (tracedata = &__tracedata_start ; tracedata < 
> > > > > &__tracedata_end ; tracedata += 6) {
> > > > > + for (tracedata = &__tracedata_start ; tracedata < 
> > > > > &__tracedata_end ; tracedata += 2 + sizeof(unsigned long)) {
> > > > 
> > > > Could you split this line?
> > > 
> > > Sure.
> > > 
> > > -- New version -- (What's the right way to do this?)
> > > 
> > > This patch add x86_64 support for PM_TRACE, and shifts per-arch code to
> > > the appropriate subdirectories.
> > > 
> > > Symbol exports are added so tracing can be used from drivers built as
> > > modules too.
> > 
> > Don't include exports in a patch that doesn't use them. Introduce the
> > exports in a later patch series, for when you actually need it.
> 
> It is debugging infrastructure, so export actually makes sense... It
> will not ever be used in mainline kernel; you need to modify code
> manually to use this code..

Then add the exports while you are modifying the other code, it's no
reason to put it in mainline.

-- 
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Add PM_TRACE x86_64 support.

2007-02-09 Thread Pavel Machek
Hi!

> > > Nigel Cunningham <[EMAIL PROTECTED]> writes:
> > > 
> > > > -   for (tracedata = &__tracedata_start ; tracedata < 
> > > > &__tracedata_end ; tracedata += 6) {
> > > > +   for (tracedata = &__tracedata_start ; tracedata < 
> > > > &__tracedata_end ; tracedata += 2 + sizeof(unsigned long)) {
> > > 
> > > Could you split this line?
> > 
> > Sure.
> > 
> > -- New version -- (What's the right way to do this?)
> > 
> > This patch add x86_64 support for PM_TRACE, and shifts per-arch code to
> > the appropriate subdirectories.
> > 
> > Symbol exports are added so tracing can be used from drivers built as
> > modules too.
> 
> Don't include exports in a patch that doesn't use them. Introduce the
> exports in a later patch series, for when you actually need it.

It is debugging infrastructure, so export actually makes sense... It
will not ever be used in mainline kernel; you need to modify code
manually to use this code..

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Add PM_TRACE x86_64 support.

2007-02-08 Thread Jens Axboe
On Thu, Feb 08 2007, Nigel Cunningham wrote:
> On Wed, 2007-02-07 at 23:18 -0200, Otavio Salvador wrote:
> > Nigel Cunningham <[EMAIL PROTECTED]> writes:
> > 
> > > - for (tracedata = &__tracedata_start ; tracedata < &__tracedata_end ; 
> > > tracedata += 6) {
> > > + for (tracedata = &__tracedata_start ; tracedata < &__tracedata_end ; 
> > > tracedata += 2 + sizeof(unsigned long)) {
> > 
> > Could you split this line?
> 
> Sure.
> 
> -- New version -- (What's the right way to do this?)
> 
> This patch add x86_64 support for PM_TRACE, and shifts per-arch code to
> the appropriate subdirectories.
> 
> Symbol exports are added so tracing can be used from drivers built as
> modules too.

Don't include exports in a patch that doesn't use them. Introduce the
exports in a later patch series, for when you actually need it.

-- 
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Add PM_TRACE x86_64 support.

2007-02-07 Thread Nigel Cunningham
On Wed, 2007-02-07 at 23:18 -0200, Otavio Salvador wrote:
> Nigel Cunningham <[EMAIL PROTECTED]> writes:
> 
> > -   for (tracedata = &__tracedata_start ; tracedata < &__tracedata_end ; 
> > tracedata += 6) {
> > +   for (tracedata = &__tracedata_start ; tracedata < &__tracedata_end ; 
> > tracedata += 2 + sizeof(unsigned long)) {
> 
> Could you split this line?

Sure.

-- New version -- (What's the right way to do this?)

This patch add x86_64 support for PM_TRACE, and shifts per-arch code to
the appropriate subdirectories.

Symbol exports are added so tracing can be used from drivers built as
modules too.

Please apply.

Signed-off-by: Nigel Cunningham <[EMAIL PROTECTED]>

 arch/x86_64/kernel/vmlinux.lds.S  |7 +++
 drivers/base/power/trace.c|5 -
 include/asm-i386/resume-trace.h   |   21 +
 include/asm-x86_64/resume-trace.h |   21 +
 include/linux/resume-trace.h  |   24 ++--
 kernel/power/Kconfig  |2 +-
 6 files changed, 60 insertions(+), 20 deletions(-)
diff -ruNp 160-PM_TRACE.patch-old/arch/x86_64/kernel/vmlinux.lds.S 
160-PM_TRACE.patch-new/arch/x86_64/kernel/vmlinux.lds.S
--- 160-PM_TRACE.patch-old/arch/x86_64/kernel/vmlinux.lds.S 2007-02-08 
13:05:09.0 +1100
+++ 160-PM_TRACE.patch-new/arch/x86_64/kernel/vmlinux.lds.S 2007-02-07 
23:32:23.0 +1100
@@ -54,6 +54,13 @@ SECTIONS
 
   BUG_TABLE
 
+  . = ALIGN(4);
+  .tracedata : AT(ADDR(.tracedata) - LOAD_OFFSET) {
+   __tracedata_start = .;
+   *(.tracedata)
+   __tracedata_end = .;
+  }
+
   . = ALIGN(PAGE_SIZE);/* Align data segment to page size boundary */
/* Data */
   .data : AT(ADDR(.data) - LOAD_OFFSET) {
diff -ruNp 160-PM_TRACE.patch-old/drivers/base/power/trace.c 
160-PM_TRACE.patch-new/drivers/base/power/trace.c
--- 160-PM_TRACE.patch-old/drivers/base/power/trace.c   2007-02-06 
14:48:31.0 +1100
+++ 160-PM_TRACE.patch-new/drivers/base/power/trace.c   2007-02-08 
13:04:51.0 +1100
@@ -142,6 +142,7 @@ void set_trace_device(struct device *dev
 {
dev_hash_value = hash_string(DEVSEED, dev->bus_id, DEVHASH);
 }
+EXPORT_SYMBOL(set_trace_device);
 
 /*
  * We could just take the "tracedata" index into the .tracedata
@@ -162,6 +163,7 @@ void generate_resume_trace(void *traceda
file_hash_value = hash_string(lineno, file, FILEHASH);
set_magic_time(user_hash_value, file_hash_value, dev_hash_value);
 }
+EXPORT_SYMBOL(generate_resume_trace);
 
 extern char __tracedata_start, __tracedata_end;
 static int show_file_hash(unsigned int value)
@@ -170,7 +172,8 @@ static int show_file_hash(unsigned int v
char *tracedata;
 
match = 0;
-   for (tracedata = &__tracedata_start ; tracedata < &__tracedata_end ; 
tracedata += 6) {
+   for (tracedata = &__tracedata_start ; tracedata < &__tracedata_end ;
+   tracedata += 2 + sizeof(unsigned long)) {
unsigned short lineno = *(unsigned short *)tracedata;
const char *file = *(const char **)(tracedata + 2);
unsigned int hash = hash_string(lineno, file, FILEHASH);
diff -ruNp 160-PM_TRACE.patch-old/include/asm-i386/resume-trace.h 
160-PM_TRACE.patch-new/include/asm-i386/resume-trace.h
--- 160-PM_TRACE.patch-old/include/asm-i386/resume-trace.h  1970-01-01 
10:00:00.0 +1000
+++ 160-PM_TRACE.patch-new/include/asm-i386/resume-trace.h  2007-02-07 
23:32:23.0 +1100
@@ -0,0 +1,21 @@
+#ifndef ARCH_RESUME_TRACE_H
+#define ARCH_RESUME_TRACE_H
+
+#ifdef CONFIG_PM_TRACE
+#define TRACE_RESUME(user) do {\
+   if (pm_trace_enabled) { \
+   void *tracedata;\
+   asm volatile("movl $1f,%0\n"\
+   ".section .tracedata,\"a\"\n"   \
+   "1:\t.word %c1\n"   \
+   "\t.long %c2\n" \
+   ".previous" \
+   :"=r" (tracedata)   \
+   : "i" (__LINE__), "i" (__FILE__));  \
+   generate_resume_trace(tracedata, user); \
+   }   \
+} while (0)
+#else
+#define TRACE_RESUME(user) do { } while (0)
+#endif
+#endif
diff -ruNp 160-PM_TRACE.patch-old/include/asm-x86_64/resume-trace.h 
160-PM_TRACE.patch-new/include/asm-x86_64/resume-trace.h
--- 160-PM_TRACE.patch-old/include/asm-x86_64/resume-trace.h1970-01-01 
10:00:00.0 +1000
+++ 160-PM_TRACE.patch-new/include/asm-x86_64/resume-trace.h2007-02-07 
23:32:23.0 +1100
@@ -0,0 +1,21 @@
+#ifndef ARCH_RESUME_TRACE_H
+#define ARCH_RESUME_TRACE_H
+
+#ifdef CONFIG_PM_TRACE
+#define TRACE_RESUME(user) do {  

Re: [PATCH] Add PM_TRACE x86_64 support.

2007-02-07 Thread Otavio Salvador
Nigel Cunningham <[EMAIL PROTECTED]> writes:

> - for (tracedata = &__tracedata_start ; tracedata < &__tracedata_end ; 
> tracedata += 6) {
> + for (tracedata = &__tracedata_start ; tracedata < &__tracedata_end ; 
> tracedata += 2 + sizeof(unsigned long)) {

Could you split this line?

-- 
O T A V I OS A L V A D O R
-
 E-mail: [EMAIL PROTECTED]  UIN: 5906116
 GNU/Linux User: 239058 GPG ID: 49A5F855
 Home Page: http://otavio.ossystems.com.br
-
"Microsoft sells you Windows ... Linux gives
 you the whole house."
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/