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: Wed, 17 Jun 2015 10:31:40 -0600 [thread overview]
Message-ID: <20150617163140.GA22242@obsidianresearch.com> (raw)
In-Reply-To: <32E1700B9017364D9B60AED9960492BC2575144C-RjuIdWtd+YbTXloPLtfHfbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
On Wed, Jun 17, 2015 at 12:05:08PM +0000, Marciniszyn, Mike wrote:
> Jason, what is your take on ioctl vs. write.
Well, I think the global view keeps changing, so I'm not sure what is
trendy now..
But personally, I hate seeing write() used to emulate ioctl() because
'ioctl is bad'. ie if you are 'writing' a struct that contains user
pointers and you expect the kernel to read/write to user memory, then
use ioctl. (and that is the 'badness' of ioctl, so pretending it is
write doesn't help anything)
If you can formulate your communication like netlink does, where it is
more like a network RPC, where *everything* is in the buffer passed
to write and you have to call read to get a reply, then use
read/write. This is generally considered preferable, and is what
people mean when they say write is preferred. As I understand
it.
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.
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)
Overall, I'd be alot happier with your driver patchset if it was split
as 'core only, no UAPI changes' followed up by 'Add UAPI for X'.
If you can't make a verbs provider work under 'core only' then I think
something is very wrong...
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.
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-06-17 16:31 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 [this message]
[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
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=20150617163140.GA22242@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