Re: rwsem benchmark [was Re: [PATCH] rw_semaphores, optimisations try #3]

Andrea Arcangeli
2001-04-24T13:11:47Z

[-- Attachment #1: Type: text/plain, Size: 2397 bytes --]

On Tue, Apr 24, 2001 at 02:19:28PM +0200, Andrea Arcangeli wrote:
> I'm starting the benchmarks of the C version and I will post a number update
> and a new patch in a few minutes.

(sorry for the below wrap around, just grow your terminal to read it stright)

aa RW (reads) aa RW (writes) R1 R2 RO W1 WO
dh generic out of line try3 5842496 3016649 13309316 5010534 3850228 13012701 1825789
dh generic out of line try3 #2 5823381 3006773 13311722 5023185 3845954 13021716 1802560
aa generic out of line buggy 6061713 3129801 14251500 4972932 4253814 13652385 1751857
aa generic out of line #2 buggy 6099046 3148951 14265389 4936267 4253432 13632914 1753608
aa generic out of line 6133756 3167138 14244991 5122637 4254504 13656896 1797627
aa generic out of line #2 6093079 3145761 14259141 5126506 4254532 13658447 1803505

dh x86 asm in line try3 5789542 2989478 16922653 5650211 4956250 15431139 813756
dh x86 asm in line try3 #2 5801777 2995669 16946132 5647272 4959828 15439790 816005
aa x86 asm in line buggy 5736978 2962325 17044842 5603085 4831655 16064773 860791
aa x86 asm in line #2 buggy 5799163 2994404 17053405 5601647 4833518 16037018 864103
aa generic in line 5706875 2946931 16943038 5644018 4837576 16085859 870833
aa generic in line #2 5755126 2971578 16924502 5639379 4836111 16073916 873499

I tagged my previous rows as "buggy", I left your try#3 at the start of each
version and I added at the end the new numbers with the -9 fixed revision of my
rwsem at the end. new graph is attached.

So nothing interesting is changed in the numbers as far I can tell after the
fixes and improvement of the fast path using "a" instead of "+a".

Unless you can provide a testcase that fails with my smarter and more compact
algorithm I suggest to Linus to merge my code into pre7.

Against pre6:

ftp://ftp.kernel.org/pub/linux/kernel/people/andrea/patches/v2.4/2.4.4pre6/rwsem-9

against David's try2:

ftp://ftp.kernel.org/pub/linux/kernel/people/andrea/patches/v2.4/2.4.4pre6/rwsem-9-against-dh-try2

against David's try3:

ftp://ftp.kernel.org/pub/linux/kernel/people/andrea/patches/v2.4/2.4.4pre6/rwsem-9-against-dh-try3

I will keep doing regression testing in the next hours of course.

Andrea

[-- Attachment #2: rwsem-9.png --]
[-- Type: image/png, Size: 12674 bytes --]