lttng-ust.git
13 years agotype-serializer: check is cpu id is out of bound.
Mathieu Desnoyers [Thu, 10 Feb 2011 21:11:02 +0000 (16:11 -0500)] 
type-serializer: check is cpu id is out of bound.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
13 years agoFix test build issue by commenting test in makefile. to fix.
Mathieu Desnoyers [Thu, 10 Feb 2011 19:29:24 +0000 (14:29 -0500)] 
Fix test build issue by commenting test in makefile. to fix.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
13 years agoUST-wide warning fixes/bugfixes
Mathieu Desnoyers [Thu, 10 Feb 2011 18:36:54 +0000 (13:36 -0500)] 
UST-wide warning fixes/bugfixes

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
13 years agousterr: check print format even in non UST_DEBUG configs
Mathieu Desnoyers [Thu, 10 Feb 2011 18:34:48 +0000 (13:34 -0500)] 
usterr: check print format even in non UST_DEBUG configs

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
13 years agoust_safe_snprintf should check print format
Mathieu Desnoyers [Thu, 10 Feb 2011 17:46:42 +0000 (12:46 -0500)] 
ust_safe_snprintf should check print format

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
13 years agoRemove PowerPC specific time reading function
Yannick Brosseau [Thu, 10 Feb 2011 15:51:41 +0000 (10:51 -0500)] 
Remove PowerPC specific time reading function

The PPC version of the trace_clock_read64 was using the TB register
which is not constant accross implementations. The currently
measured time base on PPC was not accurate.
So, for now, we rely on the CLOCK_MONOTONIC.

This patch remove a bunch of #ifdef for x86 and PPC, since we now rely on
the same base clock. It also fix the build on PPC that was currently broken

Signed-off-by: Yannick Brosseau <yannick.brosseau@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
13 years agoAdd all tests executable to gitignore
David Goulet [Wed, 9 Feb 2011 19:11:53 +0000 (14:11 -0500)] 
Add all tests executable to gitignore

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
13 years agoAdd getcpu error validation
Mathieu Desnoyers [Wed, 9 Feb 2011 19:09:11 +0000 (14:09 -0500)] 
Add getcpu error validation

This check is important for the case where getcpu(2) is not implemented by the
Kernel. So, the CPU 0 is the fallback.

Reported-by: David Goulet <david.goulet@polymtl.ca>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
13 years agoMerge branch 'master' of ssh://git.dorsal.polymtl.ca/home/git/ust
Mathieu Desnoyers [Wed, 2 Feb 2011 21:59:17 +0000 (16:59 -0500)] 
Merge branch 'master' of ssh://git.dorsal.polymtl.ca/home/git/ust

13 years agoRemove sys/timerfd.h include from test program
Mathieu Desnoyers [Wed, 2 Feb 2011 21:57:53 +0000 (16:57 -0500)] 
Remove sys/timerfd.h include from test program

This include is not required, and adds a dependency on relatively recent
distributions (breaks Debian Lenny).

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
13 years agoRename libustcmd to libustctl
Nils Carlson [Fri, 28 Jan 2011 08:52:08 +0000 (09:52 +0100)] 
Rename libustcmd to libustctl

This patch renames libustcmd to libustctl mostly because libustctl
sounds much better but also to clarify the connection between ustctl
and libustctl.

Signed-off-by: Nils Carlson <nils.carlson@ericsson.com>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Acked-by: David Goulet <david.goulet@polymtl.ca>
13 years agoUpdate documentation for new ustctl cli
Nils Carlson [Thu, 20 Jan 2011 11:15:54 +0000 (12:15 +0100)] 
Update documentation for new ustctl cli

Signed-off-by: Nils Carlson <nils.carlson@ericsson.com>
13 years agoUpdate test-cases for new ustctl cli
Nils Carlson [Thu, 20 Jan 2011 12:34:49 +0000 (13:34 +0100)] 
Update test-cases for new ustctl cli

Signed-off-by: Nils Carlson <nils.carlson@ericsson.com>
13 years agoustctl cli rewrite
Nils Carlson [Fri, 7 Jan 2011 14:41:27 +0000 (15:41 +0100)] 
ustctl cli rewrite

Completely re-write the ustctl cli making it behave in a similar
fashion to git. This makes more sense than using long-options
as commands.

Signed-off-by: Nils Carlson <nils.carlson@ericsson.com>
13 years agoAdd UST vs SystemTAP scalability test
Mathieu Desnoyers [Tue, 25 Jan 2011 17:26:51 +0000 (12:26 -0500)] 
Add UST vs SystemTAP scalability test

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
13 years agoChangeLog and version updates for release 0.11
Nils Carlson [Fri, 14 Jan 2011 21:15:18 +0000 (22:15 +0100)] 
ChangeLog and version updates for release 0.11

