@@ -271,6 +271,79 @@ TRACE_EVENT(bdi_dirty_ratelimit,
271
271
)
272
272
);
273
273
274
+ TRACE_EVENT (balance_dirty_pages ,
275
+
276
+ TP_PROTO (struct backing_dev_info * bdi ,
277
+ unsigned long thresh ,
278
+ unsigned long bg_thresh ,
279
+ unsigned long dirty ,
280
+ unsigned long bdi_thresh ,
281
+ unsigned long bdi_dirty ,
282
+ unsigned long dirty_ratelimit ,
283
+ unsigned long task_ratelimit ,
284
+ unsigned long dirtied ,
285
+ long pause ,
286
+ unsigned long start_time ),
287
+
288
+ TP_ARGS (bdi , thresh , bg_thresh , dirty , bdi_thresh , bdi_dirty ,
289
+ dirty_ratelimit , task_ratelimit ,
290
+ dirtied , pause , start_time ),
291
+
292
+ TP_STRUCT__entry (
293
+ __array ( char , bdi , 32 )
294
+ __field (unsigned long , limit )
295
+ __field (unsigned long , setpoint )
296
+ __field (unsigned long , dirty )
297
+ __field (unsigned long , bdi_setpoint )
298
+ __field (unsigned long , bdi_dirty )
299
+ __field (unsigned long , dirty_ratelimit )
300
+ __field (unsigned long , task_ratelimit )
301
+ __field (unsigned int , dirtied )
302
+ __field (unsigned int , dirtied_pause )
303
+ __field (unsigned long , paused )
304
+ __field ( long , pause )
305
+ ),
306
+
307
+ TP_fast_assign (
308
+ unsigned long freerun = (thresh + bg_thresh ) / 2 ;
309
+ strlcpy (__entry -> bdi , dev_name (bdi -> dev ), 32 );
310
+
311
+ __entry -> limit = global_dirty_limit ;
312
+ __entry -> setpoint = (global_dirty_limit + freerun ) / 2 ;
313
+ __entry -> dirty = dirty ;
314
+ __entry -> bdi_setpoint = __entry -> setpoint *
315
+ bdi_thresh / (thresh + 1 );
316
+ __entry -> bdi_dirty = bdi_dirty ;
317
+ __entry -> dirty_ratelimit = KBps (dirty_ratelimit );
318
+ __entry -> task_ratelimit = KBps (task_ratelimit );
319
+ __entry -> dirtied = dirtied ;
320
+ __entry -> dirtied_pause = current -> nr_dirtied_pause ;
321
+ __entry -> pause = pause * 1000 / HZ ;
322
+ __entry -> paused = (jiffies - start_time ) * 1000 / HZ ;
323
+ ),
324
+
325
+
326
+ TP_printk ("bdi %s: "
327
+ "limit=%lu setpoint=%lu dirty=%lu "
328
+ "bdi_setpoint=%lu bdi_dirty=%lu "
329
+ "dirty_ratelimit=%lu task_ratelimit=%lu "
330
+ "dirtied=%u dirtied_pause=%u "
331
+ "paused=%lu pause=%ld" ,
332
+ __entry -> bdi ,
333
+ __entry -> limit ,
334
+ __entry -> setpoint ,
335
+ __entry -> dirty ,
336
+ __entry -> bdi_setpoint ,
337
+ __entry -> bdi_dirty ,
338
+ __entry -> dirty_ratelimit ,
339
+ __entry -> task_ratelimit ,
340
+ __entry -> dirtied ,
341
+ __entry -> dirtied_pause ,
342
+ __entry -> paused , /* ms */
343
+ __entry -> pause /* ms */
344
+ )
345
+ );
346
+
274
347
DECLARE_EVENT_CLASS (writeback_congest_waited_template ,
275
348
276
349
TP_PROTO (unsigned int usec_timeout , unsigned int usec_delayed ),
0 commit comments