projects
/
lttng-modules.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Version 2.6.6
[lttng-modules.git]
/
lttng-events.c
diff --git
a/lttng-events.c
b/lttng-events.c
index d8cf337de93bf75d92b81754a7325fc0e2d0d1ee..8befa34f7ad6f4d5dc7d676adf4b40709d5ef814 100644
(file)
--- a/
lttng-events.c
+++ b/
lttng-events.c
@@
-44,6
+44,9
@@
#include "lttng-events.h"
#include "lttng-tracer.h"
#include "lttng-abi-old.h"
#include "lttng-events.h"
#include "lttng-tracer.h"
#include "lttng-abi-old.h"
+#include "wrapper/vzalloc.h"
+#include "wrapper/ringbuffer/backend.h"
+#include "wrapper/ringbuffer/frontend.h"
#define METADATA_CACHE_DEFAULT_SIZE 4096
#define METADATA_CACHE_DEFAULT_SIZE 4096
@@
-98,7
+101,7
@@
struct lttng_session *lttng_session_create(void)
GFP_KERNEL);
if (!metadata_cache)
goto err_free_session;
GFP_KERNEL);
if (!metadata_cache)
goto err_free_session;
- metadata_cache->data = vzalloc(METADATA_CACHE_DEFAULT_SIZE);
+ metadata_cache->data =
lttng_
vzalloc(METADATA_CACHE_DEFAULT_SIZE);
if (!metadata_cache->data)
goto err_free_cache;
metadata_cache->cache_alloc = METADATA_CACHE_DEFAULT_SIZE;
if (!metadata_cache->data)
goto err_free_cache;
metadata_cache->cache_alloc = METADATA_CACHE_DEFAULT_SIZE;
@@
-185,6
+188,12
@@
int lttng_session_enable(struct lttng_session *session)
chan->header_type = 2; /* large */
}
chan->header_type = 2; /* large */
}
+ /* Clear each stream's quiescent state. */
+ list_for_each_entry(chan, &session->chan, list) {
+ if (chan->channel_type != METADATA_CHANNEL)
+ lib_ring_buffer_clear_quiescent_channel(chan->chan);
+ }
+
ACCESS_ONCE(session->active) = 1;
ACCESS_ONCE(session->been_active) = 1;
ret = _lttng_session_metadata_statedump(session);
ACCESS_ONCE(session->active) = 1;
ACCESS_ONCE(session->been_active) = 1;
ret = _lttng_session_metadata_statedump(session);
@@
-203,6
+212,7
@@
end:
int lttng_session_disable(struct lttng_session *session)
{
int ret = 0;
int lttng_session_disable(struct lttng_session *session)
{
int ret = 0;
+ struct lttng_channel *chan;
mutex_lock(&sessions_mutex);
if (!session->active) {
mutex_lock(&sessions_mutex);
if (!session->active) {
@@
-210,6
+220,13
@@
int lttng_session_disable(struct lttng_session *session)
goto end;
}
ACCESS_ONCE(session->active) = 0;
goto end;
}
ACCESS_ONCE(session->active) = 0;
+
+ /* Set each stream's quiescent state. */
+ list_for_each_entry(chan, &session->chan, list) {
+ if (chan->channel_type != METADATA_CHANNEL)
+ lib_ring_buffer_set_quiescent_channel(chan->chan);
+ }
+
end:
mutex_unlock(&sessions_mutex);
return ret;
end:
mutex_unlock(&sessions_mutex);
return ret;
@@
-688,7
+705,7
@@
int lttng_metadata_printf(struct lttng_session *session,
tmp_cache_alloc_size = max_t(unsigned int,
session->metadata_cache->cache_alloc + len,
session->metadata_cache->cache_alloc << 1);
tmp_cache_alloc_size = max_t(unsigned int,
session->metadata_cache->cache_alloc + len,
session->metadata_cache->cache_alloc << 1);
- tmp_cache_realloc = vzalloc(tmp_cache_alloc_size);
+ tmp_cache_realloc =
lttng_
vzalloc(tmp_cache_alloc_size);
if (!tmp_cache_realloc)
goto err;
if (session->metadata_cache->data) {
if (!tmp_cache_realloc)
goto err;
if (session->metadata_cache->data) {
This page took
0.058477 seconds
and
4
git commands to generate.