13 years agoFix a minor ugliness
Nils Carlson [Fri, 14 Jan 2011 21:08:59 +0000 (22:08 +0100)] 
Fix a minor ugliness

Variable was defined in middle of a block

13 years agoFix variable declaration of the clock source v2
David Goulet [Fri, 14 Jan 2011 17:14:31 +0000 (18:14 +0100)] 
Fix variable declaration of the clock source v2

The ust_clock_source was static in clock.h header file.
Thus, tracectl.c was not able to modify that variable for
the trace clock read function. Bad timestamp was always
returned if CLOCK_TRACE was not available.

v2:
Comment by Mathieu Desnoyers, set clock source variable
to extern in clock.h

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Acked-by: Nils Carlson <nils.carlson@ericsson.com>
13 years agoFix the URCU version detection for autoconf version 2.65 and older
Yannick Brosseau [Fri, 14 Jan 2011 16:05:27 +0000 (17:05 +0100)] 
Fix the URCU version detection for autoconf version 2.65 and older

Signed-off-by: Yannick Brosseau <yannick.brosseau@gmail.com>
Acked-by: David Goulet <david.goulet@polymtl.ca>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
13 years agoChangeLog and version updates for ust 0.10
Nils Carlson [Fri, 14 Jan 2011 08:02:16 +0000 (09:02 +0100)] 
ChangeLog and version updates for ust 0.10

13 years agousttrace fix variable name clash
Mathieu Desnoyers [Tue, 11 Jan 2011 16:52:29 +0000 (11:52 -0500)] 
usttrace fix variable name clash

Fix some variable name errors in the shell scripts. It does not fix my
hang, but might help.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Acked-by: Nils Carlson <nils.carlson@ericsson.com>
13 years agoAt runtime, UST checks if the LTTng clock source is available
Julien Desfossez [Wed, 12 Jan 2011 08:36:37 +0000 (09:36 +0100)] 
At runtime, UST checks if the LTTng clock source is available
If not, CLOCK_MONOTONIC is the default fallback.

This makes UST use the LTTng kernel clock source. With this
clock support, LTTng and UST traces are perfectly synchronize.
Traces from these two tracer can be merged for analysis.

LTTng 0.240 or higher is needed for this new clock source.

Signed-off-by: Julien Desfossez <julien.desfossez@polymtl.ca>
Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Acked-by: Nils Carlson <nils.carlson@ericsson.com>
13 years agoAdd a test to valide that we use URCU with a minimum version of 0.5
Yannick Brosseau [Mon, 10 Jan 2011 19:20:56 +0000 (20:20 +0100)] 
Add a test to valide that we use URCU with a minimum version of 0.5

Signed-off-by: Yannick Brosseau <yannick.brosseau@gmail.com>
Acked-by: Nils Carlson <nils.carlson@ericsson.com>
13 years agoRename libustd to libustconsumer and ustd to ust-consumerd
Nils Carlson [Wed, 5 Jan 2011 12:53:43 +0000 (13:53 +0100)] 
Rename libustd to libustconsumer and ustd to ust-consumerd

This is a fargoing but necessary renaming of some ust components.
The point of the renaming is to allow for a new daemon, ustd, which
will be able to keep track of tracing sessions and connect applications
with consumers. Also, the current names were non-sensical.

This patch is a step on the way towards creating a session daemon
that can connect trace producers and consumers in a nice way.

Signed-off-by: Nils Carlson <nils.carlson@ericsson.com>
13 years agoGeneralize some ustcomm functionality
Nils Carlson [Wed, 29 Dec 2010 14:01:06 +0000 (15:01 +0100)] 
Generalize some ustcomm functionality

There were multiple cases of only a single text field being sent
with ustcomm. This commit merges these into a single case.

Signed-off-by: Nils Carlson <nils.carlson@ericsson.com>
13 years agoFix freeing of channels and buffers in buffers.c v2
Nils Carlson [Tue, 30 Nov 2010 13:36:30 +0000 (14:36 +0100)] 
Fix freeing of channels and buffers in buffers.c v2

Changes since v1:
Handle new naming conventions

buffers.c appeared to be very convoluted full of krefs and in
general very bad shape. I have tried to make the freeing and
unmapping of shared memory symmetrical in the sense that every
open has a corresponding close and every map has a corresponding
unmap.

I have removed all use of krefs. Assuming no concurrency this
should be fine. The kref usage was anyway broken.

Signed-off-by: Nils Carlson <nils.carlson@ericsson.com>
13 years agoChangeLog and version updates for release 0.9
Nils Carlson [Fri, 3 Dec 2010 14:41:41 +0000 (15:41 +0100)] 
ChangeLog and version updates for release 0.9

