- 2008年 10月 16日 2 次提交
- 2008年 10月 15日 5 次提交
- 2008年 10月 13日 4 次提交
- 2008年 10月 09日 1 次提交
-
-
由 rtm 提交于
-
- 2008年 9月 28日 1 次提交
-
-
由 rtm 提交于
-
- 2008年 9月 25日 1 次提交
-
-
由 kolya 提交于
-
- 2008年 9月 24日 1 次提交
-
-
由 kolya 提交于
accessible to user from the hidden CPU segment registers.
-
- 2008年 9月 11日 2 次提交
- 2008年 9月 09日 1 次提交
-
-
由 kaashoek 提交于
-
- 2008年 9月 03日 4 次提交
- 2008年 8月 29日 1 次提交
-
-
由 rtm 提交于
-
- 2008年 8月 28日 2 次提交
- 2008年 8月 22日 2 次提交
- 2008年 8月 21日 5 次提交
- 2007年 12月 21日 1 次提交
-
-
由 rsc 提交于
-
- 2007年 11月 29日 3 次提交
- 2007年 10月 21日 1 次提交
-
-
由 rtm 提交于
-
- 2007年 10月 12日 1 次提交
-
-
由 rsc 提交于
can be called after release without causing deadlock.
-
- 2007年 10月 02日 1 次提交
-
-
由 rsc 提交于
Dropped cmpxchg in favor of xchg, to match lecture notes. Use xchg to release lock, for future protection and to keep gcc from acting clever.
-
- 2007年 9月 30日 1 次提交
-
-
由 rsc 提交于
rtm wrote: > Why does acquire() call cpuid()? Why does release() call cpuid()? The cpuid in acquire is redundant with the cmpxchg, as you said. I have removed the cpuid from acquire. The cpuid in release is actually doing something important, but not on the hardware. It keeps gcc from reordering the lock->locked assignment above the other two during optimization. (Not that current gcc -O2 would choose to do that, but it is allowed to.) I have replaced the cpuid in release with a "gcc barrier" that keeps gcc from moving things around but has no hardware effect. On a related note, I don't think the cpuid in mpmain is necessary, for the same reason that the cpuid wasn't needed in release. As to the question of whether acquire(); x = protected; release(); might read protected after release(), I still haven't convinced myself whether it can. I'll put the cpuid back into release if we determine that it can. Russ
-