From 993683150202254c6ba8dd43e087a7229edd5d4c Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Thu, 2 Aug 2018 10:45:44 -0700 Subject: vcl: support for eventfd mq signaling - support eventfd based mq signaling. Based on configuration, vcl epoll/select can use either condvars or epoll on mq eventfds. - add vcl support for memfd segments - vpp explicitly registers cut-through segments with apps/vcl - if using eventfd, make ldp allow one call to libc_epoll_create. Needed for the message queue epfd - update svm_queue_t to allow blocking calls with eventfd signaling. Change-Id: I064151ac370bbe29bb16c968bf4e3659c8286bea Signed-off-by: Florin Coras --- src/vnet/session/segment_manager.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/vnet/session/segment_manager.h') diff --git a/src/vnet/session/segment_manager.h b/src/vnet/session/segment_manager.h index 73cb4827a8b..aae4f2e4e51 100644 --- a/src/vnet/session/segment_manager.h +++ b/src/vnet/session/segment_manager.h @@ -32,8 +32,10 @@ typedef struct _segment_manager_properties /** Configured additional segment size */ u32 add_segment_size; - /** Flag that indicates if additional segments should be created */ - u8 add_segment; + /** Flags */ + u8 add_segment:1; /**< can add new segments */ + u8 use_mq_eventfd:1; /**< use eventfds for mqs */ + u8 reserved:6; /** Segment type: if set to SSVM_N_TYPES, private segments are used */ ssvm_segment_type_t segment_type; @@ -154,7 +156,8 @@ void segment_manager_dealloc_fifos (u32 segment_index, svm_fifo_t * rx_fifo, svm_fifo_t * tx_fifo); u32 segment_manager_evt_q_expected_size (u32 q_size); svm_msg_q_t *segment_manager_alloc_queue (svm_fifo_segment_private_t * fs, - u32 queue_size); + segment_manager_properties_t * + props); void segment_manager_dealloc_queue (segment_manager_t * sm, svm_queue_t * q); void segment_manager_app_detach (segment_manager_t * sm); -- cgit 1.2.3-korg