13 years agoFix info automake and clean doc automake
Nils Carlson [Tue, 30 Nov 2010 13:11:23 +0000 (14:11 +0100)] 
Fix info automake and clean doc automake

Fix so that info is built using automake and also clean up the
automake process so that make clean works.

Signed-off-by: Nils Carlson <nils.carlson@ericsson.com>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
13 years agoUpdate manpage for option -o of usttrace
David Goulet [Sat, 27 Nov 2010 19:09:32 +0000 (14:09 -0500)] 
Update manpage for option -o of usttrace

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
13 years agoRemove unuse header disable.h
David Goulet [Sat, 27 Nov 2010 19:08:06 +0000 (14:08 -0500)] 
Remove unuse header disable.h

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
13 years agoRemove kref from kcompat's headers and code
David Goulet [Sat, 27 Nov 2010 19:07:08 +0000 (14:07 -0500)] 
Remove kref from kcompat's headers and code

It contains the exact same code of urcu_ref.h. The kref
struct and methods are replaced by those from liburcu.

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
13 years agoRemove hlist from kcompat's headers and code
David Goulet [Sat, 27 Nov 2010 19:05:07 +0000 (14:05 -0500)] 
Remove hlist from kcompat's headers and code

The hlist structure is no longer needed since it's the exact
same implementation in liburcu.

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
14 years agoFix Bug#604955: ust: FTBFS
Mathieu Desnoyers [Fri, 26 Nov 2010 01:01:51 +0000 (20:01 -0500)] 
Fix Bug#604955: ust: FTBFS

> Regarding the above subject, Your package FTBFS on ubuntu due to
> indirect linking

Fixed the test program by adding "-lpthread -lrt" to Makefile.am.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
14 years agoRename for the new liburcu API namespace
Mathieu Desnoyers [Fri, 19 Nov 2010 04:27:24 +0000 (23:27 -0500)] 
Rename for the new liburcu API namespace

This commit makes UST compatible with liburcu 0.5.2

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
14 years agoAdd libtool to .gitignore
Mathieu Desnoyers [Fri, 19 Nov 2010 04:22:53 +0000 (23:22 -0500)] 
Add libtool to .gitignore

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
14 years agoAdd output directory option to usttrace
David Goulet [Thu, 18 Nov 2010 17:08:03 +0000 (12:08 -0500)] 
Add output directory option to usttrace

This patch add the -o option to usttrace to control the output directory
given to the UST daemon.

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
14 years agoAdd trace name handling throughout tracectl, ustcomm and ustcmd
Nils Carlson [Thu, 4 Nov 2010 16:45:06 +0000 (17:45 +0100)] 
Add trace name handling throughout tracectl, ustcomm and ustcmd

This patch is the first real step in allowing multi-session
tracing. It pushes trace name all the way out to libustcmd
(though not yet to ustctl) and trace session support all
the way into tracectl in libust (though not yet down to markers).

Signed-off-by: Nils Carlson <nils.carlson@ericsson.com>
Acked-by: David Goulet <david.goulet@polymtl.ca>
14 years agoAdd ustcomm_trace_info struct and support functions to ustcomm
Nils Carlson [Thu, 4 Nov 2010 16:44:12 +0000 (17:44 +0100)] 
Add ustcomm_trace_info struct and support functions to ustcomm

Signed-off-by: Nils Carlson <nils.carlson@ericsson.com>
Acked-by: David Goulet <david.goulet@polymtl.ca>
14 years agoKill some unused code in ustcomm.c
Nils Carlson [Thu, 4 Nov 2010 16:15:10 +0000 (17:15 +0100)] 
Kill some unused code in ustcomm.c

Signed-off-by: Nils Carlson<nils.carlson@ericsson.com>
Acked-by: David Goulet <david.goulet@polymtl.ca>
14 years agoChangeLog and version updates for release 0.8
Nils Carlson [Tue, 26 Oct 2010 17:48:12 +0000 (19:48 +0200)] 
ChangeLog and version updates for release 0.8

14 years agoMake tracectl destructor aware of fork status
Nils Carlson [Mon, 25 Oct 2010 10:57:30 +0000 (12:57 +0200)] 
Make tracectl destructor aware of fork status

This little patch checks to see whether we have used a fork
wrapper to fork. If not we won't have a working UST in the process
and can skip the destructor stage.

Signed-off-by: Nils Carlson <nils.carlson@ericsson.com>
Acked-by: David Goulet <david.goulet@polymtl.ca>
14 years agoFunction tests for libustcmd and a C tap library
Nils Carlson [Mon, 25 Oct 2010 10:06:31 +0000 (12:06 +0200)] 
Function tests for libustcmd and a C tap library

