On Thu, Feb 17, 2011 at 8:27 PM, Matt Thomas <m...@netbsd.org> wrote: > Module Name: src > Committed By: matt > Date: Thu Feb 17 19:27:13 UTC 2011 > > Modified Files: > src/sys/kern: kern_kthread.c > src/sys/uvm: uvm_extern.h uvm_glue.c > > Log Message: > Add support for cpu-specific uarea allocation routines. Allows different > allocation for user and system lwps. MIPS will use this to map uareas of > system lwp used direct-mapped addresses (to reduce the overhead of > switching to kernel threads). ibm4xx could use to map uareas via direct > mapped addresses and avoid the problem of having the kernel stack not in > the TLB. > > > To generate a diff of this commit: > cvs rdiff -u -r1.30 -r1.31 src/sys/kern/kern_kthread.c > cvs rdiff -u -r1.170 -r1.171 src/sys/uvm/uvm_extern.h > cvs rdiff -u -r1.147 -r1.148 src/sys/uvm/uvm_glue.c > > Please note that diffs are not public domain; they are subject to the > copyright notices on the relevant files. > >
Hi, I get the idea of this change but not quite complete. First I got the a compile error on amd64, thats what made me look at it. An ifdef arround the initialization of the uvm_uarea_system_cache is missing. What are the cpu_uarea_alloc functions supposed to do, differently from the PMAP_MAP_POOLPAGE approach, I guess they are able to alloc multiplies of PAGE_SIZE with the correct alignment, if so once they are in place the PMAP_MAP_POOLPAGE is not required any more? I think MIPS currently uses PMAP_MAP_POOLPAGE. And why treat system lwp uareas differently from user ones? Sorry if I miss something here. Greetings, Lars -- Mystische Erklärungen: Die mystischen Erklärungen gelten für tief; die Wahrheit ist, dass sie noch nicht einmal oberflächlich sind. -- Friedrich Nietzsche [ Die Fröhliche Wissenschaft Buch 3, 126 ]