[OpenAFS-devel] Patch to implement default tuning proposal discussed a while ago

Niklas Edmundsson Niklas.Edmundsson@hpc2n.umu.se
Tue, 16 Aug 2005 15:56:06 +0200 (MEST)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

---559023410-1144747756-1124200566=:4174
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed

On Tue, 16 Aug 2005, Jim Rees wrote:

> I'd like to see a new patch with the "max" typo fixed.  I can fix the style
> myself.

Attached.

>  I would also like to see an indication that someone other than me
> and Niklas have tried the patch, especially those of you with giant caches
> or who have had trouble with the defaults.

Remember to disable the tuning stuff in the startup script(s). With 
this patch applied you can actually use -verbose to get an idea of 
what tuning options afsd decides on (previously -verbose printed a lot 
of debug info), so OPTIONS="-verbose" should be suitable for testing 
purposes.

>  After that I intend to commit
> the patch, so if anyone objects please speak up now.
>
> This is an opportunity for some of you to show that you are willing to do
> something other than complain.
>
> And thank you very much Niklas for doing this.

Well, I had to do something useful at the Hackathon other than 
debugging AIX stuff ;)

/Nikke
-- 
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  Niklas Edmundsson, Admin @ {acc,hpc2n}.umu.se     |    nikke@hpc2n.umu.se
---------------------------------------------------------------------------
  Vaporware 3.2: The next best thing to the real thing!
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
---559023410-1144747756-1124200566=:4174
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=openafs-afsd-defaulttuning.2.patch
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.4.62.0508161556060.4174@khan.acc.umu.se>
Content-Description: 
Content-Disposition: attachment; filename=openafs-afsd-defaulttuning.2.patch

