From mboxrd@z Thu Jan 1 00:00:00 1970 From: mathieu.desnoyers@efficios.com (Mathieu Desnoyers) Date: Wed, 29 Jun 2011 16:00:44 -0400 Subject: [ltt-dev] [LTTNG-MODULES PATCH 2/2 v2] Update ABI to select the output method In-Reply-To: <1309377509-18071-1-git-send-email-julien.desfossez@polymtl.ca> References: <1309377201-16871-2-git-send-email-julien.desfossez@polymtl.ca> <1309377509-18071-1-git-send-email-julien.desfossez@polymtl.ca> Message-ID: <20110629200044.GB30489@Krystal> * Julien Desfossez (julien.desfossez at polymtl.ca) wrote: > Add output selection in lttng_kernel_channel to use mmap or splice. > > Signed-off-by: Julien Desfossez > --- > ltt-debugfs-abi.c | 15 ++++++++++++--- > ltt-debugfs-abi.h | 9 +++++++++ > 2 files changed, 21 insertions(+), 3 deletions(-) > > diff --git a/ltt-debugfs-abi.c b/ltt-debugfs-abi.c > index 6327d09..5fe32a2 100644 > --- a/ltt-debugfs-abi.c > +++ b/ltt-debugfs-abi.c > @@ -289,12 +289,21 @@ 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 ? tabs vs space problem here. > + "relay-overwrite-mmap" : "relay-discard-mmap"; > + } else ... ? (error handling) > 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"; tabs vs space. > + } else here too. Thanks, Mathieu > 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 > -- Mathieu Desnoyers Operating System Efficiency R&D Consultant EfficiOS Inc. http://www.efficios.com