X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fquota%2Fqmt_internal.h;h=c3f7fd6789768003fc35e5cf48ef56a4ec4deb0c;hb=b38eb0b6c483e40a6112d02cffeed53c3ee5a743;hp=ba7042c11b6d662c7ca361529f60165bdeadb8b6;hpb=736ffdc4d6975aaeac83019dd2a88100f4e3d028;p=fs%2Flustre-release.git diff --git a/lustre/quota/qmt_internal.h b/lustre/quota/qmt_internal.h index ba7042c..c3f7fd6 100644 --- a/lustre/quota/qmt_internal.h +++ b/lustre/quota/qmt_internal.h @@ -21,7 +21,7 @@ * GPL HEADER END */ /* - * Copyright (c) 2012, Intel Corporation. + * Copyright (c) 2012, 2016, Intel Corporation. * Use is subject to license terms. */ @@ -65,7 +65,7 @@ struct qmt_device { * Once we support quota on non-default pools, then more pools will * be added to this hash table and pool master setup would have to be * handled via configuration logs */ - cfs_hash_t *qmt_pool_hash; + struct cfs_hash *qmt_pool_hash; /* List of pools managed by this master target */ struct list_head qmt_pool_list; @@ -139,6 +139,22 @@ struct qmt_pool_info { /* Global quota parameters which apply to all quota type */ /* the least value of qunit */ unsigned long qpi_least_qunit; + + /* Least value of qunit when soft limit is exceeded. + * + * When soft limit is exceeded, qunit will be shrinked to least_qunit + * (1M for block limit), that results in significant write performance + * drop since the client will turn to sync write from now on. + * + * To retain the write performance in an acceptable level, we choose + * to sacrifice grace time accuracy a bit and use a larger least_qunit + * when soft limit is exceeded. It's (qpi_least_qunit * 4) by default, + * and user may enlarge it via procfs to get even better performance + * (with the cost of losing more grace time accuracy). + * + * See qmt_calc_softlimit(). + */ + unsigned long qpi_soft_least_qunit; }; /*