X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fquota%2Fqmt_internal.h;h=7f02256cd0f45d0a7a10e35c94ee035ed483ef32;hb=a7d8aa2c3bac1ac0662b40ff018cc588e946cee4;hp=b4df058c50d4ec1d36af1b106d69aab4aea5aaab;hpb=c2c28f2aa5d65d889bf5d1a707fec82e8f852c86;p=fs%2Flustre-release.git diff --git a/lustre/quota/qmt_internal.h b/lustre/quota/qmt_internal.h index b4df058..7f02256 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, 2013, Intel Corporation. * Use is subject to license terms. */ @@ -65,13 +65,13 @@ 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; /* procfs root directory for this qmt */ - cfs_proc_dir_entry_t *qmt_proc; + struct proc_dir_entry *qmt_proc; /* dedicated thread in charge of space rebalancing */ struct ptlrpc_thread qmt_reba_thread; @@ -130,7 +130,7 @@ struct qmt_pool_info { struct lquota_entry *qpi_grace_lqe[MAXQUOTAS]; /* procfs root directory for this pool */ - cfs_proc_dir_entry_t *qpi_proc; + struct proc_dir_entry *qpi_proc; /* pool directory where all indexes related to this pool instance are * stored */ @@ -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; }; /*