SW5kZXg6IHNyYy9hZnMvYWZzX2NodW5rLmMNCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NClJDUyBmaWxlOiAvY3ZzL29wZW5hZnMvc3JjL2Fmcy9hZnNfY2h1
bmsuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNg0KZGlmZiAtdSAtcjEu
NiBhZnNfY2h1bmsuYw0KLS0tIHNyYy9hZnMvYWZzX2NodW5rLmMJMTUgSnVs
IDIwMDMgMjM6MTQ6MTEgLTAwMDAJMS42DQorKysgc3JjL2Fmcy9hZnNfY2h1
bmsuYwk5IEF1ZyAyMDA1IDEzOjQwOjUwIC0wMDAwDQpAQCAtMjIsOTIgKzIy
LDggQEANCiAgKiBDaHVuayBtb2R1bGUuDQogICovDQogDQotYWZzX2ludDMy
IGFmc19GaXJzdENTaXplID0gQUZTX0RFRkFVTFRDU0laRTsNCi1hZnNfaW50
MzIgYWZzX090aGVyQ1NpemUgPSBBRlNfREVGQVVMVENTSVpFOw0KLWFmc19p
bnQzMiBhZnNfTG9nQ2h1bmsgPSBBRlNfREVGQVVMVExTSVpFOw0KLQ0KLSNp
ZmRlZiBub3RkZWYNCi1pbnQNCi1hZnNfQ2h1bmtPZmZzZXQob2Zmc2V0KQ0K
LSAgICAgYWZzX2ludDMyIG9mZnNldDsNCi17DQotDQotICAgIEFGU19TVEFU
Q05UKGFmc19DaHVua09mZnNldCk7DQotICAgIGlmIChvZmZzZXQgPCBhZnNf
Rmlyc3RDU2l6ZSkNCi0JcmV0dXJuIG9mZnNldDsNCi0gICAgZWxzZQ0KLQly
ZXR1cm4gKChvZmZzZXQgLSBhZnNfRmlyc3RDU2l6ZSkgJiAoYWZzX090aGVy
Q1NpemUgLSAxKSk7DQotfQ0KLQ0KLQ0KLWludA0KLWFmc19DaHVuayhvZmZz
ZXQpDQotICAgICBhZnNfaW50MzIgb2Zmc2V0Ow0KLXsNCi0gICAgQUZTX1NU
QVRDTlQoYWZzX0NodW5rKTsNCi0gICAgaWYgKG9mZnNldCA8IGFmc19GaXJz
dENTaXplKQ0KLQlyZXR1cm4gMDsNCi0gICAgZWxzZQ0KLQlyZXR1cm4gKCgo
b2Zmc2V0IC0gYWZzX0ZpcnN0Q1NpemUpID4+IGFmc19Mb2dDaHVuaykgKyAx
KTsNCi19DQotDQotDQotaW50DQotYWZzX0NodW5rQmFzZShvZmZzZXQpDQot
ICAgICBpbnQgb2Zmc2V0Ow0KLXsNCi0gICAgQUZTX1NUQVRDTlQoYWZzX0No
dW5rQmFzZSk7DQotICAgIGlmIChvZmZzZXQgPCBhZnNfRmlyc3RDU2l6ZSkN
Ci0JcmV0dXJuIDA7DQotICAgIGVsc2UNCi0JcmV0dXJuICgoKG9mZnNldCAt
IGFmc19GaXJzdENTaXplKSAmIH4oYWZzX090aGVyQ1NpemUgLSAxKSkgKw0K
LQkJYWZzX0ZpcnN0Q1NpemUpOw0KLX0NCi0NCi0NCi1pbnQNCi1hZnNfQ2h1
bmtTaXplKG9mZnNldCkNCi0gICAgIGFmc19pbnQzMiBvZmZzZXQ7DQotew0K
LSAgICBBRlNfU1RBVENOVChhZnNfQ2h1bmtTaXplKTsNCi0gICAgaWYgKG9m
ZnNldCA8IGFmc19GaXJzdENTaXplKQ0KLQlyZXR1cm4gYWZzX0ZpcnN0Q1Np
emU7DQotICAgIGVsc2UNCi0JcmV0dXJuIGFmc19PdGhlckNTaXplOw0KLX0N
Ci0NCi0NCi1pbnQNCi1hZnNfQ2h1bmtUb0Jhc2UoY2h1bmspDQotICAgICBh
ZnNfaW50MzIgY2h1bms7DQotew0KLSAgICBBRlNfU1RBVENOVChhZnNfQ2h1
bmtUb0Jhc2UpOw0KLSAgICBpZiAoY2h1bmsgPT0gMCkNCi0JcmV0dXJuIDA7
DQotICAgIGVsc2UNCi0JcmV0dXJuIChhZnNfRmlyc3RDU2l6ZSArICgoY2h1
bmsgLSAxKSA8PCBhZnNfTG9nQ2h1bmspKTsNCi19DQotDQotDQotaW50DQot
YWZzX0NodW5rVG9TaXplKGNodW5rKQ0KLSAgICAgYWZzX2ludDMyIGNodW5r
Ow0KLXsNCi0gICAgQUZTX1NUQVRDTlQoYWZzX0NodW5rVG9TaXplKTsNCi0g
ICAgaWYgKGNodW5rID09IDApDQotCXJldHVybiBhZnNfRmlyc3RDU2l6ZTsN
Ci0gICAgZWxzZQ0KLQlyZXR1cm4gYWZzX090aGVyQ1NpemU7DQotfQ0KLQ0K
LS8qIHNpemVzIGFyZSBhIHBvd2VyIG9mIHR3byAqLw0KLWludA0KLWFmc19T
ZXRDaHVua1NpemUoY2h1bmspDQotICAgICBhZnNfaW50MzIgY2h1bms7DQot
ew0KLSAgICBBRlNfU1RBVENOVChhZnNfU2V0Q2h1bmtTaXplKTsNCi0gICAg
YWZzX0xvZ0NodW5rID0gY2h1bms7DQotICAgIGFmc19GaXJzdENTaXplID0g
YWZzX090aGVyQ1NpemUgPSAoMSA8PCBjaHVuayk7DQotfQ0KLQ0KLSNlbmRp
ZiAvKiBub3RkZWYgKi8NCisvKiBQbGFjZSB0aGUgZGVmYXVsdHMgaW4gYWZz
ZCBpbnN0ZWFkIG9mIGFsbCBhcm91bmQgdGhlIGNvZGUsIHNvDQorICogQUZT
X1NFVENIVU5LU0laRSgpIG5lZWRzIHRvIGJlIGNhbGxlZCBiZWZvcmUgZG9p
bmcgYW55dGhpbmcgKi8NCithZnNfaW50MzIgYWZzX0ZpcnN0Q1NpemUgPSAw
Ow0KK2Fmc19pbnQzMiBhZnNfT3RoZXJDU2l6ZSA9IDA7DQorYWZzX2ludDMy
IGFmc19Mb2dDaHVuayA9IDA7DQpJbmRleDogc3JjL2Fmcy9hZnNfY2h1bmtv
cHMuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9jdnMv
b3BlbmFmcy9zcmMvYWZzL2Fmc19jaHVua29wcy5oLHYNCnJldHJpZXZpbmcg
cmV2aXNpb24gMS42DQpkaWZmIC11IC1yMS42IGFmc19jaHVua29wcy5oDQot
LS0gc3JjL2Fmcy9hZnNfY2h1bmtvcHMuaAkxNSBKdWwgMjAwMyAyMzoxNDox
MSAtMDAwMAkxLjYNCisrKyBzcmMvYWZzL2Fmc19jaHVua29wcy5oCTkgQXVn
IDIwMDUgMTM6NDA6NTAgLTAwMDANCkBAIC0xOCwxMyArMTgsNiBAQA0KICAg
ICAgIENodW5rcyBhcmUgMCBiYXNlZCBhbmQgZ28gdXAgYnkgZXhhY3RseSAx
LCBjb3ZlcmluZyB0aGUgZmlsZS4NCiAgICAgICBUaGUgb3RoZXIgZmllbGRz
IGFyZSBpbnRlcm5hbCBhbmQgc2hvdWxkbid0IGJlIHVzZWQgKi8NCiAvKiBi
YXNpYyBwYXJhbWV0ZXJzICovDQotI2lmZGVmIEFGU19OT0NIVU5LSU5HDQot
DQotI2RlZmluZQlBRlNfT1RIRVJDU0laRQkweDEwMDAwDQotI2RlZmluZQlB
RlNfTE9HQ0hVTksJMTYNCi0jZGVmaW5lCUFGU19GSVJTVENTSVpFCTB4NDAw
MDAwMDANCi0NCi0jZWxzZSAvKiBBRlNfTk9DSFVOS0lORyAqLw0KIA0KICNk
ZWZpbmUgQUZTX09USEVSQ1NJWkUgIChhZnNfT3RoZXJDU2l6ZSkNCiAjZGVm
aW5lIEFGU19MT0dDSFVOSyAgICAoYWZzX0xvZ0NodW5rKQ0KQEAgLTMzLDEx
ICsyNiw2IEBADQogI2RlZmluZSBBRlNfREVGQVVMVENTSVpFIDB4MTAwMDAN
CiAjZGVmaW5lIEFGU19ERUZBVUxUTFNJWkUgMTYNCiANCi0jZW5kaWYgLyog
QUZTX05PQ0hVTktJTkcgKi8NCi0NCi0jZGVmaW5lIEFGU19NSU5DSFVOSyAx
MwkJLyogOGsgaXMgbWluaW11bSAqLw0KLSNkZWZpbmUgQUZTX01BWENIVU5L
IDE4CQkvKiAyNTZLIGlzIG1heGltdW0gKi8NCi0NCiAjZGVmaW5lIEFGU19D
SFVOS09GRlNFVChvZmZzZXQpICgob2Zmc2V0IDwgYWZzX0ZpcnN0Q1NpemUp
ID8gb2Zmc2V0IDogXA0KIAkJCSAoKG9mZnNldCAtIGFmc19GaXJzdENTaXpl
KSAmIChhZnNfT3RoZXJDU2l6ZSAtIDEpKSkNCiANCkluZGV4OiBzcmMvYWZz
ZC9hZnNkLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAv
Y3ZzL29wZW5hZnMvc3JjL2Fmc2QvYWZzZC5jLHYNCnJldHJpZXZpbmcgcmV2
aXNpb24gMS41Mg0KZGlmZiAtdSAtcjEuNTIgYWZzZC5jDQotLS0gc3JjL2Fm
c2QvYWZzZC5jCTI5IEFwciAyMDA1IDIxOjU1OjU5IC0wMDAwCTEuNTINCisr
KyBzcmMvYWZzZC9hZnNkLmMJOSBBdWcgMjAwNSAxMzo0MDo1MSAtMDAwMA0K
QEAgLTIzMiw3ICsyMzIsNyBAQA0KIGFmc19pbnQzMiBjYWNoZUZpbGVzID0g
MTAwMDsJLypPcHRpbWFsICMgb2YgZmlsZXMgaW4gd29ya3N0YXRpb24gY2Fj
aGUgKi8NCiBhZnNfaW50MzIgcndwY3QgPSAwOw0KIGFmc19pbnQzMiByb3Bj
dCA9IDA7DQotYWZzX2ludDMyIGNhY2hlU3RhdEVudHJpZXMgPSAzMDA7CS8q
TnVtYmVyIG9mIHN0YXQgY2FjaGUgZW50cmllcyAqLw0KK2Fmc19pbnQzMiBj
YWNoZVN0YXRFbnRyaWVzOwkvKk51bWJlciBvZiBzdGF0IGNhY2hlIGVudHJp
ZXMgKi8NCiBjaGFyIGNhY2hlQmFzZURpclsxMDI0XTsJLypXaGVyZSB0aGUg
d29ya3N0YXRpb24gQUZTIGNhY2hlIGxpdmVzICovDQogY2hhciBjb25mRGly
WzEwMjRdOwkJLypXaGVyZSB0aGUgd29ya3N0YXRpb24gQUZTIGNvbmZpZ3Vy
YXRpb24gbGl2ZXMgKi8NCiBjaGFyIGZ1bGxwbl9EQ2FjaGVGaWxlWzEwMjRd
OwkvKkZ1bGwgcGF0aG5hbWUgb2YgRENBQ0hFRklMRSAqLw0KQEAgLTI0Nyw2
ICsyNDcsNyBAQA0KIGludCBzYXdDYWNoZUJsb2NrcyA9IDA7DQogaW50IHNh
d0RDYWNoZVNpemUgPSAwOw0KIGludCBzYXdCaW9kID0gMDsNCitpbnQgc2F3
Q2FjaGVTdGF0RW50cmllcyA9IDA7DQogY2hhciBjYWNoZU1vdW50RGlyWzEw
MjRdOwkvKk1vdW50IGRpcmVjdG9yeSBmb3IgQUZTICovDQogY2hhciByb290
Vm9sdW1lWzY0XSA9ICJyb290LmFmcyI7CS8qQUZTIHJvb3Qgdm9sdW1lIG5h
bWUgKi8NCiBhZnNfaW50MzIgY2FjaGVTZXRUaW1lID0gRkFMU0U7CS8qS2Vl
cCBjaGVja2luZyB0aW1lIHRvIGF2b2lkIGRyaWZ0PyAqLw0KQEAgLTI2MSw4
ICsyNjIsOCBAQA0KIHN0YXRpYyBpbnQgbkZpbGVzUGVyRGlyID0gMjA0ODsJ
LyogIyBmaWxlcyBwZXIgY2FjaGUgZGlyICovDQogc3RhdGljIGludCBuRGFl
bW9ucyA9IDI7CS8qIE51bWJlciBvZiBiYWNrZ3JvdW5kIGRhZW1vbnMgKi8N
CiBzdGF0aWMgaW50IGNodW5rU2l6ZSA9IDA7CS8qIDJeY2h1bmtTaXplIGJ5
dGVzIHBlciBjaHVuayAqLw0KLXN0YXRpYyBpbnQgZENhY2hlU2l6ZSA9IDMw
MDsJLyogIyBvZiBkY2FjaGUgZW50cmllcyAqLw0KLXN0YXRpYyBpbnQgdkNh
Y2hlU2l6ZSA9IDUwOwkvKiAjIG9mIHZvbHVtZSBjYWNoZSBlbnRyaWVzICov
DQorc3RhdGljIGludCBkQ2FjaGVTaXplOwkJLyogIyBvZiBkY2FjaGUgZW50
cmllcyAqLw0KK3N0YXRpYyBpbnQgdkNhY2hlU2l6ZSA9IDIwMDsJLyogIyBv
ZiB2b2x1bWUgY2FjaGUgZW50cmllcyAqLw0KIHN0YXRpYyBpbnQgcm9vdFZv
bFNldCA9IDA7CS8qVHJ1ZSBpZiByb290IHZvbHVtZSBuYW1lIGV4cGxpY2l0
bHkgc2V0ICovDQogaW50IGFkZHJOdW07CQkJLypDZWxsIHNlcnZlciBhZGRy
ZXNzIGluZGV4IGJlaW5nIHByaW50ZWQgKi8NCiBzdGF0aWMgaW50IGNhY2hl
RmxhZ3MgPSAwOwkvKkZsYWdzIHRvIGNhY2hlIG1hbmFnZXIgKi8NCkBAIC01
ODksNyArNTkwLDcgQEANCiAgICAgLyogQnVpbGQgdGhlIG5ldyBjYWNoZSBz
dWJkaXJlY3RvcnkgKi8NCiAgICAgc3ByaW50ZihkaXIsICIlcy9EJWQiLCBi
YXNlbmFtZSwgZGlyTnVtKTsNCiANCi0gICAgaWYgKGFmc2RfdmVyYm9zZSkN
CisgICAgaWYgKGFmc2RfZGVidWcpDQogCXByaW50ZigiJXM6IENyZWF0aW5n
IGNhY2hlIHN1YmRpciAnJXMnXG4iLCBybiwgZGlyKTsNCiANCiAgICAgaWYg
KChyZXQgPSBta2RpcihkaXIsIDA3MDApKSAhPSAwKSB7DQpAQCAtNjU5LDcg
KzY2MCw3IEBADQogICAgIGludCBjZmQ7CQkJLypGaWxlIGRlc2NyaXB0b3Ig
dG8gQUZTIGNhY2hlIGZpbGUgKi8NCiAgICAgaW50IGNsb3NlUmVzdWx0OwkJ
LypSZXN1bHQgb2YgY2xvc2UoKSAqLw0KIA0KLSAgICBpZiAoYWZzZF92ZXJi
b3NlKQ0KKyAgICBpZiAoYWZzZF9kZWJ1ZykNCiAJcHJpbnRmKCIlczogQ3Jl
YXRpbmcgY2FjaGUgZmlsZSAnJXMnXG4iLCBybiwgZm5hbWUpOw0KICAgICBj
ZmQgPSBvcGVuKGZuYW1lLCBjcmVhdGVBbmRUcnVuYywgb3duZXJSV21vZGUp
Ow0KICAgICBpZiAoY2ZkIDw9IDApIHsNCkBAIC02OTEsOCArNjkyLDYgQEAN
CiBDcmVhdGVGaWxlSWZNaXNzaW5nKGNoYXIgKmZ1bGxwbiwgaW50IG1pc3Np
bmcpDQogew0KICAgICBpZiAobWlzc2luZykgew0KLQlpZiAoYWZzZF92ZXJi
b3NlKQ0KLQkgICAgcHJpbnRmKCJDcmVhdGVGaWxlSWZNaXNzaW5nOiBDcmVh
dGluZyAnJXMnXG4iLCBmdWxscG4pOw0KIAlpZiAoQ3JlYXRlQ2FjaGVGaWxl
KGZ1bGxwbiwgTlVMTCkpDQogCSAgICBwcmludGYoIkNyZWF0ZUZpbGVJZk1p
c3Npbmc6IENhbid0IGNyZWF0ZSAnJXMnXG4iLCBmdWxscG4pOw0KICAgICB9
DQpAQCAtMTE5NCwxMyArMTE5MywxMCBAQA0KIH0NCiANCiBzdGF0aWMNCi1D
b25maWdDZWxsKGFjaSwgYXJvY2ssIGFkaXIpDQotICAgICByZWdpc3RlciBz
dHJ1Y3QgYWZzY29uZl9jZWxsICphY2k7DQotICAgICBjaGFyICphcm9jazsN
Ci0gICAgIHN0cnVjdCBhZnNjb25mX2RpciAqYWRpcjsNCitDb25maWdDZWxs
KHN0cnVjdCBhZnNjb25mX2NlbGwgKmFjaSwgY2hhciAqYXJvY2ssIHN0cnVj
dCBhZnNjb25mX2RpciAqYWRpcikNCiB7DQotICAgIHJlZ2lzdGVyIGludCBp
c0hvbWVDZWxsOw0KLSAgICByZWdpc3RlciBpbnQgaSwgY29kZTsNCisgICAg
aW50IGlzSG9tZUNlbGw7DQorICAgIGludCBpLCBjb2RlOw0KICAgICBhZnNf
aW50MzIgY2VsbEZsYWdzID0gMDsNCiAgICAgYWZzX2ludDMyIGhvc3RzW01B
WEhPU1RTUEVSQ0VMTF07DQogDQpAQCAtMTIyOCwxMCArMTIyNCw4IEBADQog
fQ0KIA0KIHN0YXRpYw0KLUNvbmZpZ0NlbGxBbGlhcyhhY2EsIGFyb2NrLCBh
ZGlyKQ0KLSAgICAgcmVnaXN0ZXIgc3RydWN0IGFmc2NvbmZfY2VsbGFsaWFz
ICphY2E7DQotICAgICBjaGFyICphcm9jazsNCi0gICAgIHN0cnVjdCBhZnNj
b25mX2RpciAqYWRpcjsNCitDb25maWdDZWxsQWxpYXMoc3RydWN0IGFmc2Nv
bmZfY2VsbGFsaWFzICphY2EsIA0KKwljaGFyICphcm9jaywgc3RydWN0IGFm
c2NvbmZfZGlyICphZGlyKQ0KIHsNCiAgICAgLyogcHVzaCB0aGUgYWxpYXMg
aW50byB0aGUga2VybmVsICovDQogICAgIGNhbGxfc3lzY2FsbChBRlNPUF9B
RERDRUxMQUxJQVMsIGFjYS0+YWxpYXNOYW1lLCBhY2EtPnJlYWxOYW1lKTsN
CkBAIC0xMzEyLDEzICsxMzA2LDExIEBADQogI2VuZGlmDQogI2VuZGlmDQog
DQotbWFpbnByb2MoYXMsIGFyb2NrKQ0KLSAgICAgc3RydWN0IGNtZF9zeW5k
ZXNjICphczsNCi0gICAgIGNoYXIgKmFyb2NrOw0KK21haW5wcm9jKHN0cnVj
dCBjbWRfc3luZGVzYyAqYXMsIGNoYXIgKmFyb2NrKQ0KIHsNCiAgICAgc3Rh
dGljIGNoYXIgcm5bXSA9ICJhZnNkIjsJLypOYW1lIG9mIHRoaXMgcm91dGlu
ZSAqLw0KLSAgICByZWdpc3RlciBhZnNfaW50MzIgY29kZTsJLypSZXN1bHQg
b2YgZm9yaygpICovDQotICAgIHJlZ2lzdGVyIGludCBpOw0KKyAgICBhZnNf
aW50MzIgY29kZTsJCS8qUmVzdWx0IG9mIGZvcmsoKSAqLw0KKyAgICBpbnQg
aTsNCiAgICAgaW50IGN1cnJWRmlsZTsJCS8qQ3VycmVudCBBRlMgY2FjaGUg
ZmlsZSBudW1iZXIgcGFzc2VkIGluICovDQogICAgIGludCBtb3VudEZsYWdz
OwkJLypGbGFncyBwYXNzZWQgdG8gbW91bnQoKSAqLw0KICAgICBpbnQgbG9v
a3VwUmVzdWx0OwkJLypSZXN1bHQgb2YgR2V0TG9jYWxDZWxsTmFtZSgpICov
DQpAQCAtMTM2MSwxNCArMTM1MywxMyBAQA0KICAgICBpZiAoYXMtPnBhcm1z
WzNdLml0ZW1zKSB7DQogCS8qIC1zdGF0ICovDQogCWNhY2hlU3RhdEVudHJp
ZXMgPSBhdG9pKGFzLT5wYXJtc1szXS5pdGVtcy0+ZGF0YSk7DQorCXNhd0Nh
Y2hlU3RhdEVudHJpZXMgPSAxOw0KICAgICB9DQogICAgIGlmIChhcy0+cGFy
bXNbNF0uaXRlbXMpIHsNCiAJLyogLW1lbWNhY2hlICovDQogCWNhY2hlQmFz
ZURpclswXSA9ICdcMCc7DQogCXNhd0NhY2hlQmFzZURpciA9IDE7DQogCWNh
Y2hlRmxhZ3MgfD0gQUZTQ0FMTF9JTklUX01FTUNBQ0hFOw0KLQlpZiAoY2h1
bmtTaXplID09IDApDQotCSAgICBjaHVua1NpemUgPSAxMzsNCiAgICAgfQ0K
ICAgICBpZiAoYXMtPnBhcm1zWzVdLml0ZW1zKSB7DQogCS8qIC1jYWNoZWRp
ciAqLw0KQEAgLTE1OTcsNyArMTU4OCwxNCBAQA0KIAkvKiBtZW1vcnkgY2Fj
aGU6IHNpemUgZGVzY3JpYmVkIGVpdGhlciBhcyBibG9ja3Mgb3IgZGNhY2hl
IGVudHJpZXMsIGJ1dA0KIAkgKiBub3QgYm90aC4NCiAJICovDQorCWlmIChm
aWxlc1NldCkgew0KKwkgICAgZnByaW50ZiAoc3RkZXJyLA0KKwkJICAgICIl
czogLWZpbGVzIGlnbm9yZWQgd2l0aCAtbWVtY2FjaGVcbiIsIHJuKTsNCisJ
fQ0KIAlpZiAoc2F3RENhY2hlU2l6ZSkgew0KKwkgICAgaWYoY2h1bmtTaXpl
ID09IDApIHsNCisJCWNodW5rU2l6ZSA9IDEzOwkvKiA4ayBkZWZhdWx0IGNo
dW5rc2l6ZSBmb3IgbWVtY2FjaGUgKi8NCisJICAgIH0NCiAJICAgIGlmIChz
YXdDYWNoZUJsb2Nrcykgew0KIAkJcHJpbnRmDQogCQkgICAgKCIlczogY2Fu
J3Qgc2V0IGNhY2hlIGJsb2NrcyBhbmQgZGNhY2hlIHNpemUgc2ltdWx0YW5l
b3VzbHkgd2hlbiBkaXNrbGVzcy5cbiIsDQpAQCAtMTYwNSwxOCArMTYwMywy
NSBAQA0KIAkJZXhpdCgxKTsNCiAJICAgIH0NCiAJICAgIC8qIGNvbXB1dGUg
dGhlIGNhY2hlIHNpemUgYmFzZWQgb24gIyBvZiBjaHVua3MgdGltZXMgdGhl
IGNodW5rIHNpemUgKi8NCi0JICAgIGkgPSAoY2h1bmtTaXplID09IDAgPyAx
MyA6IGNodW5rU2l6ZSk7DQotCSAgICBpID0gKDEgPDwgaSk7CS8qIGJ5dGVz
IHBlciBjaHVuayAqLw0KKwkgICAgaSA9ICgxIDw8IGNodW5rU2l6ZSk7CS8q
IGJ5dGVzIHBlciBjaHVuayAqLw0KIAkgICAgY2FjaGVCbG9ja3MgPSBpICog
ZENhY2hlU2l6ZTsNCiAJICAgIHNhd0NhY2hlQmxvY2tzID0gMTsJLyogc28g
dGhhdCBQYXJzZUNhY2hlSW5mb0ZpbGUgZG9lc24ndCBvdmVyd3JpdGUgKi8N
CiAJfSBlbHNlIHsNCisJICAgIGlmKGNodW5rU2l6ZSA9PSAwKSB7DQorCQkv
KiBUcnkgdG8gYXV0b3R1bmUgdGhlIG1lbWNhY2hlIGNodW5rc2l6ZSBiYXNl
ZCBvbiBzaXplDQorCQkgKiBvZiBtZW1jYWNoZS4gVGhpcyBpcyBkb25lIG9u
IHRoZSBhc3N1bXB0aW9uIHRoYXQgYXBwcm94DQorCQkgKiAxMDI0IGNodW5r
cyBpcyBzdWl0YWJsZSwgaXQncyBhIGJhbGFuY2UgYmV0d2VlbiBlbm91Z2gN
CisJCSAqIGNodW5rcyB0byBiZSB1c2VmdWwgYW5kIHJhbXBpbmcgdXAgbmlj
ZWx5IHdoZW4gdXNpbmcgbGFyZ2VyDQorCQkgKiBtZW1jYWNoZSB0byBpbXBy
b3ZlIGJ1bGsgcmVhZC93cml0ZSBwZXJmb3JtYW5jZQ0KKwkJICovDQorCQlm
b3IoaT0xNDsgaTw9MjEgJiYgKDE8PGkpLzEwMjQgPCAoY2FjaGVCbG9ja3Mv
MTAyNCk7IGkrKyk7DQorCQljaHVua1NpemUgPSBpLTE7DQorCSAgICB9DQog
CSAgICAvKiBjb21wdXRlIHRoZSBkY2FjaGUgc2l6ZSBmcm9tIG92ZXJhbGwg
Y2FjaGUgc2l6ZSBhbmQgY2h1bmsgc2l6ZSAqLw0KLQkgICAgaSA9IChjaHVu
a1NpemUgPT0gMCA/IDEzIDogY2h1bmtTaXplKTsNCi0JICAgIC8qIGRDYWNo
ZVNpemUgPSAoY2FjaGVCbG9ja3MgPDwgMTApIC8gKDE8PGkpOyAqLw0KLQkg
ICAgaWYgKGkgPiAxMCkgew0KLQkJZENhY2hlU2l6ZSA9IChjYWNoZUJsb2Nr
cyA+PiAoaSAtIDEwKSk7DQotCSAgICB9IGVsc2UgaWYgKGkgPCAxMCkgew0K
LQkJZENhY2hlU2l6ZSA9IChjYWNoZUJsb2NrcyA8PCAoMTAgLSBpKSk7DQor
CSAgICBpZiAoY2h1bmtTaXplID4gMTApIHsNCisJCWRDYWNoZVNpemUgPSAo
Y2FjaGVCbG9ja3MgPj4gKGNodW5rU2l6ZSAtIDEwKSk7DQorCSAgICB9IGVs
c2UgaWYgKGNodW5rU2l6ZSA8IDEwKSB7DQorCQlkQ2FjaGVTaXplID0gKGNh
Y2hlQmxvY2tzIDw8ICgxMCAtIGNodW5rU2l6ZSkpOw0KIAkgICAgfSBlbHNl
IHsNCiAJCWRDYWNoZVNpemUgPSBjYWNoZUJsb2NrczsNCiAJICAgIH0NCkBA
IC0xNjI0LDggKzE2MjksMTEgQEANCiAJICAgICAqIGJ5IFBhcnNlQ2FjaGVJ
bmZvRmlsZS4NCiAJICAgICAqLw0KIAl9DQotCS8qIGtlcm5lbCBjb21wdXRl
cyAjIG9mIGRjYWNoZSBlbnRyaWVzIGFzIG1pbiBvZiBjYWNoZUZpbGVzIGFu
ZCBkQ2FjaGVTaXplLA0KLQkgKiBzbyB3ZSBub3cgbWFrZSB0aGVtIGVxdWFs
Lg0KKwlpZiAoYWZzZF92ZXJib3NlKQ0KKwkgICAgcHJpbnRmKCIlczogY2h1
bmtTaXplIGF1dG90dW5lZCB0byAlZFxuIiwgcm4sIGNodW5rU2l6ZSk7DQor
DQorCS8qIGtlcm5lbCBjb21wdXRlcyAjIG9mIGRjYWNoZSBlbnRyaWVzIGFz
IG1pbiBvZiBjYWNoZUZpbGVzIGFuZA0KKwkgKiBkQ2FjaGVTaXplLCBzbyB3
ZSBub3cgbWFrZSB0aGVtIGVxdWFsLg0KIAkgKi8NCiAJY2FjaGVGaWxlcyA9
IGRDYWNoZVNpemU7DQogICAgIH0gZWxzZSB7DQpAQCAtMTYzNCw0MyArMTY0
Miw5MSBAQA0KIAkgKiBidXQgb25seSBpZiAtZmlsZXMgaXNuJ3QgZ2l2ZW4g
b24gdGhlIGNvbW1hbmQgbGluZS4NCiAJICogRG9uJ3QgbGV0ICMgZmlsZXMg
YmUgc28gc21hbGwgYXMgdG8gcHJldmVudCBmdWxsIHV0aWxpemF0aW9uIA0K
IAkgKiBvZiB0aGUgY2FjaGUgdW5sZXNzIHVzZXIgaGFzIGV4cGxpY2l0bHkg
YXNrZWQgZm9yIGl0Lg0KLQkgKiBhdmVyYWdlIFYtZmlsZSBpcyB+MTBLLCBh
Y2NvcmRpbmcgdG8gdGVudGF0aXZlIGVtcGlyaWNhbCBzdHVkaWVzLg0KIAkg
Ki8NCisJaWYoY2h1bmtTaXplID09IDApIHsNCisJICAgIC8qIFNldCBjaHVu
a3NpemUgdG8gMjU2a0IgLSAxTUIgZGVwZW5kaW5nIG9uIGNhY2hlIHNpemUg
Ki8NCisJICAgIGlmKGNhY2hlQmxvY2tzIDwgNTAwMDAwKSB7DQorCQljaHVu
a1NpemUgPSAxODsNCisJICAgIH0NCisJICAgIGVsc2UgaWYoY2FjaGVCbG9j
a3MgPCAxMDAwMDAwKSB7DQorCQljaHVua1NpemUgPSAxOTsNCisJICAgIH0N
CisJICAgIGVsc2Ugew0KKwkJY2h1bmtTaXplID0gMjA7DQorCSAgICB9DQor
CX0NCiAJaWYgKCFmaWxlc1NldCkgew0KLQkgICAgY2FjaGVGaWxlcyA9IGNh
Y2hlQmxvY2tzIC8gMTA7DQotCSAgICBpZiAoY2FjaGVGaWxlcyA8IDEwMCkN
Ci0JCWNhY2hlRmlsZXMgPSAxMDA7DQorCSAgICBjYWNoZUZpbGVzID0gY2Fj
aGVCbG9ja3MgLyAzMjsJLyogQXNzdW1lIDMyayBhdmcgZmlsZXNpemUgKi8N
CisNCisJICAgIGNhY2hlRmlsZXMgPSBtYXgoY2FjaGVGaWxlcywgMTAwMCk7
DQorDQogCSAgICAvKiBBbHdheXMgYWxsb3cgbW9yZSBmaWxlcyB0aGFuIGNo
dW5rcy4gIFByZXN1bWUgYXZlcmFnZSBWLWZpbGUgDQogCSAgICAgKiBpcyB+
NjclIG9mIGEgY2h1bmsuLi4gIChhbm90aGVyIGd1ZXNzLCBwZXJoYXBzIEhv
bmV5bWFuIHdpbGwNCiAJICAgICAqIGhhdmUgYSBncmFkIHN0dWRlbnQgd3Jp
dGUgYSBwYXBlcikuICBpIGlzIEtJTE9CWVRFUy4NCiAJICAgICAqLw0KLQkg
ICAgaSA9IDEgPDwgKGNodW5rU2l6ZSA9PQ0KLQkJICAgICAgMCA/IDYgOiAo
Y2h1bmtTaXplIDwgMTAgPyAwIDogY2h1bmtTaXplIC0gMTApKTsNCisJICAg
IGkgPSAxIDw8IChjaHVua1NpemUgPCAxMCA/IDAgOiBjaHVua1NpemUgLSAx
MCk7DQogCSAgICBjYWNoZUZpbGVzID0gbWF4KGNhY2hlRmlsZXMsIDEuNSAq
IChjYWNoZUJsb2NrcyAvIGkpKTsNCisNCiAJICAgIC8qIG5ldmVyIHBlcm1p
dCBtb3JlIGZpbGVzIHRoYW4gYmxvY2tzLCB3aGlsZSBsZWF2aW5nIHNwYWNl
IGZvcg0KIAkgICAgICogVm9sdW1lSW5mbyBhbmQgQ2FjaGVJdGVtcyBmaWxl
cy4gIFZvbHVtZUluZm8gaXMgdXN1YWxseSAyMEssDQogCSAgICAgKiBDYWNo
ZUl0ZW1zIGlzIDUwIEJ5dGVzIC8gZmlsZSAoPT0gMUsvMjApDQogCSAgICAg
Ki8NCi0jZGVmaW5lIFZPTElORk9TWiAyMA0KICNkZWZpbmUgQ0FDSEVJVE1T
WiAoY2FjaGVGaWxlcyAvIDIwKQ0KLSNpZmRlZiBBRlNfQUlYX0VOVg0KLQkg
ICAgY2FjaGVGaWxlcyA9DQotCQltaW4oY2FjaGVGaWxlcywgKGNhY2hlQmxv
Y2tzIC0gVk9MSU5GT1NaIC0gQ0FDSEVJVE1TWikgLyA0KTsNCi0jZWxzZQ0K
LQkgICAgY2FjaGVGaWxlcyA9DQotCQltaW4oY2FjaGVGaWxlcywgY2FjaGVC
bG9ja3MgLSBWT0xJTkZPU1ogLSBDQUNIRUlUTVNaKTsNCi0jZW5kaWYNCisj
ZGVmaW5lIFZPTElORk9TWiA1MAkvKiA0MGtCIGhhcyBiZWVuIHNlZW4sIGJl
IGNvbnNlcnZhdGl2ZSAqLw0KKyNkZWZpbmUgQ0VMTElORk9TWiA0CS8qIEFz
c3VtaW5nIGRpc2sgYmxvY2sgc2l6ZSBpcyA0ayAuLi4gKi8NCisjZGVmaW5l
IElORk9TWiAoVk9MSU5GT1NaK0NFTExJTkZPU1orQ0FDSEVJVE1TWikNCisN
CisJICAgIC8qIFNhbml0eSBjaGVjazogSWYgdGhlIG9idGFpbmVkIG51bWJl
ciBvZiBkaXNrIGNhY2hlIGZpbGVzDQorCSAgICAgICBpcyBsYXJnZXIgdGhh
biB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZSAoNGspIGRpc2sgYmxvY2tzLCB3
ZSdyZQ0KKwkgICAgICAgZG9pbmcgc29tZXRoaW5nIHdyb25nLiBGYWlsIGhh
cmQgc28gd2UgY2FuIGZpeCB0aGUgYnVnIGluc3RlYWQNCisJICAgICAgIG9m
IHNpbGVudGx5IGhpZGluZyBpdCBsaWtlIGJlZm9yZSAqLw0KKw0KKwkgICAg
aWYoIGNhY2hlRmlsZXMgPiAoY2FjaGVCbG9ja3MgLSBJTkZPU1opIC8gNCkg
ew0KKwkJZnByaW50ZihzdGRlcnIsDQorCQkJIiVzOiBBU1NFUlQ6IGNhY2hl
RmlsZXMgJWQgIGRpc2tibG9ja3MgJWRcbiIsDQorCQkJcm4sIGNhY2hlRmls
ZXMsIChjYWNoZUJsb2NrcyAtIElORk9TWikgLyA0KTsNCisJCWV4aXQoMSk7
DQorCSAgICB9DQogCSAgICBpZiAoY2FjaGVGaWxlcyA8IDEwMCkNCiAJCWZw
cmludGYoc3RkZXJyLCAiJXM6IFdBUk5JTkc6IGNhY2hlIHByb2JhYmx5IHRv
byBzbWFsbCFcbiIsDQogCQkJcm4pOw0KKw0KKwkgICAgaWYgKGFmc2RfdmVy
Ym9zZSkNCisJCXByaW50ZigiJXM6IGNhY2hlRmlsZXMgYXV0b3R1bmVkIHRv
ICVkXG4iLCBybiwgY2FjaGVGaWxlcyk7DQogCX0NCisJLyogU2FuaXR5IGNo
ZWNrIGNodW5rU2l6ZSAqLw0KKwlpID0gbWF4KGNhY2hlQmxvY2tzLzEwMDAs
IGNhY2hlQmxvY2tzL2NhY2hlRmlsZXMpOw0KKwljaHVua1NpemUgPSBtaW4o
Y2h1bmtTaXplLCBpKTsNCisJY2h1bmtTaXplID0gbWF4KGNodW5rU2l6ZSwg
Mik7DQorCWlmIChhZnNkX3ZlcmJvc2UpDQorCSAgICBwcmludGYoIiVzOiBj
aHVua1NpemUgYXV0b3R1bmVkIHRvICVkXG4iLCBybiwgY2h1bmtTaXplKTsN
CisNCiAJaWYgKCFzYXdEQ2FjaGVTaXplKSB7DQotCSAgICBpZiAoKGNhY2hl
RmlsZXMgLyAyKSA+IGRDYWNoZVNpemUpDQotCQlkQ2FjaGVTaXplID0gY2Fj
aGVGaWxlcyAvIDI7DQotCSAgICBpZiAoZENhY2hlU2l6ZSA+IDIwMDApDQor
CSAgICBkQ2FjaGVTaXplID0gY2FjaGVGaWxlcy8yOw0KKwkgICAgaWYoZENh
Y2hlU2l6ZSA+IDEwMDAwKSB7DQorCQlkQ2FjaGVTaXplID0gMTAwMDA7DQor
CSAgICB9DQorCSAgICBpZihkQ2FjaGVTaXplIDwgMjAwMCkgew0KIAkJZENh
Y2hlU2l6ZSA9IDIwMDA7DQorCSAgICB9DQorCSAgICBpZiAoYWZzZF92ZXJi
b3NlKQ0KKwkJcHJpbnRmKCIlczogZENhY2hlU2l6ZSBhdXRvdHVuZWQgdG8g
JWRcbiIsIHJuLCBkQ2FjaGVTaXplKTsNCiAJfQ0KICAgICB9DQorICAgIGlm
KCFzYXdDYWNoZVN0YXRFbnRyaWVzKSB7DQorCWlmKGNodW5rU2l6ZSA8PSAx
Mykgew0KKwkgICAgY2FjaGVTdGF0RW50cmllcyA9IGRDYWNoZVNpemUgLyA0
Ow0KKwl9DQorCWVsc2UgaWYoY2h1bmtTaXplID49IDE2KSB7DQorCSAgICBj
YWNoZVN0YXRFbnRyaWVzID0gZENhY2hlU2l6ZSAqIDEuNTsNCisJfQ0KKwll
bHNlIHsNCisJICAgIGNhY2hlU3RhdEVudHJpZXMgPSBkQ2FjaGVTaXplOw0K
Kwl9DQorCWlmIChhZnNkX3ZlcmJvc2UpDQorCSAgICBwcmludGYoIiVzOiBj
YWNoZVN0YXRFbnRyaWVzIGF1dG90dW5lZCB0byAlZFxuIiwgcm4sIA0KKwkJ
ICAgIGNhY2hlU3RhdEVudHJpZXMpOw0KKyAgICB9DQogDQogICAgIC8qDQog
ICAgICAqIENyZWF0ZSBhbmQgemVybyB0aGUgaW5vZGUgdGFibGUgZm9yIHRo
ZSBkZXNpcmVkIGNhY2hlIGZpbGVzLg0KQEAgLTIxMjgsOSArMjE4NCw3IEBA
DQogDQogDQogDQotbWFpbihhcmdjLCBhcmd2KQ0KLSAgICAgaW50IGFyZ2M7
DQotICAgICBjaGFyICoqYXJndjsNCittYWluKGludCBhcmdjLCBjaGFyICoq
YXJndikNCiB7DQogICAgIHN0cnVjdCBjbWRfc3luZGVzYyAqdHM7DQogDQpA
QCAtMjIwMiw3ICsyMjU2LDcgQEANCiAJCSJQcmVmZXIgYmFja3VwIHZvbHVt
ZXMgZm9yIG1vaW50cG9pbnRzIGluIGJhY2t1cCB2b2x1bWVzIik7DQogICAg
IGNtZF9BZGRQYXJtKHRzLCAiLXJ4YmluZCIsIENNRF9GTEFHLCBDTURfT1BU
SU9OQUwsICJCaW5kIHRoZSBSeCBzb2NrZXQgKG9uZSBpbnRlcmZhY2Ugb25s
eSkiKTsNCiAgICAgY21kX0FkZFBhcm0odHMsICItc2V0dGltZSIsIENNRF9G
TEFHLCBDTURfT1BUSU9OQUwsDQotICAgICAgICAgICAgICAgImRvbid0IHNl
dCB0aGUgdGltZSIpOw0KKyAgICAgICAgICAgICAgICJzZXQgdGhlIHRpbWUi
KTsNCiAgICAgY21kX0FkZFBhcm0odHMsICItcnhwY2siLCBDTURfU0lOR0xF
LCBDTURfT1BUSU9OQUwsICJzZXQgcnhfZXh0cmFQYWNrZXRzIHRvIHRoaXMg
dmFsdWUiKTsNCiAgICAgY21kX0FkZFBhcm0odHMsICItc3BsaXRjYWNoZSIs
IENNRF9TSU5HTEUsIENNRF9PUFRJT05BTCwgIlBlcmNlbnRhZ2UgUlcgdmVy
c3VzIFJPIGluIGNhY2hlIChzcGVjaWZ5IGFzIDYwLzQwKSIpOw0KIA0KQEAg
LTI0MDAsMTUgKzI0NTQsMTQgQEANCiAgICAgcmV0dXJuIChlcnJvcik7DQog
fQ0KIA0KLXZtb3VudGRhdGEodm10cCwgb2JqLCBzdHViLCBob3N0LCBob3N0
c25hbWUsIGluZm8sIGFyZ3MpDQotICAgICBzdHJ1Y3Qgdm1vdW50ICp2bXRw
Ow0KLSAgICAgY2hhciAqb2JqLCAqc3R1YiwgKmhvc3QsICpob3N0c25hbWUs
ICppbmZvLCAqYXJnczsNCit2bW91bnRkYXRhKHN0cnVjdCB2bW91bnQgKnZt
dHAsIGNoYXIgKm9iaiwgY2hhciAqc3R1YiwgY2hhciAqaG9zdCwgDQorCWNo
YXIgKmhvc3RzbmFtZSwgY2hhciAqaW5mbywgY2hhciAqYXJncykNCiB7DQot
ICAgIHJlZ2lzdGVyIHN0cnVjdCBkYXRhIHsNCisgICAgc3RydWN0IGRhdGEg
ew0KIAlzaG9ydCB2bXRfb2ZmOw0KIAlzaG9ydCB2bXRfc2l6ZTsNCiAgICAg
fSAqdmRwLCAqdmRwcmV2Ow0KLSAgICByZWdpc3RlciBpbnQgc2l6ZTsNCisg
ICAgaW50IHNpemU7DQogDQogICAgIHZkcCA9IChzdHJ1Y3QgZGF0YSAqKXZt
dHAtPnZtdF9kYXRhOw0KICAgICB2ZHAtPnZtdF9vZmYgPSBzaXplb2Yoc3Ry
dWN0IHZtb3VudCk7DQo=

---559023410-1144747756-1124200566=:4174--