Re: Bad apache perfomance wtih linux SMP

Andi Kleen (ak@muc.de)
Wed, 19 May 1999 00:36:09 +0200


On Tue, May 18, 1999 at 09:40:57PM +0200, Juergen Schmidt wrote:
> On Tue, 18 May 1999, Andi Kleen wrote:
>
> > If you don't believe me :) you can verify it:
> >
> > csum_and_copy_from_user
> > ...
> > calls finally do_swap_page (same file)
> > and there at the end is:
> > unlock_kernel();
>
> You convinced me, that it may happen anyway. What's still open is: is it
> really ok, that it happens.

It is really ok, if it isn't that would be a serious bug just waiting to
hurt someone. Every kernel part that accesses user space has to handle
sleeping (this is not to say that some parts of the kernel are not
buggy in this regard, but at least for well tested basic parts like
the main TCP send path it should be ok - and I know of no bugs here)

The bigger concern is that the compiler compiles it correctly. It seems
some problems were tracked down to egcs 1.1 sometimes moving memory accesses
around the memory barrier in lock_kernel, so compiling it with gcc 2.7.2 is
probably more safe.

BTW the modification only covers the TCP send path, there is a more
extensive patch around that does it for ext2 reading, writing, TCP
receiving and other parts too - the basic principle is always the same.

[The compiler problems were encountered with the big patch, not the
simple modification I suggested to you]

-Andi

p.S.: sorry for the delay with the lock profiling patch, I first have to
extract it from my kernel tree. you'll have it before tomorrow.


-- 
This is like TV. I don't like TV.

- 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/