public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
From: "ira.weiny" <ira.weiny-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
	Matan Barak <matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
	Haggai Eran <haggaie-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Subject: Re: [PATCH rdma-next 4/6] RDMA/core: Move HFI1 IOCTL declarations to common file
Date: Wed, 17 Aug 2016 02:16:31 -0400	[thread overview]
Message-ID: <20160817061630.GB27477@phlsvsds.ph.intel.com> (raw)
In-Reply-To: <1471355123-6227-5-git-send-email-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>

On Tue, Aug 16, 2016 at 04:45:21PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
> 
> Move HFI1 IOCTL declarations to rdma_user_ioctl.h file.

I have not tried with the patch but I'm 99% sure this will break the PSM2
library build which includes hfi1_user.h.

This is one of those things I have pondered in the past.  Most of the rdma
libraries don't actually use these definitions directly.  PSM2 does.

I'm not sure what other libraries do.

In the final patch of this series you admit that the name changes in that patch
will break userspace which uses the defines directly.  Can we, should we, do
that?

To be completely pedantic I think we need to maintain the old names at least
for some time.  Perhaps they are best put in an rdma_user_compat_ioctl.h which
is included in the final rdma_user_ioctl.h?

For this patch I think it would be sufficient to include rdma_user_ioctl.h in
hfi1_user.h but I would have to double check that.

Ira

