android_kernel_oneplus_msm8998/include/trace/events
Wu Fengguang 83712358ba writeback: dirty ratelimit - think time compensation
Compensate the task's think time when computing the final pause time,
so that ->dirty_ratelimit can be executed accurately.

        think time := time spend outside of balance_dirty_pages()

In the rare case that the task slept longer than the 200ms period time
(result in negative pause time), the sleep time will be compensated in
the following periods, too, if it's less than 1 second.

Accumulated errors are carefully avoided as long as the max pause area
is not hitted.

Pseudo code:

        period = pages_dirtied / task_ratelimit;
        think = jiffies - dirty_paused_when;
        pause = period - think;

1) normal case: period > think

        pause = period - think
        dirty_paused_when = jiffies + pause
        nr_dirtied = 0

                             period time
              |===============================>|
                  think time      pause time
              |===============>|==============>|
        ------|----------------|---------------|------------------------
        dirty_paused_when   jiffies

2) no pause case: period <= think

        don't pause; reduce future pause time by:
        dirty_paused_when += period
        nr_dirtied = 0

                           period time
              |===============================>|
                                  think time
              |===================================================>|
        ------|--------------------------------+-------------------|----
        dirty_paused_when                                       jiffies

Acked-by: Jan Kara <jack@suse.cz>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
2011-12-18 14:20:27 +08:00
..
9p.h net/9p: Convert net/9p protocol dumps to tracepoints 2011-10-24 11:13:12 -05:00
asoc.h ASoC: Add another DAPM stat for neighbour checks 2011-09-22 17:24:40 +01: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
jbd.h jbd: Add fixed tracepoints 2011-06-25 17:29:51 +02:00
jbd2.h jbd2: remove jbd2_dev_to_name() from jbd2 tracepoints 2011-07-10 22:05:08 -04: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 include: replace linux/module.h with "struct module" wherever possible 2011-10-31 19:32:32 -04:00
napi.h
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
rcu.h rcu: Add grace-period, quiescent-state, and call_rcu trace events 2011-09-28 21:38:21 -07:00
regmap.h regmap: Add the regcache_sync trace event 2011-09-19 19:06:34 +01:00
regulator.h regulator: Add basic trace facilities 2011-01-12 14:33:00 +00:00
rpm.h PM / Runtime: Introduce trace points for tracing rpm_* functions 2011-09-27 22:53:27 +02:00
sched.h sched, tracing: Show PREEMPT_ACTIVE state in trace_sched_switch 2011-09-26 13:25:54 +02: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
timer.h
udp.h udp: add tracepoints for queueing skb to rcvbuf 2011-06-21 16:06:10 -07:00
vmscan.h mm: change isolate mode from #define to bitwise type 2011-10-31 17:30:44 -07:00
workqueue.h
writeback.h writeback: dirty ratelimit - think time compensation 2011-12-18 14:20:27 +08:00
xen.h xen/tracing: fix compile errors when tracing is disabled. 2011-07-25 15:51:02 -07:00