ceph: add caps perf metric for each superblock
Count hits and misses in the caps cache. If the client has all of the necessary caps when a task needs references, then it's counted as a hit. Any other situation is a miss. URL: https://tracker.ceph.com/issues/43215 Signed-off-by: Xiubo Li <xiubli@redhat.com> Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
@@ -856,7 +856,7 @@ ssize_t __ceph_getxattr(struct inode *inode, const char *name, void *value,
|
||||
|
||||
if (ci->i_xattrs.version == 0 ||
|
||||
!((req_mask & CEPH_CAP_XATTR_SHARED) ||
|
||||
__ceph_caps_issued_mask(ci, CEPH_CAP_XATTR_SHARED, 1))) {
|
||||
__ceph_caps_issued_mask_metric(ci, CEPH_CAP_XATTR_SHARED, 1))) {
|
||||
spin_unlock(&ci->i_ceph_lock);
|
||||
|
||||
/* security module gets xattr while filling trace */
|
||||
@@ -914,7 +914,7 @@ ssize_t ceph_listxattr(struct dentry *dentry, char *names, size_t size)
|
||||
ci->i_xattrs.version, ci->i_xattrs.index_version);
|
||||
|
||||
if (ci->i_xattrs.version == 0 ||
|
||||
!__ceph_caps_issued_mask(ci, CEPH_CAP_XATTR_SHARED, 1)) {
|
||||
!__ceph_caps_issued_mask_metric(ci, CEPH_CAP_XATTR_SHARED, 1)) {
|
||||
spin_unlock(&ci->i_ceph_lock);
|
||||
err = ceph_do_getattr(inode, CEPH_STAT_CAP_XATTR, true);
|
||||
if (err)
|
||||
|
Reference in New Issue
Block a user