> 
> Signed-off-by: Matan Barak <matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
> Signed-off-by: Haggai Eran <haggaie-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
> Signed-off-by: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
> ---
>  include/uapi/rdma/hfi/hfi1_user.h   | 55 -------------------------------------
>  include/uapi/rdma/rdma_user_ioctl.h | 54 ++++++++++++++++++++++++++++++++++++
>  2 files changed, 54 insertions(+), 55 deletions(-)
> 
> diff --git a/include/uapi/rdma/hfi/hfi1_user.h b/include/uapi/rdma/hfi/hfi1_user.h
> index 8aa3867..8807f06 100644
> --- a/include/uapi/rdma/hfi/hfi1_user.h
> +++ b/include/uapi/rdma/hfi/hfi1_user.h
> @@ -58,7 +58,6 @@
>  
>  #include <linux/types.h>
>  #include <rdma/rdma_user_ioctl.h>
> -#include <rdma/hfi/hfi1_ioctl.h>
>  
>  /*
>   * This version number is given to the driver by the user code during
> @@ -114,60 +113,6 @@
>  #define HFI1_RCVHDR_ENTSIZE_16   (1UL << 1)
>  #define HFI1_RCVDHR_ENTSIZE_32   (1UL << 2)
>  
> -/* User commands. */
> -#define HFI1_CMD_ASSIGN_CTXT     1	/* allocate HFI and context */
> -#define HFI1_CMD_CTXT_INFO       2	/* find out what resources we got */
> -#define HFI1_CMD_USER_INFO       3	/* set up userspace */
> -#define HFI1_CMD_TID_UPDATE      4	/* update expected TID entries */
> -#define HFI1_CMD_TID_FREE        5	/* free expected TID entries */
> -#define HFI1_CMD_CREDIT_UPD      6	/* force an update of PIO credit */
> -
> -#define HFI1_CMD_RECV_CTRL       8	/* control receipt of packets */
> -#define HFI1_CMD_POLL_TYPE       9	/* set the kind of polling we want */
> -#define HFI1_CMD_ACK_EVENT       10	/* ack & clear user status bits */
> -#define HFI1_CMD_SET_PKEY        11     /* set context's pkey */
> -#define HFI1_CMD_CTXT_RESET      12     /* reset context's HW send context */
> -#define HFI1_CMD_TID_INVAL_READ  13     /* read TID cache invalidations */
> -#define HFI1_CMD_GET_VERS	 14	/* get the version of the user cdev */
> -
> -/*
> - * User IOCTLs can not go above 128 if they do then see common.h and change the
> - * base for the snoop ioctl
> - */
> -
> -/*
> - * Make the ioctls occupy the last 0xf0-0xff portion of the IB range
> - */
> -#define __NUM(cmd) (HFI1_CMD_##cmd + 0xe0)
> -
> -struct hfi1_cmd;
> -#define HFI1_IOCTL_ASSIGN_CTXT \
> -	_IOWR(IB_IOCTL_MAGIC, __NUM(ASSIGN_CTXT), struct hfi1_user_info)
> -#define HFI1_IOCTL_CTXT_INFO \
> -	_IOW(IB_IOCTL_MAGIC, __NUM(CTXT_INFO), struct hfi1_ctxt_info)
> -#define HFI1_IOCTL_USER_INFO \
> -	_IOW(IB_IOCTL_MAGIC, __NUM(USER_INFO), struct hfi1_base_info)
> -#define HFI1_IOCTL_TID_UPDATE \
> -	_IOWR(IB_IOCTL_MAGIC, __NUM(TID_UPDATE), struct hfi1_tid_info)
> -#define HFI1_IOCTL_TID_FREE \
> -	_IOWR(IB_IOCTL_MAGIC, __NUM(TID_FREE), struct hfi1_tid_info)
> -#define HFI1_IOCTL_CREDIT_UPD \
> -	_IO(IB_IOCTL_MAGIC, __NUM(CREDIT_UPD))
> -#define HFI1_IOCTL_RECV_CTRL \
> -	_IOW(IB_IOCTL_MAGIC, __NUM(RECV_CTRL), int)
> -#define HFI1_IOCTL_POLL_TYPE \
> -	_IOW(IB_IOCTL_MAGIC, __NUM(POLL_TYPE), int)
> -#define HFI1_IOCTL_ACK_EVENT \
> -	_IOW(IB_IOCTL_MAGIC, __NUM(ACK_EVENT), unsigned long)
> -#define HFI1_IOCTL_SET_PKEY \
> -	_IOW(IB_IOCTL_MAGIC, __NUM(SET_PKEY), __u16)
> -#define HFI1_IOCTL_CTXT_RESET \
> -	_IO(IB_IOCTL_MAGIC, __NUM(CTXT_RESET))
> -#define HFI1_IOCTL_TID_INVAL_READ \
> -	_IOWR(IB_IOCTL_MAGIC, __NUM(TID_INVAL_READ), struct hfi1_tid_info)
> -#define HFI1_IOCTL_GET_VERS \
> -	_IOR(IB_IOCTL_MAGIC, __NUM(GET_VERS), int)
> -
>  #define _HFI1_EVENT_FROZEN_BIT         0
>  #define _HFI1_EVENT_LINKDOWN_BIT       1
>  #define _HFI1_EVENT_LID_CHANGE_BIT     2
> diff --git a/include/uapi/rdma/rdma_user_ioctl.h b/include/uapi/rdma/rdma_user_ioctl.h
> index 820bf34..e9a69f0 100644
> --- a/include/uapi/rdma/rdma_user_ioctl.h
> +++ b/include/uapi/rdma/rdma_user_ioctl.h
> @@ -36,6 +36,7 @@
>  #include <linux/types.h>
>  #include <linux/ioctl.h>
>  #include <rdma/ib_user_mad.h>
> +#include <rdma/hfi/hfi1_ioctl.h>
>  
>  /* Documentation/ioctl/ioctl-number.txt */
>  #define RDMA_IOCTL_MAGIC		0x1b
> @@ -51,4 +52,57 @@
>  #define IB_USER_MAD_REGISTER_AGENT2     _IOWR(IB_IOCTL_MAGIC, 4, \
>  					      struct ib_user_mad_reg_req2)
>  
> +/* User commands. */
> +#define HFI1_CMD_ASSIGN_CTXT     1	/* allocate HFI and context */
> +#define HFI1_CMD_CTXT_INFO       2	/* find out what resources we got */
> +#define HFI1_CMD_USER_INFO       3	/* set up userspace */
> +#define HFI1_CMD_TID_UPDATE      4	/* update expected TID entries */
> +#define HFI1_CMD_TID_FREE        5	/* free expected TID entries */
> +#define HFI1_CMD_CREDIT_UPD      6	/* force an update of PIO credit */
> +
> +#define HFI1_CMD_RECV_CTRL       8	/* control receipt of packets */
> +#define HFI1_CMD_POLL_TYPE       9	/* set the kind of polling we want */
> +#define HFI1_CMD_ACK_EVENT       10	/* ack & clear user status bits */
> +#define HFI1_CMD_SET_PKEY        11     /* set context's pkey */
> +#define HFI1_CMD_CTXT_RESET      12     /* reset context's HW send context */
> +#define HFI1_CMD_TID_INVAL_READ  13     /* read TID cache invalidations */
> +#define HFI1_CMD_GET_VERS	 14	/* get the version of the user cdev */
> +
> +/*
> + * User IOCTLs can not go above 128 if they do then see common.h and change the
> + * base for the snoop ioctl
> + */
> +
> +/*
> + * Make the ioctls occupy the last 0xf0-0xff portion of the IB range
> + */
> +#define __NUM(cmd) (HFI1_CMD_##cmd + 0xe0)
> +
> +#define HFI1_IOCTL_ASSIGN_CTXT \
> +	_IOWR(IB_IOCTL_MAGIC, __NUM(ASSIGN_CTXT), struct hfi1_user_info)
> +#define HFI1_IOCTL_CTXT_INFO \
> +	_IOW(IB_IOCTL_MAGIC, __NUM(CTXT_INFO), struct hfi1_ctxt_info)
> +#define HFI1_IOCTL_USER_INFO \
> +	_IOW(IB_IOCTL_MAGIC, __NUM(USER_INFO), struct hfi1_base_info)
> +#define HFI1_IOCTL_TID_UPDATE \
> +	_IOWR(IB_IOCTL_MAGIC, __NUM(TID_UPDATE), struct hfi1_tid_info)
> +#define HFI1_IOCTL_TID_FREE \
> +	_IOWR(IB_IOCTL_MAGIC, __NUM(TID_FREE), struct hfi1_tid_info)
> +#define HFI1_IOCTL_CREDIT_UPD \
> +	_IO(IB_IOCTL_MAGIC, __NUM(CREDIT_UPD))
> +#define HFI1_IOCTL_RECV_CTRL \
> +	_IOW(IB_IOCTL_MAGIC, __NUM(RECV_CTRL), int)
> +#define HFI1_IOCTL_POLL_TYPE \
> +	_IOW(IB_IOCTL_MAGIC, __NUM(POLL_TYPE), int)
> +#define HFI1_IOCTL_ACK_EVENT \
> +	_IOW(IB_IOCTL_MAGIC, __NUM(ACK_EVENT), unsigned long)
> +#define HFI1_IOCTL_SET_PKEY \
> +	_IOW(IB_IOCTL_MAGIC, __NUM(SET_PKEY), __u16)
> +#define HFI1_IOCTL_CTXT_RESET \
> +	_IO(IB_IOCTL_MAGIC, __NUM(CTXT_RESET))
> +#define HFI1_IOCTL_TID_INVAL_READ \
> +	_IOWR(IB_IOCTL_MAGIC, __NUM(TID_INVAL_READ), struct hfi1_tid_info)
> +#define HFI1_IOCTL_GET_VERS \
> +	_IOR(IB_IOCTL_MAGIC, __NUM(GET_VERS), int)
> +
>  #endif /* RDMA_USER_IOCTL_H */
> -- 
> 2.7.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2016-08-17  6:16 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-16 13:45 [PATCH rdma-next 0/6] Refactor RDMA IOCTL declarations Leon Romanovsky
     [not found] ` <1471355123-6227-1-git-send-email-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2016-08-16 13:45   ` [PATCH rdma-next 1/6] RDMA/core: Commonize RDMA IOCTL declarations location Leon Romanovsky
