All of lore.kernel.org
 help / color / mirror / Atom feed
From: Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Jason Gunthorpe
	<jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
Cc: Christoph Hellwig <hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
	Or Gerlitz <gerlitz.or-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Sagi Grimberg
	<sagig-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>,
	"linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Steve Wise
	<swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>,
	Or Gerlitz <ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Subject: Re: device attr cleanup (was: Handle mlx4 max_sge_rd correctly)
Date: Fri, 11 Dec 2015 12:10:21 -0500	[thread overview]
Message-ID: <566B037D.2040009@redhat.com> (raw)
In-Reply-To: <20151211061433.GB16513-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 2741 bytes --]

On 12/11/2015 01:14 AM, Jason Gunthorpe wrote:
> On Thu, Dec 10, 2015 at 11:56:50PM -0500, Doug Ledford wrote:
> 
>> Looking at struct netdevice, it has the sort of organization I would
>> call reasonable.  Things like struct tx_stats is a struct, even though
>> it's embedded in the parent struct and not a pointer and there is
>> exactly and only one copy, so it could be flat.
> 
> struct net_device_stats exists because it is used in many more places
> that just in struct net_device, so this is a code sharing thing.

It doubles well as decent organization.

>> something I would call well organized.  And speaking of that, in struct
>> netdevice, all of the various ops elements are handled as structs,
> 
> .. and 'struct net_device_ops' is used extensively.
> 
> Whereas once we get rid of the query call ib_device_attr has no second
> user.
> 
>> including the base netdevice ops, whereas struct ib_device puts the base
>> ops flat in the struct.  So if we wanted to be more like struct
>> netdevice, we would move the base ops out of struct ib_device.
> 
> It would make the drivers a bit nicer if they initialized an ib_ops
> structure like netdev does instead of in code, but performance wise
> this is probably better, especially if we sorted the struct members
> sanely..

You could still create a struct and embed the struct in ibdev and it
would make reading ibdev *much* nicer while preserving this performance
benefit (which is probably very minor, if at all, and very well might
become a performance penalty if you have more than one ibdev in heavy
use on the system).  The huge list of ops in the middle of the struct is
a gigantic eyesore.

>> out like this.  An ib_device can be multi-port, and each port can be a
>> different RDMA device type.
> 
> I thought we figured out that wasn't actually allowed today when
> working on the caps rework?

We figured out that the core code couldn't currently do something like
iWARP and RoCE on the same port even if registered as two different
ports.  We do IB/RoCE on different ports because they both appear as an
IB device, but I think the ongoing namespace work shows that they are
diverging more over time and eventually may not work in this fashion
nearly as cleanly as they did to start with.

I also commented that it was entirely understandable for a person to
want to do the whole iWARP/RoCE on one port via two registrations thing
once both the soft-RoCE and soft-iWARP drivers were in the kernel.  As
such, I'd like to see us not make achieving this goal harder in case we
decide to pursue it later.

