Re: Threads are processes that share more

David S. Miller
2001-06-25T02:24:16Z

Larry McVoy writes:
> In other words, it's designed to be shared. The IRIX stuff is disgusting,
> you really don't want anything to do with sproc(). It _sounds_ like they
> are the same but they aren't - for example, with sproc you get your very
> own TLB miss handler. Doesn't that sound special?

In case anyone is scratching their heads when they read this, the
reason is that IRIX allows partial sharing of the address space.

So for normal processes and threads that fully share the address
space, they have a "fast path" tlb miss handler which doesn't have
to deal with any of the complexities of having a mixture of shared
and non-shared vm areas within the same address space.

The address space mixing is (as usual for something SGI does) mainly
for graphics performance... You can be a mostly shared thread yet
have a private mmap() of the 3d accelerator so you can swap the
graphics context using page faults per-thread. There was a thread
perhaps half a year ago about this where graphics afficiandos were
trying to show why Linux needed to do things this way and Linus
telling them "no it doesn't" :-)

Later,
David S. Miller
davem@redhat.com