CEPH filesystem development
 help / color / mirror / Atom feed
From: Jeff Layton <jlayton@kernel.org>
To: Ilya Dryomov <idryomov@gmail.com>, ceph-devel@vger.kernel.org
Subject: Re: [PATCH] libceph: disambiguate ceph_connection_operations handlers
Date: Mon, 04 Jan 2021 08:05:01 -0500	[thread overview]
Message-ID: <f2021da0e7592c7eb39f62b8f4a7a9fac19daddc.camel@kernel.org> (raw)
In-Reply-To: <20201230173157.2556-1-idryomov@gmail.com>

On Wed, 2020-12-30 at 18:31 +0100, Ilya Dryomov wrote:
> Since a few years, kernel addresses are no longer included in oops
> dumps, at least on x86.  All we get is a symbol name with offset and
> size.
> 
> This is a problem for ceph_connection_operations handlers, especially
> con->ops->dispatch().  All three handlers have the same name and there
> is little context to disambiguate between e.g. monitor and OSD clients
> because almost everything is inlined.  gdb sneakily stops at the first
> matching symbol, so one has to resort to nm and addr2line.
> 
> Some of these are already prefixed with mon_, osd_ or mds_.  Let's do
> the same for all others.
> 
> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
> ---
>  fs/ceph/mds_client.c  | 34 +++++++++++++++++-----------------
>  net/ceph/mon_client.c | 14 +++++++-------
>  net/ceph/osd_client.c | 40 ++++++++++++++++++++--------------------
>  3 files changed, 44 insertions(+), 44 deletions(-)
> 
> diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c
> index 840587037b59..d87bd852ed96 100644
> --- a/fs/ceph/mds_client.c
> +++ b/fs/ceph/mds_client.c
> @@ -5038,7 +5038,7 @@ void ceph_mdsc_handle_mdsmap(struct ceph_mds_client *mdsc, struct ceph_msg *msg)
>  	return;
>  }
>  
> 
> -static struct ceph_connection *con_get(struct ceph_connection *con)
> +static struct ceph_connection *mds_get_con(struct ceph_connection *con)
>  {
>  	struct ceph_mds_session *s = con->private;
>  
> 
> @@ -5047,7 +5047,7 @@ static struct ceph_connection *con_get(struct ceph_connection *con)
>  	return NULL;
>  }
>  
> 
> -static void con_put(struct ceph_connection *con)
> +static void mds_put_con(struct ceph_connection *con)
>  {
>  	struct ceph_mds_session *s = con->private;
>  
> 
> @@ -5058,7 +5058,7 @@ static void con_put(struct ceph_connection *con)
>   * if the client is unresponsive for long enough, the mds will kill
>   * the session entirely.
>   */
> -static void peer_reset(struct ceph_connection *con)
> +static void mds_peer_reset(struct ceph_connection *con)
>  {
>  	struct ceph_mds_session *s = con->private;
>  	struct ceph_mds_client *mdsc = s->s_mdsc;
> @@ -5067,7 +5067,7 @@ static void peer_reset(struct ceph_connection *con)
>  	send_mds_reconnect(mdsc, s);
>  }
>  
> 
> -static void dispatch(struct ceph_connection *con, struct ceph_msg *msg)
> +static void mds_dispatch(struct ceph_connection *con, struct ceph_msg *msg)
>  {
>  	struct ceph_mds_session *s = con->private;
>  	struct ceph_mds_client *mdsc = s->s_mdsc;
> @@ -5125,8 +5125,8 @@ static void dispatch(struct ceph_connection *con, struct ceph_msg *msg)
>   * Note: returned pointer is the address of a structure that's
>   * managed separately.  Caller must *not* attempt to free it.
>   */
> -static struct ceph_auth_handshake *get_authorizer(struct ceph_connection *con,
> -					int *proto, int force_new)
> +static struct ceph_auth_handshake *
> +mds_get_authorizer(struct ceph_connection *con, int *proto, int force_new)
>  {
>  	struct ceph_mds_session *s = con->private;
>  	struct ceph_mds_client *mdsc = s->s_mdsc;
> @@ -5142,7 +5142,7 @@ static struct ceph_auth_handshake *get_authorizer(struct ceph_connection *con,
>  	return auth;
>  }
>  
> 
> -static int add_authorizer_challenge(struct ceph_connection *con,
> +static int mds_add_authorizer_challenge(struct ceph_connection *con,
>  				    void *challenge_buf, int challenge_buf_len)
>  {
>  	struct ceph_mds_session *s = con->private;
> @@ -5153,7 +5153,7 @@ static int add_authorizer_challenge(struct ceph_connection *con,
>  					    challenge_buf, challenge_buf_len);
>  }
>  
> 
> -static int verify_authorizer_reply(struct ceph_connection *con)
> +static int mds_verify_authorizer_reply(struct ceph_connection *con)
>  {
>  	struct ceph_mds_session *s = con->private;
>  	struct ceph_mds_client *mdsc = s->s_mdsc;
> @@ -5165,7 +5165,7 @@ static int verify_authorizer_reply(struct ceph_connection *con)
>  		NULL, NULL, NULL, NULL);
>  }
>  
> 
> -static int invalidate_authorizer(struct ceph_connection *con)
> +static int mds_invalidate_authorizer(struct ceph_connection *con)
>  {
>  	struct ceph_mds_session *s = con->private;
>  	struct ceph_mds_client *mdsc = s->s_mdsc;
> @@ -5288,15 +5288,15 @@ static int mds_check_message_signature(struct ceph_msg *msg)
>  }
>  
> 
>  static const struct ceph_connection_operations mds_con_ops = {
> -	.get = con_get,
> -	.put = con_put,
> -	.dispatch = dispatch,
> -	.get_authorizer = get_authorizer,
> -	.add_authorizer_challenge = add_authorizer_challenge,
> -	.verify_authorizer_reply = verify_authorizer_reply,
> -	.invalidate_authorizer = invalidate_authorizer,
> -	.peer_reset = peer_reset,
> +	.get = mds_get_con,
> +	.put = mds_put_con,
>  	.alloc_msg = mds_alloc_msg,
> +	.dispatch = mds_dispatch,
> +	.peer_reset = mds_peer_reset,
> +	.get_authorizer = mds_get_authorizer,
> +	.add_authorizer_challenge = mds_add_authorizer_challenge,
> +	.verify_authorizer_reply = mds_verify_authorizer_reply,
> +	.invalidate_authorizer = mds_invalidate_authorizer,
>  	.sign_message = mds_sign_message,
>  	.check_message_signature = mds_check_message_signature,
>  	.get_auth_request = mds_get_auth_request,
> diff --git a/net/ceph/mon_client.c b/net/ceph/mon_client.c
> index b9d54ed9f338..195ceb8afb06 100644
> --- a/net/ceph/mon_client.c
> +++ b/net/ceph/mon_client.c
> @@ -1433,7 +1433,7 @@ static int mon_handle_auth_bad_method(struct ceph_connection *con,
>  /*
>   * handle incoming message
>   */
> -static void dispatch(struct ceph_connection *con, struct ceph_msg *msg)
> +static void mon_dispatch(struct ceph_connection *con, struct ceph_msg *msg)
>  {
>  	struct ceph_mon_client *monc = con->private;
>  	int type = le16_to_cpu(msg->hdr.type);
> @@ -1565,21 +1565,21 @@ static void mon_fault(struct ceph_connection *con)
>   * will come from the messenger workqueue, which is drained prior to
>   * mon_client destruction.
>   */
> -static struct ceph_connection *con_get(struct ceph_connection *con)
> +static struct ceph_connection *mon_get_con(struct ceph_connection *con)
>  {
>  	return con;
>  }
>  
> 
> -static void con_put(struct ceph_connection *con)
> +static void mon_put_con(struct ceph_connection *con)
>  {
>  }
>  
> 
>  static const struct ceph_connection_operations mon_con_ops = {
> -	.get = con_get,
> -	.put = con_put,
> -	.dispatch = dispatch,
> -	.fault = mon_fault,
> +	.get = mon_get_con,
> +	.put = mon_put_con,
>  	.alloc_msg = mon_alloc_msg,
> +	.dispatch = mon_dispatch,
> +	.fault = mon_fault,
>  	.get_auth_request = mon_get_auth_request,
>  	.handle_auth_reply_more = mon_handle_auth_reply_more,
>  	.handle_auth_done = mon_handle_auth_done,
> diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
> index bd2a994bf0f1..6bf7c981874c 100644
> --- a/net/ceph/osd_client.c
> +++ b/net/ceph/osd_client.c
> @@ -5468,7 +5468,7 @@ void ceph_osdc_cleanup(void)
>  /*
>   * handle incoming message
>   */
> -static void dispatch(struct ceph_connection *con, struct ceph_msg *msg)
> +static void osd_dispatch(struct ceph_connection *con, struct ceph_msg *msg)
>  {
>  	struct ceph_osd *osd = con->private;
>  	struct ceph_osd_client *osdc = osd->o_osdc;
> @@ -5590,9 +5590,9 @@ static struct ceph_msg *alloc_msg_with_page_vector(struct ceph_msg_header *hdr)
>  	return m;
>  }
>  
> 
> -static struct ceph_msg *alloc_msg(struct ceph_connection *con,
> -				  struct ceph_msg_header *hdr,
> -				  int *skip)
> +static struct ceph_msg *osd_alloc_msg(struct ceph_connection *con,
> +				      struct ceph_msg_header *hdr,
> +				      int *skip)
>  {
>  	struct ceph_osd *osd = con->private;
>  	int type = le16_to_cpu(hdr->type);
> @@ -5616,7 +5616,7 @@ static struct ceph_msg *alloc_msg(struct ceph_connection *con,
>  /*
>   * Wrappers to refcount containing ceph_osd struct
>   */
> -static struct ceph_connection *get_osd_con(struct ceph_connection *con)
> +static struct ceph_connection *osd_get_con(struct ceph_connection *con)
>  {
>  	struct ceph_osd *osd = con->private;
>  	if (get_osd(osd))
> @@ -5624,7 +5624,7 @@ static struct ceph_connection *get_osd_con(struct ceph_connection *con)
>  	return NULL;
>  }
>  
> 
> -static void put_osd_con(struct ceph_connection *con)
> +static void osd_put_con(struct ceph_connection *con)
>  {
>  	struct ceph_osd *osd = con->private;
>  	put_osd(osd);
> @@ -5638,8 +5638,8 @@ static void put_osd_con(struct ceph_connection *con)
>   * Note: returned pointer is the address of a structure that's
>   * managed separately.  Caller must *not* attempt to free it.
>   */
> -static struct ceph_auth_handshake *get_authorizer(struct ceph_connection *con,
> -					int *proto, int force_new)
> +static struct ceph_auth_handshake *
> +osd_get_authorizer(struct ceph_connection *con, int *proto, int force_new)
>  {
>  	struct ceph_osd *o = con->private;
>  	struct ceph_osd_client *osdc = o->o_osdc;
> @@ -5655,7 +5655,7 @@ static struct ceph_auth_handshake *get_authorizer(struct ceph_connection *con,
>  	return auth;
>  }
>  
> 
> -static int add_authorizer_challenge(struct ceph_connection *con,
> +static int osd_add_authorizer_challenge(struct ceph_connection *con,
>  				    void *challenge_buf, int challenge_buf_len)
>  {
>  	struct ceph_osd *o = con->private;
> @@ -5666,7 +5666,7 @@ static int add_authorizer_challenge(struct ceph_connection *con,
>  					    challenge_buf, challenge_buf_len);
>  }
>  
> 
> -static int verify_authorizer_reply(struct ceph_connection *con)
> +static int osd_verify_authorizer_reply(struct ceph_connection *con)
>  {
>  	struct ceph_osd *o = con->private;
>  	struct ceph_osd_client *osdc = o->o_osdc;
> @@ -5678,7 +5678,7 @@ static int verify_authorizer_reply(struct ceph_connection *con)
>  		NULL, NULL, NULL, NULL);
>  }
>  
> 
> -static int invalidate_authorizer(struct ceph_connection *con)
> +static int osd_invalidate_authorizer(struct ceph_connection *con)
>  {
>  	struct ceph_osd *o = con->private;
>  	struct ceph_osd_client *osdc = o->o_osdc;
> @@ -5787,18 +5787,18 @@ static int osd_check_message_signature(struct ceph_msg *msg)
>  }
>  
> 
>  static const struct ceph_connection_operations osd_con_ops = {
> -	.get = get_osd_con,
> -	.put = put_osd_con,
> -	.dispatch = dispatch,
> -	.get_authorizer = get_authorizer,
> -	.add_authorizer_challenge = add_authorizer_challenge,
> -	.verify_authorizer_reply = verify_authorizer_reply,
> -	.invalidate_authorizer = invalidate_authorizer,
> -	.alloc_msg = alloc_msg,
> +	.get = osd_get_con,
> +	.put = osd_put_con,
> +	.alloc_msg = osd_alloc_msg,
> +	.dispatch = osd_dispatch,
> +	.fault = osd_fault,
>  	.reencode_message = osd_reencode_message,
> +	.get_authorizer = osd_get_authorizer,
> +	.add_authorizer_challenge = osd_add_authorizer_challenge,
> +	.verify_authorizer_reply = osd_verify_authorizer_reply,
> +	.invalidate_authorizer = osd_invalidate_authorizer,
>  	.sign_message = osd_sign_message,
>  	.check_message_signature = osd_check_message_signature,
> -	.fault = osd_fault,
>  	.get_auth_request = osd_get_auth_request,
>  	.handle_auth_reply_more = osd_handle_auth_reply_more,
>  	.handle_auth_done = osd_handle_auth_done,

I like distinct names.

Acked-by: Jeff Layton <jlayton@kernel.org>


      reply	other threads:[~2021-01-04 13:06 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-30 17:31 [PATCH] libceph: disambiguate ceph_connection_operations handlers Ilya Dryomov
2021-01-04 13:05 ` Jeff Layton [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=f2021da0e7592c7eb39f62b8f4a7a9fac19daddc.camel@kernel.org \
    --to=jlayton@kernel.org \
    --cc=ceph-devel@vger.kernel.org \
    --cc=idryomov@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox