Skip to contentSkip to conversation

Re-add late setup/early tracing.

RFC PATCH In review Tom Zanussi 1 participant 1 message Oct 16, 2008

lore
Share & tools
lore
#0 lore raw

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
index 91ad16b..8fb4038 100644
@@ -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