libceph: primary_affinity infrastructure
Add primary_affinity infrastructure. primary_affinity values are stored in an max_osd-sized array, hanging off ceph_osdmap, similar to a osd_weight array. Introduce {get,set}_primary_affinity() helpers, primarily to return CEPH_OSD_DEFAULT_PRIMARY_AFFINITY when no affinity has been set and to abstract out osd_primary_affinity array allocation and initialization. Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com> Reviewed-by: Alex Elder <elder@linaro.org>
This commit is contained in:
@@ -77,10 +77,11 @@ static int osdmap_show(struct seq_file *s, void *p)
|
||||
int state = map->osd_state[i];
|
||||
char sb[64];
|
||||
|
||||
seq_printf(s, "osd%d\t%s\t%3d%%\t(%s)\n",
|
||||
seq_printf(s, "osd%d\t%s\t%3d%%\t(%s)\t%3d%%\n",
|
||||
i, ceph_pr_addr(&addr->in_addr),
|
||||
((map->osd_weight[i]*100) >> 16),
|
||||
ceph_osdmap_state_str(sb, sizeof(sb), state));
|
||||
ceph_osdmap_state_str(sb, sizeof(sb), state),
|
||||
((ceph_get_primary_affinity(map, i)*100) >> 16));
|
||||
}
|
||||
for (n = rb_first(&map->pg_temp); n; n = rb_next(n)) {
|
||||
struct ceph_pg_mapping *pg =
|
||||
|
Reference in New Issue
Block a user