Re-add late setup/early tracing.
RFC PATCH 21/21 Re-add late setup/early tracing.
--- include/linux/relay_pagewriter.h | 5 +++ kernel/relay_pagewriter.c | 66 +++++++++++++++++++++++++++++++------- 2 files changed, 59 insertions(+), 12 deletions(-)
include/linux/relay_pagewriter.h +5 -0
@@ -26,6 +26,7 @@*/ #define PAGEWRITER_PAD_WRITES 0x00010000/* don't cross pages */ #define PAGEWRITER_FLIGHT_MODE 0x00020000/* n_pages page ring */ +#define PAGEWRITER_LATE_SETUP 0x00040000/* delay chan create */ /* * Per-cpu pagewriter buffer
@@ -49,12 +50,14 @@ struct pagewriter {struct rchan *rchan;/* associated relay channel */ struct pagewriter_callbacks *cb;/* client callbacks */ size_t n_pages;/* number of pages per buffer */ +size_t n_pages_wakeup;/* save for LATE */ struct kref kref;/* channel refcount */ void *private_data;/* for user-defined data */ size_t last_toobig;/* tried to log event > page size */ struct pagewriter_buf *buf[NR_CPUS ];/* per-cpu channel buffers */ struct list_head list;/* for channel list */ atomic_t dropped;/* dropped events due to buffer-full */ +char base_filename[NAME_MAX ];/* saved base filename, for LATE */ unsigned long flags;/* pagewriter flags for this channel */ };
@@ -286,5 +289,7 @@ extern void pagewriter_flush(struct pagewriter *pagewriter);extern void pagewriter_close (struct pagewriter *pagewriter);extern void pagewriter_reset (struct pagewriter *pagewriter);extern void pagewriter_save_flight_data (struct pagewriter *pagewriter); +extern int pagewriter_late_setup (struct pagewriter *pagewriter, +struct dentry *parent);#endif /* _LINUX_RELAY_PAGEWRITER_H */
kernel/relay_pagewriter.c +54 -12
99 lines not on this page · raw message
Signature · 1 line
1.5.3.5