This is a bunch of function tests for libustcmd, checking return
values and other things and emitting output directly in TAP format.

I wanted to get better feedback on what is working and what isn't
and also check that functions return intelligent values. The function
tests currently run without ustd. Eventually I want to link ustd into
the testcase as well to check that functions return errors if no ustd
instance was reachable, but right now it's enough that we get some
general feedback.

Signed-off-by: Nils Carlson <nils.carlson@ericsson.com>
Acked-by: David Goulet <david.goulet@polymtl.ca>
14 years agoIntroduce a new communication protocol for UST v5
Nils Carlson [Mon, 11 Oct 2010 14:10:30 +0000 (16:10 +0200)] 
Introduce a new communication protocol for UST v5

Changes since v4:
More scanning fixes in ustctl

Changes since v3:
Fix minor bugs in ustctl

Changes since v2:
Fix packing of the socket path and ustcmd handling
of socket path

Changes since v1:
Update after comments from David Goulet,
fix some style issues, a bug in GET_SOCK_PATH and
add a fixme for posterity.

This is once again a bit of a code-dump. The principal of this
patch is to get rid of most string parsing in UST and most
dynamic heap memory allocation by libust. A secondary goal
has been to introduce a command-response model so all commands
receive responses with a result code. This has been achived
through the following steps.

 1. Create standardised message containers as structs ending in
    a char array. The char array is used to pack strings into
    while pointers in the struct point positions relative the data
    segment in the struct. Unpacking the struct upon reception is
    a simple matter of adding to the pointers the position in memory
    of the char array.

2.  Keeping a char array permanently allocated in libust that is
    used to receive incoming data, avoiding allocation. This array
    is large enough to receive any of the pre-defined message
    structs.

3.  Replacing all string matching for commands with enum based switch
    statements. This will scale better over time.

4.  All commands now receive responses containing a result as a negative
    errno. Libustcmd now returns -1 and sets errno according to these.
    Eventually these will need to be documented in manpages with
    what each errno implies. Ustctl needs to check these in turn and
    give meaningfull feedback.

5.  Cleaning up tracectl.c quite a bit separating out control functions
    and message handling.

6.  Move channel marker scanning from tracectl out to ustctl.

Fifth is a pain

Signed-off-by: Nils Carlson <nils.carlson@ericsson.com>
Acked-by: David Goulet <david.goulet@polymtl.ca>
14 years agoRemove a silly print out in ust_trace.h
Nils Carlson [Tue, 12 Oct 2010 08:13:37 +0000 (10:13 +0200)] 
Remove a silly print out in ust_trace.h

Signed-off-by: Nils Carlson <nils.carlson@ericsson.com>
Acked-by: David Goulet <david.goulet@polymtl.ca>
14 years agoAdd a valgrind suppression for sendmsg (v2)
Nils Carlson [Mon, 11 Oct 2010 15:01:32 +0000 (17:01 +0200)] 
Add a valgrind suppression for sendmsg (v2)

Changes since v1: Make the suppression match libc and
libpthread, multiple versions.

For some reason valgrind thinks the iov array in ustcomm_send_fd
is used uninitialised. Add a suppression so this won't show as
an error.

Signed-off-by: Nils Carlson <nils.carlson@ericsson.com>
Acked-by: David Goulet <david.goulet@polymtl.ca>
14 years agoAdd a tracepoint test program
David Goulet [Fri, 1 Oct 2010 19:19:57 +0000 (21:19 +0200)] 
Add a tracepoint test program

This test is aimed at testing different tracepoint case and
be used to ensure no bugs are added.

Complete description of the test in tracepoint_test.c

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Acked-by: Nils Carlson <nils.carlson@ericsson.com>
14 years agoUpdate the COPYING file to state the correct license
Nils Carlson [Mon, 11 Oct 2010 13:28:18 +0000 (15:28 +0200)] 
Update the COPYING file to state the correct license

Update the COPYING file to the most applicable license and
add more attributions.

Signed-off-by: Nils Carlson <nils.carlson@ericsson.com>
14 years agoFix missing data pointer
David Goulet [Thu, 30 Sep 2010 18:52:55 +0000 (20:52 +0200)] 
Fix missing data pointer

This applies to tracepoint using a marker (trace_mark_tp)

At commit 9dec086e052cf7f583a3afaa3aab48a6de8d38ac,
the tracepoint_probe_register/unregister_noupdate function has been
changed with the addition of a void data pointer. In set_marker(),
the call to that function was not updated with this new parameter.
The effect was that on a second register_trace with an already
registered probe, the data ptr was corrupted with false data and
thus the probe checking failed to validate duplicates. So, the same
data was reproduced for a single trace call. Same behavior for
unregistering the marker, it was not found.

