> On Sep 25, 2020, at 11:05 AM, Chuck Lever <chuck.lever@xxxxxxxxxx> wrote: > > > >> 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. It probably wouldn't be difficult to stuff the client IP address and the boot verifier in the trace record for each procedure. Do you think that would be sufficient? -- Chuck Lever