-- 
Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
              GPG KeyID: 0E572FDD



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 884 bytes --]

      parent reply	other threads:[~2015-12-11 17:10 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-08 21:00 device attr cleanup (was: Handle mlx4 max_sge_rd correctly) Or Gerlitz
     [not found] ` <CAJ3xEMj2EOxX1CiA93MPOsM-FdU9ijcWCYm9tObbkLqqja0PoA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-08 22:04   ` Doug Ledford
     [not found]     ` <566753E3.9060301-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-12-08 22:47       ` Or Gerlitz
     [not found]         ` <CAJ3xEMhaEnv9He7N5q8fFsRzy_j27wdE6KWSFF39UzA680udwA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-08 22:59           ` Jason Gunthorpe
     [not found]             ` <20151208225940.GB27609-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-12-08 23:02               ` Christoph Hellwig
     [not found]                 ` <20151208230244.GA10701-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-12-08 23:49                   ` Jason Gunthorpe
2015-12-09  0:52                   ` ira.weiny
     [not found]                     ` <20151209005203.GD16976-W4f6Xiosr+yv7QzWx2u06xL4W9x8LtSr@public.gmane.org>
2015-12-09 18:42                       ` Christoph Hellwig
     [not found]                         ` <20151209184235.GB4522-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-12-10  1:45                           ` ira.weiny
     [not found]                             ` <20151210014556.GA32059-W4f6Xiosr+yv7QzWx2u06xL4W9x8LtSr@public.gmane.org>
2015-12-10  8:27                               ` Sagi Grimberg
     [not found]                                 ` <56693758.90808-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-12-10 16:07                                   ` Chuck Lever
     [not found]                                     ` <93E3DE8A-0589-436D-A9A1-7EAC66B12739-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2015-12-10 16:10                                       ` Steve Wise
2015-12-10 17:17                                         ` Doug Ledford
2015-12-10 18:07                                       ` Jason Gunthorpe
     [not found]                                         ` <20151210180703.GC21482-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-12-10 23:30                                           ` Christoph Hellwig
     [not found]                                             ` <20151210233047.GB26009-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-12-11  0:49                                               ` Chuck Lever
     [not found]                                                 ` <09F96E8A-5E1E-4345-9069-C07108AF0BC7-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2015-12-11  6:54                                                   ` santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
2015-12-15 18:26                                                   ` Anna Schumaker
2015-12-23 21:31                                                   ` J. Bruce Fields
     [not found]                                                     ` <20151223213116.GB29650-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2015-12-24  3:19                                                       ` device attr cleanup Doug Ledford
     [not found]                                                         ` <567B6433.4050907-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-01-05 16:46                                                           ` Steve Wise
2016-01-05 17:32                                                             ` Or Gerlitz
2015-12-15  0:19                               ` device attr cleanup (was: Handle mlx4 max_sge_rd correctly) Chuck Lever
2015-12-15 16:52                           ` santosh shilimkar
2015-12-08 23:13               ` Or Gerlitz
     [not found]                 ` <CAJ3xEMiEYgsxiL6zR-Dia3Rxwriye1WHcadTmUjU7zV=ide1LA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-08 23:15                   ` Or Gerlitz
     [not found]                     ` <CAJ3xEMgQNMtxgTKC0zaKgy-WGugf6KwT7Ys5h3_RbN_7qd2=tg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-15 19:03                       ` device attr cleanup Doug Ledford
     [not found]                         ` <56706414.8010807-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-12-16  5:53                           ` Or Gerlitz
     [not found]                             ` <5670FC5E.8070405-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-12-16 13:40                               ` Sagi Grimberg
     [not found]                                 ` <567169B3.4040908-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-12-16 14:03                                   ` Or Gerlitz
2015-12-22  7:56                               ` Or Gerlitz
     [not found]                                 ` <CAJ3xEMiGOF79o1OSgxgk2tN+kY91uiNY5Aq+xu2U0Sur-htxpQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-22 19:19                                   ` Doug Ledford
     [not found]                                     ` <5679A254.2040809-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-12-22 20:37                                       ` Doug Ledford
2015-12-09 18:44                   ` device attr cleanup (was: Handle mlx4 max_sge_rd correctly) Christoph Hellwig
     [not found]                     ` <20151209184448.GC4522-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-12-10 17:46                       ` Doug Ledford
     [not found]                         ` <5669BA8E.30200-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-12-10 23:29                           ` Christoph Hellwig
     [not found]                             ` <20151210232956.GA26009-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-12-11  4:56                               ` Doug Ledford
     [not found]                                 ` <566A5792.9080102-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-12-11  6:14                                   ` Jason Gunthorpe
     [not found]                                     ` <20151211061433.GB16513-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-12-11 17:10                                       ` Doug Ledford [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=566B037D.2040009@redhat.com \
    --to=dledford-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
    --cc=gerlitz.or-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
    --cc=jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=sagig-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org \
    --cc=swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.