FreeBSD Memory Management questions ?

Aziz Kezzou french.linuxian at gmail.com
Mon Jun 20 02:49:04 GMT 2005


> On Tue, Jun 14, 2005 at 04:21:41AM -0400, Aziz Kezzou wrote:
> >
> > 1 - Right now to access the memory address space of a user process
> > from kernel mode, I only have to set, on x86 systems, the register CR3
> > to the right value.  How can I do that on other architectures ? is
> > there an architecture-independant way of doing that ?
> 
> Addition to the previous answer.  It is also possible to temporally
> map several pages of user memory into the kernel address space.
> Check pmap_qenter(9) and see physio -> vmapbuf, for example, how to
> use it.  Another method, it is possible to COW a single user page and
> then use it in the kernel, but with this method an user process will
> not see any modification in this page made by the kernel and vice
> versa. Check socow_setup -> vm_page_cowsetup, for example, how to
> use it.

Very interesting !

Right now I am using the fact that the kernel address space is maped
on i386 machines into the user address space. So when I am executing a
system call I can access kernel memory.
I am wondering if there is an architecture-independant way of doing
that ? (Notice that I need not only read kernel memory but also free
it. e.g, mbufs ) or at least could you tell me if that's  possible on
other architectures ?

Thanks for your help,
-aziz


More information about the freebsd-hackers mailing list