lq_reset:1; /* zero current penalties */
};
+void lu_qos_rr_init(struct lu_qos_rr *lqr);
int lqos_add_tgt(struct lu_qos *qos, struct lu_tgt_desc *ltd);
int lqos_del_tgt(struct lu_qos *qos, struct lu_tgt_desc *ltd);
u64 lu_prandom_u64_max(u64 ep_ro);
INIT_LIST_HEAD(&lmv->lmv_qos.lq_svr_list);
init_rwsem(&lmv->lmv_qos.lq_rw_sem);
lmv->lmv_qos.lq_dirty = 1;
- lmv->lmv_qos.lq_rr.lqr_dirty = 1;
lmv->lmv_qos.lq_reset = 1;
/* Default priority is toward free space balance */
lmv->lmv_qos.lq_prio_free = 232;
/* Default threshold for rr (roughly 17%) */
lmv->lmv_qos.lq_threshold_rr = 43;
+ lu_qos_rr_init(&lmv->lmv_qos.lq_rr);
+
/*
* initialize rr_index to lower 32bit of netid, so that client
* can distribute subdirs evenly from the beginning.
int lod_prepare_create(const struct lu_env *env, struct lod_object *lo,
struct lu_attr *attr, const struct lu_buf *buf,
struct thandle *th);
-void lod_qos_rr_init(struct lu_qos_rr *lqr);
int lod_use_defined_striping(const struct lu_env *, struct lod_object *,
const struct lu_buf *);
int lod_qos_parse_config(const struct lu_env *env, struct lod_object *lo,
INIT_LIST_HEAD(&lod->lod_qos.lq_svr_list);
init_rwsem(&lod->lod_qos.lq_rw_sem);
lod->lod_qos.lq_dirty = 1;
- lod->lod_qos.lq_rr.lqr_dirty = 1;
lod->lod_qos.lq_reset = 1;
/* Default priority is toward free space balance */
lod->lod_qos.lq_prio_free = 232;
/* Default threshold for rr (roughly 17%) */
lod->lod_qos.lq_threshold_rr = 43;
+ lu_qos_rr_init(&lod->lod_qos.lq_rr);
+
/* Set up OST pool environment */
lod->lod_pools_hash_body = cfs_hash_create("POOLS", HASH_POOLS_CUR_BITS,
HASH_POOLS_MAX_BITS,
rc = lod_ost_pool_init(&lod->lod_pool_info, 0);
if (rc)
GOTO(out_hash, rc);
- lod_qos_rr_init(&lod->lod_qos.lq_rr);
rc = lod_ost_pool_init(&lod->lod_qos.lq_rr.lqr_pool, 0);
if (rc)
GOTO(out_pool_info, rc);
if (rc)
GOTO(out_err, rc);
- lod_qos_rr_init(&new_pool->pool_rr);
+ lu_qos_rr_init(&new_pool->pool_rr);
+
rc = lod_ost_pool_init(&new_pool->pool_rr.lqr_pool, 0);
if (rc)
GOTO(out_free_pool_obds, rc);
RETURN(0);
}
-void lod_qos_rr_init(struct lu_qos_rr *lqr)
-{
- spin_lock_init(&lqr->lqr_alloc);
- lqr->lqr_dirty = 1;
-}
-
#define LOV_QOS_EMPTY ((__u32)-1)
/**
#include <lustre_fid.h>
#include <lu_object.h>
+void lu_qos_rr_init(struct lu_qos_rr *lqr)
+{
+ spin_lock_init(&lqr->lqr_alloc);
+ lqr->lqr_dirty = 1;
+}
+EXPORT_SYMBOL(lu_qos_rr_init);
+
/**
* Add a new target to Quality of Service (QoS) target table.
*