Re: spin_unlock optimization(i386)

Ingo Molnar (mingo@chiara.csoma.elte.hu)
Fri, 26 Nov 1999 20:21:11 +0100 (CET)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--79888902-108034417-943644071=:3417
Content-Type: TEXT/PLAIN; charset=US-ASCII

> > if you want to trigger the bug, then you must _both_ read and write data
> > from one cpu. If one cpu writes data, and one cpu reads data, then
> > you'll never trigger the problem.
>
> yep, thats another type of causality violation, will try to generate a
> testcase. [i think i have one, i'm checking it now]

ok, the attached causal.c generates (the i believe simplest) such a
testcase. It's the basic causality test done on two CPUs, where both CPUs
are observers and 'creators' as well. Run it with:

./causal 0 2

to get the causality violation. [to speed up the triggering of a violation
on a >2CPU box, run it twice]

'./causal 1 2' does the stores via LOCK-ed instructions and i have not
managed to trigger the violation.

-- mingo

--79888902-108034417-943644071=:3417
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="causal.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.9911262021110.3417@chiara.csoma.elte.hu>
Content-Description:
Content-Disposition: attachment; filename="causal.c"

DQovKg0KICogTGludXggU01QIG1lbW9yeSBtb2RlbCBhbmQgU01QIGNhdXNh
bGl0eSB0ZXN0ZXIsIEluZ28gTW9sbmFyDQogKg0KICogQ29weXJpZ2h0IChD
KSAxOTk5LCBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4NCiAqLw0K
DQojaW5jbHVkZSA8dW5pc3RkLmg+DQojaW5jbHVkZSA8c3RkaW8uaD4NCiNp
bmNsdWRlIDxzdGRsaWIuaD4NCiNpbmNsdWRlIDxzaWduYWwuaD4NCiNpbmNs
dWRlIDxzeXMvd2FpdC5oPg0KI2luY2x1ZGUgPGxpbnV4L3VuaXN0ZC5oPg0K
DQp2b2xhdGlsZSBzdGF0aWMgaW50IHN0YXJ0ZWQgPSAwOw0Kc3RhdGljIGlu
dCBudW10aHJlYWRzOw0KaW50IGxvY2sgPSAwOw0KDQojZGVmaW5lIG1iKCkg
IF9fYXNtX18gX192b2xhdGlsZV9fICgibG9jazsgYWRkbCAkMCwwKCUlZXNw
KSI6IDogOiJtZW1vcnkiKQ0KI2RlZmluZSBpbmMoeCkgIF9fYXNtX18gX192
b2xhdGlsZV9fICgiaW5jbCAlMCI6ICI9bSIoeCk6IDoibWVtb3J5IikNCiNk
ZWZpbmUgbG9ja19pbmMoeCkgIF9fYXNtX18gX192b2xhdGlsZV9fICgibG9j
azsgaW5jbCAlMCI6ICI9bSIoeCk6IDoibWVtb3J5IikNCg0Kdm9sYXRpbGUg
aW50IGRhdGExID0gMCwgZGF0YTIgPSAwOw0Kdm9sYXRpbGUgaW50IGRhdGEz
ID0gMCwgZGF0YTQgPSAwOw0KDQpzdGF0aWMgaW50IHRlc3RfbG9ja2luZyhp
bnQgY3B1KQ0Kew0KCWludCBhLCBiLCBpID0gMDsNCg0KCXN3aXRjaCAoY3B1
KSB7DQoJY2FzZSAwOg0KCQlmb3IgKDs7KSB7DQoJCQlpKys7DQoJCQlpZiAo
bG9jaykgew0KCQkJCWxvY2tfaW5jKGRhdGEzKTsgDQoJCQkJbG9ja19pbmMo
ZGF0YTQpOw0KCQkJfSBlbHNlIHsNCgkJCQlpbmMoZGF0YTMpOyANCgkJCQlp
bmMoZGF0YTQpOw0KCQkJfQ0KCQkJaWYgKGkgPiAxMDAwMDAwMDAwKSB7DQoJ
CQkJZGF0YTQgPSAwOw0KCQkJCWRhdGEzID0gMDsNCgkJCQlpID0gMDsNCgkJ
CX0NCgkJCWIgPSBkYXRhMjsNCgkJCWEgPSBkYXRhMTsNCgkJCWlmIChhIDwg
Yikgew0KCQkJCXByaW50ZigiPCVkPiAlZCAlZFxuIiwgaSwgYSwgYik7DQoJ
CQkJcmV0dXJuIDE7DQoJCQl9DQoJCX0NCgljYXNlIDE6DQoJCWZvciAoOzsp
IHsNCgkJCWkrKzsNCgkJCWlmIChsb2NrKSB7DQoJCQkJbG9ja19pbmMoZGF0
YTEpOyANCgkJCQlsb2NrX2luYyhkYXRhMik7DQoJCQl9IGVsc2Ugew0KCQkJ
CWluYyhkYXRhMSk7IA0KCQkJCWluYyhkYXRhMik7DQoJCQl9DQoJCQlpZiAo
aSA+IDEwMDAwMDAwMDApIHsNCgkJCQlkYXRhMiA9IDA7DQoJCQkJZGF0YTEg
PSAwOw0KCQkJCWkgPSAwOw0KCQkJfQ0KCQkJYiA9IGRhdGE0Ow0KCQkJYSA9
IGRhdGEzOw0KCQkJaWYgKGEgPCBiKSB7DQoJCQkJcHJpbnRmKCI8JWQ+ICVk
ICVkXG4iLCBpLCBhLCBiKTsNCgkJCQlyZXR1cm4gMTsNCgkJCX0NCgkJfQ0K
CWRlZmF1bHQ6DQoJCXJldHVybiAxOw0KCX0NCn0NCg0Kdm9pZCB0ZXN0X2Nh
dXNhbGl0eSAoaW50IGNwdSkNCnsNCglhc20gdm9sYXRpbGUgKCJsb2NrOyBp
bmNsICUwIjoiPW0iKHN0YXJ0ZWQpKTsNCgl3aGlsZSAobnVtdGhyZWFkcyAh
PSBzdGFydGVkKSBtYigpOw0KDQoJdGVzdF9sb2NraW5nKGNwdSk7DQoNCglw
cmludGYoIjx0aHJlYWQlZD4gQlJPS0UgY2F1c2FsaXR5ISBXZWFrbHkgb3Jk
ZXJlZCBtZW1vcnk/XG4iLCBjcHUpOw0KCWV4aXQoMCk7DQp9DQoNCnN0YXRp
YyB2b2lkIHN0YXJ0X3RocmVhZChpbnQgY3B1KQ0Kew0KCWNoYXIgKm5ld3N0
YWNrID0gKGNoYXIgKikgbWFsbG9jKDEwMDAwKSArIDUwMDA7DQoNCgkqbmV3
c3RhY2sgPSBjcHU7DQoJX19hc21fXyBfX3ZvbGF0aWxlX18oDQoJCSJpbnQg
JDB4ODAJXG5cdCIJLyogTGludXgvaTM4NiBzeXN0ZW0gY2FsbCAqLw0KCQki
dGVzdGwgJTAsJTAJXG5cdCIJLyogY2hlY2sgcmV0dXJuIHZhbHVlICovDQoJ
CSJqbmUgMWYJCVxuXHQiCS8qIGp1bXAgaWYgcGFyZW50ICovDQoJCSJjYWxs
IColMglcblx0IgkvKiBzdGFydCBzdWJ0aHJlYWQgZnVuY3Rpb24gKi8NCgkJ
Im1vdmwgJTEsJTAJXG5cdCINCgkJImludCAkMHg4MAlcblx0IgkvKiBleGl0
IHN5c3RlbSBjYWxsOiBleGl0IHN1YnRocmVhZCAqLw0KCQkiMToJCVxuXHQi
DQoJCTogOiJhIiAoX19OUl9jbG9uZSksImkiIChfX05SX2V4aXQpLCAiciIg
KHRlc3RfY2F1c2FsaXR5KSwNCgkJICAgImIiICgweGFmMDAgfCBTSUdDSExE
KSwgImMiIChuZXdzdGFjaykpOw0KCXJldHVybjsNCn0NCg0KaW50IG1haW4g
KGludCBhcmdjLCBjaGFyICogKiBhcmd2KQ0Kew0KCWludCBpOw0KDQoJaWYg
KGFyZ2MgIT0gMykgew0KCQlwcmludGYoInVzYWdlOiBjYXVzYWwgPExPQ0s6
MC8xPiA8a2lkczozLTg+XG4iKTsNCgkJZXhpdCgwKTsNCgl9DQoJbG9jayA9
IGF0b2woYXJndlsxXSk7DQoJbnVtdGhyZWFkcyA9IGF0b2woYXJndlsyXSk7
DQoNCglmb3IgKGkgPSAwOyBpIDwgbnVtdGhyZWFkczsgaSsrKSB7DQoJCXN0
YXJ0X3RocmVhZChpKTsNCgl9DQoJcmV0dXJuICgwKTsNCn0NCg0K
--79888902-108034417-943644071=:3417--

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