netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
To: Erez Shitrit <erezsh-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Cc: dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	valex-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org,
	leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org,
	saedm-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org,
	erezsh-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org
Subject: Re: [RFC v1 for accelerated IPoIB 25/25] mlx5_ib: skeleton for mlx5_ib to support ipoib_ops
Date: Mon, 13 Mar 2017 14:27:20 -0600	[thread overview]
Message-ID: <20170313202720.GC2738@obsidianresearch.com> (raw)
In-Reply-To: <1489429896-10781-26-git-send-email-erezsh-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>

On Mon, Mar 13, 2017 at 08:31:36PM +0200, Erez Shitrit wrote:

> +struct net_device *mlx5_alloc_rdma_netdev(struct ib_device *hca,
> +				     u8 port_num,
> +				     enum rdma_netdev_t type,
> +				     const char *name,
> +				     unsigned char name_assign_type,
> +				     void (*setup)(struct net_device *));
> +void mlx5_free_rdma_netdev(struct net_device *netdev);

Seems like OK signatures to me..

> +	dev->ib_dev.alloc_rdma_netdev	= mlx5_alloc_rdma_netdev;
> +	dev->ib_dev.free_rdma_netdev	= mlx5_free_rdma_netdev;

Since mlx5_free_rdma_netdev is empty this should just be NULL

> +int mlx5_ib_dev_init(struct net_device *dev, struct ib_device *hca,
> +		     int *qp_num)
> +{
> +	void *next_priv = ipoib_dev_priv(dev);
> +	struct rdma_netdev *rn = netdev_priv(dev);
> +	struct mlx5_ib_dev *ib_dev = to_mdev(hca);
> +	int ret;
> +
> +	ret = mlx5i_attach(ib_dev->mdev, next_priv);
> +	if (ret) {
> +		pr_err("Failed resources allocation for device: %s ret: %d\n",
> +		       dev->name, ret);
> +		return ret;
> +	}
> +
> +	*qp_num = rn->qp_num;
> +
> +	pr_debug("resources allocated for device: %s\n", dev->name);
> +
> +	return 0;
> +}
> +
> +void mlx5_ib_dev_cleanup(struct net_device *dev, struct ib_device *hca)
> +{
> +	void *next_priv = ipoib_dev_priv(dev);
> +	struct rdma_netdev *rn = netdev_priv(dev);
> +	struct mlx5_ib_dev *ib_dev = to_mdev(hca);
> +	struct mlx5_qp_context context;
> +	int ret;
> +
> +	/* detach qp from flow-steering by reset it */
> +	ret = mlx5_core_qp_modify(ib_dev->mdev,
> +				  MLX5_CMD_OP_2RST_QP, 0, &context,
> +				  (struct mlx5_core_qp *)rn->context);
> +	if (ret)
> +		pr_err("%s failed (ret: %d) to reset QP\n", __func__, ret);
> +
> +	mlx5i_detach(ib_dev->mdev, next_priv);
> +
> +	mlx5_ib_clean_qp(ib_dev, (struct mlx5_core_qp *)rn->context);
> +}

Why isn't this stuff in open/close?

