All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josh Triplett <josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org>
To: "H. Peter Anvin" <hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
Cc: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
	Greg Kroah-Hartman
	<gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>,
	akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH] drivers/char/mem.c: Add /dev/ioports, supporting 16-bit and 32-bit ports
Date: Fri, 9 May 2014 15:38:39 -0700	[thread overview]
Message-ID: <20140509223837.GB5725@thin> (raw)
In-Reply-To: <536D46AD.3070608-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>

On Fri, May 09, 2014 at 02:20:45PM -0700, H. Peter Anvin wrote:
> On 05/09/2014 02:12 PM, Arnd Bergmann wrote:
> > 
> >> However, if we're going to have these devices I'm wondering if having
> >> /dev/portw and /dev/portl (or something like that) might not make sense,
> >> rather than requiring a system call per transaction.
> > 
> > Actually the behavior of /dev/port for >1 byte writes seems questionable
> > already: There are very few devices on which writing to consecutive
> > port numbers makes sense. Normally you just want to write a series
> > of bytes (or 16/32 bit words) into the same port number instead,
> > as the outsb()/outsw()/outsl() functions do.
> > 
> 
> Indeed.  I missed the detail that it increments the port index; it is
> virtually guaranteed to be bogus.

Exactly.  It might make sense to have ioport8/ioport16/ioport32 devices
that accept arbitrary-length reads and writes (divisible by the size)
and do the equivalent of the string I/O instructions outs/ins, but for
the moment I'd like to add the single device that people always seem to
want and can't get from /dev/port.  If someone's doing enough writes
that doing a syscall per in/out instruction seems like too much
overhead, they can write a real device driver or use ioperm/iopl.

- Josh triplett

WARNING: multiple messages have this Message-ID (diff)
From: Josh Triplett <josh@joshtriplett.org>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	akpm@linux-foundation.org, linux-kernel@vger.kernel.org,
	linux-api@vger.kernel.org
Subject: Re: [PATCH] drivers/char/mem.c: Add /dev/ioports, supporting 16-bit and 32-bit ports
Date: Fri, 9 May 2014 15:38:39 -0700	[thread overview]
Message-ID: <20140509223837.GB5725@thin> (raw)
In-Reply-To: <536D46AD.3070608@zytor.com>

On Fri, May 09, 2014 at 02:20:45PM -0700, H. Peter Anvin wrote:
> On 05/09/2014 02:12 PM, Arnd Bergmann wrote:
> > 
> >> However, if we're going to have these devices I'm wondering if having
> >> /dev/portw and /dev/portl (or something like that) might not make sense,
> >> rather than requiring a system call per transaction.
> > 
> > Actually the behavior of /dev/port for >1 byte writes seems questionable
> > already: There are very few devices on which writing to consecutive
> > port numbers makes sense. Normally you just want to write a series
> > of bytes (or 16/32 bit words) into the same port number instead,
> > as the outsb()/outsw()/outsl() functions do.
> > 
> 
> Indeed.  I missed the detail that it increments the port index; it is
> virtually guaranteed to be bogus.

Exactly.  It might make sense to have ioport8/ioport16/ioport32 devices
that accept arbitrary-length reads and writes (divisible by the size)
and do the equivalent of the string I/O instructions outs/ins, but for
the moment I'd like to add the single device that people always seem to
want and can't get from /dev/port.  If someone's doing enough writes
that doing a syscall per in/out instruction seems like too much
overhead, they can write a real device driver or use ioperm/iopl.

