Re: spin_unlock optimization(i386)

Ingo Molnar (mingo@chiara.csoma.elte.hu)
Fri, 26 Nov 1999 03:04:29 +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.

--650352740-1989764842-943581869=:12075
Content-Type: TEXT/PLAIN; charset=US-ASCII

> for (;;) { for (;;) {
> i++; a = i;
> j++; b = j;
> } if (a < b)
> BUG()
> }

in fact with the attached testcode causality seems to break _easily_ on
Xeon CPUs:

moon:~> ./causal 2
<30> 9 11
<thread1> BROKE causality! Weakly ordered memory?

the code starts two threads which do the above test. Ie. we can _easily_
see stores on other CPUs in the wrong order.

So you and Manfred are right :) This means that the barrier changes in
smp-2.3.30-A1 still hold, plus i believe all ioremapped area has to be
made uncacheable on x86.

the barrier changes in smp-2.3.30-A1 are done only based on the rule that
writes never pass reads upwards. (reads can still pass reads upwards, and
reads can still pass writes upwards)

Ingo

--650352740-1989764842-943581869=:12075
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="causal.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.9911260304290.12075@chiara.csoma.elte.hu>
Content-Description:
Content-Disposition: attachment; filename="causal.c"

DQovKg0KICogTGludXggU01QIG1lbW9yeSBtb2RlbCBhbmQgU01QIGNhdXNh
bGl0eSB0ZXN0ZXIsIEluZ28gTW9sbmFyDQogKg0KICogQ29weXJpZ2h0IChD
KSAxOTk5LCBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4NCiAqLw0K
DQojaW5jbHVkZSA8dW5pc3RkLmg+DQojaW5jbHVkZSA8c3RkaW8uaD4NCiNp
bmNsdWRlIDxzdGRsaWIuaD4NCiNpbmNsdWRlIDxzaWduYWwuaD4NCiNpbmNs
dWRlIDxzeXMvd2FpdC5oPg0KI2luY2x1ZGUgPGxpbnV4L3VuaXN0ZC5oPg0K
DQp2b2xhdGlsZSBzdGF0aWMgaW50IHN0YXJ0ZWQgPSAwOw0Kc3RhdGljIGlu
dCBudW10aHJlYWRzOw0KDQojZGVmaW5lIG1iKCkgICAgX19hc21fXyBfX3Zv
bGF0aWxlX18gKCJsb2NrOyBhZGRsICQwLDAoJSVlc3ApIjogOiA6Im1lbW9y
eSIpDQoNCnZvbGF0aWxlIGludCBkYXRhMSA9IDAsIGZpbGxlcjAzWzhdLCBk
YXRhMiA9IDA7DQoNCnN0YXRpYyBpbnQgdGVzdF9sb2NraW5nKGludCBjcHUp
DQp7DQoJaW50IGEsIGIsIGNvdW50ID0gMDsNCg0KCWlmIChjcHUgPCAxKSB7
DQoJCWZvciAoOzspIHsNCgkJCWRhdGExKys7IA0KCQkJZGF0YTIrKzsNCgkJ
fQ0KCX0gZWxzZSB7DQoJCWZvciAoOzspIHsNCgkJCWNvdW50Kys7DQoJCQlh
ID0gZGF0YTE7DQoJCQliID0gZGF0YTI7DQoJCQlpZiAoYSA8IGIpIHsNCgkJ
CQlwcmludGYoIjwlZD4gJWQgJWRcbiIsIGNvdW50LCBhLCBiKTsNCgkJCQly
ZXR1cm4gMTsNCgkJCX0NCgkJfQ0KCX0NCn0NCg0Kdm9pZCB0ZXN0X2NhdXNh
bGl0eSAoaW50IGNwdSkNCnsNCglhc20gdm9sYXRpbGUgKCJsb2NrOyBpbmNs
ICUwIjoiPW0iKHN0YXJ0ZWQpKTsNCgl3aGlsZSAobnVtdGhyZWFkcyAhPSBz
dGFydGVkKSBtYigpOw0KDQoJdGVzdF9sb2NraW5nKGNwdSk7DQoNCglwcmlu
dGYoIjx0aHJlYWQlZD4gQlJPS0UgY2F1c2FsaXR5ISBXZWFrbHkgb3JkZXJl
ZCBtZW1vcnk/XG4iLCBjcHUpOw0KCWV4aXQoMCk7DQp9DQoNCnN0YXRpYyB2
b2lkIHN0YXJ0X3RocmVhZChpbnQgY3B1KQ0Kew0KCWNoYXIgKm5ld3N0YWNr
ID0gKGNoYXIgKikgbWFsbG9jKDEwMDAwKSArIDUwMDA7DQoNCgkqbmV3c3Rh
Y2sgPSBjcHU7DQoJX19hc21fXyBfX3ZvbGF0aWxlX18oDQoJCSJpbnQgJDB4
ODAJXG5cdCIJLyogTGludXgvaTM4NiBzeXN0ZW0gY2FsbCAqLw0KCQkidGVz
dGwgJTAsJTAJXG5cdCIJLyogY2hlY2sgcmV0dXJuIHZhbHVlICovDQoJCSJq
bmUgMWYJCVxuXHQiCS8qIGp1bXAgaWYgcGFyZW50ICovDQoJCSJjYWxsICol
Mglcblx0IgkvKiBzdGFydCBzdWJ0aHJlYWQgZnVuY3Rpb24gKi8NCgkJIm1v
dmwgJTEsJTAJXG5cdCINCgkJImludCAkMHg4MAlcblx0IgkvKiBleGl0IHN5
c3RlbSBjYWxsOiBleGl0IHN1YnRocmVhZCAqLw0KCQkiMToJCVxuXHQiDQoJ
CTogOiJhIiAoX19OUl9jbG9uZSksImkiIChfX05SX2V4aXQpLCAiciIgKHRl
c3RfY2F1c2FsaXR5KSwNCgkJICAgImIiICgweGFmMDAgfCBTSUdDSExEKSwg
ImMiIChuZXdzdGFjaykpOw0KCXJldHVybjsNCn0NCg0KaW50IG1haW4gKGlu
dCBhcmdjLCBjaGFyICogKiBhcmd2KQ0Kew0KCWludCBpOw0KDQoJaWYgKGFy
Z2MgIT0gMikgew0KCQlwcmludGYoInVzYWdlOiBjYXVzYWwgPGtpZHM+XG4i
KTsNCgkJZXhpdCgwKTsNCgl9DQoJbnVtdGhyZWFkcyA9IGF0b2woYXJndlsx
XSk7DQoNCglmb3IgKGkgPSAwOyBpPG51bXRocmVhZHM7IGkrKykgew0KCQlz
dGFydF90aHJlYWQoaSk7DQoJfQ0KCXJldHVybiAoMCk7DQp9DQoNCg==
--650352740-1989764842-943581869=:12075
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="smp-2.3.30-A1"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.9911260304291.12075@chiara.csoma.elte.hu>
Content-Description:
Content-Disposition: attachment; filename="smp-2.3.30-A1"

