read/write to virtual address
daniel.krefft at tum.de
Thu Feb 16 13:14:07 CET 2017
you're right, we're not interested in accessing device memory.
We want to know, at which place within the operating system/kernel
(l4re/fiasco.oc) memory access takes place. This means, which concrete
functions address the MMU (load/store) or handle the read/write virtual
On 16.02.2017 00:18, Adam Lackorzynski wrote:
> On Wed Feb 15, 2017 at 09:55:19 +0100, Daniel Krefft wrote:
>> we came across two functions (read/write) that are defined in the l4
>> base API documentation:
>> 1) What does the description "functionality to access user task memory
>> from the kernel" mean? This could be interpreted as accessing user-space
>> memory from within the kernel?!
> As the description says through this functions is it possible to
> read/write from/to device memory in the case the device only allows
> access from privileged processor more. There are some of those devices
> out there where even the switch to allow access from user-mode is
> broken. I guess nobody ever noticed. Those functions are only required
> for those specific devices where it's necessary, i.e. not in any normal
> operation. But yes, they fall under the category you describe.
>> 2) Are there any equivalent memory read/write functions inside the l4re
>> that also take a virtual address as a parameter?
> Yes, there are, for example, utility functions for accessing device
> memory. However I'm not sure you're looking for something like this as
> this is all within the same address space and any code in there can
> read/write anywhere in that address space (given paging permits).
> There's no functionality to read/write memory in other address spaces
>> To clarify, all intended operations (read/write) should not modify
>> user-space memory from inside the kernel or vice versa. User-space
>> defined read/write functions should operate in user-space exclusively.
>> On 14.02.2017 23:29, Adam Lackorzynski wrote:
>>> On Tue Feb 14, 2017 at 10:38:26 +0100, Daniel Krefft wrote:
>>>> while working on a checkpoint/restore mechanism for fiasco.oc, we want
>>>> to trace read and write (kernel) calls to (virtual) memory.
>>>> 1) Where are these calls defined? We're just able to find ARM specific
>>>> calls inside the kernel, which allow writing and reading to/from a
>>>> virtual address
>>>> 2) Are these calls (if existent) platform agnostic (user-space)? Is
>>>> there any kind of interface?
>>> I do not quite get the question. The kernel (Fiasco) is running in
>>> virtual memory, also when running in the kernel, i.e. any load/store
>>> operation that is in the code is through virtual memory.
>>> Do you want to trace any read/write issued by the kernel to user-level
>>> memory? I'm afraid, the kernel does not do that, i.e. it never touches
>>> user-level memory (except the specially treated UTCB memory).
>>> Could you please describe your question more verbosely?
>>> l4-hackers mailing list
>>> l4-hackers at os.inf.tu-dresden.de
>> Daniel Krefft MSc.
>> Wissenschaftlicher Mitarbeiter
>> Technische Universitaet Muenchen
>> Fakultaet fuer Informatik
>> Lehrstuhl fuer Betriebssysteme
>> Arcisstrasse 21
>> 80333 Muenchen
>> Tel. +49 89 289 18791
>> daniel.krefft at tum.de
>> l4-hackers mailing list
>> l4-hackers at os.inf.tu-dresden.de
Daniel Krefft MSc.
Technische Universitaet Muenchen
Fakultaet fuer Informatik
Lehrstuhl fuer Betriebssysteme
Tel. +49 89 289 18791
daniel.krefft at tum.de
More information about the l4-hackers