[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <126e0fe0-a20a-4460-b9b0-19a63d02667b@oracle.com>
Date: Wed, 27 Aug 2025 10:41:25 -0400
From: Chuck Lever <chuck.lever@...cle.com>
To: Jeff Layton <jlayton@...nel.org>, Trond Myklebust <trondmy@...nel.org>,
Anna Schumaker <anna@...nel.org>, NeilBrown <neil@...wn.name>,
Olga Kornievskaia <okorniev@...hat.com>, Dai Ngo <Dai.Ngo@...cle.com>,
Tom Talpey <tom@...pey.com>, "David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>, Simon Horman <horms@...nel.org>
Cc: linux-nfs@...r.kernel.org, linux-kernel@...r.kernel.org,
netdev@...r.kernel.org
Subject: Re: [PATCH v2 1/2] sunrpc: remove dfprintk_cont() and
dfprintk_rcu_cont()
On 8/22/25 9:19 AM, Jeff Layton wrote:
> KERN_CONT hails from a simpler time, when SMP wasn't the norm. These
> days, it doesn't quite work right since another printk() can always race
> in between the first one and the one being "continued".
>
> Nothing calls dprintk_rcu_cont(), so just remove it. The only caller of
> dprintk_cont() is in nfs_commit_release_pages(). Just use a normal
> dprintk() there instead, since this is not SMP-safe anyway.
>
> Signed-off-by: Jeff Layton <jlayton@...nel.org>
> ---
> fs/nfs/write.c | 6 +++---
> include/linux/sunrpc/debug.h | 24 ++----------------------
> 2 files changed, 5 insertions(+), 25 deletions(-)
>
> diff --git a/fs/nfs/write.c b/fs/nfs/write.c
> index d881486d235ba042feedd2dd59d6a60b366b9600..4d5699b4a1fabff39e67998af40561620b532db6 100644
> --- a/fs/nfs/write.c
> +++ b/fs/nfs/write.c
> @@ -1862,7 +1862,7 @@ static void nfs_commit_release_pages(struct nfs_commit_data *data)
> nfs_mapping_set_error(folio, status);
> nfs_inode_remove_request(req);
> }
> - dprintk_cont(", error = %d\n", status);
> + dprintk(", error = %d\n", status);
> goto next;
> }
>
> @@ -1872,11 +1872,11 @@ static void nfs_commit_release_pages(struct nfs_commit_data *data)
> /* We have a match */
> if (folio)
> nfs_inode_remove_request(req);
> - dprintk_cont(" OK\n");
> + dprintk(" OK\n");
> goto next;
> }
> /* We have a mismatch. Write the page again */
> - dprintk_cont(" mismatch\n");
> + dprintk(" mismatch\n");
> nfs_mark_request_dirty(req);
> atomic_long_inc(&NFS_I(data->inode)->redirtied_pages);
> next:
> diff --git a/include/linux/sunrpc/debug.h b/include/linux/sunrpc/debug.h
> index f6aeed07fe04e3d51d7f9d23b10fe86d36241b45..99a6fa4a1d6af0b275546a53957f07c9a509f2ac 100644
> --- a/include/linux/sunrpc/debug.h
> +++ b/include/linux/sunrpc/debug.h
> @@ -23,12 +23,8 @@ extern unsigned int nlm_debug;
>
> #define dprintk(fmt, ...) \
> dfprintk(FACILITY, fmt, ##__VA_ARGS__)
> -#define dprintk_cont(fmt, ...) \
> - dfprintk_cont(FACILITY, fmt, ##__VA_ARGS__)
> #define dprintk_rcu(fmt, ...) \
> dfprintk_rcu(FACILITY, fmt, ##__VA_ARGS__)
> -#define dprintk_rcu_cont(fmt, ...) \
> - dfprintk_rcu_cont(FACILITY, fmt, ##__VA_ARGS__)
>
> #undef ifdebug
> #if IS_ENABLED(CONFIG_SUNRPC_DEBUG)
> @@ -37,29 +33,14 @@ extern unsigned int nlm_debug;
> # define dfprintk(fac, fmt, ...) \
> do { \
> ifdebug(fac) \
> - printk(KERN_DEFAULT fmt, ##__VA_ARGS__); \
> -} while (0)
> -
> -# define dfprintk_cont(fac, fmt, ...) \
> -do { \
> - ifdebug(fac) \
> - printk(KERN_CONT fmt, ##__VA_ARGS__); \
> + printk(KERN_DEFAULT fmt, ##__VA_ARGS__); \
> } while (0)
>
> # define dfprintk_rcu(fac, fmt, ...) \
> do { \
> ifdebug(fac) { \
> rcu_read_lock(); \
> - printk(KERN_DEFAULT fmt, ##__VA_ARGS__); \
> - rcu_read_unlock(); \
> - } \
> -} while (0)
> -
> -# define dfprintk_rcu_cont(fac, fmt, ...) \
> -do { \
> - ifdebug(fac) { \
> - rcu_read_lock(); \
> - printk(KERN_CONT fmt, ##__VA_ARGS__); \
> + printk(KERN_DEFAULT fmt, ##__VA_ARGS__); \
> rcu_read_unlock(); \
> } \
> } while (0)
> @@ -68,7 +49,6 @@ do { \
> #else
> # define ifdebug(fac) if (0)
> # define dfprintk(fac, fmt, ...) do {} while (0)
> -# define dfprintk_cont(fac, fmt, ...) do {} while (0)
> # define dfprintk_rcu(fac, fmt, ...) do {} while (0)
> # define RPC_IFDEBUG(x)
> #endif
>
Reviewed-by: Chuck Lever <chuck.lever@...cle.com>
--
Chuck Lever
Powered by blists - more mailing lists