X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;ds=sidebyside;f=libringbuffer%2Fbackend_types.h;h=81e67119847a119b2ad140e71aefa0a648ef5bfa;hb=2253b139ffb6a4eca7291b60083cc5206a6e128d;hp=7417506e85d25e7ec36772979de86c3153b38baf;hpb=2fed87aef82aaa8edfb6d8d8ac6bbf5f1e67b955;p=lttng-ust.git diff --git a/libringbuffer/backend_types.h b/libringbuffer/backend_types.h index 7417506e..81e67119 100644 --- a/libringbuffer/backend_types.h +++ b/libringbuffer/backend_types.h @@ -13,13 +13,16 @@ #include #include "shm_internal.h" +#include "vatomic.h" +#define RB_BACKEND_PAGES_PADDING 16 struct lttng_ust_lib_ring_buffer_backend_pages { unsigned long mmap_offset; /* offset of the subbuffer in mmap */ union v_atomic records_commit; /* current records committed count */ union v_atomic records_unread; /* records to read */ unsigned long data_size; /* Amount of data to read from subbuf */ DECLARE_SHMP(char, p); /* Backing memory map */ + char padding[RB_BACKEND_PAGES_PADDING]; }; struct lttng_ust_lib_ring_buffer_backend_subbuffer { @@ -37,6 +40,7 @@ struct lttng_ust_lib_ring_buffer_backend_pages_shmp { DECLARE_SHMP(struct lttng_ust_lib_ring_buffer_backend_pages, shmp); }; +#define RB_BACKEND_RING_BUFFER_PADDING 64 struct lttng_ust_lib_ring_buffer_backend { /* Array of ring_buffer_backend_subbuffer for writer */ DECLARE_SHMP(struct lttng_ust_lib_ring_buffer_backend_subbuffer, buf_wsb); @@ -52,13 +56,15 @@ struct lttng_ust_lib_ring_buffer_backend { DECLARE_SHMP(struct channel, chan); /* Associated channel */ int cpu; /* This buffer's cpu. -1 if global. */ union v_atomic records_read; /* Number of records read */ - unsigned int allocated:1; /* Bool: is buffer allocated ? */ + unsigned int allocated:1; /* is buffer allocated ? */ + char padding[RB_BACKEND_RING_BUFFER_PADDING]; }; struct lttng_ust_lib_ring_buffer_shmp { DECLARE_SHMP(struct lttng_ust_lib_ring_buffer, shmp); /* Channel per-cpu buffers */ }; +#define RB_BACKEND_CHANNEL_PADDING 64 struct channel_backend { unsigned long buf_size; /* Size of the buffer */ unsigned long subbuf_size; /* Sub-buffer size */ @@ -68,12 +74,13 @@ struct channel_backend { * for writer. */ unsigned int buf_size_order; /* Order of buffer size */ - int extra_reader_sb:1; /* Bool: has extra reader subbuffer */ + unsigned int extra_reader_sb:1; /* has extra reader subbuffer ? */ unsigned long num_subbuf; /* Number of sub-buffers for writer */ uint64_t start_tsc; /* Channel creation TSC value */ DECLARE_SHMP(void *, priv_data);/* Client-specific information */ struct lttng_ust_lib_ring_buffer_config config; /* Ring buffer configuration */ char name[NAME_MAX]; /* Channel name */ + char padding[RB_BACKEND_CHANNEL_PADDING]; struct lttng_ust_lib_ring_buffer_shmp buf[]; };