35 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_BE 87 M0_LOG(
M0_DEBUG,
"check that value is the same for each capture block");
101 sizeof *
value; ++j) {
102 if (
value[j] != tx_value) {
104 "capture block index = %d " 107 i, j,
value[j], tx_value);
115 tx_first = tx_values_nr;
117 for (
i = 0;
i < tx_values_nr; ++
i) {
118 if (tx_values[
i] != 0) {
123 for (
i = tx_values_nr - 1;
i >= 0; --
i) {
124 if (tx_values[
i] != 0) {
130 for (
i = tx_first;
i <= tx_last; ++
i) {
131 if (
i > 0 && tx_values[
i - 1] > tx_values[
i]) {
133 *fill, tx_values[
i]);
175 size_t len =
sizeof buf;
186 printed = snprintf(&
buf[idx], len,
" %s: +%" PRIu64 "us",
188 (time[
i] - time[0]) / 1000);
206 uint64_t ringbuf_steps;
222 for (; fill < fill_end; ++fill) {
277 "seg->bs_size=%" PRIu64 " BETOOL_ST_SEG_SIZE=%d",
287 #undef M0_TRACE_SUBSYSTEM
#define M0_ALLOC_ARR(arr, nr)
M0_INTERNAL int m0_be_ut_backend_init_cfg(struct m0_be_ut_backend *ut_be, const struct m0_be_domain_cfg *cfg, bool mkfs)
static const char * betool_st_event_descr[]
int m0_betool_st_mkfs(void)
static void betool_st_data_write(struct m0_be_ut_backend *ut_be, struct m0_be_seg *seg, uint64_t fill, uint64_t fill_end)
#define M0_LOG(level,...)
M0_INTERNAL void m0_be_tx_fini(struct m0_be_tx *tx)
int const char const void * value
M0_INTERNAL void m0_be_tx_prep(struct m0_be_tx *tx, const struct m0_be_tx_credit *credit)
M0_INTERNAL void m0_be_ut_backend_seg_add2(struct m0_be_ut_backend *ut_be, m0_bcount_t size, bool preallocate, const char *stob_create_cfg, struct m0_be_seg **out)
#define M0_BE_REG(seg, size, addr)
M0_INTERNAL uint64_t m0_round_up(uint64_t val, uint64_t size)
#define M0_BE_TX_CREDIT(nr, size)
M0_INTERNAL m0_bcount_t m0_be_seg_reserved(const struct m0_be_seg *seg)
void m0_be_ut_backend_cfg_default(struct m0_be_domain_cfg *cfg)
struct m0_be_ut_backend ut_be
static void betool_st_event_time(m0_time_t *time, enum betool_st_event event)
void m0_betool_m0_fini(void)
m0_time_t m0_time_now(void)
M0_INTERNAL int m0_be_tx_open_sync(struct m0_be_tx *tx)
void m0_be_ut_backend_init(struct m0_be_ut_backend *ut_be)
M0_BASSERT(ARRAY_SIZE(betool_st_event_descr)==BETOOL_ST_TIME_NR)
int m0_betool_st_run(void)
struct m0_be_domain but_dom
#define M0_ALLOC_PTR(ptr)
void m0_be_ut_tx_init(struct m0_be_tx *tx, struct m0_be_ut_backend *ut_be)
static int start(struct m0_fom *fom)
static void betool_st_event_time_print(m0_time_t *time, const char *info, uint64_t fill)
void m0_be_ut_backend_fini(struct m0_be_ut_backend *ut_be)
static struct m0_be_seg * seg
#define M0_ASSERT_INFO(cond, fmt,...)
M0_INTERNAL struct m0_be_seg * m0_be_domain_seg_first(const struct m0_be_domain *dom)
M0_INTERNAL void m0_be_tx_capture(struct m0_be_tx *tx, const struct m0_be_reg *reg)
void m0_betool_m0_init(void)
static void betool_st_data_check(struct m0_be_ut_backend *ut_be, struct m0_be_seg *seg, uint64_t *fill)
M0_INTERNAL void m0_be_tx_close_sync(struct m0_be_tx *tx)
#define M0_IMPOSSIBLE(fmt,...)