From: Linus Torvalds on


On Tue, 23 Mar 2010, Andrew Morton wrote:
>
> You should be able to simply set CONFIG_RWSEM_GENERIC_SPINLOCK=n,
> CONFIG_RWSEM_XCHGADD_ALGORITHM=y by hand, as I mentioned earlier?

No. Doesn't work. The XADD code simply never worked on x86-64, which is
why those three commits I pointed at are required.

Oh, and you need one more commit (at least) in addition to the three I
already mentioned - the one that actually adds the x86-64 wrappers and
Kconfig option:

bafaecd x86-64: support native xadd rwsem implementation

so the minimal list of commits (on top of 2.6.33) is at least

59c33fa x86-32: clean up rwsem inline asm statements
5d0b723 x86: clean up rwsem type system
bafaecd x86-64: support native xadd rwsem implementation
1838ef1 x86-64, rwsem: 64-bit xadd rwsem implementation

and I just verified that they at least cherry-pick cleanly (in that
order). I _think_ it would be good to also do

0d1622d x86-64, rwsem: Avoid store forwarding hazard in __downgrade_write

but that one is a small detail, not anything fundamentally important.

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Linus Torvalds on


On Tue, 23 Mar 2010, Anton Starikov wrote:
>
> I think we got a winner!
>
> Problem seems to be fixed.
>
> Just for record, I used next patches:
>
> 59c33fa7791e9948ba467c2b83e307a0d087ab49
> 5d0b7235d83eefdafda300656e97d368afcafc9a
> 1838ef1d782f7527e6defe87e180598622d2d071
> 4126faf0ab7417fbc6eb99fb0fd407e01e9e9dfe
> bafaecd11df15ad5b1e598adc7736afcd38ee13d
> 0d1622d7f526311d87d7da2ee7dd14b73e45d3fc

Ok. If you have performance numbers for before/after these patches for
your actual workload, I'd suggest posting them to stable(a)kernel.org, and
maybe those rwsem fixes will get back-ported.

The patches are pretty small, and should be fairly safe. So they are
certainly stable material.

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Linus Torvalds on


On Wed, 24 Mar 2010, Ingo Molnar wrote:
>
> We havent had any stability problems with them, except one trivial build bug,
> so -stable would be nice.

Oh, you're right. There was that UML build bug. But I think that was
included in the list of commits Anton had - commit 4126faf0ab ("x86: Fix
breakage of UML from the changes in the rwsem system").

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Linus Torvalds on


On Wed, 24 Mar 2010, Andi Kleen wrote:
>
> It would be also nice to get that change into 2.6.32 stable. That is
> widely used on larger systems.

Looking at the changes to the files in question, it looks like it should
all apply cleanly to 2.6.32, so I don't see any reason not to backport
further back.

Somebody should double-check, though.

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/