From d3d9d2a5ea9770db07aeb13a07f999aa48e8f865 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Mon, 4 Dec 2006 09:27:41 +0100 Subject: [PATCH] blktrace: uninline trace_note() It's too large to inline. Additionally clean it up, by fast pathing the likely path. Signed-off-by: Jens Axboe --- block/blktrace.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'block') diff --git a/block/blktrace.c b/block/blktrace.c index 562ca7cbf85..17bbdb811aa 100644 --- a/block/blktrace.c +++ b/block/blktrace.c @@ -31,25 +31,25 @@ static unsigned int blktrace_seq __read_mostly = 1; /* * Send out a notify message. */ -static inline unsigned int trace_note(struct blk_trace *bt, - pid_t pid, int action, - const void *data, size_t len) +static unsigned int trace_note(struct blk_trace *bt, pid_t pid, int action, + const void *data, size_t len) { struct blk_io_trace *t; - int cpu = smp_processor_id(); t = relay_reserve(bt->rchan, sizeof(*t) + len); - if (t == NULL) - return 0; - - t->magic = BLK_IO_TRACE_MAGIC | BLK_IO_TRACE_VERSION; - t->time = sched_clock() - per_cpu(blk_trace_cpu_offset, cpu); - t->device = bt->dev; - t->action = action; - t->pid = pid; - t->cpu = cpu; - t->pdu_len = len; - memcpy((void *) t + sizeof(*t), data, len); + if (t) { + const int cpu = smp_processor_id(); + + t->magic = BLK_IO_TRACE_MAGIC | BLK_IO_TRACE_VERSION; + t->time = sched_clock() - per_cpu(blk_trace_cpu_offset, cpu); + t->device = bt->dev; + t->action = action; + t->pid = pid; + t->cpu = cpu; + t->pdu_len = len; + memcpy((void *) t + sizeof(*t), data, len); + } + return blktrace_seq; } -- cgit From a863055b1066be1b8e1107f71be01daeed6bde31 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Mon, 4 Dec 2006 09:30:58 +0100 Subject: [PATCH] blktrace: don't return blktrace_seq from trace_note() Only the process notifier needs it, and it can set it manually. Signed-off-by: Jens Axboe --- block/blktrace.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'block') diff --git a/block/blktrace.c b/block/blktrace.c index 17bbdb811aa..74e02c04b2d 100644 --- a/block/blktrace.c +++ b/block/blktrace.c @@ -31,8 +31,8 @@ static unsigned int blktrace_seq __read_mostly = 1; /* * Send out a notify message. */ -static unsigned int trace_note(struct blk_trace *bt, pid_t pid, int action, - const void *data, size_t len) +static void trace_note(struct blk_trace *bt, pid_t pid, int action, + const void *data, size_t len) { struct blk_io_trace *t; @@ -49,8 +49,6 @@ static unsigned int trace_note(struct blk_trace *bt, pid_t pid, int action, t->pdu_len = len; memcpy((void *) t + sizeof(*t), data, len); } - - return blktrace_seq; } /* @@ -59,9 +57,8 @@ static unsigned int trace_note(struct blk_trace *bt, pid_t pid, int action, */ static void trace_note_tsk(struct blk_trace *bt, struct task_struct *tsk) { - tsk->btrace_seq = trace_note(bt, tsk->pid, - BLK_TN_PROCESS, - tsk->comm, sizeof(tsk->comm)); + tsk->btrace_seq = blktrace_seq; + trace_note(bt, tsk->pid, BLK_TN_PROCESS, tsk->comm, sizeof(tsk->comm)); } static void trace_note_time(struct blk_trace *bt) -- cgit From e62438630ca37539c8cc1553710bbfaa3cf960a7 Mon Sep 17 00:00:00 2001 From: Matthew Wilcox Date: Mon, 4 Dec 2006 03:38:31 -0700 Subject: [PATCH] Centralise definitions of sector_t and blkcnt_t CONFIG_LBD and CONFIG_LSF are spread into asm/types.h for no particularly good reason. Centralising the definition in linux/types.h means that arch maintainers don't need to bother adding it, as well as fixing the problem with x86-64 users being asked to make a decision that has absolutely no effect. The H8/300 porters seem particularly confused since I'm not aware of any microcontrollers that need to support 2TB filesystems. Signed-off-by: Matthew Wilcox Signed-off-by: Linus Torvalds --- block/Kconfig | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'block') diff --git a/block/Kconfig b/block/Kconfig index 83766a6bdee..a50f4811164 100644 --- a/block/Kconfig +++ b/block/Kconfig @@ -19,11 +19,9 @@ config BLOCK if BLOCK -#XXX - it makes sense to enable this only for 32-bit subarch's, not for x86_64 -#for instance. config LBD bool "Support for Large Block Devices" - depends on X86 || (MIPS && 32BIT) || PPC32 || (S390 && !64BIT) || SUPERH || UML + depends on !64BIT help Say Y here if you want to attach large (bigger than 2TB) discs to your machine, or if you want to have a raid or loopback device @@ -44,7 +42,7 @@ config BLK_DEV_IO_TRACE config LSF bool "Support for Large Single Files" - depends on X86 || (MIPS && 32BIT) || PPC32 || ARCH_S390_31 || SUPERH || UML + depends on !64BIT help Say Y here if you want to be able to handle very large files (bigger than 2TB), otherwise say N. -- cgit