lkml.org 
[lkml]   [1999]   [Dec]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: 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/

\
 
 \ /
  Last update: 2005-03-22 13:55    [W:0.514 / U:0.052 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site