- Josh triplett

  parent reply	other threads:[~2014-05-09 22:38 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-09 19:19 [PATCH] drivers/char/mem.c: Add /dev/ioports, supporting 16-bit and 32-bit ports Josh Triplett
2014-05-09 19:19 ` Josh Triplett
2014-05-09 19:21 ` [PATCH] mem.4, ioports.4: Document /dev/ioports Josh Triplett
2014-05-09 19:21   ` Josh Triplett
2014-05-13  8:27   ` Michael Kerrisk (man-pages)
2014-05-09 19:58 ` [PATCH] drivers/char/mem.c: Add /dev/ioports, supporting 16-bit and 32-bit ports Arnd Bergmann
2014-05-09 19:58   ` Arnd Bergmann
2014-05-09 20:54   ` H. Peter Anvin
2014-05-09 20:54     ` H. Peter Anvin
2014-05-09 21:12     ` Arnd Bergmann
2014-05-09 21:20       ` H. Peter Anvin
2014-05-09 21:20         ` H. Peter Anvin
     [not found]         ` <536D46AD.3070608-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2014-05-09 22:38           ` Josh Triplett [this message]
2014-05-09 22:38             ` Josh Triplett
2014-05-13 22:10             ` H. Peter Anvin
     [not found]               ` <53729873.2030805-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2014-05-15 21:56                 ` josh-iaAMLnmF4UmaiuxdJuQwMA
2014-05-15 21:56                   ` josh
2014-05-19 12:36                   ` Arnd Bergmann
2014-05-19 12:36                     ` Arnd Bergmann
2014-05-28 21:41                     ` H. Peter Anvin
2014-05-28 21:41                       ` H. Peter Anvin
     [not found]                       ` <53865820.7010309-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2014-05-29  9:26                         ` Arnd Bergmann
2014-05-29  9:26                           ` Arnd Bergmann
2014-05-29 13:38                           ` H. Peter Anvin
2014-05-29 13:38                             ` H. Peter Anvin
     [not found]                             ` <5387385B.1030203-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2014-05-30 11:32                               ` Arnd Bergmann
2014-05-30 11:32                                 ` Arnd Bergmann
2015-12-22 10:52                                 ` Santosh Shukla
2015-12-22 10:52                                   ` Santosh Shukla
     [not found]                                   ` <CA+iXiiN8xFaiz6DwyLfWRFZ81pJZf=Fv1E60VZC-iSNPswaGEQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-22 21:56                                     ` Arnd Bergmann
2015-12-22 21:56                                       ` Arnd Bergmann
2015-12-22 22:02                                       ` H. Peter Anvin
     [not found]                                         ` <1592CC7D-B2F2-4E8B-BB90-4A20682B1FEE-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2015-12-22 22:11                                           ` Arnd Bergmann
2015-12-22 22:11                                             ` Arnd Bergmann
2015-12-23 11:34                                       ` Santosh Shukla
     [not found]                                         ` <CA+iXiiOsbC0MBaRwc5JgaTVRpdxHub5t2T=LrGaVN1AjKpiJgA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-29 13:28                                           ` Arnd Bergmann
2015-12-29 13:28                                             ` Arnd Bergmann
2015-12-29 15:53                                             ` Santosh Shukla
2015-12-29 15:53                                               ` Santosh Shukla
     [not found]                                               ` <CA+iXiiNKiMz=9BJgu3g=LggXjTv61Uwu+ibNfKeih3rK328LSQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-29 15:55                                                 ` Santosh Shukla
2015-12-29 15:55                                                   ` Santosh Shukla
     [not found]                                                   ` <CA+iXiiM+TrciHROfgTcN01mfGEYuUCvpNRU0Qqgrt56VdCcR8Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-29 16:20                                                     ` Arnd Bergmann
2015-12-29 16:20                                                       ` Arnd Bergmann
2015-12-29 16:30                                                       ` Santosh Shukla
2015-12-29 16:30                                                         ` Santosh Shukla
     [not found]                                                         ` <CAAyOgsYuMWudLgbSNM+QAkSXpU_fp6Ue01r=Ufmf5MXUHMs4UQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-29 17:31                                                           ` Alex Williamson
2015-12-29 17:31                                                             ` Alex Williamson
     [not found]                                                             ` <1451410269.18084.15.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-12-31  9:33                                                               ` Santosh Shukla
2015-12-31  9:33                                                                 ` Santosh Shukla
     [not found]                                                                 ` <CAAyOgsaxEaQ5+BW6Rwmz4cEuzVUdswZAWyF0OrbdPpXduwESYg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-31 15:41                                                                   ` Alex Williamson
2015-12-31 15:41                                                                     ` Alex Williamson
2016-01-07  9:31                                                                     ` Santosh Shukla
2014-05-10  7:07 ` Jann Horn
2014-05-10  7:07   ` Jann Horn
     [not found]   ` <20140510070742.GE6099-7cfQGs147y6a6lf8Wg2v7Z5kstrrjoWp@public.gmane.org>
2014-05-10 19:32     ` Josh Triplett
2014-05-10 19:32       ` Josh Triplett
2014-05-11 12:50       ` Jann Horn
     [not found]         ` <20140511125006.GA16197-7cfQGs147y6a6lf8Wg2v7Z5kstrrjoWp@public.gmane.org>
2014-05-11 21:05           ` Josh Triplett
2014-05-11 21:05             ` Josh Triplett
2014-06-01 10:35             ` Maciej W. Rozycki
2014-06-01 10:35               ` Maciej W. Rozycki
2014-06-04 22:59               ` H. Peter Anvin
     [not found]                 ` <538FA4C7.2050206-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2014-06-06  9:02                   ` Maciej W. Rozycki
2014-06-06  9:02                     ` Maciej W. Rozycki
2014-05-10 17:18 ` Greg Kroah-Hartman
2014-05-10 17:18   ` Greg Kroah-Hartman
     [not found]   ` <20140510171845.GA799-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2014-05-10 19:36     ` Josh Triplett
2014-05-10 19:36       ` Josh Triplett

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=20140509223837.GB5725@thin \
    --to=josh-iaamlnmf4umaiuxdjuqwma@public.gmane.org \
    --cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
    --cc=arnd-r2nGTMty4D4@public.gmane.org \
    --cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
    --cc=hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org \
    --cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@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.