Motr  M0
cm_utils.c File Reference
#include "lib/misc.h"
#include "lib/trace.h"
#include "lib/finject.h"
#include "lib/hash.h"
#include "cob/cob.h"
#include "motr/setup.h"
#include "ioservice/io_service.h"
#include "conf/helpers.h"
#include "pool/pool.h"
#include "sns/parity_repair.h"
#include "sns/cm/ag.h"
#include "sns/cm/iter.h"
#include "sns/cm/cm_utils.h"
#include "sns/cm/file.h"
#include "ioservice/fid_convert.h"
#include "rpc/rpc_machine.h"
#include "fd/fd.h"
Include dependency graph for cm_utils.c:

Go to the source code of this file.

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_SNSCM
 

Enumerations

enum  {
  SNS_DEFAULT_FILE_SIZE = 1 << 17, SNS_DEFAULT_N = 3, SNS_DEFAULT_K = 1, SNS_DEFAULT_S = 1,
  SNS_DEFAULT_P = 5, SNS_DEFAULT_UNIT_SIZE = 1 << (11 + SNS_DEFAULT_LAYOUT_ID)
}
 

Functions

M0_INTERNAL int m0_sns_cm_ut_file_size_layout (struct m0_sns_cm_file_ctx *fctx)
 
M0_INTERNAL void m0_sns_cm_unit2cobfid (struct m0_sns_cm_file_ctx *fctx, const struct m0_pdclust_src_addr *sa, struct m0_pdclust_tgt_addr *ta, struct m0_fid *cfid_out)
 
M0_INTERNAL uint32_t m0_sns_cm_device_index_get (uint64_t group, uint64_t unit_number, struct m0_sns_cm_file_ctx *fctx)
 
M0_INTERNAL uint64_t m0_sns_cm_ag_unit2cobindex (struct m0_sns_cm_ag *sag, uint64_t unit)
 
M0_INTERNAL int m0_sns_cm_cob_locate (struct m0_cob_domain *cdom, const struct m0_fid *cob_fid)
 
M0_INTERNAL uint64_t m0_sns_cm_ag_nr_local_units (struct m0_sns_cm *scm, struct m0_sns_cm_file_ctx *fctx, uint64_t group)
 
M0_INTERNAL uint64_t m0_sns_cm_ag_nr_global_units (const struct m0_sns_cm_ag *sag, struct m0_pdclust_layout *pl)
 
M0_INTERNAL uint64_t m0_sns_cm_ag_nr_data_units (const struct m0_pdclust_layout *pl)
 
M0_INTERNAL uint64_t m0_sns_cm_ag_nr_parity_units (const struct m0_pdclust_layout *pl)
 
M0_INTERNAL uint64_t m0_sns_cm_ag_nr_spare_units (const struct m0_pdclust_layout *pl)
 
M0_INTERNAL uint64_t m0_sns_cm_ag_size (const struct m0_pdclust_layout *pl)
 
M0_INTERNAL bool m0_sns_cm_is_cob_repaired (struct m0_poolmach *pm, uint32_t cob_index)
 
M0_INTERNAL bool m0_sns_cm_is_cob_repairing (struct m0_poolmach *pm, uint32_t cob_index)
 
M0_INTERNAL bool m0_sns_cm_is_cob_rebalancing (struct m0_poolmach *pm, uint32_t cob_index)
 
M0_INTERNAL bool m0_sns_cm_unit_is_spare (struct m0_sns_cm_file_ctx *fctx, uint64_t group_nr, uint64_t spare_nr)
 
M0_INTERNAL uint64_t m0_sns_cm_ag_spare_unit_nr (const struct m0_pdclust_layout *pl, uint64_t fidx)
 
M0_INTERNAL uint64_t m0_sns_cm_ag_unit_start (const struct m0_sns_cm *scm, const struct m0_pdclust_layout *pl)
 
M0_INTERNAL uint64_t m0_sns_cm_ag_unit_end (const struct m0_sns_cm *scm, const struct m0_pdclust_layout *pl)
 
M0_INTERNAL int m0_sns_cm_ag_tgt_unit2cob (struct m0_sns_cm_ag *sag, uint64_t tgt_unit, struct m0_fid *cobfid)
 
static const char * local_ep (const struct m0_cm *cm)
 
static struct m0_conf_servicecm_conf_service_get (const struct m0_cm *cm, const struct m0_pool_version *pv, const struct m0_fid *cob_fid)
 
M0_INTERNAL const char * m0_sns_cm_tgt_ep (const struct m0_cm *cm, const struct m0_pool_version *pv, const struct m0_fid *cob_fid, struct m0_conf_obj **hostage)
 
M0_INTERNAL bool m0_sns_cm_is_local_cob (const struct m0_cm *cm, const struct m0_pool_version *pv, const struct m0_fid *cob_fid)
 
M0_INTERNAL size_t m0_sns_cm_ag_unrepaired_units (const struct m0_sns_cm *scm, struct m0_sns_cm_file_ctx *fctx, uint64_t group, struct m0_bitmap *fmap_out)
 
M0_INTERNAL bool m0_sns_cm_ag_is_relevant (struct m0_sns_cm *scm, struct m0_sns_cm_file_ctx *fctx, const struct m0_cm_ag_id *id)
 
M0_INTERNAL int m0_sns_cm_ag_in_cp_units (const struct m0_sns_cm *scm, const struct m0_cm_ag_id *id, struct m0_sns_cm_file_ctx *fctx, uint32_t *in_cp_nr, uint32_t *in_units_nr, struct m0_cm_proxy_in_count *pcount)
 
M0_INTERNAL bool m0_sns_cm_fid_is_valid (const struct m0_sns_cm *snscm, const struct m0_fid *fid)
 
M0_INTERNAL struct m0_reqhm0_sns_cm2reqh (const struct m0_sns_cm *snscm)
 
M0_INTERNAL bool m0_sns_cm_disk_has_dirty_pver (struct m0_cm *cm, struct m0_conf_drive *disk, bool clear)
 
M0_INTERNAL bool m0_sns_cm_pver_is_dirty (struct m0_pool_version *pver)
 
M0_INTERNAL void m0_sns_cm_pver_dirty_set (struct m0_pool_version *pver)
 
M0_INTERNAL int m0_sns_cm_pool_ha_nvec_alloc (struct m0_pool *pool, enum m0_pool_nd_state state, struct m0_ha_nvec *nvec)
 
M0_INTERNAL bool m0_sns_cm_group_has_local_presence (struct m0_sns_cm_file_ctx *fctx, uint32_t units_per_group, uint64_t group)
 
M0_INTERNAL enum m0_sns_cm_local_unit_type m0_sns_cm_local_unit_type_get (struct m0_sns_cm_file_ctx *fctx, uint64_t group, uint64_t unit)
 

Macro Definition Documentation

◆ M0_TRACE_SUBSYSTEM

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_SNSCM

Definition at line 23 of file cm_utils.c.