Messages in this thread | | | Date | Mon, 13 Dec 1999 22:38:41 -0800 | From | Larry McVoy <> | Subject | Re: Thread-private mappings and graphics (was Re: Per-Processor Data Page) |
| |
On Mon, Dec 13, 1999 at 10:28:28PM -0800, Linus Torvalds wrote: > In article <Pine.LNX.4.20.9912132229460.10986-100000@imperial.edgeglobal.com>, > James Simmons <jsimmons@edgeglobal.com> wrote: > >> > >> The fact is that many workstation apps using the OpenGL API rely on > >> threadsafe GL support, and slow lookups would cripple their performance. > >> We need to explore implementation options more, but the issue certainly > >> could be addressed by thread-private mappings, as is done today on IRIX > >> and other platforms. > > It will never happen on Linux. > > I'm suprised an SGI person hasn't learnt from past mistakes. IRIX is > unstable, and unmaintainable, and please just face it - it's because SGI > had the "cool feature of the day" disease. > > Thread-private mappings WILL NOT HAPPEN. You can obviously do them in > SGI Linux, but that way lies madness, and it's something I'll keep > pointing out in public.
Please do so. I'm not sure that my voice really adds anything, but I agree with Linus. IRIX is full of things that noone but a marketing bunny would like, and Linux shouldn't follow in those misguided footsteps.
My understanding of what IRIX had to do to get their semantics to work, based on having been a kernel engineer at SGI for 3 years, so I've looked at this code, is that when you have private mappings, you typically end up replacing the TLB miss handler. The details get sort of messy, but the problem can be summed up as the address space does not belong to a thread, in fact it is the other way around. As long as your threads either share completely or don't share completely, then you only have one VM struct and one set of page tables to walk. As soon as you start having thread private mappings, then you end up having to have different (usually overlapping) page tables. Hence the new TLB miss handler which sorts out the mess.
You really really don't want to do what SGI did. What you do want to do is clearly state what your needs are - leaving out any details about how you want those needs solved - and keep restating them until someone says "ah - you do that like this" and Linus likes it. I have a lot of faith in his instincts. -- --- Larry McVoy lm@bitmover.com http://www.bitmover.com/lm
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |