From: Jérémie Galarneau Date: Fri, 5 May 2017 03:30:56 +0000 (-0400) Subject: Add kernctl RING_BUFFER_SNAPSHOT_SAMPLE_POSITIONS command X-Git-Tag: v2.10.0-rc1~38 X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=b007ec59a0b4fef96860cc92325795890191af11;hp=b0880ae543e5a637f05aeda604e958efb523a224 Add kernctl RING_BUFFER_SNAPSHOT_SAMPLE_POSITIONS command Signed-off-by: Jérémie Galarneau --- diff --git a/src/common/kernel-ctl/kernel-ctl.c b/src/common/kernel-ctl/kernel-ctl.c index 839a8600e..fffa64c87 100644 --- a/src/common/kernel-ctl/kernel-ctl.c +++ b/src/common/kernel-ctl/kernel-ctl.c @@ -470,6 +470,16 @@ int kernctl_snapshot(int fd) return LTTNG_IOCTL_CHECK(fd, RING_BUFFER_SNAPSHOT); } +/* + * Get a snapshot of the current ring buffer producer and consumer positions, + * regardless of whether or not the two positions are contained within the + * same sub-buffer. + */ +int kernctl_snapshot_sample_positions(int fd) +{ + return LTTNG_IOCTL_CHECK(fd, RING_BUFFER_SNAPSHOT_SAMPLE_POSITIONS); +} + /* Get the consumer position (iteration start) */ int kernctl_snapshot_get_consumed(int fd, unsigned long *pos) { diff --git a/src/common/kernel-ctl/kernel-ctl.h b/src/common/kernel-ctl/kernel-ctl.h index a8c27dd3a..952fb6fd1 100644 --- a/src/common/kernel-ctl/kernel-ctl.h +++ b/src/common/kernel-ctl/kernel-ctl.h @@ -86,6 +86,7 @@ int kernctl_put_next_subbuf(int fd); /* snapshot */ int kernctl_snapshot(int fd); +int kernctl_snapshot_sample_positions(int fd); int kernctl_snapshot_get_consumed(int fd, unsigned long *pos); int kernctl_snapshot_get_produced(int fd, unsigned long *pos); int kernctl_get_subbuf(int fd, unsigned long *pos); diff --git a/src/common/kernel-ctl/kernel-ioctl.h b/src/common/kernel-ctl/kernel-ioctl.h index 2ade00cd1..396c28681 100644 --- a/src/common/kernel-ctl/kernel-ioctl.h +++ b/src/common/kernel-ctl/kernel-ioctl.h @@ -51,6 +51,12 @@ #define RING_BUFFER_FLUSH _IO(0xF6, 0x0C) /* Get the current version of the metadata cache (after a get_next). */ #define RING_BUFFER_GET_METADATA_VERSION _IOR(0xF6, 0x0D, uint64_t) +/* + * Get a snapshot of the current ring buffer producer and consumer positions, + * regardless of whether or not the two positions are contained within the same + * sub-buffer. + */ +#define RING_BUFFER_SNAPSHOT_SAMPLE_POSITIONS _IO(0xF6, 0x0E) /* returns the timestamp begin of the current sub-buffer */ #define LTTNG_RING_BUFFER_GET_TIMESTAMP_BEGIN _IOR(0xF6, 0x20, uint64_t)