From: Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Christoph Hellwig <hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
Or Gerlitz <gerlitz.or-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Jason Gunthorpe
<jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@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: Thu, 10 Dec 2015 12:46:54 -0500 [thread overview]
Message-ID: <5669BA8E.30200@redhat.com> (raw)
In-Reply-To: <20151209184448.GC4522-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 3136 bytes --]
On 12/09/2015 01:44 PM, Christoph Hellwig wrote:
> On Wed, Dec 09, 2015 at 01:13:29AM +0200, Or Gerlitz wrote:
>>
>> Christoph patch is here indeed, it does two things
>>
>> 1. remove all the ULP device attr alloc, device query, attr free hassle
>> 2. adds tons of new fields to struct ib_device
>>
>> I think it just goes too much and needlessly adds tons of these new
>> fields directly to struct ib_device where we can have them all well
>> scoped into ib_device_attr member or pointer from struct ib_device
>
> What's the benefit of that?
Organization. Let's be fair, the totally flat namespace you are
preferring is the equivalent of a teenager that is completely incapable
of picking thier dirty laundry up off the floor. It is sloppy,
disorganized, often full of old cruft that you don't know if you can get
rid of or not, often so disorganized you might have three similarly
named items that you can't figure out which one should be used in which
circumstances, etc.
The downside of a more organized approach is often longer/more complex
variable names. It also means that if you want to micro-optimize for
which variables are in the hot path and you need one and only one of the
variables from the attr struct, then you either have to make a copy
somewhere else that is in a frequently hot cache line (along with making
sure the copy and the original stay in sync) or you have to take it out
of the attr struct, or other bad things.
> And looking at the existing members of
> struct ib_device what determines if it goes straight into the device
> or the attribute?
Organization. What goes where depends on what makes sense according to
the organization you are doing.
> There is a reason why we don't do this weird
> attr split in other Linux subsystems, and making IB follow this pattern
> makes everyone feel right at home instead of wondering about the
> weird attribute.
Being organized is not "weird". Let's not wax poetic about sloppy,
disorganized structures. Let's be honest about what they are so we
don't feel like we need to take a shower every time we talk about them
to purge us of the sins of our lies.
That said, though, the kernel frequently has hot spots that require we
have the freedom to rearrange structures to suit memory placement
constraints. It's really for that reason more than anything else that
we tolerate these horribly disorganized structures with a totally flat
namespace. And to be fair, any super high speed core code like the IB
code is more susceptible than most to issues of cache line delays and
hot path slow downs.
For that reason, and *only* that reason, I'm inclined to take your
patch. Otherwise, I wouldn't touch it. The rest of the kernel may
think a disorganized, flat namespace is fruit punch kool-aid...I happen
to prefer things differently. But I'm willing to acquiesce to the needs
of a high performance kernel subsystem as appropriate regardless of my
personal taste on the issue.
--
Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
GPG KeyID: 0E572FDD
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 884 bytes --]
next prev parent reply other threads:[~2015-12-10 17:46 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 [this message]
[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
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=5669BA8E.30200@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.