Motr  M0
queue.c File Reference
#include "lib/trace.h"
#include "be/queue.h"
#include "lib/memory.h"
#include "lib/semaphore.h"
#include "lib/atomic.h"
#include "lib/arith.h"
#include "lib/misc.h"
#include "lib/buf.h"
#include "ut/threads.h"
#include "ut/ut.h"
#include "be/tx_credit.h"
#include "be/op.h"
Include dependency graph for queue.c:

Go to the source code of this file.

Data Structures

struct  be_ut_queue_cfg
 
struct  be_ut_queue_result
 
struct  be_ut_queue_data
 
struct  be_ut_queue_ctx
 
struct  be_ut_queue_thread_param
 

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_BE
 
#define BE_UT_QUEUE_TEST(q_size_max, producers, consumers, items_nr)
 

Enumerations

enum  be_ut_queue_test {
  BE_UT_QUEUE_1_1_1, BE_UT_QUEUE_2_1_1, BE_UT_QUEUE_100_1_1, BE_UT_QUEUE_100_1_10,
  BE_UT_QUEUE_100_10_1, BE_UT_QUEUE_100_10_10, BE_UT_QUEUE_10_100_1, BE_UT_QUEUE_10_100_5,
  BE_UT_QUEUE_10_1_100, BE_UT_QUEUE_10_5_100, BE_UT_QUEUE_10_100_100, BE_UT_QUEUE_NR
}
 

Functions

static uint64_t be_ut_queue_data_index (struct be_ut_queue_ctx *ctx, struct be_ut_queue_data *data)
 
static void be_ut_queue_try_peek (struct be_ut_queue_thread_param *param, struct be_ut_queue_ctx *ctx)
 
static void be_ut_queue_thread (void *_param)
 
static void be_ut_queue_with_cfg (struct be_ut_queue_cfg *test_cfg)
 
static void be_ut_queue (enum be_ut_queue_test test)
 
void m0_be_ut_queue_1_1_1 (void)
 
void m0_be_ut_queue_2_1_1 (void)
 
void m0_be_ut_queue_100_1_1 (void)
 
void m0_be_ut_queue_100_1_10 (void)
 
void m0_be_ut_queue_100_10_1 (void)
 
void m0_be_ut_queue_100_10_10 (void)
 
void m0_be_ut_queue_10_100_1 (void)
 
void m0_be_ut_queue_10_100_5 (void)
 
void m0_be_ut_queue_10_1_100 (void)
 
void m0_be_ut_queue_10_5_100 (void)
 
void m0_be_ut_queue_10_100_100 (void)
 
void m0_be_ut_queue_from_1_to_10 (void)
 

Variables

static struct be_ut_queue_cfg be_ut_queue_tests_cfg [BE_UT_QUEUE_NR]