linux/include/trace/events
Theodore Ts'o 0ae45f63d4 vfs: add support for a lazytime mount option
Add a new mount option which enables a new "lazytime" mode.  This mode
causes atime, mtime, and ctime updates to only be made to the
in-memory version of the inode.  The on-disk times will only get
updated when (a) if the inode needs to be updated for some non-time
related change, (b) if userspace calls fsync(), syncfs() or sync(), or
(c) just before an undeleted inode is evicted from memory.

This is OK according to POSIX because there are no guarantees after a
crash unless userspace explicitly requests via a fsync(2) call.

For workloads which feature a large number of random write to a
preallocated file, the lazytime mount option significantly reduces
writes to the inode table.  The repeated 4k writes to a single block
will result in undesirable stress on flash devices and SMR disk
drives.  Even on conventional HDD's, the repeated writes to the inode
table block will trigger Adjacent Track Interference (ATI) remediation
latencies, which very negatively impact long tail latencies --- which
is a very big deal for web serving tiers (for example).

Google-Bug-Id: 18297052

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2015-02-05 02:45:00 -05:00
..
9p.h 9p: trace: use %*ph to dump buffer 2013-05-28 13:42:08 -05:00
asoc.h ASoC: Remove snd_soc_cache_sync() implementation 2014-11-09 09:06:30 +00:00
bcache.h bcache: fix crash in bcache_btree_node_alloc_fail tracepoint 2014-08-04 15:23:03 -07:00
block.h blktrace: fix accounting of partially completed requests 2014-03-05 16:11:21 -07:00
btrfs.h Btrfs: fix wrong parse of extent map's tracepoint 2014-09-18 07:14:47 -07:00
compaction.h mm/compaction: do not count migratepages when unnecessary 2014-06-04 16:54:07 -07:00
context_tracking.h context_tracking: User/kernel broundary cross trace events 2013-08-14 17:14:48 +02:00
ext3.h jbd: change journal_invalidatepage() to accept length 2013-05-21 23:26:36 -04:00
ext4.h ext4: change LRU to round-robin in extent status tree shrinker 2014-11-25 11:45:37 -05:00
f2fs.h f2fs: introduce FITRIM in f2fs_ioctl 2014-09-30 15:06:09 -07:00
fence.h fence: dma-buf cross-device synchronization (v18) 2014-07-08 12:18:56 -07:00
filelock.h locks: generic_delete_lease doesn't need a file_lock at all 2014-10-07 14:06:12 -04:00
filemap.h mm: trace filemap add and del 2013-04-29 15:54:28 -07:00
gfpflags.h mm: get rid of __GFP_KMEMCG 2014-06-04 16:53:56 -07:00
gpio.h
host1x.h gpu: host1x: Use struct host1x_bo pointers in traces 2014-11-13 16:11:32 +01:00
hswadsp.h Merge remote-tracking branches 'asoc/topic/ml26124', 'asoc/topic/of', 'asoc/topic/omap', 'asoc/topic/pxa' and 'asoc/topic/rcar' into asoc-next 2014-03-12 23:04:35 +00:00
i2c.h i2c: Add message transfer tracepoints for SMBUS [ver #2] 2014-03-13 22:15:07 +01:00
intel-sst.h Merge remote-tracking branches 'asoc/topic/ml26124', 'asoc/topic/of', 'asoc/topic/omap', 'asoc/topic/pxa' and 'asoc/topic/rcar' into asoc-next 2014-03-12 23:04:35 +00:00
iommu.h iommu: Add iommu_error class event to iommu trace 2013-09-25 11:07:04 +02:00
ipi.h tracepoint: add generic tracepoint definitions for IPI tracing 2014-08-07 20:40:40 -04:00
irq.h net: treewide: Fix typo found in DocBook/networking.xml 2014-09-05 17:35:28 -07:00
jbd2.h jbd2: trace when lock_buffer in do_get_write_access takes a long time 2013-04-21 16:47:54 -04:00
jbd.h
kmem.h mm: get rid of unnecessary overhead of trace_mm_page_alloc_extfrag() 2013-11-13 12:09:10 +09:00
kvm.h KVM: fix sparse warning in include/trace/events/kvm.h 2015-01-19 11:07:57 +01:00
lock.h
mce.h
migrate.h mm tracing: tell mm_migrate_pages event about numa_misplaced 2014-08-06 18:01:18 -07:00
module.h module: Replace module_ref with atomic_t refcnt 2014-11-11 17:07:46 +10:30
napi.h
net.h net: Rename skb->rxhash to skb->hash 2014-03-26 15:58:20 -04:00
nmi.h x86: Add NMI duration tracepoints 2013-06-23 11:52:58 +02:00
oom.h mm, oom: change type of oom_score_adj to short 2012-12-11 17:22:27 -08:00
pagemap.h mm: pagemap: avoid unnecessary overhead when tracepoints are deactivated 2014-08-06 18:01:20 -07:00
power_cpu_migrate.h ARM: bL_switcher/trace: Add trace trigger for trace bootstrapping 2013-09-23 18:47:30 -04:00
power.h PM / sleep: trace events for device PM callbacks 2014-06-11 02:16:48 +02:00
printk.h printk/tracing: rework console tracing 2013-04-29 18:28:13 -07:00
random.h random: convert DEBUG_ENT to tracepoints 2013-10-10 14:32:23 -04:00
rcu.h rcu: Remove redundant TREE_PREEMPT_RCU config option 2014-10-29 10:20:05 -07:00
regmap.h regmap: Add support for discarding parts of the register cache 2013-05-12 18:46:47 +04:00
regulator.h
rpm.h
sched.h sched: Fix the PREEMPT_ACTIVE check in __trace_sched_switch_state() 2014-10-28 10:47:53 +01:00
scsi.h scsi: rename SERVICE_ACTION_IN to SERVICE_ACTION_IN_16 2014-11-24 20:01:40 +01:00
signal.h
skb.h
sock.h
spi.h spi: Provide common spi_message processing loop 2013-10-11 20:09:50 +01:00
sunrpc.h sunrpc: add some tracepoints around enqueue and dequeue of svc_xprt 2014-12-09 11:29:14 -05:00
swiotlb.h tracing/events: Add bounce tracing to swiotbl 2013-10-02 12:53:26 -04:00
syscalls.h tracepoint: Fix sparse warnings in tracepoint.c 2014-04-09 10:12:11 -04:00
target.h Merge remote-tracking branch 'scsi-queue/drivers-for-3.19' into for-linus 2014-12-18 05:56:29 -08:00
task.h exec: kill bprm->tcomm[], simplify the "basename" logic 2014-04-07 16:36:05 -07:00
thermal.h thermal: trace: Trace when temperature is above a trip point 2014-07-29 09:28:43 -04:00
thp.h powerpc/thp: Add tracepoints to track hugepage invalidate 2014-08-13 18:20:42 +10:00
timer.h Merge branch 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-05-05 13:23:27 -07:00
tlb.h x86/mm: Add tracepoints for TLB flushes 2014-07-31 08:48:51 -07:00
udp.h
v4l2.h [media] v4l: add stream format for SDR receiver 2014-03-05 14:15:12 -03:00
vmscan.h mm: shrinker: add nid to tracepoint output 2014-06-04 16:54:04 -07:00
workqueue.h workqueue: rename cpu_workqueue to pool_workqueue 2013-02-13 19:29:12 -08:00
writeback.h vfs: add support for a lazytime mount option 2015-02-05 02:45:00 -05:00
xen.h xen/mmu: Use Xen specific TLB flush instead of the generic one. 2012-10-31 12:38:31 -04:00