2013-05-23 09:09:48

by remaper

[permalink] [raw]
Subject: 回复:[PATCH 1/3 v3] dcache: D on't take unnecessary lock in d_count update

bWF5YmUgeW91IGNhbiB1c2UgdGhlIGF0b21pY19kZWNfYW5kX2xvY2soJmRlbnRyeS0+ZF9j
b3VudCwgJmRlbnRyeS0+ZF9sb2NrKSBoZXJlLCByaWdodCA/DQoNCi0tLS0tLS0tLS0tLS0t
LS0tLSBPcmlnaW4gLS0tLS0tLS0tLS0tLS0tLS0tDQo+VGhlIGN1cnJlbnQgY29kZSB0YWtl
cyB0aGUgZGVudHJ5J3MgZF9sb2NrIGxvY2sgd2hlbmV2ZXIgdGhlIGRfY291bnQNCj5yZWZl
cmVuY2UgY291bnQgaXMgYmVpbmcgdXBkYXRlZC4gSW4gcmVhbGl0eSwgbm90aGluZyBiaWcg
cmVhbGx5DQo+IGhhcHBlbnMgdW50aWwgZF9jb3VudCBnb2VzIHRvIDAgaW4gZHB1dCgpLiBT
byBpdCBpcyBub3QgbmVjZXNzYXJ5IHRvDQo+IHRha2UgdGhlIGxvY2sgaWYgdGhlIHJlZmVy
ZW5jZSBjb3VudCB3b24ndCBnbyB0byAwLg0KDQpXaXRob3V0IHVzaW5nIGEgbG9jaywgbXVs
dGlwbGUgdGhyZWFkcyBtYXkgdXBkYXRlIGRfY291bnQNCnNpbXVsdGFuZW91c2x5LiAgVGhl
cmVmb3JlLCBhdG9taWMgaW5zdHJ1Y3Rpb25zIG11c3QgYmUgdXNlZCB0bw0KZW5zdXJlIGNv
bnNpc3RlbmN5IGV4Y2VwdCBpbiBzaHJpbmtfZGNhY2hlX2Zvcl91bW91bnQqKCkgd2hlcmUg
dGhlDQp3aG9sZSBzdXBlcmJsb2NrIGlzIGJlaW5nIGRpc21vdW50ZWQgYW5kIGxvY2tpbmcg
aXMgbm90IG5lZWRlZC4NCg0KVGhlIHdvcnN0IGNhc2Ugc2NlbmFyaW9zIGFyZToNCg0KMS4g
ZF9sb2NrIHRha2VuIGluIGRwdXQgd2l0aCBkX2NvdW50ID0gMiBpbiBvbmUgdGhyZWFkIGFu
ZCBhbm90aGVyDQogdGhyZWFkIGNvbWVzIGluIHRvIGF0b21pY2FsbHkgZGVjcmVtZW50IGRf
Y291bnQgd2l0aG91dCB0YWtpbmcNCiB0aGUgbG9jay4gVGhpcyBtYXkgcmVzdWx0IGluIGEg
ZF9jb3VudCBvZiAwIHdpdGggbm8gZGVsZXRpbmcNCiBhY3Rpb24gdGFrZW4uDQoNCjIuIGRf
bG9jayB0YWtlbiBpbiBkcHV0IHdpdGggZF9jb3VudCA9IDEgaW4gb25lIHRocmVhZCBhbmQg
YW5vdGhlcg0KIHRocmVhZCBjb21lcyBpbiB0byBhdG9taWNhbGx5IGluY3JlbWVudCBkX2Nv
dW50IHdpdGhvdXQgdGFraW5nDQogdGhlIGxvY2suIFRoaXMgbWF5IHJlc3VsdCBpbiB0aGUg
ZGVudHJ5IGluIHRoZSBkZWxldGVkIHN0YXRlIHdoaWxlDQogaGF2aW5nIGEgZF9jb3VudCBv
ZiAxLg0KDQpXaXRob3V0IHRha2luZyBhIGxvY2ssIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRo
ZSBkZWNyZW1lbnRpbmcgb3INCmluY3JlbWVudGluZyBhY3Rpb24gc2hvdWxkIG5vdCBiZSB0
YWtlbiB3aGlsZSBvdGhlciB0aHJlYWRzIGFyZQ0KdXBkYXRpbmcgZF9jb3VudCBzaW11bHRh
bmVvdXNseS4gVGhpcyBjYW4gYmUgZG9uZSBieSB1c2luZyB0aGUNCmF0b21pYyBjbXB4Y2hn
IGluc3RydWN0aW9uIHdoaWNoIHdpbGwgZmFpbCBpZiB0aGUgdW5kZXJseWluZyB2YWx1ZQ0K
aXMgY2hhbmdlZC4gIElmIHRoZSBsb2NrIGlzIHRha2VuLCBpdCBzaG91bGQgYmUgc2FmZSB0
byB1c2UgYSBzaW1wbGVyDQphdG9taWMgaW5jcmVtZW50IG9yIGRlY3JlbWVudCBpbnN0cnVj
dGlvbi4NCg0KVG8gbWFrZSBzdXJlIHRoYXQgdGhlIGFib3ZlIHdvcnN0IGNhc2Ugc2NlbmFy
aW9zIHdpbGwgbm90IGhhcHBlbiwNCnRoZSBkZ2V0KCkgZnVuY3Rpb24gbXVzdCB0YWtlIHRo
ZSBsb2NrIGlmIGRfY291bnQgPD0gMS4gU2ltaWxhcmx5LA0KdGhlIGRwdXQoKSBmdW5jdGlv
biBtdXN0IHRha2UgdGhlIGxvY2sgaWYgZF9jb3VudCA8PSAyLiBUaGUgY21weGNoZygpDQpj
YWxsIHRvIHVwZGF0ZSBkX2NvdW50IHdpbGwgYmUgdHJpZWQgdHdpY2UgYmVmb3JlIGZhbGxp
bmcgYmFjayB0bw0KdXNpbmcgdGhlIGxvY2sgYXMgdGhlcmUgaXMgYSBmYWlybHkgZ29vZCBj
aGFuY2UgdGhhdCB0aGUgY21weGNoZygpDQptYXkgZmFpbCBpbiBhIGJ1c3kgc2l0dWF0aW9u
Lg0KDQpGaW5hbGx5LCB0aGUgQ1BVIG11c3QgaGF2ZSBhbiBpbnN0cnVjdGlvbmFsIGxldmVs
IGNtcHhjaGcgaW5zdHJ1Y3Rpb24NCm9yIHRoZSBlbXVsYXRlZCBjbXB4Y2hnKCkgZnVuY3Rp
b24gbWF5IGJlIHRvbyBleHBlbnNpdmUgdG8NCnVzZS4gVGhlcmVmb3JlLCB0aGUgYWJvdmUg
bWVudGlvbmVkIGNoYW5nZXMgd2lsbCBvbmx5IGJlIGFwcGxpZWQgaWYNCnRoZSBfX0hBVkVf
QVJDSF9DTVBYQ0hHIGZsYWcgaXMgc2V0LiBNb3N0IG9mIHRoZSBtYWpvciBhcmNoaXRlY3R1
cmVzDQpzdXBwb3J0ZWQgYnkgTGludXggaGF2ZSB0aGlzIGZsYWcgc2V0IHdpdGggdGhlIG5v
dGF0aW9uIGV4Y2VwdGlvbg0Kb2YgQVJNLg0KDQpBcyBmb3IgdGhlIHBlcmZvcm1hbmNlIG9m
IHRoZSB1cGRhdGVkIHJlZmVyZW5jZSBjb3VudGluZyBjb2RlLCBpdA0KYWxsIGRlcGVuZHMg
b24gd2hldGhlciB0aGUgY21weGNoZyBpbnN0cnVjdGlvbiBpcyB1c2VkIG9yIG5vdC4gVGhl
DQpvcmlnaW5hbCBjb2RlIGhhcyAyIGF0b21pYyBpbnN0cnVjdGlvbnMgdG8gbG9jayBhbmQg
dW5sb2NrIHRoZQ0Kc3BpbmxvY2suIFRoZSBuZXcgY29kZSBwYXRoIGhhcyBlaXRoZXIgMSBh
dG9taWMgY21weGNoZyBpbnN0cnVjdGlvbg0Kb3IgMyBhdG9taWMgaW5zdHJ1Y3Rpb25zIGlm
IHRoZSBsb2NrIGhhcyB0byBiZSB0YWtlbi4gRGVwZW5kaW5nIG9uDQpob3cgZnJlcXVlbnQg
dGhlIGNtcHhjaGcgaW5zdHJ1Y3Rpb24gaXMgdXNlZCAoZF9jb3VudCA+IDEgb3IgMiksDQp0
aGUgbmV3IGNvZGUgY2FuIGJlIGZhc3RlciBvciBzbG93ZXIgdGhhbiB0aGUgb3JpZ2luYWwg
b25lLg0KDQpUaGlzIHBhdGNoIGhhcyBhIHBhcnRpY3VsYXIgYmlnIGltcGFjdCBvbiB0aGUg
c2hvcnQgd29ya2xvYWQgb2YgdGhlDQpBSU03IGJlbmNobWFyayB3aXRoIHJhbWRpc2sgZmls
ZXN5c3RlbS4gVGhlIHRhYmxlIGJlbG93IHNob3cgdGhlDQpwZXJmb3JtYW5jZSBpbXByb3Zl
bWVudCB0byB0aGUgSlBNIChqb2JzIHBlciBtaW51dGVzKSB0aHJvdWdocHV0IGR1ZQ0KdG8g
dGhpcyBwYXRjaCBvbiBhbiA4LXNvY2tldCA4MC1jb3JlIHg4Ni02NCBzeXN0ZW0gd2l0aCBh
IDMuMTAtcmMxDQprZXJuZWwgaW4gYSAxLzIvNC84IG5vZGUgY29uZmlndXJhdGlvbiBieSB1
c2luZyBudW1hY3RsIHRvIHJlc3RyaWN0DQp0aGUgZXhlY3V0aW9uIG9mIHRoZSB3b3JrbG9h
ZCBvbiBjZXJ0YWluIG5vZGVzLg0KDQorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKw0KfCAgQ29uZmlndXJhdGlvbiAg
fCAgICBNZWFuIEpQTSAgICB8ICAgIE1lYW4gSlBNICAgICB8ICUgQ2hhbmdlIHwNCnwgICAg
ICAgICAgICAgICAgIHwgUmF0ZSB3L28gcGF0Y2ggfCBSYXRlIHdpdGggcGF0Y2ggfCAgICAg
ICAgICB8DQorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKw0KfCAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg
VXNlciBSYW5nZSAxMCAtIDEwMCAgICAgICAgICAgIHwNCistLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQp8IDggbm9k
ZXMsIEhUIG9mZiB8ICAgIDE1NDY4MTMgICAgIHwgICAgIDUwODAxMjYgICAgIHwgKzIyOC40
JSAgfA0KfCA0IG5vZGVzLCBIVCBvZmYgfCAgICAxNjYzNDM5ICAgICB8ICAgICA0NzAzMDgz
ICAgICB8ICsxODIuNyUgIHwNCnwgMiBub2RlcywgSFQgb2ZmIHwgICAgMjU0NTM4OSAgICAg
fCAgICAgMzc5MDk5NSAgICAgfCAgKzQ4LjklICB8DQp8IDEgbm9kZSAsIEhUIG9mZiB8ICAg
IDIzNzQ0ODggICAgIHwgICAgIDIzOTQ4NDYgICAgIHwgICArMC45JSAgfA0KKy0tLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSsNCnwgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIFVzZXIgUmFuZ2UgMjAwIC0g
MTAwMCAgICAgICAgICB8DQorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KfCA4IG5vZGVzLCBIVCBvZmYgfCAgICAx
MDY0MTg0ICAgICB8ICAgICA3MzkxMzgyICAgICB8ICs1OTQuNiUgIHwNCnwgNCBub2Rlcywg
SFQgb2ZmIHwgICAgMTM2MjQ0NyAgICAgfCAgICAgNzMyNTQ3NSAgICAgfCArNDM3LjclICB8
DQp8IDIgbm9kZXMsIEhUIG9mZiB8ICAgIDE4NTExOTggICAgIHwgICAgIDQ1Mzk1MTEgICAg
IHwgKzE0NS4yJSAgfA0KfCAxIG5vZGUgLCBIVCBvZmYgfCAgICAyNDc3NTM3ICAgICB8ICAg
ICAyNDU3NTEzICAgICB8ICAgLTAuOCUgIHwNCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQp8ICAgICAgICAgICAg
ICAgICB8ICAgICAgICAgICAgICBVc2VyIFJhbmdlIDExMDAgLSAyMDAwICAgICAgICAgfA0K
Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSsNCnwgOCBub2RlcywgSFQgb2ZmIHwgICAgMTA1NjI0MyAgICAgfCAgICAg
NzA2NzI4MiAgICAgfCArNTY5LjElICB8DQp8IDQgbm9kZXMsIEhUIG9mZiB8ICAgIDEzNTQ1
MDUgICAgIHwgICAgIDY5MzA0MzcgICAgIHwgKzQxMS43JSAgfA0KfCAyIG5vZGVzLCBIVCBv
ZmYgfCAgICAxNzM1ODgxICAgICB8ICAgICA0NTgxODQ3ICAgICB8ICsxNjQuMCUgIHwNCnwg
MSBub2RlICwgSFQgb2ZmIHwgICAgMjUxMTU0NyAgICAgfCAgICAgMjQ5NjU5NCAgICAgfCAg
IC0wLjYlICB8DQorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tKw0KDQpJdCBjYW4gYmUgc2VlbiB0aGF0IHdpdGggMjAg
Q1BVcyAoMiBub2Rlcykgb3IgbW9yZSwgdGhpcyBwYXRjaCBjYW4NCnNpZ25pZmljYW50bHkg
aW1wcm92ZSB0aGUgc2hvcnQgd29ya2xvYWQgcGVyZm9ybWFuY2UuIFdpdGggb25seSAxDQpu
b2RlLCB0aGUgcGVyZm9ybWFuY2UgaXMgc2ltaWxhciB3aXRoIG9yIHdpdGhvdXQgdGhlIHBh
dGNoLiBUaGUgc2hvcnQNCndvcmtsb2FkIGFsc28gc2NhbGVzIHByZXR0eSB3ZWxsIHVwIHRv
IDQgbm9kZXMgd2l0aCB0aGlzIHBhdGNoLg0KDQpBIHBlcmYgY2FsbC1ncmFwaCByZXBvcnQg
b2YgdGhlIHNob3J0IHdvcmtsb2FkIGF0IDE1MDAgdXNlcnMgd2l0aG91dA0KdGhlIHBhdGNo
IG9uIDggbm9kZXMgaW5kaWNhdGVzIHRoYXQgYWJvdXQgNzklIG9mIHRoZSB3b3JrbG9hZCdz
IHRvdGFsDQp0aW1lIHdlcmUgc3BlbnQgaW4gdGhlIF9yYXdfc3Bpbl9sb2NrKCkgZnVuY3Rp
b24uIEFsbW9zdCBhbGwgb2Ygd2hpY2gNCmNhbiBiZSBhdHRyaWJ1dGVkIHRvIHRoZSBmb2xs
b3dpbmcgMiBrZXJuZWwgZnVuY3Rpb25zOg0KMS4gZGdldF9wYXJlbnQgKDQ5LjkxJSkNCjIu
IGRwdXQgKDQ5LjgyJSkNCg0KV2l0aCB0aGlzIHBhdGNoIG9uLCB0aGUgdGltZSBzcGVudCBv
biBfcmF3X3NwaW5fbG9jaygpIGlzIG9ubHkgMS4zOCUNCndoaWNoIGlzIGEgaHVnZSBpbXBy
b3ZlbWVudC4gT2YgdGhlIDEuMzglLCBvbmx5IGEgc21hbGwgcG9ydGlvbiBvZiBpdA0KaXMg
cmVsYXRlZCB0byB0aGUgZGNhY2hlIGxvY2suIEhvd2V2ZXIsIHRoZSBfcmF3X3NwaW5fbG9j
a19pcnFzYXZlKCkNCm9mIHRoZSB0dHlfbGRpc2NfbG9jayBub3cgZG9taW5hdGVzIHdpdGgg
MjQuNSUgb2YgdGhlIHRvdGFsIHRpbWUuDQoNClRoaXMgaW1wYWN0IG9mIHRoaXMgcGF0Y2gg
b24gb3RoZXIgQUlNNyB3b3JrbG9hZHMgd2VyZSBtdWNoIG1vcmUNCm1vZGVzdC4gIFRoZSB0
YWJsZSBiZWxvdyBzaG93IHRoZSBtZWFuICVjaGFuZ2UgZHVlIHRvIHRoaXMgcGF0Y2ggb24N
CnRoZSBzYW1lIDgtc29ja2V0IHN5c3RlbSB3aXRoIGEgMy4xMC1yYzEga2VybmVsLg0KDQor
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLS0rDQp8ICAgV29ya2xvYWQgICB8IG1lYW4gJSBjaGFuZ2UgfCBtZWFuICUg
Y2hhbmdlICB8IG1lYW4gJSBjaGFuZ2UgICB8DQp8ICAgICAgICAgICAgICB8IDEwLTEwMCB1
c2VycyAgfCAyMDAtMTAwMCB1c2VycyB8IDExMDAtMjAwMCB1c2VycyB8DQorLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LS0rDQp8IGFsbHRlc3RzICAgICB8ICAgICAtMC4yJSAgICAgfCAgICAgLTAuNSUgICAgICB8
ICAgICAtMi43JSAgICAgICB8DQp8IGZpdmVfc2VjICAgICB8ICAgICAtMS4wJSAgICAgfCAg
ICAgKzIuNiUgICAgICB8ICAgICArMi40JSAgICAgICB8DQp8IGZzZXJ2ZXIgICAgICB8ICAg
ICArMS4zJSAgICAgfCAgICAgKzEuOSUgICAgICB8ICAgICArMS4wJSAgICAgICB8DQp8IGhp
Z2hfc3lzdGltZSB8ICAgICArMC4xJSAgICAgfCAgICAgKzEuMyUgICAgICB8ICAgICArNC44
JSAgICAgICB8DQp8IG5ld19mc2VydmVyICB8ICAgICAtMS41JSAgICAgfCAgICAgKzAuOCUg
ICAgICB8ICAgICArMS4xJSAgICAgICB8DQp8IHNoYXJlZCAgICAgICB8ICAgICArMC41JSAg
ICAgfCAgICAgKzAuNCUgICAgICB8ICAgICAtMC4xJSAgICAgICB8DQorLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r
DQoNClNpZ25lZC1vZmYtYnk6IFdhaW1hbiBMb25nIDxXYWltYW4uTG9uZ0BocC5jb20+DQot
LS0NCmZzL2RjYWNoZS5jICAgICAgICAgICAgfCAgIDM3ICsrKysrKysrLS0tLS0tLS0tDQpm
cy9uYW1laS5jICAgICAgICAgICAgIHwgICAgMiArLQ0KaW5jbHVkZS9saW51eC9kY2FjaGUu
aCB8ICAxMDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
Ky0NCjMgZmlsZXMgY2hhbmdlZCwgMTE3IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygt
KQ0KDQpkaWZmIC0tZ2l0IGEvZnMvZGNhY2hlLmMgYi9mcy9kY2FjaGUuYw0KaW5kZXggZjA5
YjkwOC4uNDcwYjA2ZiAxMDA2NDQNCi0tLSBhL2ZzL2RjYWNoZS5jDQorKysgYi9mcy9kY2Fj
aGUuYw0KQEAgLTQ2Nyw3ICs0NjcsNyBAQCByZWxvY2s6DQogfQ0KDQogaWYgKHJlZikNCi1k
ZW50cnktPmRfY291bnQtLTsNCitkY291bnRfZGVjKGRlbnRyeSk7DQogLyoNCiogaW5mb3Jt
IHRoZSBmcyB2aWEgZF9wcnVuZSB0aGF0IHRoaXMgZGVudHJ5IGlzIGFib3V0IHRvIGJlDQoq
IHVuaGFzaGVkIGFuZCBkZXN0cm95ZWQuDQpAQCAtNTE1LDEwICs1MTUsMTMgQEAgdm9pZCBk
cHV0KHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCnJlcGVhdDoNCiBpZiAoZGVudHJ5LT5kX2Nv
dW50ID09IDEpDQptaWdodF9zbGVlcCgpOw0KKyBpZiAoZGNvdW50X2RlY19jbXB4Y2hnKGRl
bnRyeSkpDQorcmV0dXJuOw0KKw0KIHNwaW5fbG9jaygmZGVudHJ5LT5kX2xvY2spOw0KIEJV
R19PTighZGVudHJ5LT5kX2NvdW50KTsNCiBpZiAoZGVudHJ5LT5kX2NvdW50ID4gMSkgew0K
LWRlbnRyeS0+ZF9jb3VudC0tOw0KK2Rjb3VudF9kZWMoZGVudHJ5KTsNCnNwaW5fdW5sb2Nr
KCZkZW50cnktPmRfbG9jayk7DQpyZXR1cm47DQogfQ0KQEAgLTUzNSw3ICs1MzgsNyBAQCBy
ZXBlYXQ6DQogZGVudHJ5LT5kX2ZsYWdzIHw9IERDQUNIRV9SRUZFUkVOQ0VEOw0KIGRlbnRy
eV9scnVfYWRkKGRlbnRyeSk7DQoNCi0gZGVudHJ5LT5kX2NvdW50LS07DQorIGRjb3VudF9k
ZWMoZGVudHJ5KTsNCiBzcGluX3VubG9jaygmZGVudHJ5LT5kX2xvY2spOw0KIHJldHVybjsN
Cg0KQEAgLTYwNiwxMSArNjA5LDEzIEBAIEVYUE9SVF9TWU1CT0woZF9pbnZhbGlkYXRlKTsN
Ci8qIFRoaXMgbXVzdCBiZSBjYWxsZWQgd2l0aCBkX2xvY2sgaGVsZCAqLw0Kc3RhdGljIGlu
bGluZSB2b2lkIF9fZGdldF9kbG9jayhzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQp7DQotIGRl
bnRyeS0+ZF9jb3VudCsrOw0KKyBkY291bnRfaW5jKGRlbnRyeSk7DQp9DQoNCnN0YXRpYyBp
bmxpbmUgdm9pZCBfX2RnZXQoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0Kew0KKyBpZiAoZGNv
dW50X2luY19jbXB4Y2hnKGRlbnRyeSkpDQorcmV0dXJuOw0KIHNwaW5fbG9jaygmZGVudHJ5
LT5kX2xvY2spOw0KIF9fZGdldF9kbG9jayhkZW50cnkpOw0KIHNwaW5fdW5sb2NrKCZkZW50
cnktPmRfbG9jayk7DQpAQCAtNjIwLDIyICs2MjUsMTYgQEAgc3RydWN0IGRlbnRyeSAqZGdl
dF9wYXJlbnQoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0Kew0KIHN0cnVjdCBkZW50cnkgKnJl
dDsNCg0KLXJlcGVhdDoNCi0gLyoNCi0qIERvbid0IG5lZWQgcmN1X2RlcmVmZXJlbmNlIGJl
Y2F1c2Ugd2UgcmUtY2hlY2sgaXQgd2FzIGNvcnJlY3QgdW5kZXINCi0qIHRoZSBsb2NrLg0K
LSovDQogcmN1X3JlYWRfbG9jaygpOw0KLSByZXQgPSBkZW50cnktPmRfcGFyZW50Ow0KLSBz
cGluX2xvY2soJnJldC0+ZF9sb2NrKTsNCi0gaWYgKHVubGlrZWx5KHJldCAhPSBkZW50cnkt
PmRfcGFyZW50KSkgew0KLXNwaW5fdW5sb2NrKCZyZXQtPmRfbG9jayk7DQorIHJldCA9IHJj
dV9kZXJlZmVyZW5jZShkZW50cnktPmRfcGFyZW50KTsNCisgaWYgKGRjb3VudF9pbmNfY21w
eGNoZyhyZXQpKSB7DQpyY3VfcmVhZF91bmxvY2soKTsNCi1nb3RvIHJlcGVhdDsNCityZXR1
cm4gcmV0Ow0KIH0NCisgc3Bpbl9sb2NrKCZyZXQtPmRfbG9jayk7DQogcmN1X3JlYWRfdW5s
b2NrKCk7DQogQlVHX09OKCFyZXQtPmRfY291bnQpOw0KLSByZXQtPmRfY291bnQrKzsNCisg
ZGNvdW50X2luYyhyZXQpOw0KIHNwaW5fdW5sb2NrKCZyZXQtPmRfbG9jayk7DQogcmV0dXJu
IHJldDsNCn0NCkBAIC03NjUsNyArNzY0LDcgQEAgc3RhdGljIHZvaWQgdHJ5X3BydW5lX29u
ZV9kZW50cnkoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KIHdoaWxlIChkZW50cnkpIHsNCnNw
aW5fbG9jaygmZGVudHJ5LT5kX2xvY2spOw0KaWYgKGRlbnRyeS0+ZF9jb3VudCA+IDEpIHsN
Ci0gZGVudHJ5LT5kX2NvdW50LS07DQorIGRjb3VudF9kZWMoZGVudHJ5KTsNCiBzcGluX3Vu
bG9jaygmZGVudHJ5LT5kX2xvY2spOw0KIHJldHVybjsNCn0NCkBAIC0xOTcwLDcgKzE5Njks
NyBAQCBzdHJ1Y3QgZGVudHJ5ICpfX2RfbG9va3VwKGNvbnN0IHN0cnVjdCBkZW50cnkgKnBh
cmVudCwgY29uc3Qgc3RydWN0IHFzdHIgKm5hbWUpDQpnb3RvIG5leHQ7DQp9DQoNCi1kZW50
cnktPmRfY291bnQrKzsNCitkY291bnRfaW5jKGRlbnRyeSk7DQpmb3VuZCA9IGRlbnRyeTsN
CnNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7DQpicmVhazsNCkBAIC0yOTM3LDcgKzI5
MzYsNyBAQCByZXN1bWU6DQp9DQppZiAoIShkZW50cnktPmRfZmxhZ3MgJiBEQ0FDSEVfR0VO
T0NJREUpKSB7DQogZGVudHJ5LT5kX2ZsYWdzIHw9IERDQUNIRV9HRU5PQ0lERTsNCi0gZGVu
dHJ5LT5kX2NvdW50LS07DQorIGRjb3VudF9kZWMoZGVudHJ5KTsNCn0NCnNwaW5fdW5sb2Nr
KCZkZW50cnktPmRfbG9jayk7DQogfQ0KQEAgLTI5NDUsNyArMjk0NCw3IEBAIHJlc3VtZToN
CnN0cnVjdCBkZW50cnkgKmNoaWxkID0gdGhpc19wYXJlbnQ7DQppZiAoISh0aGlzX3BhcmVu
dC0+ZF9mbGFncyAmIERDQUNIRV9HRU5PQ0lERSkpIHsNCiB0aGlzX3BhcmVudC0+ZF9mbGFn
cyB8PSBEQ0FDSEVfR0VOT0NJREU7DQotIHRoaXNfcGFyZW50LT5kX2NvdW50LS07DQorIGRj
b3VudF9kZWModGhpc19wYXJlbnQpOw0KfQ0KdGhpc19wYXJlbnQgPSB0cnlfdG9fYXNjZW5k
KHRoaXNfcGFyZW50LCBsb2NrZWQsIHNlcSk7DQppZiAoIXRoaXNfcGFyZW50KQ0KZGlmZiAt
LWdpdCBhL2ZzL25hbWVpLmMgYi9mcy9uYW1laS5jDQppbmRleCA4NWU0MGQxLi4wM2RjYWVk
IDEwMDY0NA0KLS0tIGEvZnMvbmFtZWkuYw0KKysrIGIvZnMvbmFtZWkuYw0KQEAgLTUzNyw3
ICs1MzcsNyBAQCBzdGF0aWMgaW50IHVubGF6eV93YWxrKHN0cnVjdCBuYW1laWRhdGEgKm5k
LCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQogKi8NCkJVR19PTighSVNfUk9PVChkZW50cnkp
ICYmIGRlbnRyeS0+ZF9wYXJlbnQgIT0gcGFyZW50KTsNCkJVR19PTighcGFyZW50LT5kX2Nv
dW50KTsNCi1wYXJlbnQtPmRfY291bnQrKzsNCitkY291bnRfaW5jKHBhcmVudCk7DQpzcGlu
X3VubG9jaygmZGVudHJ5LT5kX2xvY2spOw0KIH0NCiBzcGluX3VubG9jaygmcGFyZW50LT5k
X2xvY2spOw0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZGNhY2hlLmggYi9pbmNsdWRl
L2xpbnV4L2RjYWNoZS5oDQppbmRleCAxYTZiYjgxLi45OWRhNWUyIDEwMDY0NA0KLS0tIGEv
aW5jbHVkZS9saW51eC9kY2FjaGUuaA0KKysrIGIvaW5jbHVkZS9saW51eC9kY2FjaGUuaA0K
QEAgLTI1OCw2ICsyNTgsOTkgQEAgZXh0ZXJuIGludCBoYXZlX3N1Ym1vdW50cyhzdHJ1Y3Qg
ZGVudHJ5ICopOw0KZXh0ZXJuIHZvaWQgZF9yZWhhc2goc3RydWN0IGRlbnRyeSAqKTsNCg0K
LyoqDQorICpkY291bnRfaW5jLCBkY291bnRfZGVjIC0gaW5jcmVtZW50IG9yIGRlY3JlbWVu
dCB0aGUgZGVudHJ5IHJlZmVyZW5jZQ0KKyAqY291bnQNCisgKkBkZW50cnk6IGRlbnRyeSB0
byBnZXQgYSByZWZlcmVuY2UgdG8NCisgKi8NCitzdGF0aWMgaW5saW5lIHZvaWQgZGNvdW50
X2luYyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorew0KKyNpZmRlZiAgX19IQVZFX0FSQ0hf
Q01QWENIRw0KKyBhdG9taWNfaW5jKChhdG9taWNfdCAqKSZkZW50cnktPmRfY291bnQpOw0K
KyNlbHNlDQorIGRlbnRyeS0+ZF9jb3VudCsrOw0KKyNlbmRpZg0KK30NCisNCitzdGF0aWMg
aW5saW5lIHZvaWQgZGNvdW50X2RlYyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorew0KKyNp
ZmRlZiAgX19IQVZFX0FSQ0hfQ01QWENIRw0KKyBhdG9taWNfZGVjKChhdG9taWNfdCAqKSZk
ZW50cnktPmRfY291bnQpOw0KKyNlbHNlDQorIGRlbnRyeS0+ZF9jb3VudC0tOw0KKyNlbmRp
Zg0KK30NCisNCisvKioNCisgKmRjb3VudF9pbmNfY21weGNoZyAtIGluY3JlbWVudCBkZW50
cnkgcmVmZXJlbmNlIGNvdW50IHVzaW5nIGNtcHhjaGcNCisgKkBkZW50cnk6IGRlbnRyeSB0
byBnZXQgYSByZWZlcmVuY2UgdG8NCisgKlJldHVybiA6IDAgb24gZmFpbHVyZSwgZWxzZSAx
DQorICoNCisgKk4uQi4gRm9yIGFyY2hpdGVjdHVyZXMgdGhhdCBkbyBub3QgaGF2ZSBhIGNt
cHhjaGcgaW5zdHJ1Y3Rpb24sIHRoZQ0KKyAqICAgICBzdWJzdGl0dXRlIGNvZGUgbWF5IG5v
dCBwZXJmb3JtIGJldHRlciB0aGFuIHRha2luZyB0aGUgbG9jay4NCisgKiAgICAgU28gdGhp
cyBjbXB4Y2hnIGNvZGUgcGF0aCBpcyBkaXNhYmxlZCBmb3IgdGhvc2UgY2FzZXMuDQorICov
DQorc3RhdGljIGlubGluZSBpbnQgZGNvdW50X2luY19jbXB4Y2hnKHN0cnVjdCBkZW50cnkg
KmRlbnRyeSkNCit7DQorI2lmZGVmIF9fSEFWRV9BUkNIX0NNUFhDSEcNCisgaW50IG9sZGMs
IG5ld2M7DQorDQorIGlmICgob2xkYyA9IGRlbnRyeS0+ZF9jb3VudCkgPiAxKSB7DQorLyoN
CisgKiBJZiByZWZlcmVuY2UgY291bnQgPiAxLCB3ZSBjYW4gc2FmZWx5IGluY3JlbWVudCBp
dHMNCisgKiB2YWx1ZSB1c2luZyBhdG9taWMgY21weGNoZyB3aXRob3V0IGxvY2tpbmcuIElm
IHRoZQ0KKyAqIG9wZXJhdGlvbiBmYWlscywgZmFsbCBiYWNrIHRvIHVzaW5nIHRoZSBsb2Nr
Lg0KKyAqLw0KK25ld2MgPSBvbGRjICsgMTsNCitpZiAoY21weGNoZygmZGVudHJ5LT5kX2Nv
dW50LCBvbGRjLCBuZXdjKSA9PSBvbGRjKQ0KKyByZXR1cm4gMTsNCitjcHVfcmVsYXgoKTsN
CisvKiBSZXRyeSBvbmUgbW9yZSB0aW1lICovDQoraWYgKGxpa2VseSgob2xkYyA9IEFDQ0VT
U19PTkNFKGRlbnRyeS0+ZF9jb3VudCkpID4gMSkpIHsNCisgbmV3YyA9IG9sZGMgKyAxOw0K
KyBpZiAoY21weGNoZygmZGVudHJ5LT5kX2NvdW50LCBvbGRjLCBuZXdjKSA9PSBvbGRjKQ0K
K3JldHVybiAxOw0KKyBjcHVfcmVsYXgoKTsNCit9DQorIH0NCisjZW5kaWYNCisgcmV0dXJu
IDA7DQorfQ0KKw0KKy8qKg0KKyAqZGNvdW50X2RlY19jbXB4Y2hnIC0gZGVjcmVtZW50IGRl
bnRyeSByZWZlcmVuY2UgY291bnQgdXNpbmcgY21weGNoZw0KKyAqQGRlbnRyeTogZGVudHJ5
IHRvIGdldCBhIHJlZmVyZW5jZSB0bw0KKyAqUmV0dXJuIDogMCBvbiBmYWlsdXJlLCBlbHNl
IDENCisgKi8NCitzdGF0aWMgaW5saW5lIGludCBkY291bnRfZGVjX2NtcHhjaGcoc3RydWN0
IGRlbnRyeSAqZGVudHJ5KQ0KK3sNCisjaWZkZWYgX19IQVZFX0FSQ0hfQ01QWENIRw0KKyBp
bnQgb2xkYywgbmV3YzsNCisNCisgLyoNCisqIElmIGRfY291bnQgaXMgYmlnZ2VyIHRoYW4g
Miwgd2UgY2FuIHNhZmVseSBkZWNyZW1lbnQgdGhlDQorKiByZWZlcmVuY2UgY291bnQgdXNp
bmcgYXRvbWljIGNtcHhjaGcgaW5zdHJ1Y3Rpb24gd2l0aG91dCBsb2NraW5nLg0KKyogRXZl
biBpZiBkX2xvY2sgaXMgdGFrZW4gYnkgYSB0aHJlYWQgcnVubmluZyBkcHV0KCkgd2l0aCBh
IHBhcmFsbGVsDQorKiBhdG9taWNfZGVjKCksIHRoZSByZWZlcmVuY2UgY291bnQgd29uJ3Qg
Z28gdG8gMCB3aXRob3V0IGFueW9uZQ0KKyogbm90aWNpbmcuDQorKi8NCisgaWYgKChvbGRj
ID0gZGVudHJ5LT5kX2NvdW50KSA+IDIpIHsNCituZXdjID0gb2xkYyAtIDE7DQoraWYgKGNt
cHhjaGcoJmRlbnRyeS0+ZF9jb3VudCwgb2xkYywgbmV3YykgPT0gb2xkYykNCisgcmV0dXJu
IDE7DQorY3B1X3JlbGF4KCk7DQorLyogUmV0cnkgb25lIG1vcmUgdGltZSAqLw0KK2lmIChs
aWtlbHkoKG9sZGMgPSBBQ0NFU1NfT05DRShkZW50cnktPmRfY291bnQpKSA+IDIpKSB7DQor
IG5ld2MgPSBvbGRjIC0gMTsNCisgaWYgKGNtcHhjaGcoJmRlbnRyeS0+ZF9jb3VudCwgb2xk
YywgbmV3YykgPT0gb2xkYykNCityZXR1cm4gMTsNCisgY3B1X3JlbGF4KCk7DQorfQ0KKyB9
DQorI2VuZGlmDQorIHJldHVybiAwOw0KK30NCisNCisvKioNCiAqIGRfYWRkIC0gYWRkIGRl
bnRyeSB0byBoYXNoIHF1ZXVlcw0KICogQGVudHJ5OiBkZW50cnkgdG8gYWRkDQogKiBAaW5v
ZGU6IFRoZSBpbm9kZSB0byBhdHRhY2ggdG8gdGhpcyBkZW50cnkNCkBAIC0zMTksNyArNDEy
LDcgQEAgc3RhdGljIGlubGluZSBpbnQgX19kX3JjdV90b19yZWZjb3VudChzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnksIHVuc2lnbmVkIHNlcSkNCiBhc3NlcnRfc3Bpbl9sb2NrZWQoJmRlbnRy
eS0+ZF9sb2NrKTsNCiBpZiAoIXJlYWRfc2VxY291bnRfcmV0cnkoJmRlbnRyeS0+ZF9zZXEs
IHNlcSkpIHsNCnJldCA9IDE7DQotZGVudHJ5LT5kX2NvdW50Kys7DQorZGNvdW50X2luYyhk
ZW50cnkpOw0KIH0NCg0KIHJldHVybiByZXQ7DQpAQCAtMzQwLDcgKzQzMyw2IEBAIGV4dGVy
biBjaGFyICpkZW50cnlfcGF0aF9yYXcoc3RydWN0IGRlbnRyeSAqLCBjaGFyICosIGludCk7
DQpleHRlcm4gY2hhciAqZGVudHJ5X3BhdGgoc3RydWN0IGRlbnRyeSAqLCBjaGFyICosIGlu
dCk7DQoNCi8qIEFsbG9jYXRpb24gY291bnRzLi4gKi8NCi0NCi8qKg0KICogZGdldCwgZGdl
dF9kbG9jayAtIGdldCBhIHJlZmVyZW5jZSB0byBhIGRlbnRyeQ0KICogQGRlbnRyeTogZGVu
dHJ5IHRvIGdldCBhIHJlZmVyZW5jZSB0bw0KQEAgLTM1MiwxMyArNDQ0LDE2IEBAIGV4dGVy
biBjaGFyICpkZW50cnlfcGF0aChzdHJ1Y3QgZGVudHJ5ICosIGNoYXIgKiwgaW50KTsNCnN0
YXRpYyBpbmxpbmUgc3RydWN0IGRlbnRyeSAqZGdldF9kbG9jayhzdHJ1Y3QgZGVudHJ5ICpk
ZW50cnkpDQp7DQogaWYgKGRlbnRyeSkNCi1kZW50cnktPmRfY291bnQrKzsNCitkY291bnRf
aW5jKGRlbnRyeSk7DQogcmV0dXJuIGRlbnRyeTsNCn0NCg0Kc3RhdGljIGlubGluZSBzdHJ1
Y3QgZGVudHJ5ICpkZ2V0KHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCnsNCiBpZiAoZGVudHJ5
KSB7DQoraWYgKGRjb3VudF9pbmNfY21weGNoZyhkZW50cnkpKQ0KKyByZXR1cm4gZGVudHJ5
Ow0KKw0Kc3Bpbl9sb2NrKCZkZW50cnktPmRfbG9jayk7DQpkZ2V0X2Rsb2NrKGRlbnRyeSk7
DQpzcGluX3VubG9jaygmZGVudHJ5LT5kX2xvY2spOw0KLS0gDQoxLjcuMQ0KDQotLQ0KVG8g
dW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJl
IGxpbnV4LWZzZGV2ZWwiIGluDQp0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21v
QHZnZXIua2VybmVsLm9yZw0KTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIu
a2VybmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1s



2013-05-23 20:51:54

by Waiman Long

[permalink] [raw]
Subject: Re: 回复:[PATCH 1/3 v3] dcach e: Don't take unnecessary lock in d_count update

On 05/23/2013 05:09 AM, remaper wrote:
> maybe you can use the atomic_dec_and_lock(&dentry->d_count,&dentry->d_lock) here, right ?
>
> ------------------ Origin ------------------
>> The current code takes the dentry's d_lock lock whenever the d_count
>> reference count is being updated. In reality, nothing big really
>> happens until d_count goes to 0 in dput(). So it is not necessary to
>> take the lock if the reference count won't go to 0.
Thank for the suggestion.

First of all, the d_count field is not an atomic type. Changing it to
atomic will require touching quite a large number of source files even
though that change won't change the size of the dentry. Secondly, the
function internally uses cmpxchg to do its work. There isn't any
performance advantage of using it. I also need the count to go in both
direction, not just going down.

Regards,
Longman