[RFC PATCH 11/11] relay - Remove vmap of relay buffers.

Previous thread: [RFC PATCH 10/11] relay - Remove sub-buffers from relay. by Tom Zanussi on Sunday, September 28, 2008 - 10:40 pm. (1 message)

Next thread: [RFC PATCH 8/11] relay - Clean up remaining padding-related junk. by Tom Zanussi on Sunday, September 28, 2008 - 10:40 pm. (1 message)
From: Tom Zanussi
Date: Sunday, September 28, 2008 - 10:40 pm

Remove vmap of relay buffers.

Also removes relay_reserve and switches callers over to relay_write.

Signed-off-by: Tom Zanussi <zanussi@comcast.net>

---
 block/blktrace.c      |    8 ++++-
 include/linux/relay.h |   47 +++++++++---------------------------
 kernel/relay.c        |   63 +++++++++++++++++++++---------------------------
 3 files changed, 46 insertions(+), 72 deletions(-)

diff --git a/block/blktrace.c b/block/blktrace.c
index 84a9cb4..f60665e 100644
--- a/block/blktrace.c
+++ b/block/blktrace.c
@@ -35,7 +35,7 @@ static void trace_note(struct blk_trace *bt, pid_t pid, int action,
 {
 	struct blk_io_trace *t;
 
-	t = relay_reserve(bt->rchan, sizeof(*t) + len);
+	t = kmalloc(sizeof(*t) + len, GFP_KERNEL);
 	if (t) {
 		const int cpu = smp_processor_id();
 
@@ -47,6 +47,8 @@ static void trace_note(struct blk_trace *bt, pid_t pid, int action,
 		t->cpu = cpu;
 		t->pdu_len = len;
 		memcpy((void *) t + sizeof(*t), data, len);
+		relay_write(bt->rchan, t, sizeof(*t) + len);
+		kfree(t);
 	}
 }
 
@@ -166,7 +168,7 @@ void __blk_add_trace(struct blk_trace *bt, sector_t sector, int bytes,
 	if (unlikely(tsk->btrace_seq != blktrace_seq))
 		trace_note_tsk(bt, tsk);
 
-	t = relay_reserve(bt->rchan, sizeof(*t) + pdu_len);
+	t = kmalloc(sizeof(*t) + pdu_len, GFP_KERNEL);
 	if (t) {
 		cpu = smp_processor_id();
 		sequence = per_cpu_ptr(bt->sequence, cpu);
@@ -185,6 +187,8 @@ void __blk_add_trace(struct blk_trace *bt, sector_t sector, int bytes,
 
 		if (pdu_len)
 			memcpy((void *) t + sizeof(*t), pdu_data, pdu_len);
+		relay_write(bt->rchan, t, sizeof(*t) + pdu_len);
+		kfree(t);
 	}
 
 	local_irq_restore(flags);
diff --git a/include/linux/relay.h b/include/linux/relay.h
index e0b1730..35a6e8c 100644
--- a/include/linux/relay.h
+++ b/include/linux/relay.h
@@ -35,8 +35,8 @@
  */
 struct rchan_buf
 {
-	void *start;			/* start of channel buffer */
-	void *data;			/* start of current page */
+	void *data;			/* address of current page */
+	struct ...
Previous thread: [RFC PATCH 10/11] relay - Remove sub-buffers from relay. by Tom Zanussi on Sunday, September 28, 2008 - 10:40 pm. (1 message)

Next thread: [RFC PATCH 8/11] relay - Clean up remaining padding-related junk. by Tom Zanussi on Sunday, September 28, 2008 - 10:40 pm. (1 message)