linux/include/trace/events
Eric Gouriou 6f91bc5fda ext4: optimize ext4_ext_convert_to_initialized()
This patch introduces a fast path in ext4_ext_convert_to_initialized()
for the case when the conversion can be performed by transferring
the newly initialized blocks from the uninitialized extent into
an adjacent initialized extent. Doing so removes the expensive
invocations of memmove() which occur during extent insertion and
the subsequent merge.

In practice this should be the common case for clients performing
append writes into files pre-allocated via
fallocate(FALLOC_FL_KEEP_SIZE). In such a workload performed via
direct IO and when using a suboptimal implementation of memmove()
(x86_64 prior to the 2.6.39 rewrite), this patch reduces kernel CPU
consumption by 32%.

Two new trace points are added to ext4_ext_convert_to_initialized()
to offer visibility into its operations. No exit trace point has
been added due to the multiplicity of return points. This can be
revisited once the upstream cleanup is backported.

Signed-off-by: Eric Gouriou <egouriou@google.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2011-10-27 11:43:23 -04:00
..
asoc.h ASoC: core - Add platform IO tracing 2011-07-05 11:08:10 -07:00
block.h blktrace: add FLUSH/FUA support 2011-08-11 10:36:05 +02:00
btrfs.h writeback: remove .nonblocking and .encountered_congestion 2011-06-08 08:25:23 +08:00
compaction.h mm: compaction: add trace events for memory compaction activity 2011-01-13 17:32:33 -08:00
ext3.h ext3: Add fixed tracepoints 2011-06-25 17:29:51 +02:00
ext4.h ext4: optimize ext4_ext_convert_to_initialized() 2011-10-27 11:43:23 -04:00
gfpflags.h mm: tracing: add missing GFP flags to tracing 2011-05-11 18:50:45 -07:00
gpio.h gpio: add trace events for setting direction and value 2011-05-20 00:40:19 -06:00
irq.h rcu: Use softirq to address performance regression 2011-06-14 15:25:39 -07:00
jbd2.h jbd2: remove jbd2_dev_to_name() from jbd2 tracepoints 2011-07-10 22:05:08 -04:00
jbd.h jbd: Add fixed tracepoints 2011-06-25 17:29:51 +02:00
kmem.h
kvm.h KVM: cleanup async_pf tracepoints 2011-01-12 11:28:57 +02:00
lock.h
mce.h tracing: Fix event alignment: mce:mce_record 2011-03-10 10:34:28 -05:00
module.h tracing: Fix event alignment: module:module_request 2011-03-10 10:34:20 -05:00
napi.h napi: Convert trace_napi_poll to TRACE_EVENT 2010-09-07 17:51:01 +02:00
net.h net: tracepoint of net_dev_xmit sees freed skb and causes panic 2011-06-02 14:06:31 -07:00
power.h perf: Clean up power events by introducing new, more generic ones 2011-01-04 08:16:54 +01:00
regulator.h regulator: Add basic trace facilities 2011-01-12 14:33:00 +00:00
sched.h tracing/sched: Add sched_pi_setprio tracepoint 2010-09-21 10:56:41 -04:00
scsi.h [SCSI] Include protection operation in SCSI command trace 2011-03-14 18:36:02 -05:00
signal.h
skb.h tracing: Fix event alignment: skb:kfree_skb 2011-03-10 10:34:31 -05:00
sock.h core: add tracepoints for queueing skb to rcvbuf 2011-06-21 16:06:10 -07:00
syscalls.h tracing: Allow raw syscall trace events for non privileged users 2010-11-18 14:37:43 +01:00
timer.h
udp.h udp: add tracepoints for queueing skb to rcvbuf 2011-06-21 16:06:10 -07:00
vmscan.h vmscan: add shrink_slab tracepoints 2011-07-20 01:44:27 -04:00
workqueue.h workqueue: add queue_work and activate_work trace points 2010-10-05 10:49:55 +02:00
writeback.h writeback: trace global_dirty_state 2011-07-09 22:09:03 -07:00
xen.h xen/tracing: fix compile errors when tracing is disabled. 2011-07-25 15:51:02 -07:00