2016-08-16 13:45   ` [PATCH rdma-next 2/6] RDMA/core: Move legacy MAD IOCTL declarations to common file Leon Romanovsky
2016-08-16 13:45   ` [PATCH rdma-next 3/6] RDMA/hfi1: Avoid redeclaration error Leon Romanovsky
     [not found]     ` <1471355123-6227-4-git-send-email-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2016-08-16 17:15       ` Dalessandro, Dennis
     [not found]         ` <1471367729.2661.50.camel-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-08-17  5:09           ` Leon Romanovsky
2016-08-17  6:01       ` ira.weiny
     [not found]         ` <20160817060139.GA27477-W4f6Xiosr+yv7QzWx2u06xL4W9x8LtSr@public.gmane.org>
2016-08-17  6:45           ` Leon Romanovsky
2016-08-16 13:45   ` [PATCH rdma-next 4/6] RDMA/core: Move HFI1 IOCTL declarations to common file Leon Romanovsky
     [not found]     ` <1471355123-6227-5-git-send-email-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2016-08-17  6:16       ` ira.weiny [this message]
     [not found]         ` <20160817061630.GB27477-W4f6Xiosr+yv7QzWx2u06xL4W9x8LtSr@public.gmane.org>
2016-08-17  6:55           ` Leon Romanovsky
     [not found]             ` <20160817065529.GG5489-2ukJVAZIZ/Y@public.gmane.org>
2016-08-17 13:35               ` Dalessandro, Dennis
     [not found]                 ` <1471440949.19634.7.camel-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-08-17 14:16                   ` Leon Romanovsky
