public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <greg@kroah.com>
To: "Bryan O'Sullivan" <bos@pathscale.com>
Cc: Andrew Morton <akpm@osdl.org>, Roland Dreier <rdreier@cisco.com>,
	linux-kernel@vger.kernel.org, openib-general@openib.org
Subject: Re: RFC: ipath ioctls and their replacements
Date: Wed, 18 Jan 2006 18:57:41 -0800	[thread overview]
Message-ID: <20060119025741.GC15706@kroah.com> (raw)
In-Reply-To: <1137631411.4757.218.camel@serpentine.pathscale.com>

On Wed, Jan 18, 2006 at 04:43:31PM -0800, Bryan O'Sullivan wrote:
>         Opening the /dev/ipath special file assigns an appropriate free
>         unit (chip) and port (context on a chip) to a user process.

Shouldn't you just open the proper chip device and port device itself?
That drops one ioctl.

>         Think of it as similar to /dev/ptmx for ttys, except there isn't
>         a devpts-like filesystem behind it.  Once a process has
>         opened /dev/ipath, it needs to find out which unit and port it
>         has opened, so that it can access other attributes in /sys.  To
>         do this, we provide a GETPORT ioctl.

>         USERINIT and BASEINFO work with mmap to set up direct access to
>         the hardware for user processes.  We intend to turn these into a
>         single ioctl, USERINIT.  This copies a substantial amount of
>         information to and from userspace.

Why not just use mmap?  What's the special needs?

>         RCVCTRL enables/disables receipt of packets.

sysfs file.

>         SET_PKEY sets a partition key, essentially telling hardware
>         which packets are interesting to userspace.

sysfs file.

>         UPDM_TID and FREE_TID are used for RDMA context management.

sysfs files.

>         WAIT waits for incoming packets, and can clearly be replaced by
>         file_ops->poll.

Use poll.

>         GETCOUNTERS, GETUNITCOUNTERS and GETSTATS can all be replaced by
>         files in sysfs.

good.

> For subnet management:
> 
>         GETLID, SET_LID, SET_MTU, SET_GUID, SET_MLID, GET_MLID,
>         GET_DEVSTATUS, GET_PORTINFO and GET_NODEINFO can all be replaced
>         by files in sysfs.
>         
>         SET_LINKSTATE changes the link state.
>         
>         SEND_SMA_PKT and RCV_SMA_PKT send and receive subnet management
>         packets.  I *think* they could be replaced by read and write
>         methods on a new special file, although the semantics aren't a
>         super-clean match.

Use netlink for subnet stuff.

> For diagnostics:
> 
>         DIAGENTER and DIAGLEAVE put the driver into and out of diag
>         mode.  These could be replaced by open/close of a special file.

Use debugfs.

>         DIAGREAD and DIAGWRITE perform direct accesses to the device's
>         PCI memory space.  I think these could be replaced by read and
>         write, but they are again subject to the make-coworker-barf
>         problem.

Use debugfs.

>         HTREAD and HTREAD perform direct accesses to the device's PCI
>         config space.  Same disagreement problem as DIAGREAD and
>         DIAGWRITE.

Use the pci sysfs config files, don't duplicate existing functionality.

>         SEND_DIAG_PKT can be replaced with whatever sends and receives
>         subnet management packets, as above.

netlink or debugfs.

Hope this helps,

greg k-h

  parent reply	other threads:[~2006-01-19  2:58 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-01-19  0:43 RFC: ipath ioctls and their replacements Bryan O'Sullivan
2006-01-19  0:48 ` David S. Miller
2006-01-19  1:14   ` Bryan O'Sullivan
2006-01-19  1:17     ` David S. Miller
2006-01-19  5:17       ` Bryan O'Sullivan
2006-01-19  5:43         ` Greg KH
2006-01-19  0:53 ` Greg KH
2006-01-19  1:17   ` Bryan O'Sullivan
2006-01-19  2:54     ` Greg KH
2006-01-19  2:57 ` Greg KH [this message]
2006-01-19  3:49   ` Andrew Morton
2006-01-19  4:03     ` Greg KH
2006-01-19  5:02   ` Bryan O'Sullivan
2006-01-19  5:39     ` Greg KH
2006-01-19  5:53       ` Bryan O'Sullivan
2006-01-19 22:57         ` Greg KH
2006-01-19 23:44           ` Bryan O'Sullivan
2006-01-20  0:02             ` [openib-general] " Sean Hefty
2006-01-19  8:25 ` Eric W. Biederman
2006-01-19  8:39   ` David S. Miller
2006-02-24 20:19     ` [PATCH 1/1] Topology c fix Zachary Amsden
2006-02-25  0:17       ` Andrew Vasquez
2006-01-19 16:29   ` RFC: ipath ioctls and their replacements Bryan O'Sullivan
2006-01-19 18:20     ` Eric W. Biederman
2006-01-19 18:50       ` [openib-general] " Sean Hefty
2006-01-19 18:55         ` Bryan O'Sullivan
2006-01-19 20:31           ` Eric W. Biederman
2006-01-19 21:53             ` Bryan O'Sullivan
2006-01-19 21:08           ` Sean Hefty
2006-01-19 21:52             ` Bryan O'Sullivan
2006-01-19 18:50       ` Bryan O'Sullivan
2006-01-19 20:29         ` Eric W. Biederman
2006-01-19 20:47           ` [openib-general] " Steve Wise
2006-01-19 22:13           ` Bryan O'Sullivan
2006-01-21  4:40   ` Roland Dreier
2006-01-25 22:32 ` Bryan O'Sullivan
2006-01-25 22:43   ` [openib-general] " Muli Ben-Yehuda
2006-01-25 22:55     ` Bryan O'Sullivan

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=20060119025741.GC15706@kroah.com \
    --to=greg@kroah.com \
    --cc=akpm@osdl.org \
    --cc=bos@pathscale.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=openib-general@openib.org \
    --cc=rdreier@cisco.com \
    /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