From: Nathan Fontenot <nfont@linux.vnet.ibm.com>
To: Michael Ellerman <mpe@ellerman.id.au>,
Vasant Hegde <hegdevasant@linux.vnet.ibm.com>,
linuxppc-dev@lists.ozlabs.org
Cc: Dan Williams <dan.j.williams@intel.com>
Subject: Re: [PATCH] powerpc/mm: Allow user space to map rtas_rmo_buf
Date: Mon, 25 Jan 2016 12:42:22 -0600 [thread overview]
Message-ID: <56A66C8E.3070605@linux.vnet.ibm.com> (raw)
In-Reply-To: <1453451744.24910.4.camel@ellerman.id.au>
On 01/22/2016 02:35 AM, Michael Ellerman wrote:
> On Fri, 2016-01-22 at 11:58 +0530, Vasant Hegde wrote:
>> On 01/22/2016 10:59 AM, Michael Ellerman wrote:
>>> On Thu, 2016-01-21 at 21:45 +0530, Vasant Hegde wrote:
>>>
>>>> With commit 90a545e9 (restrict /dev/mem to idle io memory ranges) mapping
>>>> rtas_rmo_buf from user space is failing. Hence we are not able to make
>>>> RTAS syscall.
>>>
>>> Having said that, why the <expletive deleted> is librtas mapping /dev/mem in
>>> the first place? Unless there is a very good reason, and probably even if there
>>> is, we should fix that to use a sane API.
>>
>> We use rtas system call. We use /dev/mem interface to map the RTAS memory region
>> (allocated by kernel and information is passed to user space via procfs) so that
>> we can read/write to RTAS memory.
>>
>> I do not have historical information. May be Nathan has more information on this.
>
> Yeah, we need to dig into what it's actually doing and why. I had a quick look
> but it wasn't obvious.
This was done many years ago, going on memory for now...
I will have to dig back into this code further but what I remember is that the
following process is used. At boot time a piece of low memory (buffers passed
to rtas have to be in low memory) is reserved to use for rtas calls. This memory
is made available to userspace, namely the librtas library. The code in librtas
will then reserve pieces of this memory to use for buffers when making rtas
calls that require large buffers. I think the biggest user of this is the rtas
configure-connector call which can require two 1-page buffers.
If I remember correctly this was done to avoid having the kernel do all of the
copying to/from user of the buffers used.
>
> We should not need 1) a system call, 2) a proc interface, and 3) a mmap of
> /dev/mem.
>
It seems that we could move to an interface that just uses a syscall and have
the kernel copy the buffers in from userspace into the kernels reserved rtas
buffer space.
> If the syscall's not sufficient and we really need to mmap, we should create a
> device which can then be mmapped in a more standard way.
>
This would also work if having the kernel copy the buffers is not what we
want to do.
-Nathan
> Having said that, Nathan's been moving more of the hotplug logic into the
> kernel, so I'm also not clear on how much of the existing API we will need in
> the future. So yep hopefully Nathan can chime in.
>
> cheers
>
next prev parent reply other threads:[~2016-01-25 18:42 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-21 16:15 [PATCH] powerpc/mm: Allow user space to map rtas_rmo_buf Vasant Hegde
2016-01-21 16:32 ` Dan Williams
2016-01-22 5:29 ` Michael Ellerman
2016-01-22 6:28 ` Vasant Hegde
2016-01-22 8:35 ` Michael Ellerman
2016-01-22 10:41 ` Denis Kirjanov
2016-01-25 18:42 ` Nathan Fontenot
2016-01-25 18:42 ` Nathan Fontenot [this message]
2016-01-29 1:58 ` Michael Ellerman
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=56A66C8E.3070605@linux.vnet.ibm.com \
--to=nfont@linux.vnet.ibm.com \
--cc=dan.j.williams@intel.com \
--cc=hegdevasant@linux.vnet.ibm.com \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
/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;
as well as URLs for NNTP newsgroup(s).