Skip to contentSkip to conversation

relay - Remove vmap of relay buffers.

RFC PATCH In review Tom Zanussi 1 participant 1 message Oct 16, 2008

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

RFC PATCH 11/21 relay - Remove vmap of relay buffers.

Also removes relay_reserve and switches callers over to relay_write.

---
 block/blktrace.c      |    8 ++++-
 include/linux/relay.h |   47 +++++++++---------------------------
 kernel/relay.c        |   63 +++++++++++++++++++++---------------------------
 3 files changed, 46 insertions(+), 72 deletions(-)
block/blktrace.c +6 -2
index 84a9cb4..f60665e 100644
@@ -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);
include/linux/relay.h +12 -35

86 lines not on this page · raw message

kernel/relay.c +28 -35

155 lines not on this page · raw message

Signature · 1 line
1.5.3.5