X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=libust%2Ftracectl.c;h=ef0155db3388441d83fe3afe813f66b5e78d64e3;hb=223f2e7ce070406f507856fa8f0de508d8a05ad3;hp=7a5cf9562282ce7fe90cc3d5e4c405d3bf44b8c6;hpb=f51d84eac11907346fa02e33da358aad171ac80a;p=ust.git diff --git a/libust/tracectl.c b/libust/tracectl.c index 7a5cf95..ef0155d 100644 --- a/libust/tracectl.c +++ b/libust/tracectl.c @@ -49,6 +49,8 @@ */ s64 pidunique = -1LL; +extern struct chan_info_struct chan_infos[]; + struct list_head blocked_consumers = LIST_HEAD_INIT(blocked_consumers); static struct ustcomm_app ustcomm_app; @@ -1114,6 +1116,11 @@ static void __attribute__((constructor)) init() { int result; char* autoprobe_val = NULL; + char* subbuffer_size_val = NULL; + char* subbuffer_count_val = NULL; + unsigned int subbuffer_size; + unsigned int subbuffer_count; + unsigned int power; /* Assign the pidunique, to be able to differentiate the processes with same * pid, (before and after an exec). @@ -1197,6 +1204,23 @@ static void __attribute__((constructor)) init() } } + subbuffer_size_val = getenv("UST_SUBBUF_SIZE"); + if(subbuffer_size_val) { + sscanf(subbuffer_size_val, "%u", &subbuffer_size); + power = pow2_higher_or_eq(subbuffer_size); + if(power != subbuffer_size) + WARN("using the next power of two for buffer size = %u\n", power); + chan_infos[LTT_CHANNEL_UST].def_subbufsize = power; + } + + subbuffer_count_val = getenv("UST_SUBBUF_NUM"); + if(subbuffer_count_val) { + sscanf(subbuffer_count_val, "%u", &subbuffer_count); + if(subbuffer_count < 2) + subbuffer_count = 2; + chan_infos[LTT_CHANNEL_UST].def_subbufcount = subbuffer_count; + } + if(getenv("UST_TRACE")) { char trace_name[] = "auto"; char trace_type[] = "ustrelay"; @@ -1263,7 +1287,6 @@ static void __attribute__((constructor)) init() inform_consumer_daemon(trace_name); } - return; /* should decrementally destroy stuff if error */