Project

General

Profile

Bug #18686

too many on the wire revalidations from ceph_d_revalidate

Added by Jeff Layton about 7 years ago. Updated about 7 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Crash signature (v1):
Crash signature (v2):

Description

Zheng says:

A user reported he saw ceph_d_revalidate() sends large volume getattr requests when running vdbench. I think the reason is that we recently made ceph_d_revalidate() use getattr request instead lookup request. Getattr request reply does not update dentry lease. So ceph_d_revalidate() sends a request each time it gets called. I had a quick look at code, it seems safely updating dentry lease also requires locked parent dir. Any idea how to fix this

He's correct the you do currently need r_locked_dir set in the request in order for the lease to be updated, but I don't think the dentry lease stuff really requires that the parent be locked.

I don't see why we need the parent dir locked in order to update the lease. We just need to ensure that the lease in the trace is for the correct parent before updating it.

Opening this bug to track reorganizing ceph_fill_trace to update the lease even when the parent isn't locked.

History

#2 Updated by Jeff Layton about 7 years ago

  • Status changed from New to Resolved

Moving to Resolved under the assumption that we'll be merging this set into v4.11.

Also available in: Atom PDF