Thread (14 messages) 14 messages, 5 authors, 2011-12-05

RE: [PATCH][RFC] fsldma: fix performance degradation by optimizing spinlock use.

flat view

From: Shi Xuelin-B29237 <hidden>
Date: 2011-12-02 03:47:32
Also in: lkml

SGkgSXJpcywNCg0KPkknbSBjb252aW5jZWQgdGhhdCAic21wX3JtYigpIiBpcyBuZWVkZWQgd2hl
biByZW1vdmluZyB0aGUgc3BpbmxvY2suIEFzIG5vdGVkLCBEb2N1bWVudGF0aW9uL21lbW9yeS1i
YXJyaWVycy50eHQgc2F5cyB0aGF0IHN0b3JlcyBvbiBvbmUgQ1BVIGNhbiBiZQ0KPm9ic2VydmVk
IGJ5IGFub3RoZXIgQ1BVIGluIGEgZGlmZmVyZW50IG9yZGVyLg0KPlByZXZpb3VzbHksIHRoZXJl
IHdhcyBhbiBVTkxPQ0sgKGluIGZzbF9kbWFfdHhfc3VibWl0KSBmb2xsb3dlZCBieSBhIExPQ0sg
KGluIGZzbF90eF9zdGF0dXMpLiBUaGlzIHByb3ZpZGVkIGEgImZ1bGwgYmFycmllciIsIGZvcmNp
bmcgdGhlIG9wZXJhdGlvbnMgdG8gDQo+Y29tcGxldGUgY29ycmVjdGx5IHdoZW4gdmlld2VkIGJ5
IHRoZSBzZWNvbmQgQ1BVLiANCg0KSSBkbyBub3QgYWdyZWUgdGhpcyBzbXBfcm1iKCkgd29ya3Mg
aGVyZS4gQmVjYXVzZSB3aGVuIHRoaXMgc21wX3JtYigpIGV4ZWN1dGVkIGFuZCBiZWdpbiB0byBy
ZWFkIGNoYW4tPmNvbW1vbi5jb29raWUsIHlvdSBzdGlsbCBjYW5ub3QgYXZvaWQgdGhlIG9yZGVy
IGlzc3VlLiBTb21ldGhpbmcgbGlrZSBvbmUgaXMgcmVhZGluZyBvbGQgdmFsdWUsIGJ1dCBhbm90
aGVyIENQVSBpcyB1cGRhdGluZyB0aGUgbmV3IHZhbHVlLiANCg0KTXkgcG9pbnQgaXMgaGVyZSB0
aGUgb3JkZXIgaXMgbm90IGltcG9ydGFudCBmb3IgdGhlIERNQSBkZWNpc2lvbi4NCkNvbXBsZXRl
ZCBETUEgdHggaXMgZGVjaWRlZCBhcyBub3QgY29tcGxldGUgaXMgbm90IGEgYmlnIGRlYWwsIGJl
Y2F1c2UgbmV4dCB0aW1lIGl0IHdpbGwgYmUgT0suDQoNCkkgYmVsaWV2ZSB0aGVyZSBpcyBubyBj
YXNlIHRoYXQgY291bGQgY2F1c2UgdW5jb21wbGV0ZWQgRE1BIHR4IGlzIGRlY2lkZWQgYXMgY29t
cGxldGVkLCBiZWNhdXNlIHRoZSBmc2xfdHhfc3RhdHVzIGlzIGNhbGxlZCBhZnRlciBmc2xfZG1h
X3R4X3N1Ym1pdCBmb3IgYSBzcGVjaWZpYyBjb29raWUuIElmIHlvdSBjYW4gZ2l2ZSBtZSBhbiBl
eGFtcGxlIGhlcmUsIEkgd2lsbCBhZ3JlZSB3aXRoIHlvdS4NCg0KVGhhbmtzLA0KRm9ycmVzdCAN
Cg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IElyYSBXLiBTbnlkZXIgW21haWx0
bzppd3NAb3Zyby5jYWx0ZWNoLmVkdV0gDQpTZW50OiAyMDEx5bm0MTLmnIgx5pelIDE6MDgNClRv
OiBTaGkgWHVlbGluLUIyOTIzNw0KQ2M6IHZpbm9kLmtvdWxAaW50ZWwuY29tOyBkYW4uai53aWxs
aWFtc0BpbnRlbC5jb207IGxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3JnOyBsaW51eC1rZXJu
ZWxAdmdlci5rZXJuZWwub3JnOyBMaSBZYW5nLVI1ODQ3Mg0KU3ViamVjdDogUmU6IFtQQVRDSF1b
UkZDXSBmc2xkbWE6IGZpeCBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvbiBieSBvcHRpbWl6aW5nIHNw
aW5sb2NrIHVzZS4NCg0KT24gV2VkLCBOb3YgMzAsIDIwMTEgYXQgMDk6NTc6NDdBTSArMDAwMCwg
U2hpIFh1ZWxpbi1CMjkyMzcgd3JvdGU6DQo+IEhlbGxvIElyYSwNCj4gDQo+IEluIGRyaXZlcnMv
ZG1hL2RtYWVuZ2luZS5jLCB3ZSBoYXZlIGJlbG93IHRpZ2h0IGxvb3AgdG8gY2hlY2sgRE1BIGNv
bXBsZXRpb24gaW4gbWFpbmxpbmUgTGludXg6DQo+ICAgICAgICBkbyB7DQo+ICAgICAgICAgICAg
ICAgICBzdGF0dXMgPSBkbWFfYXN5bmNfaXNfdHhfY29tcGxldGUoY2hhbiwgY29va2llLCBOVUxM
LCBOVUxMKTsNCj4gICAgICAgICAgICAgICAgIGlmICh0aW1lX2FmdGVyX2VxKGppZmZpZXMsIGRt
YV9zeW5jX3dhaXRfdGltZW91dCkpIHsNCj4gICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRr
KEtFUk5fRVJSICJkbWFfc3luY193YWl0X3RpbWVvdXQhXG4iKTsNCj4gICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIERNQV9FUlJPUjsNCj4gICAgICAgICAgICAgICAgIH0NCj4gICAgICAg
ICB9IHdoaWxlIChzdGF0dXMgPT0gRE1BX0lOX1BST0dSRVNTKTsNCj4gDQoNClRoYXQgaXMgdGhl
IGJvZHkgb2YgZG1hX3N5bmNfd2FpdCgpLiBJdCBpcyBtb3N0bHkgdXNlZCBpbiB0aGUgcmFpZCBj
b2RlLg0KSSB1bmRlcnN0YW5kIHRoYXQgeW91IGRvbid0IHdhbnQgdG8gY2hhbmdlIHRoZSByYWlk
IGNvZGUgdG8gdXNlIGNhbGxiYWNrcy4NCg0KSW4gYW55IGNhc2UsIEkgdGhpbmsgd2UndmUgc3Ry
YXllZCBmcm9tIHRoZSB0b3BpYyB1bmRlciBjb25zaWRlcmF0aW9uLCB3aGljaCBpczogY2FuIHdl
IHJlbW92ZSB0aGlzIHNwaW5sb2NrIHdpdGhvdXQgaW50cm9kdWNpbmcgYSBidWcuDQoNCkknbSBj
b252aW5jZWQgdGhhdCAic21wX3JtYigpIiBpcyBuZWVkZWQgd2hlbiByZW1vdmluZyB0aGUgc3Bp
bmxvY2suIEFzIG5vdGVkLCBEb2N1bWVudGF0aW9uL21lbW9yeS1iYXJyaWVycy50eHQgc2F5cyB0
aGF0IHN0b3JlcyBvbiBvbmUgQ1BVIGNhbiBiZSBvYnNlcnZlZCBieSBhbm90aGVyIENQVSBpbiBh
IGRpZmZlcmVudCBvcmRlci4NCg0KUHJldmlvdXNseSwgdGhlcmUgd2FzIGFuIFVOTE9DSyAoaW4g
ZnNsX2RtYV90eF9zdWJtaXQpIGZvbGxvd2VkIGJ5IGEgTE9DSyAoaW4gZnNsX3R4X3N0YXR1cyku
IFRoaXMgcHJvdmlkZWQgYSAiZnVsbCBiYXJyaWVyIiwgZm9yY2luZyB0aGUgb3BlcmF0aW9ucyB0
byBjb21wbGV0ZSBjb3JyZWN0bHkgd2hlbiB2aWV3ZWQgYnkgdGhlIHNlY29uZCBDUFUuIEZyb20g
dGhlDQp0ZXh0Og0KDQo+IFRoZXJlZm9yZSwgZnJvbSAoMSksICgyKSBhbmQgKDQpIGFuIFVOTE9D
SyBmb2xsb3dlZCBieSBhbiANCj4gdW5jb25kaXRpb25hbCBMT0NLIGlzIGVxdWl2YWxlbnQgdG8g
YSBmdWxsIGJhcnJpZXIsIGJ1dCBhIExPQ0sgZm9sbG93ZWQgYnkgYW4gVU5MT0NLIGlzIG5vdC4N
Cg0KQWxzbywgcGxlYXNlIHJlYWQgIkVYQU1QTEVTIE9GIE1FTU9SWSBCQVJSSUVSIFNFUVVFTkNF
UyIgYW5kICJJTlRFUi1DUFUgTE9DS0lORyBCQVJSSUVSIEVGRkVDVFMiLiBQYXJ0aWN1bGFybHks
IGluICJFWEFNUExFUyBPRiBNRU1PUlkgQkFSUklFUiBTRVFVRU5DRVMiLCB0aGUgdGV4dCBub3Rl
czoNCg0KPiBXaXRob3V0IGludGVydmVudGlvbiwgQ1BVIDIgbWF5IHBlcmNlaXZlIHRoZSBldmVu
dHMgb24gQ1BVIDEgaW4gc29tZSANCj4gZWZmZWN0aXZlbHkgcmFuZG9tIG9yZGVyLCBkZXNwaXRl
IHRoZSB3cml0ZSBiYXJyaWVyIGlzc3VlZCBieSBDUFUgMToNCj4NCj4gW3NuaXAgZGlhZ3JhbV0N
Cj4NCj4gQW5kIHRoaXJkbHksIGEgcmVhZCBiYXJyaWVyIGFjdHMgYXMgYSBwYXJ0aWFsIG9yZGVy
IG9uIGxvYWRzLiBDb25zaWRlciANCj4gdGhlIGZvbGxvd2luZyBzZXF1ZW5jZSBvZiBldmVudHM6
DQo+DQo+IFtzbmlwIGRpYWdyYW1dDQo+DQo+IFdpdGhvdXQgaW50ZXJ2ZW50aW9uLCBDUFUgMiBt
YXkgdGhlbiBjaG9vc2UgdG8gcGVyY2VpdmUgdGhlIGV2ZW50cyBvbiANCj4gQ1BVIDEgaW4gc29t
ZSBlZmZlY3RpdmVseSByYW5kb20gb3JkZXIsIGRlc3BpdGUgdGhlIHdyaXRlIGJhcnJpZXIgaXNz
dWVkIGJ5IENQVSAxOg0KPg0KPiBbc25pcCBkaWFncmFtXQ0KPg0KDQpBbmQgc28gb24uIFBsZWFz
ZSByZWFkIHRoaXMgZW50aXJlIHNlY3Rpb24gaW4gdGhlIGRvY3VtZW50Lg0KDQpJIGNhbid0IGdp
dmUgeW91IGFuIEFDSyBvbiB0aGUgcHJvcG9zZWQgcGF0Y2guIFRvIHRoZSBiZXN0IG9mIG15IHVu
ZGVyc3RhbmRpbmcsIEkgYmVsaWV2ZSBpdCBpbnRyb2R1Y2VzIGEgYnVnLiBJJ3ZlIHRyaWVkIHRv
IHByb3ZpZGUgYXMgbXVjaCBldmlkZW5jZSBmb3IgdGhpcyBiZWxpZWYgYXMgSSBjYW4sIGluIHRo
ZSBmb3JtIG9mIGRvY3VtZW50YXRpb24gaW4gdGhlIGtlcm5lbCBzb3VyY2UgdHJlZS4gSWYgeW91
IGNhbiBjaXRlIHNvbWUgZG9jdW1lbnRhdGlvbiB0aGF0IHNob3dzIEkgYW0gd3JvbmcsIEkgd2ls
bCBoYXBwaWx5IGNoYW5nZSBteSBtaW5kIQ0KDQpJcmENCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3Nh
Z2UtLS0tLQ0KPiBGcm9tOiBJcmEgVy4gU255ZGVyIFttYWlsdG86aXdzQG92cm8uY2FsdGVjaC5l
ZHVdDQo+IFNlbnQ6IDIwMTHlubQxMeaciDMw5pelIDE6MjYNCj4gVG86IExpIFlhbmctUjU4NDcy
DQo+IENjOiBTaGkgWHVlbGluLUIyOTIzNzsgdmlub2Qua291bEBpbnRlbC5jb207IGRhbi5qLndp
bGxpYW1zQGludGVsLmNvbTsgDQo+IGxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3JnOyBsaW51
eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdW1JGQ10gZnNs
ZG1hOiBmaXggcGVyZm9ybWFuY2UgZGVncmFkYXRpb24gYnkgb3B0aW1pemluZyBzcGlubG9jayB1
c2UuDQo+IA0KPiBPbiBUdWUsIE5vdiAyOSwgMjAxMSBhdCAwMzoxOTowNUFNICswMDAwLCBMaSBZ
YW5nLVI1ODQ3MiB3cm90ZToNCj4gPiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdW1JGQ10gZnNsZG1h
OiBmaXggcGVyZm9ybWFuY2UgZGVncmFkYXRpb24gYnkgDQo+ID4gPiBvcHRpbWl6aW5nIHNwaW5s
b2NrIHVzZS4NCj4gPiA+IA0KPiA+ID4gT24gVGh1LCBOb3YgMjQsIDIwMTEgYXQgMDg6MTI6MjVB
TSArMDAwMCwgU2hpIFh1ZWxpbi1CMjkyMzcgd3JvdGU6DQo+ID4gPiA+IEhpIElyYSwNCj4gPiA+
ID4NCj4gPiA+ID4gVGhhbmtzIGZvciB5b3VyIHJldmlldy4NCj4gPiA+ID4NCj4gPiA+ID4gQWZ0
ZXIgc2Vjb25kIHRob3VnaHQsIEkgdGhpbmsgeW91ciBzY2VuYXJpbyBtYXkgbm90IG9jY3VyLg0K
PiA+ID4gPiBCZWNhdXNlIHRoZSBjb29raWUgMjAgd2UgcXVlcnkgbXVzdCBiZSByZXR1cm5lZCBi
eQ0KPiA+ID4gPiBmc2xfZG1hX3R4X3N1Ym1pdCguLi4pIGluDQo+ID4gPiBwcmFjdGljZS4NCj4g
PiA+ID4gV2UgbmV2ZXIgcXVlcnkgYSBjb29raWUgbm90IHJldHVybmVkIGJ5IGZzbF9kbWFfdHhf
c3VibWl0KC4uLikuDQo+ID4gPiA+DQo+ID4gPiANCj4gPiA+IEkgYWdyZWUgYWJvdXQgdGhpcyBw
YXJ0Lg0KPiA+ID4gDQo+ID4gPiA+IFdoZW4gd2UgY2FsbCBmc2xfdHhfc3RhdHVzKDIwKSwgdGhl
IGNoYW4tPmNvbW1vbi5jb29raWUgaXMgDQo+ID4gPiA+IGRlZmluaXRlbHkgd3JvdGUgYXMNCj4g
PiA+IDIwIGFuZCBjcHUyIGNvdWxkIG5vdCByZWFkIGFzIDE5Lg0KPiA+ID4gPg0KPiA+ID4gDQo+
ID4gPiBUaGlzIGlzIHdoYXQgSSBkb24ndCBhZ3JlZSBhYm91dC4gSG93ZXZlciwgSSdtIG5vdCBh
biBleHBlcnQgb24gQ1BVIGNhY2hlIHZzLg0KPiA+ID4gbWVtb3J5IGFjY2Vzc2VzIGluIGFuIG11
bHRpLXByb2Nlc3NvciBzeXN0ZW0uIFRoZSBzZWN0aW9uIHRpdGxlZCANCj4gPiA+ICJDQUNIRSBD
T0hFUkVOQ1kiIGluIERvY3VtZW50YXRpb24vbWVtb3J5LWJhcnJpZXJzLnR4dCBsZWFkcyBtZSB0
byANCj4gPiA+IGJlbGlldmUgdGhhdCB0aGUgc2NlbmFyaW8gSSBkZXNjcmliZWQgaXMgcG9zc2li
bGUuDQo+ID4gDQo+ID4gRm9yIEZyZWVzY2FsZSBQb3dlclBDLCB0aGUgY2hpcCBhdXRvbWF0aWNh
bGx5IHRha2VzIGNhcmUgb2YgY2FjaGUgY29oZXJlbmN5LiAgRXZlbiBpZiB0aGlzIGlzIGEgY29u
Y2Vybiwgc3BpbmxvY2sgY2FuJ3QgYWRkcmVzcyBpdC4NCj4gPiANCj4gPiA+IA0KPiA+ID4gV2hh
dCBoYXBwZW5zIGlmIENQVTEncyB3cml0ZSBvZiBjaGFuLT5jb21tb24uY29va2llIG9ubHkgZ29l
cyBpbnRvIA0KPiA+ID4gQ1BVMSdzIGNhY2hlLiBJdCBuZXZlciBtYWtlcyBpdCB0byBtYWluIG1l
bW9yeSBiZWZvcmUgQ1BVMiBmZXRjaGVzIHRoZSBvbGQgdmFsdWUgb2YgMTkuDQo+ID4gPiANCj4g
PiA+IEkgZG9uJ3QgdGhpbmsgeW91IHNob3VsZCBzZWUgYW55IHBlcmZvcm1hbmNlIGltcGFjdCBm
cm9tIHRoZQ0KPiA+ID4gc21wX21iKCkgb3BlcmF0aW9uLg0KPiA+IA0KPiA+IFNtcF9tYigpIGRv
IGhhdmUgaW1wYWN0IG9uIHBlcmZvcm1hbmNlIGlmIGl0J3MgaW4gdGhlIGhvdCBwYXRoLiAgV2hp
bGUgaXQgbWlnaHQgYmUgc2FmZXIgaGF2aW5nIGl0LCBJIGRvdWJ0IGl0IGlzIHJlYWxseSBuZWNl
c3NhcnkuICBJZiB0aGUgQ1BVMSBkb2Vzbid0IGhhdmUgdGhlIHVwZGF0ZWQgbGFzdF91c2VkLCBp
dCdzIHNob3VsZG4ndCBoYXZlIGtub3duIHRoZXJlIGlzIGEgY29va2llIDIwIGV4aXN0ZWQgZWl0
aGVyLg0KPiA+IA0KPiANCj4gSSBiZWxpZXZlIHRoYXQgeW91IGFyZSBjb3JyZWN0LCBmb3IgcG93
ZXJwYy4gSG93ZXZlciwgYW55dGhpbmcgb3V0c2lkZSBvZiBhcmNoL3Bvd2VycGMgc2hvdWxkbid0
IGFzc3VtZSBpdCBvbmx5IHJ1bnMgb24gcG93ZXJwYy4gSSB3b3VsZG4ndCBiZSBzdXJwcmlzZWQg
dG8gc2VlIGZzbGRtYSBydW5uaW5nIG9uIGFuIGlNWCBzb21lZGF5IChBUk0gcHJvY2Vzc29yKS4N
Cj4gDQo+IE15IGludGVycHJldGF0aW9uIHNheXMgdGhhdCB0aGUgY2hhbmdlIGludHJvZHVjZXMg
dGhlIHBvc3NpYmlsaXR5IHRoYXQNCj4gZnNsX3R4X3N0YXR1cygpIHJldHVybnMgdGhlIHdyb25n
IGFuc3dlciBmb3IgYW4gZXh0cmVtZWx5IHNtYWxsIHRpbWUgd2luZG93LCBvbiBTTVAgb25seSwg
YmFzZWQgb24gRG9jdW1lbnRhdGlvbi9tZW1vcnktYmFycmllcnMudHh0LiBCdXQgSSBjYW4ndCBz
ZWVtIGNvbnZpbmNlIHlvdS4NCj4gDQo+IE15IHJlYWwgcXVlc3Rpb24gaXMgd2hhdCBjb2RlIHBh
dGggaXMgaGl0dGluZyB0aGlzIHNwaW5sb2NrPyBJcyBpdCBpbiBtYWlubGluZSBMaW51eD8gV2h5
IGlzIGl0IHBvbGxpbmcgcmF0aGVyIHRoYW4gdXNpbmcgY2FsbGJhY2tzIHRvIGRldGVybWluZSBE
TUEgY29tcGxldGlvbj8NCj4gDQo+IFRoYW5rcywNCj4gSXJhDQo+IA0KPiA+ID4gPiAtLS0tLU9y
aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiBGcm9tOiBJcmEgVy4gU255ZGVyIFttYWlsdG86
aXdzQG92cm8uY2FsdGVjaC5lZHVdDQo+ID4gPiA+IFNlbnQ6IDIwMTHlubQxMeaciDIz5pelIDI6
NTkNCj4gPiA+ID4gVG86IFNoaSBYdWVsaW4tQjI5MjM3DQo+ID4gPiA+IENjOiBkYW4uai53aWxs
aWFtc0BpbnRlbC5jb207IExpIFlhbmctUjU4NDcyOyB6d0B6aC1rZXJuZWwub3JnOyANCj4gPiA+
ID4gdmlub2Qua291bEBpbnRlbC5jb207IGxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3JnOyAN
Cj4gPiA+ID4gbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZw0KPiA+ID4gPiBTdWJqZWN0OiBS
ZTogW1BBVENIXVtSRkNdIGZzbGRtYTogZml4IHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uIGJ5IA0K
PiA+ID4gPiBvcHRpbWl6aW5nDQo+ID4gPiBzcGlubG9jayB1c2UuDQo+ID4gPiA+DQo+ID4gPiA+
IE9uIFR1ZSwgTm92IDIyLCAyMDExIGF0IDEyOjU1OjA1UE0gKzA4MDAsIGIyOTIzN0BmcmVlc2Nh
bGUuY29tIHdyb3RlOg0KPiA+ID4gPiA+IEZyb206IEZvcnJlc3QgU2hpIDxiMjkyMzdAZnJlZXNj
YWxlLmNvbT4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgICBkbWEgc3RhdHVzIGNoZWNrIGZ1bmN0
aW9uIGZzbF90eF9zdGF0dXMgaXMgaGVhdmlseSBjYWxsZWQgaW4NCj4gPiA+ID4gPiAgICAgYSB0
aWdodCBsb29wIGFuZCB0aGUgZGVzYyBsb2NrIGluIGZzbF90eF9zdGF0dXMgY29udGVuZGVkIGJ5
DQo+ID4gPiA+ID4gICAgIHRoZSBkbWEgc3RhdHVzIHVwZGF0ZSBmdW5jdGlvbi4gdGhpcyBjYXVz
ZWQgdGhlIGRtYSBwZXJmb3JtYW5jZQ0KPiA+ID4gPiA+ICAgICBkZWdyYWRlcyBtdWNoLg0KPiA+
ID4gPiA+DQo+ID4gPiA+ID4gICAgIHRoaXMgcGF0Y2ggcmVsZWFzZXMgdGhlIGxvY2sgaW4gdGhl
IGZzbF90eF9zdGF0dXMgZnVuY3Rpb24uDQo+ID4gPiA+ID4gICAgIEkgYmVsaWV2ZSBpdCBoYXMg
bm8gbmVnbGVjdCBpbXBhY3Qgb24gdGhlIGZvbGxvd2luZyBjYWxsIG9mDQo+ID4gPiA+ID4gICAg
IGRtYV9hc3luY19pc19jb21wbGV0ZSguLi4pLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAgIHdl
IGNhbiBzZWUgYmVsb3cgdGhyZWUgY29uZGl0aW9ucyB3aWxsIGJlIGlkZW50aWZpZWQgYXMgc3Vj
Y2Vzcw0KPiA+ID4gPiA+ICAgICBhKSAgeCA8IGNvbXBsZXRlIDwgdXNlDQo+ID4gPiA+ID4gICAg
IGIpICB4IDwgY29tcGxldGUrTiA8IHVzZStODQo+ID4gPiA+ID4gICAgIGMpICB4IDwgY29tcGxl
dGUgPCB1c2UrTg0KPiA+ID4gPiA+ICAgICBoZXJlIGNvbXBsZXRlIGlzIHRoZSBjb21wbGV0ZWRf
Y29va2llLCB1c2UgaXMgdGhlIGxhc3RfdXNlZA0KPiA+ID4gPiA+ICAgICBjb29raWUsIHggaXMg
dGhlIHF1ZXJ5aW5nIGNvb2tpZSwgTiBpcyBNQVggY29va2llDQo+ID4gPiA+ID4NCj4gPiA+ID4g
PiAgICAgd2hlbiBjaGFuLT5jb21wbGV0ZWRfY29va2llIGlzIGJlaW5nIHJlYWQsIHRoZSBsYXN0
X3VzZWQgbWF5DQo+ID4gPiA+ID4gICAgIGJlIGluY3Jlc2VkLiBBbnl3YXkgaXQgaGFzIG5vIG5l
Z2xlY3QgaW1wYWN0IG9uIHRoZSBkbWEgc3RhdHVzDQo+ID4gPiA+ID4gICAgIGRlY2lzaW9uLg0K
PiA+ID4gPiA+DQo+ID4gPiA+ID4gICAgIFNpZ25lZC1vZmYtYnk6IEZvcnJlc3QgU2hpIDx4dWVs
aW4uc2hpQGZyZWVzY2FsZS5jb20+DQo+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gIGRyaXZlcnMv
ZG1hL2ZzbGRtYS5jIHwgICAgNSAtLS0tLQ0KPiA+ID4gPiA+ICAxIGZpbGVzIGNoYW5nZWQsIDAg
aW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IGRpZmYg
LS1naXQgYS9kcml2ZXJzL2RtYS9mc2xkbWEuYyBiL2RyaXZlcnMvZG1hL2ZzbGRtYS5jIGluZGV4
IA0KPiA+ID4gPiA+IDhhNzgxNTQuLjFkY2E1NmYgMTAwNjQ0DQo+ID4gPiA+ID4gLS0tIGEvZHJp
dmVycy9kbWEvZnNsZG1hLmMNCj4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2RtYS9mc2xkbWEuYw0K
PiA+ID4gPiA+IEBAIC05ODYsMTUgKzk4NiwxMCBAQCBzdGF0aWMgZW51bSBkbWFfc3RhdHVzIA0K
PiA+ID4gPiA+IGZzbF90eF9zdGF0dXMoc3RydWN0DQo+ID4gPiBkbWFfY2hhbiAqZGNoYW4sDQo+
ID4gPiA+ID4gIAlzdHJ1Y3QgZnNsZG1hX2NoYW4gKmNoYW4gPSB0b19mc2xfY2hhbihkY2hhbik7
DQo+ID4gPiA+ID4gIAlkbWFfY29va2llX3QgbGFzdF9jb21wbGV0ZTsNCj4gPiA+ID4gPiAgCWRt
YV9jb29raWVfdCBsYXN0X3VzZWQ7DQo+ID4gPiA+ID4gLQl1bnNpZ25lZCBsb25nIGZsYWdzOw0K
PiA+ID4gPiA+IC0NCj4gPiA+ID4gPiAtCXNwaW5fbG9ja19pcnFzYXZlKCZjaGFuLT5kZXNjX2xv
Y2ssIGZsYWdzKTsNCj4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBUaGlzIHdpbGwgY2F1c2Ug
YSBidWcuIFNlZSBiZWxvdyBmb3IgYSBkZXRhaWxlZCBleHBsYW5hdGlvbi4gWW91IG5lZWQgdGhp
cyBpbnN0ZWFkOg0KPiA+ID4gPg0KPiA+ID4gPiAJLyoNCj4gPiA+ID4gCSAqIE9uIGFuIFNNUCBz
eXN0ZW0sIHdlIG11c3QgZW5zdXJlIHRoYXQgdGhpcyBDUFUgaGFzIHNlZW4gdGhlDQo+ID4gPiA+
IAkgKiBtZW1vcnkgYWNjZXNzZXMgcGVyZm9ybWVkIGJ5IGFub3RoZXIgQ1BVIHVuZGVyIHRoZQ0K
PiA+ID4gPiAJICogY2hhbi0+ZGVzY19sb2NrIHNwaW5sb2NrLg0KPiA+ID4gPiAJICovDQo+ID4g
PiA+IAlzbXBfbWIoKTsNCj4gPiA+ID4gPiAgCWxhc3RfY29tcGxldGUgPSBjaGFuLT5jb21wbGV0
ZWRfY29va2llOw0KPiA+ID4gPiA+ICAJbGFzdF91c2VkID0gZGNoYW4tPmNvb2tpZTsNCj4gPiA+
ID4gPg0KPiA+ID4gPiA+IC0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hhbi0+ZGVzY19sb2Nr
LCBmbGFncyk7DQo+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ICAJZG1hX3NldF90eF9zdGF0ZSh0eHN0
YXRlLCBsYXN0X2NvbXBsZXRlLCBsYXN0X3VzZWQsIDApOw0KPiA+ID4gPiA+ICAJcmV0dXJuIGRt
YV9hc3luY19pc19jb21wbGV0ZShjb29raWUsIGxhc3RfY29tcGxldGUsIA0KPiA+ID4gPiA+IGxh
c3RfdXNlZCk7ICB9DQo+ID4gPiA+DQo+ID4gPiA+IEZhY3RzOg0KPiA+ID4gPiAtIGRjaGFuLT5j
b29raWUgaXMgdGhlIHNhbWUgbWVtYmVyIGFzIGNoYW4tPmNvbW1vbi5jb29raWUgKHNhbWUgDQo+
ID4gPiA+IG1lbW9yeQ0KPiA+ID4gPiBsb2NhdGlvbikNCj4gPiA+ID4gLSBjaGFuLT5jb21tb24u
Y29va2llIGlzIHRoZSAibGFzdCBhbGxvY2F0ZWQgY29va2llIGZvciBhIHBlbmRpbmcgdHJhbnNh
Y3Rpb24iDQo+ID4gPiA+IC0gY2hhbi0+Y29tcGxldGVkX2Nvb2tpZSBpcyB0aGUgImxhc3QgY29t
cGxldGVkIHRyYW5zYWN0aW9uIg0KPiA+ID4gPg0KPiA+ID4gPiBJIGhhdmUgcmVwbGFjZWQgImRj
aGFuLT5jb29raWUiIHdpdGggImNoYW4tPmNvbW1vbi5jb29raWUiIGluIA0KPiA+ID4gPiB0aGUg
YmVsb3cNCj4gPiA+IGV4cGxhbmF0aW9uLCB0byBrZWVwIGV2ZXJ5dGhpbmcgcmVmZXJlbmNlZCBm
cm9tIHRoZSBzYW1lIHN0cnVjdHVyZS4NCj4gPiA+ID4NCj4gPiA+ID4gVmFyaWFibGUgdXNhZ2Ug
YmVmb3JlIHlvdXIgY2hhbmdlLiBFdmVyeXRoaW5nIGlzIHVzZWQgbG9ja2VkLg0KPiA+ID4gPiAt
IFJXIGNoYW4tPmNvbW1vbi5jb29raWUJCShmc2xfZG1hX3R4X3N1Ym1pdCkNCj4gPiA+ID4gLSBS
ICBjaGFuLT5jb21tb24uY29va2llCQkoZnNsX3R4X3N0YXR1cykNCj4gPiA+ID4gLSBSICBjaGFu
LT5jb21wbGV0ZWRfY29va2llCQkoZnNsX3R4X3N0YXR1cykNCj4gPiA+ID4gLSBXICBjaGFuLT5j
b21wbGV0ZWRfY29va2llCQkoZG1hX2RvX3Rhc2tsZXQpDQo+ID4gPiA+DQo+ID4gPiA+IFZhcmlh
YmxlIHVzYWdlIGFmdGVyIHlvdXIgY2hhbmdlOg0KPiA+ID4gPiAtIFJXIGNoYW4tPmNvbW1vbi5j
b29raWUJCUxPQ0tFRA0KPiA+ID4gPiAtIFIgIGNoYW4tPmNvbW1vbi5jb29raWUJCU5PIExPQ0sN
Cj4gPiA+ID4gLSBSICBjaGFuLT5jb21wbGV0ZWRfY29va2llCQlOTyBMT0NLDQo+ID4gPiA+IC0g
VyAgY2hhbi0+Y29tcGxldGVkX2Nvb2tpZSAgICAgICAgICAgICBMT0NLRUQNCj4gPiA+ID4NCj4g
PiA+ID4gV2hhdCBpZiB3ZSBhc3N1bWUgdGhhdCB5b3UgaGF2ZSBhIDIgQ1BVIHN5c3RlbSAoc3Vj
aCBhcyBhIFAyMDIwKS4gDQo+ID4gPiA+IEFmdGVyIHlvdXINCj4gPiA+IGNoYW5nZXMsIG9uZSBw
b3NzaWJsZSBzZXF1ZW5jZSBpczoNCj4gPiA+ID4NCj4gPiA+ID4gPT09IENQVTEgLSBhbGxvY2F0
ZSArIHN1Ym1pdCBkZXNjcmlwdG9yOiBmc2xfZG1hX3R4X3N1Ym1pdCgpID09PSANCj4gPiA+ID4g
c3Bpbl9sb2NrX2lycXNhdmUNCj4gPiA+ID4gZGVzY3JpcHRvci0+Y29va2llID0gMjAJCSh4IGlu
IHlvdXIgZXhhbXBsZSkNCj4gPiA+ID4gY2hhbi0+Y29tbW9uLmNvb2tpZSA9IDIwCSh1c2VkIGlu
IHlvdXIgZXhhbXBsZSkNCj4gPiA+ID4gc3Bpbl91bmxvY2tfaXJxcmVzdG9yZQ0KPiA+ID4gPg0K
PiA+ID4gPiA9PT0gQ1BVMiAtIGltbWVkaWF0ZWx5IGNhbGxzIGZzbF90eF9zdGF0dXMoKSA9PT0N
Cj4gPiA+ID4gY2hhbi0+Y29tbW9uLmNvb2tpZSA9PSAxOQ0KPiA+ID4gPiBjaGFuLT5jb21wbGV0
ZWRfY29va2llID09IDE5DQo+ID4gPiA+IGRlc2NyaXB0b3ItPmNvb2tpZSA9PSAyMA0KPiA+ID4g
Pg0KPiA+ID4gPiBTaW5jZSB3ZSBkb24ndCBoYXZlIGxvY2tzIGFueW1vcmUsIENQVTIgbWF5IG5v
dCBoYXZlIHNlZW4gdGhlIA0KPiA+ID4gPiB3cml0ZSB0bw0KPiA+ID4gPiBjaGFuLT5jb21tb24u
Y29va2llIHlldC4NCj4gPiA+ID4NCj4gPiA+ID4gQWxzbyBhc3N1bWUgdGhhdCB0aGUgRE1BIGhh
cmR3YXJlIGhhcyBub3Qgc3RhcnRlZCBwcm9jZXNzaW5nIHRoZSANCj4gPiA+ID4gdHJhbnNhY3Rp
b24geWV0LiBUaGVyZWZvcmUgZG1hX2RvX3Rhc2tsZXQoKSBoYXMgbm90IGJlZW4gY2FsbGVkLCAN
Cj4gPiA+ID4gYW5kDQo+ID4gPiA+IGNoYW4tPmNvbXBsZXRlZF9jb29raWUgaGFzIG5vdCBiZWVu
IHVwZGF0ZWQuDQo+ID4gPiA+DQo+ID4gPiA+IEluIHRoaXMgY2FzZSwgZG1hX2FzeW5jX2lzX2Nv
bXBsZXRlKCkgKG9uIENQVTIpIHJldHVybnMgDQo+ID4gPiA+IERNQV9TVUNDRVNTLCBldmVuDQo+
ID4gPiB0aG91Z2ggdGhlIERNQSBvcGVyYXRpb24gaGFzIG5vdCBzdWNjZWVkZWQuIFRoZSBETUEg
b3BlcmF0aW9uIGhhcyANCj4gPiA+IG5vdCBldmVuIHN0YXJ0ZWQgeWV0IQ0KPiA+ID4gPg0KPiA+
ID4gPiBUaGUgc21wX21iKCkgZml4ZXMgdGhpcywgc2luY2UgaXQgZm9yY2VzIENQVTIgdG8gaGF2
ZSBzZWVuIGFsbCANCj4gPiA+ID4gbWVtb3J5IG9wZXJhdGlvbnMNCj4gPiA+IHRoYXQgaGFwcGVu
ZWQgYmVmb3JlIENQVTEgcmVsZWFzZWQgdGhlIHNwaW5sb2NrLiBTcGlubG9ja3MgYXJlIA0KPiA+
ID4gaW1wbGljaXQgU01QIG1lbW9yeSBiYXJyaWVycy4NCj4gPiA+ID4NCj4gPiA+ID4gVGhlcmVm
b3JlLCB0aGUgYWJvdmUgZXhhbXBsZSBiZWNvbWVzOg0KPiA+ID4gPiBzbXBfbWIoKTsNCj4gPiA+
ID4gY2hhbi0+Y29tbW9uLmNvb2tpZSA9PSAyMA0KPiA+ID4gPiBjaGFuLT5jb21wbGV0ZWRfY29v
a2llID09IDE5DQo+ID4gPiA+IGRlc2NyaXB0b3ItPmNvb2tpZSA9PSAyMA0KPiA+ID4gPg0KPiA+
ID4gPiBUaGVuIGRtYV9hc3luY19pc19jb21wbGV0ZSgpIHJldHVybnMgRE1BX0lOX1BST0dSRVNT
LCB3aGljaCBpcyBjb3JyZWN0Lg0KPiA+ID4gPg0KPiA+ID4gPiBUaGFua3MsDQo+ID4gPiA+IEly
YQ0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXw0KPiA+ID4gPiBMaW51eHBwYy1kZXYgbWFpbGluZyBsaXN0DQo+
ID4gPiA+IExpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3JnDQo+ID4gPiA+IGh0dHBzOi8vbGlz
dHMub3psYWJzLm9yZy9saXN0aW5mby9saW51eHBwYy1kZXYNCj4gPiANCj4gDQoNCg==
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help