NOTE : For now, this pointer is NULL because we don't have at this
point tracing session.

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
14 years agoFix insecure library loading (Debian Bug #598309, CVE-2010-3386) (v2)
Mathieu Desnoyers [Thu, 30 Sep 2010 14:49:05 +0000 (16:49 +0200)] 
Fix insecure library loading (Debian Bug #598309, CVE-2010-3386) (v2)

Thanks to Raphael Geissert for spotting this, and to Jon Bernard for forwarding
the information to us.

Changelog since v1:
Apply comments from Nils.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Acked-by: Nils Carlson <nils.carlson@ericsson.com>
CC: Raphael Geissert <geissert@debian.org>
CC: Jon Bernard <jbernard@debian.org>
14 years agoFix a zmalloc bug
Nils Carlson [Thu, 30 Sep 2010 08:09:04 +0000 (10:09 +0200)] 
Fix a zmalloc bug

sizeof(void *) was allocated instead of sizeof(struct probe).

Signed-off-by: Nils Carlson <nils.carlson@ericsson.com>
14 years agoNew naming convention for internal macros
David Goulet [Tue, 28 Sep 2010 13:05:49 +0000 (15:05 +0200)] 
New naming convention for internal macros

This is the first patch introducing the new naming convention
for the UST tracer. To prevent namespace pollution, _ust_ prefix
is added to internal macros which are visible in the global header.

For this patch, only the container_of macro is renamed and the
redundant definition in kcompat/simple.h is removed.

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Acked-by: Nils Carlson <nils.carlson@ericsson.com>
14 years agoRe-write ustcomm parts of UST v2
Nils Carlson [Mon, 27 Sep 2010 08:54:48 +0000 (10:54 +0200)] 
Re-write ustcomm parts of UST v2

Changes since v1:

Updated after comments from David Goulet and resulting insights.
* Add a continue after a failed accept
* Fix some malloc issues
* Fix some coding style in the patch
* make del_named_sock free the memory, even if all else fails.

Notice: valgrind test-case currently broken. Needs an exception.

Description:

This is a very big patch, and so it requires a bit of explaining.

This patch is a step on the way of accomplishing serveral goals I have in this
area:

1. Use enums for commands and eliminate text-based commands. This does not mean
   that we will stop processing strings for trace/channel and marker names;
   just that the long series of if statements with token and string matching
   will be replaced with a switch statement. To this end I have created a
   ustcomm_header struct that contains the length of the data-field and some
   other fields. This allows us to first receive the header, allocate memory
   for the data and then receive the data; eliminating all scanning of messages.

2. Reduce the complexity of the implementation. To put it simply, I don't like
   callbacks. They reduce transparency and make it difficult to follow the
   flow of the code; so I have eliminated multipoll replacing it with a normal
   epoll. I have also replaced almost all the different server, connection and
   source structs with one, called ustcomm_sock.

3. Make ustd scale better. Currently ustd scales terribly. We allocate one
   thread per-cpu per-channel per-process, five applications each with three
   channels on a four cpu machine leads to 5*3*4=60 threads. Part of the reason
   for this multitude of threads was that we used a ustcomm_request call
   (consisting of a send and a receive) to wait for a subbuffer to be written.
   The sequence for a subbuffer to be written was as follows:

      Ustd calls send with a 'get_subbuffer' command, and then recv in one of
      the threads and hangs on the recv on the socket.

      Upon filling the subbuffer the traced app writes '1' to a pipe.

      The ust_thread inside the app which was listening to the other end of the
      pipe wakes up when the '1' is written. The callback from multipoll calls
      a send which sends a reply to the ustd thread over the socket.

      The ustd thread wakes up and reads the message, continuing along in its
      execution.

   I replace this with a bit of a different mechanism, which should allow us
   to eventually reduce the number of threads to one per cpu:

      Ustd requests a buffer_fd which causes the ustd_thread inside the app
      to send the file-descriptor for the read en of the pipe to ustd.

      The ustd thread now does a read on the pipe, halting its execution until
      the app fills the subbuffer and writes '1' to the pipe, waking up the ustd
      thread.

      Ustd now makes the 'get_subbuffer' call which the ust_thread inside the
      app responds to with information about the subbuffer. Writes it and then
      goes back to the read call, hanging on the pipe.

   So we are still stuck on the multitude of threads, but we are in much better
   position to move forward. Replacing the read with an epoll statement and then
   pointing the epoll event data at the buffer struct containing the current
   buffer to whitch the pipe belongs should be relatively easy. We can then
   instead of spawning a new thread for each buffer just allocate the
   buffer_info struct and assign it to one of the per-cpu threads in ustd to
   poll on.

4. Replace poll with epoll which scales better, especially for
   events << (nr of fds). This is complete.

5. Allow UST to handle arbitrarily long unix socket names. This is done by
   carefull allocation of the socketaddr_un struct with a dynamic length.
   Truncating is ugly and dangerous.

There is a lot of work still left to be done. This is only the first of a
number of patches that I expect in this area. If someone feels like tackling
ustd head on to reduce the number of threads that would be great.

I have kept Pierre-Marc's form of error handling for the I/O wrapping functions
because I want to propagate return codes up to the apps that are using them
so they can close file-descriptors and free associated resources. If somebody
knows of a better approach please make yourself heard.

Signed-off-by: Nils Carlson <nils.carlson@ericsson.com>
Acked-by: David Goulet <david.goulet@polymtl.ca>
14 years agoFix a strange bash anomaly in test_functions.sh
Nils Carlson [Wed, 22 Sep 2010 07:05:03 +0000 (09:05 +0200)] 
Fix a strange bash anomaly in test_functions.sh

If anybody has time time to investigate this that would be great.
Unforunately, I don't.

Signed-off-by: Nils Carlson <nils.carlson@ericsson.com>
14 years agofix sscanf format string v3
Douglas Santos [Mon, 13 Sep 2010 23:03:10 +0000 (19:03 -0400)] 
fix sscanf format string v3

Signed-off-by: Douglas Santos <douglas.santos@polymtl.ca>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
14 years agotracectl cleanup v3
Douglas Santos [Mon, 13 Sep 2010 22:47:43 +0000 (18:47 -0400)] 
tracectl cleanup v3

kernel style-> if, else, for, while
also remove a trailing space

Signed-off-by: Douglas Santos <douglas.santos@polymtl.ca>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
14 years agoRemove unused code
David Goulet [Fri, 17 Sep 2010 19:41:12 +0000 (21:41 +0200)] 
Remove unused code

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Acked-by: Nils Carlson <nils.carlson@ericsson.com>
14 years agoSyntax cleanup
David Goulet [Fri, 17 Sep 2010 19:41:11 +0000 (21:41 +0200)] 
Syntax cleanup

Replace spaces by tabs and remove trailing white spaces

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Acked-by: Nils Carlson <nils.carlson@ericsson.com>
14 years agoChange code for consistency
David Goulet [Fri, 17 Sep 2010 19:41:10 +0000 (21:41 +0200)] 
Change code for consistency

Use the kcompat stringify header for double level
stringification for markers section.

Also use the GET_MARKER macro for uniformity across the code.

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Acked-by: Nils Carlson <nils.carlson@ericsson.com>
14 years agonull check for disable_marker
Douglas Santos [Fri, 10 Sep 2010 21:28:55 +0000 (23:28 +0200)] 
null check for disable_marker

Signed-off-by: Douglas Santos <douglas.santos@polymtl.ca>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
14 years agoCorrect error handling and add error message in ustcmd.c
Nils Carlson [Fri, 10 Sep 2010 11:28:29 +0000 (13:28 +0200)] 
Correct error handling and add error message in ustcmd.c

Signed-off-by: Nils Carlson <nils.carlson@ericsson.com>
Acked-by: Douglas Santos <douglas.santos@polymtl.ca>
14 years agoAdd functions and command line for listing trace_events v3
Nils Carlson [Fri, 10 Sep 2010 08:49:49 +0000 (10:49 +0200)] 
Add functions and command line for listing trace_events v3

Changes from version 2: Fix a comment.

Changes from version 1: Fix silly things per Davids comments,
realise that we are looping over pids and therefore need to set
all pointers to NULL and all counters to zero each time.

14 years agoAdd trace_event library initialisation
Nils Carlson [Wed, 8 Sep 2010 14:54:48 +0000 (16:54 +0200)] 
Add trace_event library initialisation

Add library initialisation with dummy trace_event in order
to create sections.

14 years agoAdd trace_event structs
Nils Carlson [Wed, 8 Sep 2010 13:17:22 +0000 (15:17 +0200)] 
Add trace_event structs

Add trace_event structs, registration functions and trace_event
iterator and locking functions.

14 years agoSet the exit status of ustctl main function v3
David Goulet [Thu, 9 Sep 2010 16:48:16 +0000 (18:48 +0200)] 
Set the exit status of ustctl main function v3

Each possible command checks the return value and, on error,
print on stderr and set the retval. This makes ustctl return
an EXIT_FAILURE on any command that fails.

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
14 years agoFix missing parenthese around logic comparison
David Goulet [Thu, 9 Sep 2010 21:11:19 +0000 (23:11 +0200)] 
Fix missing parenthese around logic comparison

Error introduce in commit number 9dec086e052cf7f583a3afaa3aab48a6de8d38ac.

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
14 years agoFix DBG to ERR for data format mismatch
David Goulet [Thu, 9 Sep 2010 16:55:45 +0000 (18:55 +0200)] 
Fix DBG to ERR for data format mismatch

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
14 years agoFix return value handling for libustcmd
David Goulet [Tue, 7 Sep 2010 20:26:12 +0000 (22:26 +0200)] 
Fix return value handling for libustcmd

Return value was not checked correctly so this was
triggering a free() on an invalid pointer causing
ustctl to fail badly.

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
14 years agoChange malloc to zmalloc for libust
David Goulet [Tue, 7 Sep 2010 13:03:41 +0000 (15:03 +0200)] 
Change malloc to zmalloc for libust

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
14 years agoFix missing data pointer for trace_mark_tp v2
David Goulet [Fri, 3 Sep 2010 19:15:28 +0000 (21:15 +0200)] 
Fix missing data pointer for trace_mark_tp v2

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
14 years agoFix retval value assignment on error
David Goulet [Fri, 3 Sep 2010 16:37:51 +0000 (18:37 +0200)] 
Fix retval value assignment on error

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
14 years agoFix asprintf and scanf ignoring return value
David Goulet [Fri, 3 Sep 2010 21:09:25 +0000 (23:09 +0200)] 
Fix asprintf and scanf ignoring return value

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
14 years agoFix a broken test makefile
Nils Carlson [Wed, 1 Sep 2010 13:54:08 +0000 (15:54 +0200)] 
Fix a broken test makefile

The makefile was missing the header file in the sources list and
so was failing make distcheck.

14 years agoUpdate test-case for tracepoints and add a new test-case
Nils Carlson [Tue, 31 Aug 2010 13:45:08 +0000 (15:45 +0200)] 
Update test-case for tracepoints and add a new test-case

Update the test-case for probes to handle a new data pointer
in the probe function. Also add a new test-case that stress-tests
probe registration and unregistration.

14 years agoAdd a data pointer to all tracepoint probe callbacks
Nils Carlson [Tue, 31 Aug 2010 13:10:59 +0000 (15:10 +0200)] 
Add a data pointer to all tracepoint probe callbacks

RCU now dereferences an array of probe structs containing data pointers and
function pointers, and passes the data pointer as the first argument to the
probe.

Due to this change void prototypes are no longer allowed, which has incurred
changes to libust-initializer.c .

This patch also fixes a problem where non-existent tracepoints are present
in the __tracepoints section and with a name pointer pointing at NULL.

14 years agoAdd a simple test case for TRACE_EVENT v2
Nils Carlson [Mon, 30 Aug 2010 08:23:04 +0000 (10:23 +0200)] 
Add a simple test case for TRACE_EVENT v2

The test case is useful for verifying compilation of the simplest
possible TRACE_EVENT.

Changes since version 1:
Added copyright notices
updated run with UST_AUTOCOLLECT per Davids comment.

14 years agoImport TRACE_EVENT macro from the kernel v3
Nils Carlson [Mon, 30 Aug 2010 08:22:53 +0000 (10:22 +0200)] 
Import TRACE_EVENT macro from the kernel v3

This is a slightly modified version of the TRACE_EVENT
macro from the kernel, TP_printf has replaced TP_printk.

The TRACE_EVENT macro expansion is currently a dummy which
only expands to a printf probe, connected in a constructor.

Changes since version 2:
Added re-licensing information
Macro naming is more consisten (always contains trace)

Changes since version 1:
Added new headers to include/Makefile.am
Added major copyright holders and license information to headers.

14 years agoAdd LGPLv2.1 license text
Nils Carlson [Mon, 30 Aug 2010 08:22:40 +0000 (10:22 +0200)] 
Add LGPLv2.1 license text

14 years agoupdate ustctl man page
Pierre-Marc Fournier [Tue, 24 Aug 2010 03:42:45 +0000 (23:42 -0400)] 
update ustctl man page

14 years agoFinal updates for release 0.7
Pierre-Marc Fournier [Fri, 20 Aug 2010 04:42:41 +0000 (00:42 -0400)] 
Final updates for release 0.7

14 years agoChanges malloc to zmalloc
David Goulet [Wed, 18 Aug 2010 17:10:32 +0000 (13:10 -0400)] 
Changes malloc to zmalloc

For libustcomm, libustd, ustctl and ustd.

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
14 years agoRemoves useless ___cacheline_aligned
David Goulet [Wed, 18 Aug 2010 21:25:15 +0000 (17:25 -0400)] 
Removes useless ___cacheline_aligned

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
14 years agoUpdates Changelog for UST version 0.6
David Goulet [Tue, 17 Aug 2010 18:47:00 +0000 (14:47 -0400)] 
Updates Changelog for UST version 0.6

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
14 years agoUST strncpy assert fix
Mathieu Desnoyers [Tue, 17 Aug 2010 22:23:21 +0000 (18:23 -0400)] 
UST strncpy assert fix

fix off by one in strncpy and write asserts(). Shows only when the event
reserved fits the exact end of buffer.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
14 years agoproperly install libustd and libustcmd
Alexis Hallé [Wed, 18 Aug 2010 15:54:26 +0000 (11:54 -0400)] 
properly install libustd and libustcmd

14 years agodon't install libustcomm and libustsnprintf
Alexis Hallé [Wed, 4 Aug 2010 15:18:17 +0000 (11:18 -0400)] 
don't install libustcomm and libustsnprintf

These internal libraries should not be exposed to users and were
only installed by mistake.

14 years agoremove dependency on ustcomm.h where possible
Alexis Hallé [Wed, 4 Aug 2010 15:18:16 +0000 (11:18 -0400)] 
remove dependency on ustcomm.h where possible

ustcomm structures are replaced with pointers so the compiler doesn't
have to know the contents of the structures. This is done so ustcmd.h
and libustd.h can be installed on a system without needing to install
ustcomm.h.

14 years agoremove unused variables
Alexis Hallé [Wed, 4 Aug 2010 15:18:15 +0000 (11:18 -0400)] 
remove unused variables

14 years agoFinal updates for release 0.6
Pierre-Marc Fournier [Mon, 16 Aug 2010 04:49:20 +0000 (00:49 -0400)] 
Final updates for release 0.6

14 years agoserialize string input robustness
Mathieu Desnoyers [Sun, 15 Aug 2010 23:11:37 +0000 (19:11 -0400)] 
serialize string input robustness

Make sure we handle concurrently modified input strings gracefully.

Adds ust_buffers_strncpy interface. It fixes up the string if it does not fills
exactly the space allocated. Ensures the string ends with \0.

Removes unused "_ust_buffers_write" at the same time.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
14 years agoUST synchronization fix
Mathieu Desnoyers [Wed, 11 Aug 2010 14:13:42 +0000 (10:13 -0400)] 
UST synchronization fix

Missing smp_wmb() at subbuffer switch.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
14 years agofix invalid array access
Pierre-Marc Fournier [Tue, 3 Aug 2010 03:13:32 +0000 (23:13 -0400)] 
fix invalid array access

reported by Damien Cottier

14 years agoustctl manpage: document force-switch
Alexis Hallé [Wed, 14 Jul 2010 18:52:01 +0000 (14:52 -0400)] 
ustctl manpage: document force-switch

14 years agoadd a command to force subbuffer switch
Alexis Hallé [Wed, 14 Jul 2010 18:52:00 +0000 (14:52 -0400)] 
add a command to force subbuffer switch

14 years agoremove ltt_relay_buffer_flush function
Alexis Hallé [Wed, 14 Jul 2010 18:51:59 +0000 (14:51 -0400)] 
remove ltt_relay_buffer_flush function

All it did was call ltt_force_switch and wake up consumers, when
ltt_force_switch already wakes up the consumers.

14 years agoustctl manpage: document get/set-sock-path
Alexis Hallé [Wed, 14 Jul 2010 18:51:58 +0000 (14:51 -0400)] 
ustctl manpage: document get/set-sock-path

14 years agoadd get/set commands for daemon socket path
Alexis Hallé [Wed, 14 Jul 2010 18:51:57 +0000 (14:51 -0400)] 
add get/set commands for daemon socket path

14 years agocreate libustd from ustd
Alexis Hallé [Wed, 14 Jul 2010 18:51:56 +0000 (14:51 -0400)] 
create libustd from ustd

This makes libustd a library containing the core functionality of
the daemon, and ustd a simple client application using this library,
interacting with it via a set of callbacks supplied to it.

14 years agoadd paranoid check before listener thread destruction
Pierre-Marc Fournier [Thu, 15 Jul 2010 01:05:16 +0000 (21:05 -0400)] 
add paranoid check before listener thread destruction

In case a pthread error prevented its creation.

14 years agodefine ____cacheline_aligned
Pierre-Marc Fournier [Tue, 6 Jul 2010 00:04:06 +0000 (20:04 -0400)] 
define ____cacheline_aligned

14 years agoFix directory creation mode. Unless umask is set to 0 the default umask of the system...
David Goulet [Thu, 24 Jun 2010 16:32:29 +0000 (12:32 -0400)] 
Fix directory creation mode. Unless umask is set to 0 the default umask of the system, commonly 022, will be used and thus it becomes impossible to get the 777 mode.

This page took 0.044193 seconds and 4 git commands to generate.