From mboxrd@z Thu Jan 1 00:00:00 1970 From: julien.desfossez@polymtl.ca (Julien Desfossez) Date: Wed, 29 Jun 2011 16:53:35 -0400 Subject: [ltt-dev] [LTTNG-MODULES v2 2/2] Update ABI to select the output method In-Reply-To: <1309380815-23597-1-git-send-email-julien.desfossez@polymtl.ca> References: <1309380815-23597-1-git-send-email-julien.desfossez@polymtl.ca> Message-ID: <1309380815-23597-2-git-send-email-julien.desfossez@polymtl.ca> Add output selection in lttng_kernel_channel to use mmap or splice. Signed-off-by: Julien Desfossez --- ltt-debugfs-abi.c | 18 +++++++++++++++--- ltt-debugfs-abi.h | 9 +++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/ltt-debugfs-abi.c b/ltt-debugfs-abi.c index 6327d09..0aa2cec 100644 --- a/ltt-debugfs-abi.c +++ b/ltt-debugfs-abi.c @@ -289,12 +289,24 @@ int lttng_abi_create_channel(struct file *session_file, } switch (channel_type) { case PER_CPU_CHANNEL: - transport_name = chan_param.overwrite ? - "relay-overwrite" : "relay-discard"; + if (chan_param.output == LTTNG_KERNEL_SPLICE) { + transport_name = chan_param.overwrite ? + "relay-overwrite" : "relay-discard"; + } else if (chan_param.output == LTTNG_KERNEL_MMAP) { + transport_name = chan_param.overwrite ? + "relay-overwrite-mmap" : "relay-discard-mmap"; + } else { + return -EINVAL; + } fops = <tng_channel_fops; break; case METADATA_CHANNEL: - transport_name = "relay-metadata"; + if (chan_param.output == LTTNG_KERNEL_SPLICE) + transport_name = "relay-metadata"; + else if (chan_param.output == LTTNG_KERNEL_MMAP) + transport_name = "relay-metadata-mmap"; + else + return -EINVAL; fops = <tng_metadata_fops; break; default: diff --git a/ltt-debugfs-abi.h b/ltt-debugfs-abi.h index e3a7160..e333655 100644 --- a/ltt-debugfs-abi.h +++ b/ltt-debugfs-abi.h @@ -22,6 +22,14 @@ enum lttng_kernel_instrumentation { }; /* + * LTTng consumer mode + */ +enum lttng_kernel_output { + LTTNG_KERNEL_SPLICE, + LTTNG_KERNEL_MMAP, +}; + +/* * LTTng DebugFS ABI structures. */ @@ -31,6 +39,7 @@ struct lttng_kernel_channel { uint64_t num_subbuf; unsigned int switch_timer_interval; /* usecs */ unsigned int read_timer_interval; /* usecs */ + enum lttng_kernel_output output; /* splice, mmap */ }; /* -- 1.7.4.1