All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chuck Lever <chuck.lever@oracle.com>
To: Anna Schumaker <Anna.Schumaker@netapp.com>
Cc: Trond Myklebust <Trond.Myklebust@primarydata.com>,
	Linux NFS Mailing List <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH 00/34] dprintk() cleanup (part 1)
Date: Sat, 8 Apr 2017 10:24:10 -0400	[thread overview]
Message-ID: <B1E83C8C-A9A0-433B-AD21-95487C81B42D@oracle.com> (raw)
In-Reply-To: <20170407181528.2832-1-Anna.Schumaker@Netapp.com>


> On Apr 7, 2017, at 2:14 PM, Anna.Schumaker@netapp.com wrote:
> 
> From: Anna Schumaker <Anna.Schumaker@Netapp.com>
> 
> We have around 750 dprintk()s in the NFS client alone, and many of these
> simply tell us when we're entering or leaving a function (usually both).
> This can create a lot of noise when you're trying to debug a single issues,
> and I think many dprintk()s can be cut out in favor of tracepoints or dynamic
> tracing through SystemTap.

Is there a description somewhere under Documentation for how
to enable and use each of these mechanisms?


> This patch set does just that. I went through some of our files one by one
> and removed dprintk()s that seemed to be unnecessary. Occasionally this
> allowed me to refactor the surrounding code, so I tried to make individual
> patches for each function I refactored.
> 
> These patches make changes to the following files:
>    - callback_proc.c
>    - callback_xdr.c
>    - client.c
>    - direct.c
>    - namespace.c
>    - nfs42proc.c
>    - nfs4client.c
>    - nfs4getroot.c
>    - nfs4namespace.c
>    - nfs4proc.c
> 
> What does everybody think?

I'm OK with clean up. Some random thoughts:

A more recent problem with dprintk debugging is the god-damned
journal rate limiting with imjournald and systemd. So IMO the
Linux NFS community has to come up with debugging tools that
do not run afoul of log message rate limiting.

If you're going to move forward with this project, should we
have a plan for removing dprintk in NFSD and the RPC layer as
well? (I've had a task on my to-do list for a while to replace
dprintk in rpcrdma.ko, but always there's something higher in
priority to work on).

Is there a plan for updating or replacing user space tooling
(ie. rpcdebug)?

Is there a desire to preserve the ability to compile out the
new debugging apparatus (tracepoints and so on)?

I think we want a "ruling" on whether dprintk and tracepoints
are considered part of a long-term kernel ABI/API. If they
are then such a conversion would mean a deeper commitment to
maintain specific tracepoints.


