> On Sep 25, 2020, at 11:00 AM, Bruce Fields <bfields@xxxxxxxxxxxx> wrote: > > On Fri, Sep 25, 2020 at 10:36:42AM -0400, Chuck Lever wrote: >> >> >>> On Sep 25, 2020, at 10:32 AM, Bruce Fields <bfields@xxxxxxxxxxxx> wrote: >>> >>> On Fri, Sep 25, 2020 at 09:59:51AM -0400, Chuck Lever wrote: >>>> Thanks Bruce, for your time, attention, and comments! >>>> >>>>> On Sep 24, 2020, at 5:36 PM, J. Bruce Fields <bfields@xxxxxxxxxxxx> wrote: >>>>> >>>>> On Mon, Sep 21, 2020 at 02:10:49PM -0400, Chuck Lever wrote: >>>>>> As I've been working on various server bugs, I've been adding >>>>>> tracepoints that record NFS operation arguments. Here's an updated >>>>>> snapshot of this work for your review and comment. >>>>>> >>>>>> The idea here is to provide a degree of NFS traffic observability >>>>>> without needing network capture. Tracepoints are generally lighter- >>>>>> weight than full network capture, allowing effective capture-time >>>>>> data reduction: >>>>> >>>>> I do wonder when tracepoints seem to duplicate information you could get >>>>> from network traces, so thanks for taking the time to explain this. It >>>>> makes sense to me. >>>>> >>>>> The patches look fine. The only one I'm I'm on the fence about is the >>>>> last with the split up of the dispatch functions. I'll ask some >>>>> questions there.... >>>> >>>> To be clear to everyone, this series is still "preview". I expect >>>> more churn in these patches, thus I don't consider the series ready >>>> to be merged by any stretch. >>> >>> OK! >>> >>> One thing I was wondering about: how would you limit tracing to a single >>> client, say if you wanted to see all DELEGRETURNs from a single client? >>> I guess you'd probably turn on a tracepoint in the receive code, look >>> for your client's IP address, then mask the task id to match later >>> nfs-level tracepoints. Is there enough information in those tracepoints >>> (including network namespace) to uniquely identify a client? >> >> Client IP address information is in the RPC layer trace data. The >> DELEGRETURN trace record includes client ID. So maybe not as >> straightforward as it could be. > > I guess what I meant was "limit tracing to a single network endpoint", > not exactly limt to a single NFSv4 client.... So, we can do that as > long as all the relevant information is in rpc-layer tracepoints, and as > long as task id is a reliable way to match up trace points. > > Is the network namespace in there anywhere? It looks like there'd be no > way to distinguish clients in different namespaces if they had the same > address. The client ID has the boot verifier for the net namespace. None of this helps NFSv3, though. -- Chuck Lever