[OpenAFS] Re: client statistics and metrics and general design

Simon Wilkinson sxw@inf.ed.ac.uk
Thu, 9 Jun 2011 16:48:09 +0100

On 9 Jun 2011, at 16:06, Andrew Deason wrote:
> If you wanted to add recording of timing data, the best place is
> probably in afs_read, afs_write, afs_open, etc functions in the
> src/afs/VNOPS/, just recording the time spent in each of those
> functions.

The Linux cache manager's VFS interface (in src/afsLINUX/osi_vnodeops.c) =
is increasingly disjoint from the Sun 4 VFS interface represented in the =
VFS directory. We now have our own read codepath, there is significantly =
different code for directory filling, and write diverges due to our page =
cache usage. It's doubtful that you'll be able to get meaningful =
performance figures by instrumenting the VNOPS directory on Linux.

> If you really want to
> capture the time for the _entire_ op, that's better done at the layer =
> the OS anyway, or even the userspace application (i.e. measuring the
> amount of time in each syscall).

Indeed. Linux offloads a lot of work into the memory management and =
generic filesystem layers that you're not going to be able to get =
meaningful results by just instrumenting the bits of a particular =
filesystem. You really want to be looking at the syscall level.