> +void mlx5_ib_send(struct net_device *dev, struct sk_buff *skb,
> +		  struct ipoib_ah *address, u32 dqpn, u32 dqkey)
> +{
> +	void *next_priv = ipoib_dev_priv(dev);
> +
> +	mlx5i_xmit(skb, next_priv, &to_mah(address->ah)->av, dqpn, dqkey);

How come the qkey is not available via ipoib_ah ?

to_mah(address->ah)->av->key.qkey.qkey

?

> +static const struct net_device_ops ipoib_netdev_default_pf = {

That is a weird name for a mlx5 specific structure.

> +	param.size_base_priv = sizeof(struct ipoib_rdma_netdev);

This is really weird, the code in mlx5i_create_netdev calls
ipoib_dev_priv so it must assume the struct is a ipoib_rdma_netdev.

> +	/* set func pointers */
> +	rn = netdev_priv(dev);
> +	rn->qp_num = qp->qpn;
> +	rn->context = qp;

No for using context.. You need your own driver priv, like this:

struct mlx4_rn_priv
{
    struct mlx5e_priv priv;
    struct mlx5_core_qp *qp;
};

Jason
--
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:[~2017-03-13 20:27 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-13 18:31 [RFC v1 for accelerated IPoIB 00/25] Enhanced mode for IPoIB driver Erez Shitrit
2017-03-13 18:31 ` [RFC v1 for accelerated IPoIB 01/25] IB/ipoib: Separate control and data related initializations Erez Shitrit
2017-03-13 18:31 ` [RFC v1 for accelerated IPoIB 02/25] IB/ipoib: separate control from HW operation on ipoib_open/stop ndo Erez Shitrit
2017-03-13 18:31 ` [RFC v1 for accelerated IPoIB 03/25] IB/ipoib: Rename qpn to dqpn in ipoib_send and post_send functions Erez Shitrit
2017-03-13 18:31 ` [RFC v1 for accelerated IPoIB 04/25] IB/verb: Add ipoib_options struct and API Erez Shitrit
     [not found]   ` <1489429896-10781-5-git-send-email-erezsh-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2017-03-13 20:01     ` Jason Gunthorpe
2017-03-14  7:01       ` Vishwanathapura, Niranjana
2017-03-14 13:25         ` Erez Shitrit
2017-03-14 16:11         ` Jason Gunthorpe
     [not found]           ` <20170314161149.GA15752-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-03-15  6:30             ` Leon Romanovsky
     [not found]               ` <20170315063043.GC2079-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-03-15 16:40                 ` Vishwanathapura, Niranjana
2017-03-16 15:17       ` Erez Shitrit
2017-03-16 16:04         ` Jason Gunthorpe
2017-03-14  6:44     ` Vishwanathapura, Niranjana
2017-03-13 18:31 ` [RFC v1 for accelerated IPoIB 05/25] IB/ipoib: Support ipoib acceleration options callbacks Erez Shitrit
2017-03-13 20:10   ` Jason Gunthorpe
     [not found]   ` <1489429896-10781-6-git-send-email-erezsh-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2017-03-14  6:35     ` Vishwanathapura, Niranjana
     [not found]       ` <20170314063538.GB79937-wPcXA7LoDC+1XWohqUldA0EOCMrvLtNR@public.gmane.org>
2017-03-14 14:42         ` Erez Shitrit
2017-03-14 16:00           ` Jason Gunthorpe
     [not found]             ` <20170314160021.GD3244-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-03-15  6:47               ` Leon Romanovsky
2017-03-15 15:58                 ` Jason Gunthorpe
     [not found]                   ` <20170315155802.GB29562-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-03-15 17:39                     ` Leon Romanovsky
2017-03-14 15:44       ` Jason Gunthorpe
2017-03-13 18:31 ` [RFC v1 for accelerated IPoIB 06/25] hw/mlx5: Add New bit to check over QP creation Erez Shitrit
2017-03-13 18:31 ` [RFC v1 for accelerated IPoIB 07/25] linux/mlx5/mlx5_ifc.h: Add underlay_qpn field to PRM objects Erez Shitrit
2017-03-13 18:31 ` [RFC v1 for accelerated IPoIB 08/25] net/mlx5e: Refactor EN code to support IB link Erez Shitrit
2017-03-13 18:31 ` [RFC v1 for accelerated IPoIB 10/25] net/mlx5e: Support netdevice creation for IB link type Erez Shitrit
2017-03-13 18:31 ` [RFC v1 for accelerated IPoIB 14/25] net/mlx5: Enable flow-steering for IB link Erez Shitrit
2017-03-15 18:56   ` Leon Romanovsky
2017-03-13 18:31 ` [RFC v1 for accelerated IPoIB 15/25] net/mlx5e: Enhanced flow table creation to support ETH and IB links Erez Shitrit
2017-03-13 18:31 ` [RFC v1 for accelerated IPoIB 16/25] net/mlx5e: Change cleanup API in order to enable IB link Erez Shitrit
     [not found] ` <1489429896-10781-1-git-send-email-erezsh-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2017-03-13 18:31   ` [RFC v1 for accelerated IPoIB 09/25] net/mlx5e: Creating and Destroying flow-steering tables for " Erez Shitrit
2017-03-13 18:31   ` [RFC v1 for accelerated IPoIB 11/25] net/mlx5e: Refactor attach_netdev API Erez Shitrit
2017-03-13 18:31   ` [RFC v1 for accelerated IPoIB 12/25] net/mlx5e: Use underlay_qpn in tis creation Erez Shitrit
2017-03-13 18:31   ` [RFC v1 for accelerated IPoIB 13/25] net/mlx5e: Export resource creation function to be used in IB link Erez Shitrit
2017-03-13 18:31   ` [RFC v1 for accelerated IPoIB 17/25] net/mlx5e: Change mlx5e_open_locked and mlx5e_close_locked api Erez Shitrit
2017-03-13 18:31   ` [RFC v1 for accelerated IPoIB 18/25] net/mlx5e: Export open/close api for IB link Erez Shitrit
2017-03-13 18:31   ` [RFC v1 for accelerated IPoIB 19/25] include/linux/mlx5: Add mlx5_wqe_eth_pad and enhanced-ipoib-qp-mode Erez Shitrit
2017-03-13 18:31   ` [RFC v1 for accelerated IPoIB 20/25] net/mlx5e: Refactor TX send flow Erez Shitrit
2017-03-13 18:31   ` [RFC v1 for accelerated IPoIB 22/25] net/mlx5e: New function pointer for build_rx_skb is Erez Shitrit
2017-03-13 18:31   ` [RFC v1 for accelerated IPoIB 23/25] net/mlx5e: Change the function that checks the packet type Erez Shitrit
2017-03-13 18:31 ` [RFC v1 for accelerated IPoIB 21/25] net/mlx5e: Export send function for IB link type Erez Shitrit
2017-03-13 18:31 ` [RFC v1 for accelerated IPoIB 24/25] net/mlx5e: Add support for build_rx_skb for packet from IB type Erez Shitrit
2017-03-13 18:31 ` [RFC v1 for accelerated IPoIB 25/25] mlx5_ib: skeleton for mlx5_ib to support ipoib_ops Erez Shitrit
     [not found]   ` <1489429896-10781-26-git-send-email-erezsh-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2017-03-13 20:27     ` Jason Gunthorpe [this message]
     [not found]       ` <20170313202720.GC2738-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-03-14 14:53         ` Erez Shitrit
2017-03-14 16:10           ` Jason Gunthorpe
2017-03-14 16:37             ` Erez Shitrit
2017-03-14  6:07   ` Vishwanathapura, Niranjana

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=20170313202720.GC2738@obsidianresearch.com \
    --to=jgunthorpe-epgobjl8dl3ta4ec/59zmfatqe2ktcn/@public.gmane.org \
    --cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=erezsh-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org \
    --cc=erezsh-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=saedm-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=valex-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;
as well as URLs for NNTP newsgroup(s).