看板 DFBSD_commit 關於我們 聯絡資訊
Joerg Sonnenberger wrote: > On Tue, Feb 01, 2005 at 03:14:47PM -0800, Matthew Dillon wrote: > >>:This is an optimisation for the intra-program switch if you want to call it so. >>:I would argue that the normal switch case is either user -> kernel or to >>:a different kernel thread. >> >> You pretty much always want to have just a single page table with a >> threaded program. The %cr3 optimization is a nice plus, but it isn't >> why the page table is being shared. The page table is being shared >> because trying to build a threaded program WITHOUT sharing the page >> table is extremely expensive. Every time you'd allocate memory or map >> something it would have to be replicated across N page tables. >> Performance would be destroyed. > > > But you can still share most parts of the page table, if you exploit > the two level approach. > Yes, you can rewrite a pte, but an invlpg intruction is very expensive! remember you have to operate TLB, which should be avoided in most time. > Joerg > > >> -Matt