Motr  M0
Storage object implementation for performance tests.

Data Structures

struct  stob_perf_domain_cfg
 
struct  stob_perf_domain
 
struct  stob_perf_stats
 
struct  stob_perf
 
struct  stob_perf_io
 

Macros

#define STOB_PERF_DOM_CONFIG_PATH   "/config"
 
#define STOB_PERF_DOM_LDOM_PATH   "/backstore"
 

Typedefs

typedef m0_time_t(* stob_perf_latency_cb_t) (struct stob_perf_io *)
 

Enumerations

enum  { STOB_TYPE_PERF = 0xFE, STOB_PERF_TMPFS_SIZE_DEFAULT = 128 }
 

Functions

static void stob_perf_io_completed (struct stob_perf_io *pio)
 
 M0_TL_DESCR_DEFINE (stob_perf_ios, "List of perfstob I/O", static, struct stob_perf_io, spi_link, spi_magic, M0_STOB_PERF_IO_MAGIC, M0_STOB_PERF_IO_HEAD_MAGIC)
 
 M0_TL_DEFINE (stob_perf_ios, static, struct stob_perf_io)
 
static void stob_perf_type_register (struct m0_stob_type *type)
 
static void stob_perf_type_deregister (struct m0_stob_type *type)
 
static struct stob_perf_domainstob_perf_domain_container (struct m0_stob_domain *dom)
 
static struct stob_perfstob_perf_container (struct m0_stob *stob)
 
static m0_time_t stob_perf_latency_const (struct stob_perf_io *pio)
 
static int stob_perf_domain_cfg_init_parse (const char *str_cfg_init, void **cfg_init)
 
static void stob_perf_domain_cfg_init_free (void *cfg_init)
 
static int stob_perf_domain_cfg_create_parse (const char *str_cfg_create, void **cfg_create)
 
static void stob_perf_domain_cfg_create_free (void *cfg_create)
 
static char * stob_perf_domain_config (const char *location_data)
 
static char * stob_perf_domain_ldom_location (const char *location_data)
 
static void stob_perf_domain_cfg_parse (struct stob_perf_domain_cfg *cfg, const char *cfg_str)
 
static int stob_perf_domain_read_config (struct stob_perf_domain *pdom, const char *location_data)
 
static int stob_perf_domain_write_config (const char *cfg_str, uint64_t dom_key, const char *location_data)
 
static int stob_perf_domain_init (struct m0_stob_type *type, const char *location_data, void *cfg_init, struct m0_stob_domain **out)
 
static void stob_perf_domain_fini (struct m0_stob_domain *dom)
 
static int stob_perf_domain_dir_clean (const char *location_data)
 
static int stob_perf_domain_tmpfs_opts (char *opts, size_t opts_len, struct stob_perf_domain_cfg *cfg)
 
static int stob_perf_domain_create (struct m0_stob_type *type, const char *location_data, uint64_t dom_key, void *cfg_create)
 
static int stob_perf_domain_destroy (struct m0_stob_type *type, const char *location_data)
 
static struct m0_stobstob_perf_alloc (struct m0_stob_domain *dom, const struct m0_fid *stob_fid)
 
static void stob_perf_free (struct m0_stob_domain *dom, struct m0_stob *stob)
 
static int stob_perf_cfg_parse (const char *str_cfg_create, void **cfg_create)
 
static void stob_perf_cfg_free (void *cfg_create)
 
static void stob_perf_linux_fid_set (struct m0_fid *lstob_fid, const struct m0_fid *stob_fid, struct stob_perf_domain *pdom)
 
static int stob_perf_linux_init_create (struct stob_perf_domain *pdom, const struct m0_fid *stob_fid, struct m0_dtx *dtx, bool create, struct m0_stob **out)
 
static void stob_perf_timer_start (struct stob_perf *pstob, struct stob_perf_io *pio)
 
static void stob_perf_ast_cb (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static unsigned long stob_perf_timer_cb (unsigned long data)
 
static int stob_perf_init (struct m0_stob *stob, struct m0_stob_domain *dom, const struct m0_fid *stob_fid)
 
static void stob_perf_fini (struct m0_stob *stob)
 
static void stob_perf_create_credit (struct m0_stob_domain *dom, struct m0_be_tx_credit *accum)
 
static int stob_perf_create (struct m0_stob *stob, struct m0_stob_domain *dom, struct m0_dtx *dtx, const struct m0_fid *stob_fid, void *cfg)
 
static void stob_perf_destroy_credit (struct m0_stob *stob, struct m0_be_tx_credit *accum)
 
static int stob_perf_destroy (struct m0_stob *stob, struct m0_dtx *dtx)
 
static int stob_perf_punch_credit (struct m0_stob *stob, struct m0_indexvec *want, struct m0_indexvec *got, struct m0_be_tx_credit *accum)
 
static int stob_perf_punch (struct m0_stob *stob, struct m0_indexvec *range, struct m0_dtx *dtx)
 
static void stob_perf_write_credit (const struct m0_stob_domain *dom, const struct m0_stob_io *io, struct m0_be_tx_credit *accum)
 
static uint32_t stob_perf_block_shift (struct m0_stob *stob)
 
static int stob_perf_fd (struct m0_stob *stob)
 
static void stob_perf_consume_io (struct stob_perf_io *pio)
 
static bool stob_perf_io_lio_completed (struct m0_clink *clink)
 
static int stob_perf_io_init (struct m0_stob *stob, struct m0_stob_io *io)
 
static int stob_perf_io_launch (struct m0_stob_io *io)
 
static void stob_perf_io_fini (struct m0_stob_io *io)
 

Variables

static struct m0_stob_domain_ops stob_perf_domain_ops
 
static struct m0_stob_ops stob_perf_ops
 
static const struct m0_stob_io_op stob_perf_io_ops
 
static struct m0_stob_type_ops stob_perf_type_ops
 
const struct m0_stob_type m0_stob_perf_type
 
const struct m0_stob_type m0_stob_perf_type
 

Detailed Description

Performance STOB.

Performance STOB is a special implementation of m0_stob which is created for performance tests. Further, we will call it "perfstob".

Perfstob provides predefined I/O latency and bandwidth. It can be used to emulate behaviour of a particular disk roughly or for repeatable tests. Therefore, main purposes are:

- Test code in the absence of hardware;

- Provide environment for baseline tests;

Perfstob works in either of the two modes:

1. With storing data. In this mode, stored data can be read back. Maximum
   size of such a stob depends on amount of spare RAM. This mode is
   intended to be used for metadata;

2. Without storing data. In this mode, write operation goes through the
   stob I/O stack, but is not stored anywhere and thus can't be read
   back. User can write unlimited amount of data to such a stob.

In the both modes, perfstob domains and perfstobs survive process restart, but don't survive node restart.

Implementation of the perfstob.

Perfstob is implemented on top of linuxstob. Every perfstob domain mounts a tmpfs instance to the location and the linuxstob domain resides there.

A linuxstob is created for every perfstob. The linuxstob is represented by either a regular file or symlink to /dev/null depending on the perfstob mode.

Perfstob translates all I/O operations to linuxstob.

Configuration of the perfstob.

All perfstob features must be configured only with the perfstob domain configuration. This is done intentionally. Perfstob replaces other stobs and we want this to be done with minimum changes.

All configuration passed to m0_stob interface is ignored here. All necessary configuration is accessible via m0_stob_perf_domain::spd_cfg.

Latency emulation.

Perfstob emulates latency using a soft timer. Latency pattern is defined by a statefull callback function. Currently, there is only constant latency pattern.

Statistics.

Statistics is not implemented.

Macro Definition Documentation

◆ STOB_PERF_DOM_CONFIG_PATH

#define STOB_PERF_DOM_CONFIG_PATH   "/config"

Definition at line 165 of file perf.c.

◆ STOB_PERF_DOM_LDOM_PATH

#define STOB_PERF_DOM_LDOM_PATH   "/backstore"

Definition at line 166 of file perf.c.

Typedef Documentation

◆ stob_perf_latency_cb_t

typedef m0_time_t(* stob_perf_latency_cb_t) (struct stob_perf_io *)

Definition at line 107 of file perf.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
STOB_TYPE_PERF 
STOB_PERF_TMPFS_SIZE_DEFAULT 

Definition at line 159 of file perf.c.

Function Documentation

◆ M0_TL_DEFINE()

M0_TL_DEFINE ( stob_perf_ios  ,
static  ,
struct stob_perf_io   
)

◆ M0_TL_DESCR_DEFINE()

M0_TL_DESCR_DEFINE ( stob_perf_ios  ,
"List of perfstob I/O"  ,
static  ,
struct stob_perf_io  ,
spi_link  ,
spi_magic  ,
M0_STOB_PERF_IO_MAGIC  ,
M0_STOB_PERF_IO_HEAD_MAGIC   
)

◆ stob_perf_alloc()

static struct m0_stob* stob_perf_alloc ( struct m0_stob_domain dom,
const struct m0_fid stob_fid 
)
static

Definition at line 529 of file perf.c.

◆ stob_perf_ast_cb()

static void stob_perf_ast_cb ( struct m0_sm_group grp,
struct m0_sm_ast ast 
)
static

Definition at line 610 of file perf.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stob_perf_block_shift()

static uint32_t stob_perf_block_shift ( struct m0_stob stob)
static

Definition at line 785 of file perf.c.

Here is the call graph for this function:

◆ stob_perf_cfg_free()

static void stob_perf_cfg_free ( void *  cfg_create)
static

Definition at line 554 of file perf.c.

◆ stob_perf_cfg_parse()

static int stob_perf_cfg_parse ( const char *  str_cfg_create,
void **  cfg_create 
)
static

Definition at line 548 of file perf.c.

◆ stob_perf_consume_io()

static void stob_perf_consume_io ( struct stob_perf_io pio)
static

Definition at line 799 of file perf.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stob_perf_container()

static struct stob_perf* stob_perf_container ( struct m0_stob stob)
static

Definition at line 190 of file perf.c.

Here is the caller graph for this function:

◆ stob_perf_create()

static int stob_perf_create ( struct m0_stob stob,
struct m0_stob_domain dom,
struct m0_dtx dtx,
const struct m0_fid stob_fid,
void *  cfg 
)
static

Definition at line 709 of file perf.c.

Here is the call graph for this function:

◆ stob_perf_create_credit()

static void stob_perf_create_credit ( struct m0_stob_domain dom,
struct m0_be_tx_credit accum 
)
static

Definition at line 701 of file perf.c.

Here is the call graph for this function:

◆ stob_perf_destroy()

static int stob_perf_destroy ( struct m0_stob stob,
struct m0_dtx dtx 
)
static

Definition at line 735 of file perf.c.

Here is the call graph for this function:

◆ stob_perf_destroy_credit()

static void stob_perf_destroy_credit ( struct m0_stob stob,
struct m0_be_tx_credit accum 
)
static

Definition at line 727 of file perf.c.

Here is the call graph for this function:

◆ stob_perf_domain_cfg_create_free()

static void stob_perf_domain_cfg_create_free ( void *  cfg_create)
static

Definition at line 227 of file perf.c.

Here is the call graph for this function:

◆ stob_perf_domain_cfg_create_parse()

static int stob_perf_domain_cfg_create_parse ( const char *  str_cfg_create,
void **  cfg_create 
)
static

Definition at line 212 of file perf.c.

Here is the call graph for this function:

◆ stob_perf_domain_cfg_init_free()

static void stob_perf_domain_cfg_init_free ( void *  cfg_init)
static

Definition at line 208 of file perf.c.

◆ stob_perf_domain_cfg_init_parse()

static int stob_perf_domain_cfg_init_parse ( const char *  str_cfg_init,
void **  cfg_init 
)
static

Definition at line 202 of file perf.c.

◆ stob_perf_domain_cfg_parse()

static void stob_perf_domain_cfg_parse ( struct stob_perf_domain_cfg cfg,
const char *  cfg_str 
)
static

Definition at line 262 of file perf.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stob_perf_domain_config()

static char* stob_perf_domain_config ( const char *  location_data)
static

Definition at line 233 of file perf.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stob_perf_domain_container()

static struct stob_perf_domain* stob_perf_domain_container ( struct m0_stob_domain dom)
static

Definition at line 182 of file perf.c.

Here is the caller graph for this function:

◆ stob_perf_domain_create()

static int stob_perf_domain_create ( struct m0_stob_type type,
const char *  location_data,
uint64_t  dom_key,
void *  cfg_create 
)
static

Definition at line 447 of file perf.c.

Here is the call graph for this function:

◆ stob_perf_domain_destroy()

static int stob_perf_domain_destroy ( struct m0_stob_type type,
const char *  location_data 
)
static

Definition at line 505 of file perf.c.

Here is the call graph for this function:

◆ stob_perf_domain_dir_clean()

static int stob_perf_domain_dir_clean ( const char *  location_data)
static

Definition at line 411 of file perf.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stob_perf_domain_fini()

static void stob_perf_domain_fini ( struct m0_stob_domain dom)
static

Definition at line 403 of file perf.c.

Here is the call graph for this function:

◆ stob_perf_domain_init()

static int stob_perf_domain_init ( struct m0_stob_type type,
const char *  location_data,
void *  cfg_init,
struct m0_stob_domain **  out 
)
static

Definition at line 358 of file perf.c.

Here is the call graph for this function:

◆ stob_perf_domain_ldom_location()

static char* stob_perf_domain_ldom_location ( const char *  location_data)
static

Definition at line 246 of file perf.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stob_perf_domain_read_config()

static int stob_perf_domain_read_config ( struct stob_perf_domain pdom,
const char *  location_data 
)
static

Definition at line 280 of file perf.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stob_perf_domain_tmpfs_opts()

static int stob_perf_domain_tmpfs_opts ( char *  opts,
size_t  opts_len,
struct stob_perf_domain_cfg cfg 
)
static

Definition at line 422 of file perf.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stob_perf_domain_write_config()

static int stob_perf_domain_write_config ( const char *  cfg_str,
uint64_t  dom_key,
const char *  location_data 
)
static

Definition at line 327 of file perf.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stob_perf_fd()

static int stob_perf_fd ( struct m0_stob stob)
static

Definition at line 792 of file perf.c.

Here is the call graph for this function:

◆ stob_perf_fini()

static void stob_perf_fini ( struct m0_stob stob)
static

Definition at line 681 of file perf.c.

Here is the call graph for this function:

◆ stob_perf_free()

static void stob_perf_free ( struct m0_stob_domain dom,
struct m0_stob stob 
)
static

Definition at line 540 of file perf.c.

Here is the call graph for this function:

◆ stob_perf_init()

static int stob_perf_init ( struct m0_stob stob,
struct m0_stob_domain dom,
const struct m0_fid stob_fid 
)
static

Definition at line 650 of file perf.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stob_perf_io_completed()

static void stob_perf_io_completed ( struct stob_perf_io pio)
static

Definition at line 810 of file perf.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stob_perf_io_fini()

static void stob_perf_io_fini ( struct m0_stob_io io)
static

Definition at line 874 of file perf.c.

Here is the call graph for this function:

◆ stob_perf_io_init()

static int stob_perf_io_init ( struct m0_stob stob,
struct m0_stob_io io 
)
static

Definition at line 834 of file perf.c.

Here is the call graph for this function:

◆ stob_perf_io_launch()

static int stob_perf_io_launch ( struct m0_stob_io io)
static

Definition at line 855 of file perf.c.

Here is the call graph for this function:

◆ stob_perf_io_lio_completed()

static bool stob_perf_io_lio_completed ( struct m0_clink clink)
static

Definition at line 821 of file perf.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stob_perf_latency_const()

static m0_time_t stob_perf_latency_const ( struct stob_perf_io pio)
static

Definition at line 197 of file perf.c.

Here is the caller graph for this function:

◆ stob_perf_linux_fid_set()

static void stob_perf_linux_fid_set ( struct m0_fid lstob_fid,
const struct m0_fid stob_fid,
struct stob_perf_domain pdom 
)
static

Definition at line 558 of file perf.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stob_perf_linux_init_create()

static int stob_perf_linux_init_create ( struct stob_perf_domain pdom,
const struct m0_fid stob_fid,
struct m0_dtx dtx,
bool  create,
struct m0_stob **  out 
)
static

Definition at line 567 of file perf.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stob_perf_punch()

static int stob_perf_punch ( struct m0_stob stob,
struct m0_indexvec range,
struct m0_dtx dtx 
)
static

Definition at line 763 of file perf.c.

Here is the call graph for this function:

◆ stob_perf_punch_credit()

static int stob_perf_punch_credit ( struct m0_stob stob,
struct m0_indexvec want,
struct m0_indexvec got,
struct m0_be_tx_credit accum 
)
static

Definition at line 747 of file perf.c.

Here is the call graph for this function:

◆ stob_perf_timer_cb()

static unsigned long stob_perf_timer_cb ( unsigned long  data)
static

Definition at line 634 of file perf.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stob_perf_timer_start()

static void stob_perf_timer_start ( struct stob_perf pstob,
struct stob_perf_io pio 
)
static

Definition at line 601 of file perf.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stob_perf_type_deregister()

static void stob_perf_type_deregister ( struct m0_stob_type type)
static

Definition at line 177 of file perf.c.

◆ stob_perf_type_register()

static void stob_perf_type_register ( struct m0_stob_type type)
static

Definition at line 173 of file perf.c.

◆ stob_perf_write_credit()

static void stob_perf_write_credit ( const struct m0_stob_domain dom,
const struct m0_stob_io io,
struct m0_be_tx_credit accum 
)
static

Definition at line 775 of file perf.c.

Here is the call graph for this function:

Variable Documentation

◆ m0_stob_perf_type [1/2]

const struct m0_stob_type m0_stob_perf_type

Definition at line 924 of file perf.c.

◆ m0_stob_perf_type [2/2]

const struct m0_stob_type m0_stob_perf_type
Initial value:
= {
.st_ops = &stob_perf_type_ops,
.st_fidt = {
.ft_id = STOB_TYPE_PERF,
.ft_name = "perfstob",
},
}
static struct m0_stob_type_ops stob_perf_type_ops
Definition: perf.c:884

Definition at line 924 of file perf.c.

◆ stob_perf_domain_ops

static struct m0_stob_domain_ops stob_perf_domain_ops
static
Initial value:
= {
.sdo_fini = &stob_perf_domain_fini,
.sdo_stob_alloc = &stob_perf_alloc,
.sdo_stob_free = &stob_perf_free,
.sdo_stob_cfg_parse = &stob_perf_cfg_parse,
.sdo_stob_cfg_free = &stob_perf_cfg_free,
.sdo_stob_init = &stob_perf_init,
.sdo_stob_create_credit = &stob_perf_create_credit,
.sdo_stob_create = &stob_perf_create,
.sdo_stob_write_credit = &stob_perf_write_credit,
}
static int stob_perf_cfg_parse(const char *str_cfg_create, void **cfg_create)
Definition: perf.c:548
static void stob_perf_free(struct m0_stob_domain *dom, struct m0_stob *stob)
Definition: perf.c:540
static int stob_perf_init(struct m0_stob *stob, struct m0_stob_domain *dom, const struct m0_fid *stob_fid)
Definition: perf.c:650
static struct m0_stob * stob_perf_alloc(struct m0_stob_domain *dom, const struct m0_fid *stob_fid)
Definition: perf.c:529
static void stob_perf_write_credit(const struct m0_stob_domain *dom, const struct m0_stob_io *io, struct m0_be_tx_credit *accum)
Definition: perf.c:775
static void stob_perf_domain_fini(struct m0_stob_domain *dom)
Definition: perf.c:403
static void stob_perf_cfg_free(void *cfg_create)
Definition: perf.c:554
static int stob_perf_create(struct m0_stob *stob, struct m0_stob_domain *dom, struct m0_dtx *dtx, const struct m0_fid *stob_fid, void *cfg)
Definition: perf.c:709
static void stob_perf_create_credit(struct m0_stob_domain *dom, struct m0_be_tx_credit *accum)
Definition: perf.c:701

Definition at line 153 of file perf.c.

◆ stob_perf_io_ops

static const struct m0_stob_io_op stob_perf_io_ops
static
Initial value:
= {
.sio_launch = stob_perf_io_launch,
.sio_fini = stob_perf_io_fini
}
static int stob_perf_io_launch(struct m0_stob_io *io)
Definition: perf.c:855
static void stob_perf_io_fini(struct m0_stob_io *io)
Definition: perf.c:874

Definition at line 155 of file perf.c.

◆ stob_perf_ops

static struct m0_stob_ops stob_perf_ops
static
Initial value:
= {
.sop_fini = &stob_perf_fini,
.sop_destroy_credit = &stob_perf_destroy_credit,
.sop_destroy = &stob_perf_destroy,
.sop_punch_credit = &stob_perf_punch_credit,
.sop_punch = &stob_perf_punch,
.sop_io_init = &stob_perf_io_init,
.sop_block_shift = &stob_perf_block_shift,
.sop_fd = &stob_perf_fd,
}
static int stob_perf_io_init(struct m0_stob *stob, struct m0_stob_io *io)
Definition: perf.c:834
static void stob_perf_fini(struct m0_stob *stob)
Definition: perf.c:681
static int stob_perf_destroy(struct m0_stob *stob, struct m0_dtx *dtx)
Definition: perf.c:735
static int stob_perf_punch(struct m0_stob *stob, struct m0_indexvec *range, struct m0_dtx *dtx)
Definition: perf.c:763
static int stob_perf_punch_credit(struct m0_stob *stob, struct m0_indexvec *want, struct m0_indexvec *got, struct m0_be_tx_credit *accum)
Definition: perf.c:747
static uint32_t stob_perf_block_shift(struct m0_stob *stob)
Definition: perf.c:785
static int stob_perf_fd(struct m0_stob *stob)
Definition: perf.c:792
static void stob_perf_destroy_credit(struct m0_stob *stob, struct m0_be_tx_credit *accum)
Definition: perf.c:727

Definition at line 154 of file perf.c.

◆ stob_perf_type_ops

struct m0_stob_type_ops stob_perf_type_ops
static
Initial value:
= {
.sto_register = &stob_perf_type_register,
.sto_deregister = &stob_perf_type_deregister,
.sto_domain_cfg_init_parse = &stob_perf_domain_cfg_init_parse,
.sto_domain_cfg_init_free = &stob_perf_domain_cfg_init_free,
.sto_domain_cfg_create_parse = &stob_perf_domain_cfg_create_parse,
.sto_domain_cfg_create_free = &stob_perf_domain_cfg_create_free,
.sto_domain_init = &stob_perf_domain_init,
.sto_domain_create = &stob_perf_domain_create,
.sto_domain_destroy = &stob_perf_domain_destroy,
}
static int stob_perf_domain_destroy(struct m0_stob_type *type, const char *location_data)
Definition: perf.c:505
static void stob_perf_domain_cfg_create_free(void *cfg_create)
Definition: perf.c:227
static void stob_perf_domain_cfg_init_free(void *cfg_init)
Definition: perf.c:208
static int stob_perf_domain_cfg_create_parse(const char *str_cfg_create, void **cfg_create)
Definition: perf.c:212
static void stob_perf_type_deregister(struct m0_stob_type *type)
Definition: perf.c:177
static int stob_perf_domain_init(struct m0_stob_type *type, const char *location_data, void *cfg_init, struct m0_stob_domain **out)
Definition: perf.c:358
static int stob_perf_domain_cfg_init_parse(const char *str_cfg_init, void **cfg_init)
Definition: perf.c:202
static void stob_perf_type_register(struct m0_stob_type *type)
Definition: perf.c:173
static int stob_perf_domain_create(struct m0_stob_type *type, const char *location_data, uint64_t dom_key, void *cfg_create)
Definition: perf.c:447

Definition at line 884 of file perf.c.