LS0tIGxpbnV4L2luY2x1ZGUvYXNtLWkzODYvc3lzdGVtLmgub3JpZwlGcmkg
T2N0IDE1IDE4OjI5OjQyIDE5OTkNCisrKyBsaW51eC9pbmNsdWRlL2FzbS1p
Mzg2L3N5c3RlbS5oCVRodSBOb3YgMjUgMDI6MzQ6NTcgMTk5OQ0KQEAgLTE2
MSwyMSArMTYxLDMxIEBADQogLyoNCiAgKiBGb3JjZSBzdHJpY3QgQ1BVIG9y
ZGVyaW5nLg0KICAqIEFuZCB5ZXMsIHRoaXMgaXMgcmVxdWlyZWQgb24gVVAg
dG9vIHdoZW4gd2UncmUgdGFsa2luZw0KLSAqIHRvIGRldmljZXMuDQorICog
dG8gZGV2aWNlcy4gTm90ZSB0aGF0IHRoZXNlIHByaW1pdGl2ZXMgZGVhbCB3
aXRoIG9wZXJhdGlvbg0KKyAqIG9yZGVyaW5nLCBub3QgYXRvbWljaXR5Lg0K
ICAqDQogICogRm9yIG5vdywgIndtYigpIiBkb2Vzbid0IGFjdHVhbGx5IGRv
IGFueXRoaW5nLCBhcyBhbGwNCiAgKiBJbnRlbCBDUFUncyBmb2xsb3cgd2hh
dCBJbnRlbCBjYWxscyBhICpQcm9jZXNzb3IgT3JkZXIqLA0KICAqIGluIHdo
aWNoIGFsbCB3cml0ZXMgYXJlIHNlZW4gaW4gdGhlIHByb2dyYW0gb3JkZXIg
ZXZlbg0KICAqIG91dHNpZGUgdGhlIENQVS4NCiAgKg0KLSAqIEkgZXhwZWN0
IGZ1dHVyZSBJbnRlbCBDUFUncyB0byBoYXZlIGEgd2Vha2VyIG9yZGVyaW5n
LA0KLSAqIGJ1dCBJJ2QgYWxzbyBleHBlY3QgdGhlbSB0byBmaW5hbGx5IGdl
dCB0aGVpciBhY3QgdG9nZXRoZXINCi0gKiBhbmQgYWRkIHNvbWUgcmVhbCBt
ZW1vcnkgYmFycmllcnMgaWYgc28uDQorICogcm1iKCk6IHdyaXRlcyBhcmUg
Z3VhcmFudGVlZCBieSBJbnRlbCB0byBuZXZlciBwYXNzIHJlYWRzDQorICog
KGluIGFuIGV4dGVybmFsbHkgdmlzaWJsZSB3YXkgdGhhdCBpcyksIHNvIHRo
ZSByZWFkIGJhcnJpZXINCisgKiBpcyBqdXN0IGEgZHVtbXkgc3RvcmUuIE5v
dGUgdGhhdCAoJSVlc3ApIGlzIG91cnMgYW5kIG9ubHkNCisgKiBvdXJzLCBz
byB0aGlzIGlzIElSUS1zYWZlIGFzIHdlbGwuIFRoZSBiYXJyaWVyIF9tdXN0
Xw0KKyAqIGluY2x1ZGUgYSBzdG9yZSwgdGh1cyB0aGUgYXNzZW1ibHkuIFRo
ZSBDUFUgc25vb3BzIGV4dGVybmFsDQorICogZGV2aWNlcyAoaW5jbHVkaW5n
IENQVXMgYW5kIERNQSBhZ2VudHMpLCBzbyB0aGlzIHdvcmtzIG91dA0KKyAq
IGp1c3QgZmluZSBpbiBhbGwgY2FzZXMgYW5kIGlzIGxpZ2h0d2VpZ2h0LiBB
bmQgdGhpcyBpcyBvbmx5DQorICogNCBieXRlcyBpY2FjaGUgZm9vdHByaW50
IHRvdGFsLiAnYWRkbCAkMCwgKCUlZXNwKScgaXMgYSBsZWdhbA0KKyAqIHdy
aXRlIG9wZXJhdGlvbiB3aGljaCBkaXJ0aWVzIHRoZSB0YXJnZXQgY2FjaGVs
aW5lLg0KKyAqDQorICogV2UgZXhwZWN0IGZ1dHVyZSBJbnRlbCBDUFUncyB0
byBoYXZlIGEgd2Vha2VyIG9yZGVyaW5nLiBCdXQNCisgKiBpdCdzIG5vdCBh
bGwgdGhhdCBiYWQgcmlnaHQgbm93IGFscmVhZHkuDQogICovDQotI2RlZmlu
ZSBtYigpIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImxvY2s7IGFkZGwgJDAs
MCglJWVzcCkiOiA6IDoibWVtb3J5IikNCisjZGVmaW5lIG1iKCkgCV9fYXNt
X18gX192b2xhdGlsZV9fICgiYWRkbCAkMCwgKCUlZXNwKSI6IDogOiJtZW1v
cnkiKQ0KICNkZWZpbmUgcm1iKCkJbWIoKQ0KICNkZWZpbmUgd21iKCkJX19h
c21fXyBfX3ZvbGF0aWxlX18gKCIiOiA6IDoibWVtb3J5IikNCi0jZGVmaW5l
IHNldF9ybWIodmFyLCB2YWx1ZSkgZG8geyB4Y2hnKCZ2YXIsIHZhbHVlKTsg
fSB3aGlsZSAoMCkNCisjZGVmaW5lIHNldF9ybWIodmFyLCB2YWx1ZSkgZG8g
eyB2YXIgPSB2YWx1ZTsgcm1iKCk7IH0gd2hpbGUgKDApDQogI2RlZmluZSBz
ZXRfbWIodmFyLCB2YWx1ZSkgc2V0X3JtYih2YXIsIHZhbHVlKQ0KICNkZWZp
bmUgc2V0X3dtYih2YXIsIHZhbHVlKSBkbyB7IHZhciA9IHZhbHVlOyB3bWIo
KTsgfSB3aGlsZSAoMCkNCiANCg==
--650352740-1989764842-943581869=:12075--

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