Re: [patch 00/21] mutex subsystem, -V14
- From: Joel Schopp <jschopp@xxxxxxxxxxxxxx>
- Date: Thu, 05 Jan 2006 10:42:14 -0600
Anyway, here is some disassembly of some of the code generated with my comments:
c00000000049bf9c <.mutex_lock>: c00000000049bf9c: 7c 00 06 ac eieio c00000000049bfa0: 7d 20 18 28 lwarx r9,r0,r3 c00000000049bfa4: 31 29 ff ff addic r9,r9,-1
The eieio is completly unnecessary, it got picked up from atomic_dec_return (Anton, why is there an eieio at the start of atomic_dec_return in the first place?).
a mutex is like a spinlock, it must prevent loads and stores within the critical section from 'leaking outside the critical section' [they must not be reordered to before the mutex_lock(), nor to after the mutex_unlock()] - hence the barriers added by atomic_dec_return() are very much needed.
The bne- and isync together form a sufficient import barrier. See PowerPC Book2 Appendix B.2.1.1
And if the eieio was necessary it should come after not before twidling the lock bits.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- Follow-Ups:
- Re: [patch 00/21] mutex subsystem, -V14
- From: Ingo Molnar
- Re: [patch 00/21] mutex subsystem, -V14
- References:
- [patch 00/21] mutex subsystem, -V14
- From: Ingo Molnar
- Re: [patch 00/21] mutex subsystem, -V14
- From: Joel Schopp
- Re: [patch 00/21] mutex subsystem, -V14
- From: Ingo Molnar
- [patch 00/21] mutex subsystem, -V14
- Prev by Date: Re: [linux-pm] [patch] pm: fix runtime powermanagement's /sys interface
- Next by Date: Re: [linux-usb-devel] Re: BUG: 2.6.14/2.6.15: USB storage/ext2fs uninterruptable sleep
- Previous by thread: Re: [patch 00/21] mutex subsystem, -V14
- Next by thread: Re: [patch 00/21] mutex subsystem, -V14
- Index(es):