> Are any of these dprintk()s worth holding on to?
> 
> Thanks,
> Anna
> 
> 
> Anna Schumaker (34):
>  NFS: Clean up do_callback_layoutrecall()
>  NFS: Clean up nfs4_callback_layoutrecall()
>  NFS: Remove extra dprintk()s from callback_proc.c
>  NFS: Clean up decode_getattr_args()
>  NFS: Clean up decode_recall_args()
>  NFS: Clean up decode_layoutrecall_args()
>  NFS: Clean up decode_cb_sequence_args()
>  NFS: Clean up decode_notify_lock_args()
>  NFS: Clean up encode_cb_sequence_res()
>  NFS: Remove extra dprintk()s from callback_xdr.c
>  NFS: Clean up nfs_init_client()
>  NFS: Clean up extra dprintk()s in client.c
>  NFS: Remove nfs_direct_readpage_release()
>  NFS: Clean up nfs_direct_commit_complete()
>  NFS: Remove extra dprintk()s from namespace.c
>  NFS: Clean up nfs42_layoutstat_done()
>  NFS: Clean up nfs4_match_clientids()
>  NFS: Clean up nfs4_check_serverowner_minor_id()
>  NFS: Create a common nfs4_match_client() function
>  NFS: Clean up nfs4_check_serverowner_major_id()
>  NFS: Clean up nfs4_check_server_scope()
>  NFS: Clean up nfs4_set_client()
>  NFS: Clean up nfs4_init_server()
>  NFS: Remove extra dprintk()s from nfs4client.c
>  NFS: Clean up nfs4_get_rootfh()
>  NFS: Remove extra dprintk()s from nfs4namespace.c
>  NFS: Clean up nfs4_proc_bind_one_conn_to_session()
>  NFS: Clean up _nfs4_proc_exchange_id()
>  NFS: Clean up nfs4_proc_get_lease_time()
>  NFS: Clean up nfs41_proc_async_sequence()
>  NFS: Clean up nfs4_proc_sequence()
>  NFS: Clean up nfs41_proc_reclaim_complete()
>  NFS: Clean up nfs4_layoutget_handle_exception()
>  NFS: Remove extra dprintk()s from nfs4proc.c
> 
> fs/nfs/callback_proc.c |  41 +------
> fs/nfs/callback_xdr.c  | 109 +++++--------------
> fs/nfs/client.c        |  65 ++----------
> fs/nfs/direct.c        |  21 +---
> fs/nfs/namespace.c     |  34 ++----
> fs/nfs/nfs42proc.c     |   2 -
> fs/nfs/nfs4client.c    | 283 ++++++++++++++-----------------------------------
> fs/nfs/nfs4getroot.c   |   3 -
> fs/nfs/nfs4namespace.c |   7 +-
> fs/nfs/nfs4proc.c      | 274 +++++++----------------------------------------
> 10 files changed, 167 insertions(+), 672 deletions(-)
> 
> -- 
> 2.12.2
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
Chuck Lever




      parent reply	other threads:[~2017-04-08 14:24 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-07 18:14 [PATCH 00/34] dprintk() cleanup (part 1) Anna.Schumaker
2017-04-07 18:14 ` [PATCH 01/34] NFS: Clean up do_callback_layoutrecall() Anna.Schumaker
2017-04-07 18:14 ` [PATCH 02/34] NFS: Clean up nfs4_callback_layoutrecall() Anna.Schumaker
2017-04-07 18:14 ` [PATCH 03/34] NFS: Remove extra dprintk()s from callback_proc.c Anna.Schumaker
2017-04-07 18:14 ` [PATCH 04/34] NFS: Clean up decode_getattr_args() Anna.Schumaker
2017-04-07 18:14 ` [PATCH 05/34] NFS: Clean up decode_recall_args() Anna.Schumaker
2017-04-07 18:15 ` [PATCH 06/34] NFS: Clean up decode_layoutrecall_args() Anna.Schumaker
2017-04-07 18:15 ` [PATCH 07/34] NFS: Clean up decode_cb_sequence_args() Anna.Schumaker
2017-04-07 18:15 ` [PATCH 08/34] NFS: Clean up decode_notify_lock_args() Anna.Schumaker
2017-04-07 18:15 ` [PATCH 09/34] NFS: Clean up encode_cb_sequence_res() Anna.Schumaker
2017-04-07 18:15 ` [PATCH 10/34] NFS: Remove extra dprintk()s from callback_xdr.c Anna.Schumaker
2017-04-07 18:15 ` [PATCH 11/34] NFS: Clean up nfs_init_client() Anna.Schumaker
2017-04-07 18:15 ` [PATCH 12/34] NFS: Clean up extra dprintk()s in client.c Anna.Schumaker
2017-04-07 18:15 ` [PATCH 13/34] NFS: Remove nfs_direct_readpage_release() Anna.Schumaker
2017-04-07 18:15 ` [PATCH 14/34] NFS: Clean up nfs_direct_commit_complete() Anna.Schumaker
2017-04-07 18:15 ` [PATCH 15/34] NFS: Remove extra dprintk()s from namespace.c Anna.Schumaker
2017-04-07 18:15 ` [PATCH 16/34] NFS: Clean up nfs42_layoutstat_done() Anna.Schumaker
2017-04-07 18:15 ` [PATCH 17/34] NFS: Clean up nfs4_match_clientids() Anna.Schumaker
2017-04-07 18:15 ` [PATCH 18/34] NFS: Clean up nfs4_check_serverowner_minor_id() Anna.Schumaker
2017-04-07 18:15 ` [PATCH 19/34] NFS: Create a common nfs4_match_client() function Anna.Schumaker
2017-04-07 18:15 ` [PATCH 20/34] NFS: Clean up nfs4_check_serverowner_major_id() Anna.Schumaker
2017-04-07 18:15 ` [PATCH 21/34] NFS: Clean up nfs4_check_server_scope() Anna.Schumaker
2017-04-07 18:15 ` [PATCH 22/34] NFS: Clean up nfs4_set_client() Anna.Schumaker
2017-04-07 18:15 ` [PATCH 23/34] NFS: Clean up nfs4_init_server() Anna.Schumaker
2017-04-07 18:15 ` [PATCH 24/34] NFS: Remove extra dprintk()s from nfs4client.c Anna.Schumaker
2017-04-07 18:15 ` [PATCH 25/34] NFS: Clean up nfs4_get_rootfh() Anna.Schumaker
2017-04-07 18:15 ` [PATCH 26/34] NFS: Remove extra dprintk()s from nfs4namespace.c Anna.Schumaker
2017-04-07 18:15 ` [PATCH 27/34] NFS: Clean up nfs4_proc_bind_one_conn_to_session() Anna.Schumaker
2017-04-07 18:15 ` [PATCH 28/34] NFS: Clean up _nfs4_proc_exchange_id() Anna.Schumaker
2017-04-07 18:15 ` [PATCH 29/34] NFS: Clean up nfs4_proc_get_lease_time() Anna.Schumaker
2017-04-08 14:24 ` Chuck Lever [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=B1E83C8C-A9A0-433B-AD21-95487C81B42D@oracle.com \
    --to=chuck.lever@oracle.com \
    --cc=Anna.Schumaker@netapp.com \
    --cc=Trond.Myklebust@primarydata.com \
    --cc=linux-nfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.