projects
/
lttng-ust.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix missing logging symbols
[lttng-ust.git]
/
libringbuffer
/
ring_buffer_frontend.c
diff --git
a/libringbuffer/ring_buffer_frontend.c
b/libringbuffer/ring_buffer_frontend.c
index 5e6d4df267d2c48d9d4c0bfa44b33202574dcea0..cf012dfaf2225dfe7a66cf2fb63f4e860c48265d 100644
(file)
--- a/
libringbuffer/ring_buffer_frontend.c
+++ b/
libringbuffer/ring_buffer_frontend.c
@@
-266,7
+266,7
@@
static void lib_ring_buffer_start_switch_timer(struct lib_ring_buffer *buf,
struct shm_handle *handle)
{
struct channel *chan = shmp(handle, buf->backend.chan);
struct shm_handle *handle)
{
struct channel *chan = shmp(handle, buf->backend.chan);
- const struct lib_ring_buffer_config *config = &chan->backend.config;
+
//
const struct lib_ring_buffer_config *config = &chan->backend.config;
if (!chan->switch_timer_interval || buf->switch_timer_enabled)
return;
if (!chan->switch_timer_interval || buf->switch_timer_enabled)
return;
@@
-398,8
+398,6
@@
static void channel_unregister_notifiers(struct channel *chan,
static void channel_free(struct channel *chan, struct shm_handle *handle,
int shadow)
{
static void channel_free(struct channel *chan, struct shm_handle *handle,
int shadow)
{
- int ret;
-
if (!shadow)
channel_backend_free(&chan->backend, handle);
/* chan is freed by shm teardown */
if (!shadow)
channel_backend_free(&chan->backend, handle);
/* chan is freed by shm teardown */
@@
-462,7
+460,10
@@
struct shm_handle *channel_create(const struct lib_ring_buffer_config *config,
shmobj = shm_object_table_append(handle->table, shmsize);
if (!shmobj)
goto error_append;
shmobj = shm_object_table_append(handle->table, shmsize);
if (!shmobj)
goto error_append;
+ /* struct channel is at object 0, offset 0 (hardcoded) */
set_shmp(handle->chan, zalloc_shm(shmobj, sizeof(struct channel)));
set_shmp(handle->chan, zalloc_shm(shmobj, sizeof(struct channel)));
+ assert(handle->chan._ref.index == 0);
+ assert(handle->chan._ref.offset == 0);
chan = shmp(handle, handle->chan);
if (!chan)
goto error_append;
chan = shmp(handle, handle->chan);
if (!chan)
goto error_append;
@@
-528,7
+529,9
@@
struct shm_handle *channel_handle_create(int shm_fd, int wait_fd,
shm_fd, wait_fd, memory_map_size);
if (!object)
goto error_table_object;
shm_fd, wait_fd, memory_map_size);
if (!object)
goto error_table_object;
-
+ /* struct channel is at object 0, offset 0 (hardcoded) */
+ handle->chan._ref.index = 0;
+ handle->chan._ref.offset = 0;
return handle;
error_table_object:
return handle;
error_table_object:
@@
-643,6
+646,8
@@
struct lib_ring_buffer *channel_get_ring_buffer(
memory_map_size);
return shmp(handle, chan->backend.buf[0].shmp);
} else {
memory_map_size);
return shmp(handle, chan->backend.buf[0].shmp);
} else {
+ if (cpu >= num_possible_cpus())
+ return NULL;
ref = &chan->backend.buf[cpu].shmp._ref;
shm_get_object_data(handle, ref, shm_fd, wait_fd,
memory_map_size);
ref = &chan->backend.buf[cpu].shmp._ref;
shm_get_object_data(handle, ref, shm_fd, wait_fd,
memory_map_size);
@@
-654,8
+659,6
@@
int lib_ring_buffer_open_read(struct lib_ring_buffer *buf,
struct shm_handle *handle,
int shadow)
{
struct shm_handle *handle,
int shadow)
{
- struct channel *chan = shmp(handle, buf->backend.chan);
-
if (shadow) {
if (uatomic_cmpxchg(&buf->active_shadow_readers, 0, 1) != 0)
return -EBUSY;
if (shadow) {
if (uatomic_cmpxchg(&buf->active_shadow_readers, 0, 1) != 0)
return -EBUSY;
This page took
0.04165 seconds
and
4
git commands to generate.