LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH] spufs support multiple probes markers
       [not found] ` <20080212233914.GA22966@Krystal>
@ 2008-02-12 23:56   ` Mathieu Desnoyers
  2008-02-14  7:19     ` Christoph Hellwig
  0 siblings, 1 reply; 3+ messages in thread
From: Mathieu Desnoyers @ 2008-02-12 23:56 UTC (permalink / raw)
  To: Andrew Morton, Christoph Hellwig, Frank Ch. Eigler, Steven Rostedt
  Cc: linux-kernel

* Mathieu Desnoyers (mathieu.desnoyers@polymtl.ca) wrote:
> * Andrew Morton (akpm@linux-foundation.org) wrote:
> > 
> > fyi, I have this on hold because I spotted spufs build breakage,
> > but I haven't had time to investigate.  powerpc allmodconfig, iirc.
> 
> Christoph told me he would update his sputrace accordingly. Christoph,
> should I do the changes or let you do it ?
> 
> It's mostly the probe function prototype which changes from 
> 
> -typedef void marker_probe_func(const struct marker *mdata,
> -       void *private_data, const char *fmt, ...);
> 
> to
> 
> +typedef void marker_probe_func(void *probe_private, void *call_private,
> +               const char *fmt, va_list *args);
> 
> Where you receive an already ready va_list instead of having to call
> va_start/va_end in the probe.
> 
> Also, there is no more marker_arm/marker_disarm. It is now automatically
> done upon register/unregister.
> 
> Mathieu
> 

Update spufs to the new linux kernel markers API, which supports connecting
more than one probe to a single marker.

(compile-tested only)

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
CC: Christoph Hellwig <hch@infradead.org>
CC: "Frank Ch. Eigler" <fche@redhat.com>
CC: Steven Rostedt <rostedt@goodmis.org>
CC: Andrew Morton <akpm@linux-foundation.org>
---
 arch/powerpc/platforms/cell/spufs/sputrace.c |   31 +++++++++------------------
 1 file changed, 11 insertions(+), 20 deletions(-)

Index: linux-2.6-lttng/arch/powerpc/platforms/cell/spufs/sputrace.c
===================================================================
--- linux-2.6-lttng.orig/arch/powerpc/platforms/cell/spufs/sputrace.c	2008-02-12 15:07:25.000000000 -0500
+++ linux-2.6-lttng/arch/powerpc/platforms/cell/spufs/sputrace.c	2008-02-12 15:11:39.000000000 -0500
@@ -146,34 +146,28 @@
 	wake_up(&sputrace_wait);
 }
 
-static void spu_context_event(const struct marker *mdata,
-		void *private, const char *format, ...)
+static void spu_context_event(void *probe_private, void *call_data,
+		const char *format, va_list *args)
 {
-	struct spu_probe *p = mdata->private;
-	va_list ap;
+	struct spu_probe *p = probe_private;
 	struct spu_context *ctx;
 	struct spu *spu;
 
-	va_start(ap, format);
-	ctx = va_arg(ap, struct spu_context *);
-	spu = va_arg(ap, struct spu *);
+	ctx = va_arg(*args, struct spu_context *);
+	spu = va_arg(*args, struct spu *);
 
 	sputrace_log_item(p->name, ctx, spu);
-	va_end(ap);
 }
 
-static void spu_context_nospu_event(const struct marker *mdata,
-		void *private, const char *format, ...)
+static void spu_context_nospu_event(void *probe_private, void *call_data,
+		const char *format, va_list *args)
 {
-	struct spu_probe *p = mdata->private;
-	va_list ap;
+	struct spu_probe *p = probe_private;
 	struct spu_context *ctx;
 
-	va_start(ap, format);
-	ctx = va_arg(ap, struct spu_context *);
+	ctx = va_arg(*args, struct spu_context *);
 
 	sputrace_log_item(p->name, ctx, NULL);
-	va_end(ap);
 }
 
 struct spu_probe spu_probes[] = {
@@ -219,10 +213,6 @@
 		if (error)
 			printk(KERN_INFO "Unable to register probe %s\n",
 					p->name);
-
-		error = marker_arm(p->name);
-		if (error)
-			printk(KERN_INFO "Unable to arm probe %s\n", p->name);
 	}
 
 	return 0;
@@ -238,7 +228,8 @@
 	int i;
 
 	for (i = 0; i < ARRAY_SIZE(spu_probes); i++)
-		marker_probe_unregister(spu_probes[i].name);
+		marker_probe_unregister(spu_probes[i].name,
+			spu_probes[i].probe_func, &spu_probes[i]);
 
 	remove_proc_entry("sputrace", NULL);
 	kfree(sputrace_log);


-- 
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] spufs support multiple probes markers
  2008-02-12 23:56   ` [PATCH] spufs support multiple probes markers Mathieu Desnoyers
@ 2008-02-14  7:19     ` Christoph Hellwig
  2008-02-14 13:37       ` Mathieu Desnoyers
  0 siblings, 1 reply; 3+ messages in thread
From: Christoph Hellwig @ 2008-02-14  7:19 UTC (permalink / raw)
  To: Mathieu Desnoyers
  Cc: Andrew Morton, Christoph Hellwig, Frank Ch. Eigler,
	Steven Rostedt, linux-kernel

On Tue, Feb 12, 2008 at 06:56:50PM -0500, Mathieu Desnoyers wrote:
> Update spufs to the new linux kernel markers API, which supports connecting
> more than one probe to a single marker.

Compiles and works for me.  But saying I like the odd API would be lying.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] spufs support multiple probes markers
  2008-02-14  7:19     ` Christoph Hellwig
@ 2008-02-14 13:37       ` Mathieu Desnoyers
  0 siblings, 0 replies; 3+ messages in thread
From: Mathieu Desnoyers @ 2008-02-14 13:37 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Andrew Morton, Frank Ch. Eigler, Steven Rostedt, linux-kernel

* Christoph Hellwig (hch@infradead.org) wrote:
> On Tue, Feb 12, 2008 at 06:56:50PM -0500, Mathieu Desnoyers wrote:
> > Update spufs to the new linux kernel markers API, which supports connecting
> > more than one probe to a single marker.
> 
> Compiles and works for me.  But saying I like the odd API would be lying.
> 

Are there any concerns of yours that I should address then ? The changes
I made to the probe function prototype appeared to be technically
required and caused by variadic argument limitations when it comes to
support multiple probes.

I think that the marker arm/disarm removal gets rid of an unnecessary
redundancy.

Mathieu

-- 
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-02-14 13:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20080212152245.2d816143.akpm@linux-foundation.org>
     [not found] ` <20080212233914.GA22966@Krystal>
2008-02-12 23:56   ` [PATCH] spufs support multiple probes markers Mathieu Desnoyers
2008-02-14  7:19     ` Christoph Hellwig
2008-02-14 13:37       ` Mathieu Desnoyers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).