Re: [PATCH] libceph: disambiguate ceph_connection_operations handlers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx>
> ---
>  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@xxxxxxxxxx>




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Ceph Dev]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux