Motr
M0
|
Data Structures | |
struct | m0_proc_attr |
struct | cs_args |
struct | cs_endpoint_and_xprt |
struct | cs_stob_file |
struct | cs_stobs |
struct | m0_reqh_context |
struct | m0_motr |
struct | cs_ad_stob |
struct | cs_buffer_pool |
Macros | |
#define | CS_MODULE_LEVEL(level) |
#define | M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_M0D |
Functions | |
static void | cs_term_sig_handler (int signum) |
static int | cs_register_signal (void) |
static int | cs_wait_signal (void) |
M0_INTERNAL int | main (int argc, char **argv) |
static int | reqh_memlimit_set (uint resource, uint64_t limit) |
int | m0_cs_memory_limits_setup (struct m0 *instance) |
M0_TL_DESCR_DEFINE (cs_buffer_pools, "buffer pools in the motr context", static, struct cs_buffer_pool, cs_bp_linkage, cs_bp_magic, M0_CS_BUFFER_POOL_MAGIC, M0_CS_BUFFER_POOL_HEAD_MAGIC) | |
M0_TL_DEFINE (cs_buffer_pools, static, struct cs_buffer_pool) | |
M0_TL_DESCR_DEFINE (cs_eps, "cs endpoints",, struct cs_endpoint_and_xprt, ex_linkage, ex_magix, M0_CS_ENDPOINT_AND_XPRT_MAGIC, M0_CS_EPS_HEAD_MAGIC) | |
M0_TL_DEFINE (cs_eps, M0_INTERNAL, struct cs_endpoint_and_xprt) | |
M0_BOB_DEFINE (extern, &cs_eps_bob, cs_endpoint_and_xprt) | |
static bool | reqh_context_check (const void *bob) |
M0_BOB_DEFINE (static, &rhctx_bob, m0_reqh_context) | |
M0_TL_DESCR_DEFINE (ndom, "network domains", static, struct m0_net_domain, nd_app_linkage, nd_magix, M0_NET_DOMAIN_MAGIC, M0_CS_NET_DOMAIN_HEAD_MAGIC) | |
M0_TL_DEFINE (ndom, static, struct m0_net_domain) | |
M0_BOB_DEFINE (static, &ndom_bob, m0_net_domain) | |
M0_BOB_DEFINE (static inline, &cs_bob_type, m0_motr) | |
static bool | reqh_ctx_services_are_valid (const struct m0_reqh_context *rctx) |
static bool | reqh_context_invariant (const struct m0_reqh_context *rctx) |
static struct m0_reqh * | motr2reqh (struct m0_motr *motr) |
static struct m0_rconfc * | motr2rconfc (struct m0_motr *motr) |
M0_INTERNAL struct m0_confc * | m0_motr2confc (struct m0_motr *motr) |
M0_INTERNAL struct m0_rpc_machine * | m0_motr_to_rmach (struct m0_motr *motr) |
static struct m0_net_xprt * | cs_xprt_lookup (const char *xprt_name, struct m0_net_xprt **xprts, size_t xprts_nr) |
static void | cs_xprts_list (FILE *out, struct m0_net_xprt **xprts, size_t xprts_nr) |
static void | cs_stob_types_list (FILE *out) |
static bool | stype_is_valid (const char *stype) |
static bool | cs_endpoint_is_duplicate (const struct m0_reqh_context *rctx, const struct m0_net_xprt *xprt, const char *ep) |
static int | cs_endpoint_validate (struct m0_motr *cctx, const char *ep, const char *xprt_name) |
M0_INTERNAL int | m0_ep_and_xprt_extract (struct cs_endpoint_and_xprt *epx, const char *ep) |
M0_INTERNAL void | m0_ep_and_xprt_fini (struct cs_endpoint_and_xprt *epx) |
static int | ep_and_xprt_append (struct m0_tl *head, const char *ep) |
static bool | service_is_duplicate (const struct m0_reqh_context *rctx, const char *sname) |
static int | cs_reqh_ctx_init (struct m0_motr *cctx) |
static void | cs_reqh_ctx_fini (struct m0_reqh_context *rctx) |
M0_INTERNAL struct m0_net_domain * | m0_cs_net_domain_locate (struct m0_motr *cctx, const char *xprt_name) |
static struct m0_net_buffer_pool * | cs_buffer_pool_get (struct m0_motr *cctx, struct m0_net_domain *ndom) |
static int | cs_rpc_machine_init (struct m0_motr *cctx, const char *xprt_name, const char *ep, const uint32_t tm_colour, const uint32_t recv_queue_min_length, const uint32_t max_rpc_msg_size, struct m0_reqh *reqh) |
static int | cs_rpc_machines_init (struct m0_motr *cctx) |
static void | cs_rpc_machines_fini (struct m0_reqh *reqh) |
static int | cs_ha_init (struct m0_motr *cctx) |
static bool | bad_address (char *addr) |
static void | cs_ha_process_event (struct m0_motr *cctx, enum m0_conf_ha_process_event event) |
static void | cs_ha_stop (struct m0_motr *cctx) |
static void | cs_ha_fini (struct m0_motr *cctx) |
static uint32_t | cs_domain_tms_nr (struct m0_reqh_context *rctx, struct m0_net_domain *dom) |
static uint32_t | cs_dom_tm_min_recv_queue_total (struct m0_reqh_context *rctx, struct m0_net_domain *dom) |
static void | cs_buffer_pool_fini (struct m0_motr *cctx) |
static int | cs_buffer_pool_setup (struct m0_motr *cctx) |
static int | stob_file_id_get (yaml_document_t *doc, yaml_node_t *node, uint64_t *id) |
static const char * | stob_file_path_get (yaml_document_t *doc, yaml_node_t *node) |
static int | cs_stob_file_load (const char *dfile, struct cs_stobs *stob) |
static void | cs_storage_devs_fini (void) |
static int | cs_storage_devs_init (struct cs_stobs *stob, enum m0_storage_dev_type type, struct m0_be_seg *seg, const char *stob_path, bool force, bool disable_direct_io) |
static char * | cs_storage_ldom_location_gen (const char *stob_path) |
static int | cs_storage_ldom_destroy (const char *stob_path, const char *str_cfg_init) |
static int | cs_storage_bstore_prepare (const char *stob_path, const char *str_cfg_init, uint64_t dom_key, bool mkfs, struct m0_stob_domain **out) |
static int | cs_storage_init (const char *stob_type, const char *stob_path, uint64_t dom_key, struct cs_stobs *stob, struct m0_be_seg *seg, bool mkfs, bool force, bool disable_direct_io) |
static void | cs_storage_fini (struct cs_stobs *stob) |
M0_INTERNAL int | cs_service_init (const char *name, struct m0_reqh_context *rctx, struct m0_reqh *reqh, struct m0_fid *fid) |
static int | reqh_context_services_init (struct m0_reqh_context *rctx, struct m0_motr *cctx) |
M0_INTERNAL void | cs_service_fini (struct m0_reqh_service *service) |
static void | reqh_context_services_fini (struct m0_reqh_context *rctx, struct m0_motr *cctx) |
static int | reqh_services_start (struct m0_reqh_context *rctx, struct m0_motr *cctx) |
static int | cs_net_domain_init (struct cs_endpoint_and_xprt *ep, struct m0_motr *cctx) |
static int | cs_net_domains_init (struct m0_motr *cctx) |
static void | cs_net_domains_fini (struct m0_motr *cctx) |
static int | cs_storage_prepare (struct m0_reqh_context *rctx, bool erase) |
static void | be_seg_init (struct m0_be_ut_backend *be, m0_bcount_t size, bool preallocate, bool format, const char *stob_create_cfg, struct m0_be_seg **out) |
static bool | pver_is_actual (const struct m0_conf_obj *obj) |
static int | be_repair_zone_pcnt_get (struct m0_reqh *reqh, uint32_t *repair_zone_pcnt) |
static int | cs_be_dom_cfg_zone_pcnt_fill (struct m0_reqh *reqh, struct m0_be_domain_cfg *dom_cfg) |
static int | cs_be_init (struct m0_reqh_context *rctx, struct m0_be_ut_backend *be, const char *name, bool preallocate, bool format, struct m0_be_seg **out) |
M0_INTERNAL void | cs_be_fini (struct m0_be_ut_backend *be) |
static int | cs_reqh_start (struct m0_reqh_context *rctx) |
static int | cs_storage_setup (struct m0_motr *cctx) |
static int | cs_dtm0_init (struct m0_reqh_context *rctx) |
static void | cs_dtm0_fini (struct m0_reqh_context *rctx) |
static void | cs_reqh_shutdown (struct m0_reqh_context *rctx) |
static void | cs_reqh_stop (struct m0_reqh_context *rctx) |
static void | cs_reqh_storage_fini (struct m0_reqh_context *rctx) |
struct m0_reqh * | m0_cs_reqh_get (struct m0_motr *cctx) |
M0_INTERNAL struct m0_reqh_context * | m0_cs_reqh_context (struct m0_reqh *reqh) |
M0_INTERNAL struct m0_motr * | m0_cs_ctx_get (struct m0_reqh *reqh) |
M0_INTERNAL struct m0_storage_devs * | m0_cs_storage_devs_get (void) |
static void | cs_motr_init (struct m0_motr *cctx) |
static void | cs_motr_fini (struct m0_motr *cctx) |
static void | cs_usage (FILE *out, const char *progname) |
static void | cs_help (FILE *out, const char *progname) |
static int | cs_reqh_ctx_validate (struct m0_motr *cctx) |
static int | cs_reqh_ctx_services_validate (struct m0_motr *cctx) |
static int | cs_daemonize (struct m0_motr *cctx) |
static int | process_fid_parse (const char *str, struct m0_fid *fid) |
static void | process_fid_generate_conditional (struct m0_reqh_context *rctx) |
static int | _args_parse (struct m0_motr *cctx, int argc, char **argv) |
static int | cs_args_parse (struct m0_motr *cctx, int argc, char **argv) |
static void | cs_ha_connect (struct m0_motr *cctx) |
static int | cs_conf_setup (struct m0_motr *cctx) |
static void | cs_conf_fini (struct m0_motr *cctx) |
static int | cs_reqh_mdpool_layouts_setup (struct m0_motr *cctx) |
static void | cs_rconfc_fatal_cb (struct m0_rconfc *rconfc) |
M0_INTERNAL void | m0_cs_gotsignal_reset (void) |
static struct m0_motr * | cs_module2motr (struct m0_module *module) |
static int | cs_level_enter (struct m0_module *module) |
static void | cs_level_leave (struct m0_module *module) |
int | m0_cs_setup_env (struct m0_motr *cctx, int argc, char **argv) |
int | m0_cs_start (struct m0_motr *cctx) |
int | m0_cs_init (struct m0_motr *cctx, struct m0_net_xprt **xprts, size_t xprts_nr, FILE *out, bool mkfs) |
void | m0_cs_fini (struct m0_motr *cctx) |
M0_INTERNAL int | m0_motr_stob_reopen (struct m0_reqh *reqh, struct m0_poolmach *pm, uint32_t dev_id) |
M0_BASSERT (CS_MAX_EP_ADDR_LEN >=sizeof "lnet:"+M0_NET_LNET_XEP_ADDR_LEN) | |
M0_TL_DESCR_DECLARE (cs_eps, extern) | |
M0_TL_DECLARE (cs_eps, M0_INTERNAL, struct cs_endpoint_and_xprt) | |
M0_BOB_DECLARE (M0_INTERNAL, cs_endpoint_and_xprt) | |
static void | cs_dix_cas_id_make (struct m0_cas_id *cid, struct m0_dix *index, uint32_t sdev_idx) |
static int | cs_dix_create_sync (struct m0_dix *index, uint32_t sdev_idx, struct m0_rpc_link *link) |
static int | cs_dix_keys_vals_init (struct m0_bufvec *keys, struct m0_bufvec *vals, const char *key, const struct m0_fid *fid, struct m0_dix_ldesc *dld) |
static void | cs_dix_keys_vals_fini (struct m0_bufvec *keys, struct m0_bufvec *vals) |
static int | cs_dix_put_sync (struct m0_dix *index, uint32_t sdev_idx, struct m0_bufvec *keys, struct m0_bufvec *vals, struct m0_rpc_link *link) |
static int | cs_dix_put_one (struct m0_dix *index, const char *keystr, const struct m0_fid *fid, struct m0_dix_ldesc *dld, struct m0_pools_common *pc, struct m0_pool_version *pver, struct m0_layout_domain *ldom, struct m0_fid *cas_fid, struct m0_rpc_link *link) |
static bool | cs_dix_pver_is_valid (struct m0_pools_common *pc, struct m0_pool_version *pver) |
M0_INTERNAL int | m0_cs_dix_setup (struct m0_motr *cctx) |
M0_INTERNAL int | cs_conf_to_args (struct cs_args *dest, struct m0_conf_root *r) |
M0_INTERNAL int | cs_conf_storage_init (struct cs_stobs *stob, struct m0_storage_devs *devs, bool force) |
M0_INTERNAL int | cs_conf_device_reopen (struct m0_poolmach *pm, struct cs_stobs *stob, uint32_t dev_id) |
M0_INTERNAL int | cs_conf_services_init (struct m0_motr *cctx) |
Variables | |
volatile sig_atomic_t | gotsignal |
static bool | regsignal = false |
struct m0_reqh_service_type | m0_ss_svc_type |
static struct m0_bob_type | cs_eps_bob |
M0_INTERNAL const char * | m0_cs_stypes [M0_STOB_TYPE_NR] |
static struct m0_bob_type | rhctx_bob |
static struct m0_bob_type | ndom_bob |
static const struct m0_bob_type | cs_bob_type |
volatile sig_atomic_t | gotsignal |
static const struct m0_modlev | cs_module_levels [] |
M0_EXTERN const char * | m0_cs_stypes [M0_STOB_TYPE_NR] |
Motr setup program configures a user space motr context on a node in a cluster. There exist a list of network transports supported by a node, which is used to initialise corresponding network domains per motr context, so there exist a network domain per network transport. There can exist multiple request handlers per motr context. Every motr context configures one or more request handler contexts, one per request handler, each containing a storage domain, data base, cob domain, fol and request handler to be initialised. Every request handler contains a list of rpc machines, each configured per given endpoint per network domain. Network domains are shared between multiple request handlers in a motr context. There exist multiple services within a motr context. Each service identifies a particular set of operations that can be executed on a particular node. Services are registered with the request handler which performs the execution of requests directed to a particular service. Thus the services run under request handler context.
Motr setup can be done internally through motr code or externally through cli using m0d program. As motr setup configures the server it should be used in server side initialisation. if done through code, Following has to be done to configure a motr context:
Define parameters for motr setup and setup environment as below,
Once the environment is setup successfully, the services can be started as below,
Failure handling for m0d is done as follows,
Similarly, to setup motr externally, using m0d program along with parameters specified as above. e.g. ./m0d -T linux -D dbpath -S stobfile \ -e xport:172.18.50.40:12345:34:1 -s 'service:ServiceFID'
Below image gives an overview of entire motr context.
For reconfigure (see m0_ss_process_req) some process attributes save into m0 instance and apply on initialize module phase.
#define CS_MODULE_LEVEL | ( | level | ) |
#define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_M0D |
Definition at line 29 of file setup_dix.c.
anonymous enum |
Enumerator | |
---|---|
M0_PROCESS_ATTRIBUTE_NO_MEMLIMIT | Default value of Process attribute. Attribute not reply if set to this value. |
Definition at line 40 of file process_attr.h.
anonymous enum |
The space for M0_BAP_REPAIR zone in BE allocator is calculated based on distributed index replication factor and total number of target disks. But due to fragmentation or some other reasons it may be not sufficient, so special "safety" coefficient is introduced to increase space in repair zone. Safety coefficient is defined as "safety mul"/"safety div".
If repair zone percentage crosses M0_BC_REPAIR_ZONE_MAX_ALLOWED, user has to choose appropriate spare value.
anonymous enum |
enum cs_level |
motr/setup initialisation levels.
Future improvements:
enum cs_reqh_ctx_states |
States of m0_motr::cc_reqh_ctx.
Enumerator | |
---|---|
RC_UNINITIALISED | |
RC_REQH_INITIALISED | |
RC_INITIALISED |
enum result_status |
enum stob_type |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
M0_INTERNAL void cs_be_fini | ( | struct m0_be_ut_backend * | be | ) |
|
static |
|
static |
|
static |
|
static |
M0_INTERNAL int cs_conf_device_reopen | ( | struct m0_poolmach * | pm, |
struct cs_stobs * | stob, | ||
uint32_t | dev_id | ||
) |
|
static |
M0_INTERNAL int cs_conf_services_init | ( | struct m0_motr * | cctx | ) |
|
static |
M0_INTERNAL int cs_conf_storage_init | ( | struct cs_stobs * | stob, |
struct m0_storage_devs * | devs, | ||
bool | force | ||
) |
M0_INTERNAL int cs_conf_to_args | ( | struct cs_args * | dest, |
struct m0_conf_root * | r | ||
) |
Uses confc API to generate CLI arguments, understood by _args_parse().
Definition at line 159 of file conf.c.
|
static |
Causes the process to run as a daemon if appropriate context flag is set. This involves forking, detaching from the keyboard if any, and ensuring SIGHUP will not affect the process.
Definition at line 2019 of file setup.c.
|
static |
Definition at line 49 of file setup_dix.c.
|
static |
Definition at line 65 of file setup_dix.c.
Definition at line 125 of file setup_dix.c.
|
static |
Definition at line 100 of file setup_dix.c.
|
static |
Definition at line 171 of file setup_dix.c.
|
static |
Definition at line 132 of file setup_dix.c.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Checks if given network endpoint address and network transport are valid and if they are already in use in given motr context.
cctx | Motr context |
ep | Network endpoint address |
xprt_name | Network transport name |
0 | On success -EINVAL If endpoint is invalid -EADDRINUSE If endpoint is already in use |
Definition at line 305 of file setup.c.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
If a signal is recieved in CS_LEVEL_REQH_STOP_WORKAROUND, m0_module_fini is called, In m0_module_fini CS_LEVEL_RPC_MACHINES_INIT would assert because there are active ongoing connection. ideally connections are closed in cs_ha_fini during cs_level_leave:: CS_LEVEL_REQH_STOP_WORKAROUND. In cs_level_enter::CS_LEVEL_REQH_STOP_WORKAROUND, it does nothing so just skip the error in CS_LEVEL_REQH_STOP_WORKAROUND which will be handled in the next state. during fini, cs_ha_fini is called before CS_LEVEL_RPC_MACHINES_INIT
During cs_level_enter, if signal is recieved, then signal handling is skipped and handled in the next state, before adding any change refer comments in gotsignal.
Definition at line 2516 of file setup.c.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
The callback is installed to m0_rconfc::rc_fatal_cb intended to catch rconfc failure state, and because of that shut down m0d nicely. With rconfc failed motr instance becomes non-functional, as long as conf reading is impossible.
The callback sends SIGINT to itself resulting eventually in m0_cs_fini() call.
Definition at line 2405 of file setup.c.
|
static |
Registers signal handler to catch SIGTERM, SIGINT and SIGQUIT signals and pauses the Motr process. Registers signal handler to catch SIGUSR1 signals to restart the Motr process.
Definition at line 87 of file m0d.c.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Initialises a request handler context. A request handler context consists of the storage domain, database, cob domain, fol and request handler instance to be initialised. The request handler context is allocated and initialised per request handler in a motr process per node. So, there can exist multiple request handlers and thus multiple request handler contexts in a motr context.
rctx | Request handler context to be initialised |
Definition at line 1567 of file setup.c.
|
static |
Finalises a request handler context. Sets m0_reqh::rh_shutdown true, and checks if the request handler can be shutdown by invoking m0_reqh_can_shutdown(). This waits until m0_reqh_can_shutdown() returns true and then proceeds for further cleanup.
rctx | Request handler context to be finalised |
Definition at line 1734 of file setup.c.
|
static |
|
static |
Initialises rpc machine for the given endpoint address. Once the new rpc_machine is created it is added to list of rpc machines in given request handler. Request handler should be initialised before invoking this function.
cctx | Motr context |
xprt_name | Network transport |
ep | Network endpoint address |
tm_colour | Unique colour to be assigned to each TM in a domain |
recv_queue_min_length | Minimum number of buffers in TM receive queue |
max_rpc_msg_size | Maximum RPC message size |
reqh | Request handler to which the newly created rpc_machine belongs |
Definition at line 510 of file setup.c.
|
static |
|
static |
M0_INTERNAL void cs_service_fini | ( | struct m0_reqh_service * | service | ) |
M0_INTERNAL int cs_service_init | ( | const char * | name, |
struct m0_reqh_context * | rctx, | ||
struct m0_reqh * | reqh, | ||
struct m0_fid * | fid | ||
) |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Initialises storage including database environment and stob domain of given type (e.g. linux or ad). There is a stob domain and a database environment created per request handler context.
Definition at line 1047 of file setup.c.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Looks up an xprt by the name.
xprt_name | Network transport name |
xprts | Array of network transports supported in a motr environment |
xprts_nr | Size of xprts array |
Definition at line 211 of file setup.c.
|
static |
|
static |
M0_BASSERT | ( | CS_MAX_EP_ADDR_LEN >=sizeof "lnet:"+ | M0_NET_LNET_XEP_ADDR_LEN | ) |
M0_BOB_DECLARE | ( | M0_INTERNAL | , |
cs_endpoint_and_xprt | |||
) |
M0_BOB_DEFINE | ( | extern | , |
& | cs_eps_bob, | ||
cs_endpoint_and_xprt | |||
) |
M0_BOB_DEFINE | ( | static | , |
& | rhctx_bob, | ||
m0_reqh_context | |||
) |
M0_BOB_DEFINE | ( | static | , |
& | ndom_bob, | ||
m0_net_domain | |||
) |
M0_BOB_DEFINE | ( | static | inline, |
& | cs_bob_type, | ||
m0_motr | |||
) |
M0_INTERNAL int m0_cs_dix_setup | ( | struct m0_motr * | cctx | ) |
Initialises DIX meta-indices locally.
Creates DIX meta-indices involving only local CAS. Returns immediately if there is no CAS service configured for the current process.
After running m0_cs_dix_setup() on all m0d's, the DIX state is the same as after running m0dixinit utility. In opposite to m0dixinit, this function can be used to re-initialise a single m0d.
XXX Current solution is temporary and contains copy-paste from DIX code. Proper solution must use DIX interface.
Definition at line 255 of file setup_dix.c.
void m0_cs_fini | ( | struct m0_motr * | cs_motr | ) |
M0_INTERNAL void m0_cs_gotsignal_reset | ( | void | ) |
int m0_cs_init | ( | struct m0_motr * | cs_motr, |
struct m0_net_xprt ** | xprts, | ||
size_t | xprts_nr, | ||
FILE * | out, | ||
bool | mkfs | ||
) |
Initialises motr context.
cs_motr | Represents a motr context |
xprts | Array or network transports supported in a motr context |
xprts_nr | Size of xprts array |
out | File descriptor to which output is written |
should | the storage be prepared just like mkfs does? |
Definition at line 2999 of file setup.c.
int m0_cs_memory_limits_setup | ( | struct m0 * | instance | ) |
Set memory limits.
For each value of memory limit with non-default value from m0_proc_attr use pair getrlimit and setrlimit.
Definition at line 54 of file process_attr.c.
M0_INTERNAL struct m0_net_domain * m0_cs_net_domain_locate | ( | struct m0_motr * | cctx, |
const char * | xprtname | ||
) |
M0_INTERNAL struct m0_reqh_context * m0_cs_reqh_context | ( | struct m0_reqh * | reqh | ) |
Returns instance of struct m0_reqh_context given a request handler instance.
Definition at line 1773 of file setup.c.
int m0_cs_setup_env | ( | struct m0_motr * | cs_motr, |
int | argc, | ||
char ** | argv | ||
) |
Configures motr context before starting the services. Parses the given arguments and allocates request handler contexts. Validates allocated request handler contexts which includes validation of given arguments and their values. Once all the arguments are validated, initialises network domains, creates and initialises request handler contexts, configures rpc machines each per request handler end point.
cs_motr | Motr context to be initialised |
Definition at line 2972 of file setup.c.
int m0_cs_start | ( | struct m0_motr * | cs_motr | ) |
Starts all the specified services in the motr context. Only once the motr environment is configured with network domains, request handlers and rpc machines, specified services are started.
cs_motr | Motr context in which services are started |
Definition at line 2987 of file setup.c.
M0_INTERNAL struct m0_storage_devs * m0_cs_storage_devs_get | ( | void | ) |
Returns m0_storage_devs object from m0 instance. Returns NULL if the object is not initialised.
Definition at line 1783 of file setup.c.
M0_INTERNAL int m0_ep_and_xprt_extract | ( | struct cs_endpoint_and_xprt * | epx, |
const char * | ep | ||
) |
M0_INTERNAL void m0_ep_and_xprt_fini | ( | struct cs_endpoint_and_xprt * | epx | ) |
M0_INTERNAL int m0_motr_stob_reopen | ( | struct m0_reqh * | reqh, |
struct m0_poolmach * | pm, | ||
uint32_t | dev_id | ||
) |
Extract the path of the provided dev_id from the config file, create stob id for it and call m0_stob_linux_reopen() to reopen the stob.
Definition at line 3043 of file setup.c.
M0_INTERNAL struct m0_rpc_machine * m0_motr_to_rmach | ( | struct m0_motr * | motr | ) |
M0_TL_DECLARE | ( | cs_eps | , |
M0_INTERNAL | , | ||
struct cs_endpoint_and_xprt | |||
) |
M0_TL_DEFINE | ( | cs_buffer_pools | , |
static | , | ||
struct cs_buffer_pool | |||
) |
M0_TL_DEFINE | ( | cs_eps | , |
M0_INTERNAL | , | ||
struct cs_endpoint_and_xprt | |||
) |
M0_TL_DEFINE | ( | ndom | , |
static | , | ||
struct m0_net_domain | |||
) |
M0_TL_DESCR_DECLARE | ( | cs_eps | , |
extern | |||
) |
M0_TL_DESCR_DEFINE | ( | cs_buffer_pools | , |
"buffer pools in the motr context" | , | ||
static | , | ||
struct cs_buffer_pool | , | ||
cs_bp_linkage | , | ||
cs_bp_magic | , | ||
M0_CS_BUFFER_POOL_MAGIC | , | ||
M0_CS_BUFFER_POOL_HEAD_MAGIC | |||
) |
M0_TL_DESCR_DEFINE | ( | cs_eps | , |
"cs endpoints" | , | ||
struct cs_endpoint_and_xprt | , | ||
ex_linkage | , | ||
ex_magix | , | ||
M0_CS_ENDPOINT_AND_XPRT_MAGIC | , | ||
M0_CS_EPS_HEAD_MAGIC | |||
) |
M0_TL_DESCR_DEFINE | ( | ndom | , |
"network domains" | , | ||
static | , | ||
struct m0_net_domain | , | ||
nd_app_linkage | , | ||
nd_magix | , | ||
M0_NET_DOMAIN_MAGIC | , | ||
M0_CS_NET_DOMAIN_HEAD_MAGIC | |||
) |
M0_INTERNAL int main | ( | int | argc, |
char ** | argv | ||
) |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 38 of file process_attr.c.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
M0_INTERNAL const char* m0_cs_stypes[M0_STOB_TYPE_NR] |
M0_EXTERN const char* m0_cs_stypes[M0_STOB_TYPE_NR] |
struct m0_reqh_service_type m0_ss_svc_type |
|
static |
|
static |