Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp1154492pxk; Fri, 25 Sep 2020 07:33:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxjWAWAzfXAtQTGEsPbuYfgxQIhVy080gNAP+GoBVvOiCNwCApiZU0pL38wEzJaGIuO4QAP X-Received: by 2002:a17:906:14c9:: with SMTP id y9mr3127813ejc.523.1601044423951; Fri, 25 Sep 2020 07:33:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1601044423; cv=none; d=google.com; s=arc-20160816; b=uKxCelvsDTt/IqfBm5uvqYKXa/crTa8OpmTNfPraO3sPYCZ2XCcmqeV72qZSeOI2Aa msIk5VA6gt9Ek4uRgxqjpSUEj/dT9JqzE+w1Wy45zoQXJmehG2PdWR6QHIxakAvKoDRI Pxz6kqB0oMq2iWtstPkIFYfE84s7cKJAVEMLt+lr+XengK4wkyf99gRfuDiluf98QuEu WTblgHTnepZi0rOxw4DzHGlXuCmfo5b9489nGje+dXrBu9ZC5R4h987dBbkQtolguYLb 5P4i1mrRxhZHaIiKd+4Kel9S6SbNOedM6mZZpJ4/1uT4JRiByDUdqtFfN8MF3zTnVIyC cdSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature:dkim-filter; bh=F2UlAD16dhIAGzNCrb54m/S/mm+9K0L+tbURsf7otmA=; b=rGOXI2I7cjNweoe08Kd1MqKsbH6h7P9sVyz7UdB4/OrfNtb7pMiyte9nhoRmNf6i2d FLx5oE59UQtTUTR4ej794AHiOPnILQd3kxcjSnp2JNccaSBE/Z+rLNxnLQQg44vGOwla a9MDcxzbdMcE8gWLHh4yA4eBTXYfewkK9VCu6pYiN5mc4Aa5p/mE23u/kMYsLpekeetF yeS6GAGH5n1SzdJCctlHnLTypFfz6EdrLoWW5z1LE2M7ulOrvsoCbXWIWrwxpXdL8XTR CIO2F1oS568CWT6FYnXJs8Av+HK7qLGs0EsRgYwTdr++dnBMz7SoMuikJ+mzJvYd+fwx oO7A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@fieldses.org header.s=default header.b=cX5wZdC2; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p2si1966191ejf.310.2020.09.25.07.33.18; Fri, 25 Sep 2020 07:33:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@fieldses.org header.s=default header.b=cX5wZdC2; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728330AbgIYOcV (ORCPT + 99 others); Fri, 25 Sep 2020 10:32:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54176 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727733AbgIYOcV (ORCPT ); Fri, 25 Sep 2020 10:32:21 -0400 Received: from fieldses.org (fieldses.org [IPv6:2600:3c00:e000:2f7::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6AD3DC0613CE for ; Fri, 25 Sep 2020 07:32:21 -0700 (PDT) Received: by fieldses.org (Postfix, from userid 2815) id DCE99448D; Fri, 25 Sep 2020 10:32:18 -0400 (EDT) DKIM-Filter: OpenDKIM Filter v2.11.0 fieldses.org DCE99448D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fieldses.org; s=default; t=1601044338; bh=F2UlAD16dhIAGzNCrb54m/S/mm+9K0L+tbURsf7otmA=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=cX5wZdC2Zub/MyjpsJeJiQO5FQZnpZarPQtQiJ5hG+rFSfHoSTxZduetTWVo36s9K hrHugJrvvl0w1MuMjQtGWs460DGAyfdGSEZh5xXOdRDv/koZdPI14RUT6iwBtumAw2 nFshKh8ucv9hrenvnZ1VRVFAugRK7kLFPUMZ4kjw= Date: Fri, 25 Sep 2020 10:32:18 -0400 From: Bruce Fields To: Chuck Lever Cc: Bill Baker , Linux NFS Mailing List Subject: Re: [PATCH v2 00/27] NFSD operation monitoring tracepoints Message-ID: <20200925143218.GD1096@fieldses.org> References: <160071167664.1468.1365570508917640511.stgit@klimt.1015granger.net> <20200924213617.GA12407@fieldses.org> <945A7DE6-909D-4177-852F-F80EF7DFE6B3@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <945A7DE6-909D-4177-852F-F80EF7DFE6B3@oracle.com> User-Agent: Mutt/1.5.21 (2010-09-15) Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org 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 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? --b. > >> - One or a handful of these can be enabled at a time > >> - Each tracepoint records much less data per operation than capture > >> - Extra capture-time filtering can reduce data amount even further > >> - Some of these operations are infrequent enough that their > >> tracepoint could be enabled persistently without a significant > >> performance impact (for example, for security auditing) > >> > >> The topic branch has been updated as well: > >> > >> git://git.linux-nfs.org/projects/cel/cel-2.6.git nfsd-more-tracepoints > >> > >> > >> Changes since RFC: > >> * s/SPDK/SPDX and corrected the spelling of Christoph's surname > >> * Fixed a build error noticed by > >> * Introduced generic headers for VFS and NFS protocol display macros > >> * nfsd4_compoundstatus now displays NFS4ERR codes symbolically > >> * The svc_process tracepoint now displays the RPC procedure symbolically > >> * NFSD dispatcher now displays procedure names and status codes symbolically > >> * fh_verify tracepoint tentatively included; it adds a lot of noise, but perhaps not much value > >> * Cleaned up the remaining PROC() macros in the server code > >> * Removed trace_printk's that were introduced during the RFC series > >> * Removed redundant nfsd4_close tracepoint > >> > >> --- > >> > >> Chuck Lever (27): > >> NFS: Move generic FS show macros to global header > >> NFS: Move NFS protocol display macros to global header > >> NFSD: Add SPDX header for fs/nfsd/trace.c > >> SUNRPC: Move the svc_xdr_recvfrom() tracepoint > >> SUNRPC: Add svc_xdr_authenticate tracepoint > >> lockd: Replace PROC() macro with open code > >> NFSACL: Replace PROC() macro with open code > >> SUNRPC: Make trace_svc_process() display the RPC procedure symbolically > >> NFSD: Clean up the show_nf_may macro > >> NFSD: Remove extra "0x" in tracepoint format specifier > >> NFSD: Constify @fh argument of knfsd_fh_hash() > >> NFSD: Add tracepoint in nfsd_setattr() > >> NFSD: Add tracepoint for nfsd_access() > >> NFSD: nfsd_compound_status tracepoint should record XID > >> NFSD: Add client ID lifetime tracepoints > >> NFSD: Add tracepoints to report NFSv4 session state > >> NFSD: Add a tracepoint to report the current filehandle > >> NFSD: Add GETATTR tracepoint > >> NFSD: Add tracepoint in nfsd4_stateid_preprocess() > >> NFSD: Add tracepoint to report arguments to NFSv4 OPEN > >> NFSD: Add a tracepoint for DELEGRETURN > >> NFSD: Add a lookup tracepoint > >> NFSD: Add lock and locku tracepoints > >> NFSD: Add tracepoints to record the result of TEST_STATEID and FREE_STATEID > >> NFSD: Rename nfsd_ tracepoints to nfsd4_ > >> NFSD: Add tracepoints in the NFS dispatcher > >> NFSD: Replace dprintk callsites in fs/nfsd/nfsfh.c > >> > >> > >> fs/lockd/svc4proc.c | 263 +++++++++-- > >> fs/lockd/svcproc.c | 265 +++++++++-- > >> fs/nfs/callback_xdr.c | 2 + > >> fs/nfs/nfs4trace.h | 387 ++-------------- > >> fs/nfs/nfstrace.h | 113 +---- > >> fs/nfs/pnfs.h | 4 - > >> fs/nfsd/nfs2acl.c | 79 +++- > >> fs/nfsd/nfs3acl.c | 54 ++- > >> fs/nfsd/nfs3proc.c | 25 + > >> fs/nfsd/nfs4callback.c | 28 +- > >> fs/nfsd/nfs4layouts.c | 16 +- > >> fs/nfsd/nfs4proc.c | 43 +- > >> fs/nfsd/nfs4state.c | 100 ++-- > >> fs/nfsd/nfsd.h | 1 + > >> fs/nfsd/nfsfh.c | 36 +- > >> fs/nfsd/nfsfh.h | 7 +- > >> fs/nfsd/nfsproc.c | 21 + > >> fs/nfsd/nfssvc.c | 198 +++++--- > >> fs/nfsd/trace.c | 1 + > >> fs/nfsd/trace.h | 844 ++++++++++++++++++++++++++++++---- > >> fs/nfsd/vfs.c | 18 +- > >> fs/nfsd/xdr4.h | 3 +- > >> include/linux/nfs4.h | 4 + > >> include/linux/sunrpc/svc.h | 1 + > >> include/trace/events/fs.h | 30 ++ > >> include/trace/events/nfs.h | 511 ++++++++++++++++++++ > >> include/trace/events/sunrpc.h | 33 +- > >> include/uapi/linux/nfsacl.h | 2 + > >> net/sunrpc/svc_xprt.c | 4 +- > >> net/sunrpc/svcauth.c | 5 +- > >> 30 files changed, 2187 insertions(+), 911 deletions(-) > >> create mode 100644 include/trace/events/nfs.h > >> > >> -- > >> Chuck Lever > > -- > Chuck Lever > >