[Prev][Next][Index][Thread]

Re: SVM with several page directories?



> Hi, we trying to use the oskit support for Virtual Memory(SVM). 
> We want to have processes working in the same virtual address 
> each one with their own page directories. 
> Is it possible with the oskit support?

Well, let me tell you what you *can* do with the oskit as it comes out of
the box. SVM supports a single virtual address space, presenting an mmap
style interface to allocate and deallocate virtual address space. You can
optionally turn on paging, if you happen to have a partition handy (and its
oskit_blkio_t). Please take a look at the documentation for more
information (the SVM chapter, or doc/svm.tex). Look at the startup code in
startup/start_svm.c to see how you can easily get SVM started.

With pthreads linked in, you get multiple threads running in that single
virtual address space, but they all share the same set of page tables.
The pthread context switch code does not do anything with the page table
pointer.

So, to answer your question, the oskit does not directly support a notion
of process context. You will need to do some additional work to get
per-thread virtual address spaces.

Hope that helps ...

Lbs

---------------------------------------------------------------------------
Leigh B. Stoller                     Computer Science - Flux Research Group
stoller@cs.utah.edu                  University of Utah
http://www.cs.utah.edu/~stoller      Salt Lake City, Utah 84112
Voice: (813) 899-9296                FAX: (801) 585-3743
---------------------------------------------------------------------------