From: Jason Gunthorpe <jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
To: "Marciniszyn,
Mike" <mike.marciniszyn-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: "Hefty,
Sean" <sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
Or Gerlitz <gerlitz.or-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
"linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH 06/41] IB/hfi1: add char device instantiation code
Date: Thu, 9 Jul 2015 11:53:20 -0600 [thread overview]
Message-ID: <20150709175320.GC21921@obsidianresearch.com> (raw)
In-Reply-To: <32E1700B9017364D9B60AED9960492BC2575DA43-RjuIdWtd+YbTXloPLtfHfbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
On Wed, Jul 08, 2015 at 09:42:39PM +0000, Marciniszyn, Mike wrote:
> > netlink is a reasonable low speed format to use for this kind of serialization,
> > either via the common mux or via your own char device.
> >
>
> A couple of follow-up netlink questions.
>
> 1. I assume you are talking about generic netlink vs. say the RDMA netlink.
No, 'common mux' means socket(AF_NETLINK)
Your own char device, means stuffing netlink messages over your own
read/write scheme on /dev/infiniband/whatever, just to re-use the
netlink message processing infrastructure.
Where this stuff would live in the common mux space, I don't
know. Probably under RDMA, like iWarp does. Depends what it is, I
guess.
> I think netlink is char device independent. For PSM2, the mmap()
> overload is required for setting up direct hardware access, so we
> need the device.
Right, this is why you might want to run netlink messages over a char
device so you have mmap.
> The difference here is that PSM[12] also uses aio/iter overload for
> bulk SDMA traffic. The use of write() as a control is consistent
> with the core.
Which is what Al said no to, so it has to go.
I would not use the core code as an example of modern tastes on how to
best build a UAPI. My feeling is ioctl considered better than abusing
write() with hidden pointers as the core does. read/write is prefered
to ioctl() if it works in a self contained stream basis (ie no
pointers)
> > I also wonder about all those sysfs files. I think the over reliance on sysfs in
> > rdma may have been a mistake, sending the same information over netlink
> > would be more consistent with what netdev is doing. (eg you can't view the
> > netdev IP addresses via sysfs, but you can view rdma guids via sysfs)
>
> The current sysfs usage is consistent with PSM1/qib use with updates
> for OPA differences. I will update the sysfs docs for both qib and
> wfr as part of the patch set.
But it keeps growing, and more new sysfs files are being added for OPA
stuff. If we were going to move into a netlink direction then doing
that at the moment we introduce a whole new protocol like OPA makes
sense to me.
> > UAPI stuff in drivers is often a red flag, and you guys should
> > think really carefully about what OPA elements should be buried in
> > the driver and what elements should be common to all OPA adapters.
>
> By UAPI, do you mean the file in the include/uapi, the sysfs
> additions, the PSM side of the driver, or all these?
All of these.
Drivers should not be designing UAPIs. It is unfortunate that RDMA
requires it, but that isn't an excuse to go hog wild and cram gigantic
UAPIs into drivers. Particularly the common OPA stuff living in the
driver is unsettling.
Especially in your case where there is now a history of 50kloc, highly
duplicative, driver submissions every couple of years. Two
implementations of the PSM userspace stuff is obnoxious. Buring OPA
specific stuff and sysfs files in the driver probably means when hfi2
rolls around there will be two copies of all of that. More obnoxious.
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
next prev parent reply other threads:[~2015-07-09 17:53 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-11 23:08 [PATCH 00/41] Add OPA gen1 driver Mike Marciniszyn
[not found] ` <20150611230710.16479.62955.stgit-K+u1se/DcYrLESAwzcoQNrvm/XP+8Wra@public.gmane.org>
2015-06-11 23:08 ` [PATCH 01/41] IB/core: Add OPA Port header definitions Mike Marciniszyn
2015-06-11 23:08 ` [PATCH 03/41] IB/hfi1: add common header file definitions Mike Marciniszyn
2015-06-11 23:08 ` [PATCH 04/41] IB/hfi1: add completion queue processing Mike Marciniszyn
2015-06-11 23:08 ` [PATCH 05/41] IB/hfi1: add debugfs handling Mike Marciniszyn
2015-06-11 23:09 ` [PATCH 06/41] IB/hfi1: add char device instantiation code Mike Marciniszyn
[not found] ` <20150611230901.16479.18231.stgit-K+u1se/DcYrLESAwzcoQNrvm/XP+8Wra@public.gmane.org>
2015-06-14 20:58 ` Or Gerlitz
[not found] ` <CAJ3xEMjRPdqWSGSwaEvyhmMQOFqaEi9ZzD5oKzmOhJyERLz4-w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-15 17:22 ` Hefty, Sean
2015-06-15 17:34 ` Jason Gunthorpe
[not found] ` <20150615173423.GA528-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-06-15 18:11 ` Hefty, Sean
[not found] ` <1828884A29C6694DAF28B7E6B8A82373A8FF5828-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-06-15 18:13 ` Jason Gunthorpe
[not found] ` <20150615181348.GC1089-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-06-15 18:22 ` Marciniszyn, Mike
[not found] ` <32E1700B9017364D9B60AED9960492BC2574E174-RjuIdWtd+YbTXloPLtfHfbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-06-17 12:05 ` Marciniszyn, Mike
[not found] ` <32E1700B9017364D9B60AED9960492BC2575144C-RjuIdWtd+YbTXloPLtfHfbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-06-17 15:10 ` Hefty, Sean
2015-06-17 16:31 ` Jason Gunthorpe
[not found] ` <20150617163140.GA22242-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-07-08 21:42 ` Marciniszyn, Mike
[not found] ` <32E1700B9017364D9B60AED9960492BC2575DA43-RjuIdWtd+YbTXloPLtfHfbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-07-09 17:53 ` Jason Gunthorpe [this message]
2015-07-16 19:23 ` Marciniszyn, Mike
2015-07-08 22:11 ` Marciniszyn, Mike
2015-06-11 23:09 ` [PATCH 07/41] IB/hfi1: add diagnostic hooks Mike Marciniszyn
2015-06-11 23:09 ` [PATCH 08/41] IB/hfi1: add dma operation hooks Mike Marciniszyn
2015-06-11 23:09 ` [PATCH 09/41] IB/hfi1: add low lower receive functions Mike Marciniszyn
2015-06-11 23:09 ` [PATCH 10/41] IB/hfi1: add eeprom hooks Mike Marciniszyn
2015-06-11 23:09 ` [PATCH 11/41] IB/hfi1: add PSM driver control/data path Mike Marciniszyn
2015-06-11 23:09 ` [PATCH 12/41] IB/hfi1: add firmware hooks Mike Marciniszyn
2015-06-11 23:09 ` [PATCH 13/41] IB/hfi1: add general hfi header file Mike Marciniszyn
2015-06-11 23:09 ` [PATCH 14/41] IB/hfi1: add module init hooks Mike Marciniszyn
2015-06-11 23:09 ` [PATCH 15/41] IB/hfi1: add interrupt hooks Mike Marciniszyn
2015-06-11 23:09 ` [PATCH 16/41] IB/hfi1: add progress delay/restart hooks Mike Marciniszyn
2015-06-11 23:10 ` [PATCH 17/41] IB/hfi1: add rkey/lkey validation Mike Marciniszyn
2015-06-11 23:10 ` [PATCH 19/41] IB/hfi1: add user/kernel memory sharing hooks Mike Marciniszyn
2015-06-11 23:10 ` [PATCH 20/41] IB/hfi1: add memory region handling Mike Marciniszyn
2015-06-11 23:10 ` [PATCH 21/41] IB/hfi1: add misc OPA defines Mike Marciniszyn
2015-06-11 23:10 ` [PATCH 22/41] IB/hfi1: add pcie routines Mike Marciniszyn
2015-06-11 23:10 ` [PATCH 23/41] IB/hfi1: add pio handling Mike Marciniszyn
2015-06-11 23:10 ` [PATCH 24/41] IB/hfi1: add platform config definitions Mike Marciniszyn
2015-06-11 23:10 ` [PATCH 25/41] IB/hfi1: add qp handling Mike Marciniszyn
2015-06-11 23:10 ` [PATCH 26/41] IB/hfi1: add qsfp handling Mike Marciniszyn
2015-06-11 23:10 ` [PATCH 27/41] IB/hfi1: add RC QP handling Mike Marciniszyn
2015-06-11 23:10 ` [PATCH 28/41] IB/hfi1: add routines for RC/UC Mike Marciniszyn
2015-06-11 23:11 ` [PATCH 30/41] IB/hfi1: add SRQ handling Mike Marciniszyn
2015-06-11 23:11 ` [PATCH 31/41] IB/hfi1: add sysfs routines Mike Marciniszyn
2015-06-11 23:11 ` [PATCH 32/41] IB/hfi1: add tracepoint debug routines Mike Marciniszyn
2015-06-11 23:11 ` [PATCH 33/41] IB/hfi1: add QSFP twsi routines Mike Marciniszyn
2015-06-11 23:11 ` [PATCH 34/41] IB/hfi1: add UC QP handling Mike Marciniszyn
2015-06-11 23:11 ` [PATCH 35/41] IB/hfi1: add UD " Mike Marciniszyn
2015-06-11 23:11 ` [PATCH 36/41] IB/hfi1: add low level page locking Mike Marciniszyn
[not found] ` <20150611231142.16479.41039.stgit-K+u1se/DcYrLESAwzcoQNrvm/XP+8Wra@public.gmane.org>
2015-06-14 21:02 ` Or Gerlitz
[not found] ` <CAJ3xEMjM9kRrnCdJmKR2i9VySOLfsZMkU=ZnJE0rXs0tTPSbVw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-17 12:58 ` Marciniszyn, Mike
2015-07-08 22:08 ` Marciniszyn, Mike
[not found] ` <32E1700B9017364D9B60AED9960492BC2575DAA8-RjuIdWtd+YbTXloPLtfHfbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-07-09 7:33 ` Haggai Eran
2015-06-11 23:11 ` [PATCH 37/41] IB/hfi1: add PSM sdma hooks Mike Marciniszyn
2015-06-11 23:11 ` [PATCH 38/41] IB/hfi1: add general verbs handling Mike Marciniszyn
[not found] ` <20150611231153.16479.20726.stgit-K+u1se/DcYrLESAwzcoQNrvm/XP+8Wra@public.gmane.org>
2015-06-12 19:10 ` Christoph Lameter
2015-06-11 23:11 ` [PATCH 39/41] IB/hfi1: add multicast routines Mike Marciniszyn
2015-06-11 23:12 ` [PATCH 40/41] IB/hfi1: add driver make/config files Mike Marciniszyn
2015-06-11 23:12 ` [PATCH 41/41] IB/core: Add opa driver to kbuild Mike Marciniszyn
2015-06-12 20:04 ` [PATCH 00/41] Add OPA gen1 driver Doug Ledford
2015-06-15 19:48 ` Christoph Lameter
[not found] ` <alpine.DEB.2.11.1506151439250.3542-wcBtFHqTun5QOdAKl3ChDw@public.gmane.org>
2015-06-17 15:57 ` Hefty, Sean
2015-07-08 22:41 ` Marciniszyn, Mike
[not found] ` <32E1700B9017364D9B60AED9960492BC2575DBA4-RjuIdWtd+YbTXloPLtfHfbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-07-09 15:38 ` Christoph Lameter
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=20150709175320.GC21921@obsidianresearch.com \
--to=jgunthorpe-epgobjl8dl3ta4ec/59zmfatqe2ktcn/@public.gmane.org \
--cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=gerlitz.or-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mike.marciniszyn-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=sean.hefty-ral2JQCrhuEAvxtiuMwx3w@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