2016-08-17 18:10               ` ira.weiny
     [not found]                 ` <20160817181050.GC27477-W4f6Xiosr+yv7QzWx2u06xL4W9x8LtSr@public.gmane.org>
2016-08-18  6:23                   ` Leon Romanovsky
2016-08-19 18:32           ` Jason Gunthorpe
2016-08-16 13:45   ` [PATCH rdma-next 5/6] RDMA/core: Rename RDMA magic number Leon Romanovsky
2016-08-16 13:45   ` [PATCH rdma-next 6/6] RDMA/core: Unify style of IOCTL commands Leon Romanovsky
     [not found]     ` <1471355123-6227-7-git-send-email-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2016-08-16 14:31       ` Dalessandro, Dennis
     [not found]         ` <1471357887.2661.28.camel-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-08-16 16:50           ` Leon Romanovsky
     [not found]             ` <20160816165041.GA5489-2ukJVAZIZ/Y@public.gmane.org>
2016-08-16 17:09               ` Dalessandro, Dennis
     [not found]                 ` <1471367364.2661.45.camel-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-08-17  5:19                   ` Leon Romanovsky
     [not found]                     ` <20160817051952.GC5489-2ukJVAZIZ/Y@public.gmane.org>
2016-08-17 13:45                       ` Dalessandro, Dennis
     [not found]                         ` <1471441516.19634.15.camel-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-08-17 14:20                           ` Leon Romanovsky
2016-08-18 11:08   ` [PATCH rdma-next 0/6] Refactor RDMA IOCTL declarations Yuval Shaia
     [not found]     ` <20160818110819.GB8590-Hxa29pjIrETlQW142y8m19+IiqhCXseY@public.gmane.org>
2016-08-18 11:28       ` Leon Romanovsky

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=20160817061630.GB27477@phlsvsds.ph.intel.com \
    --to=ira.weiny-ral2jqcrhueavxtiumwx3w@public.gmane.org \
    --cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=haggaie-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox