Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 4 Nov 2007 07:53:26 -0800 (PST)
From:      Abdullah Ibn Hamad Al-Marri <wearabnet@yahoo.ca>
To:        Peter Schuller <peter.schuller@infidyne.com>, Ivan Voras <ivoras@freebsd.org>
Cc:        FreeBSD STABLE <freebsd-stable@freebsd.org>, FreeBSD Current <current@freebsd.org>
Subject:   Re: Status of MySQL on 7 w/o patches applied
Message-ID:  <614810.18739.qm@web33705.mail.mud.yahoo.com>

next in thread | raw e-mail | index | archive | help
--0-341352189-1194191606=:18739
Content-Type: text/plain; charset=us-ascii

----- Original Message ----
> From: Peter Schuller <peter.schuller@infidyne.com>
> To: Ivan Voras <ivoras@freebsd.org>
> Cc: freebsd-current@freebsd.org
> Sent: Sunday, November 4, 2007 3:22:08 PM
> Subject: Re: Status of MySQL on 7 w/o patches applied
> 
> > So to follow-up, with RELENG_7 the performance is now significantly
> > > better than 6.2 for me too. I guess it was the debugging options in
> > > userland. If someone wants details anyway I'll provide them,
> but
> 
 since
> > > it is no longer that interesting I'm leaving it as is if no
> one
> 
 speaks
> > > up.
> > 
> > It's always interesting to get "third party" confirmations on such
> > benchmarks so please post them :)
> 
> Better late than never...
> 
> So to recap, these tests were done on single-processer AMD64 machines
> with 512 MB of memory. So nothing as interesting as SMP scalability
> and such, but still interesting to see an increase in absolute speed
> in the simple case. They were also performed maintaly with the 4BSD
> scheduler.
> 
> Due to the reason for running these tests, they were also made with
> MyISAM rather than InnoDB, prepared as such:
> 
> sysbench --test=oltp \
>          --mysql-table-engine=myisam \
>          --oltp-table-size=1000000 \
>          prepare
> 
> And run as such:
> 
> sysbench --num-threads=16 \
>          --max-requests=100000 \
>          --test=oltp \
>          --oltp-table-size=10000 \
>          --mysql-socket=/tmp/mysql.sock \
>          --oltp-read-only \
>          run
> 
> The MySQL version is 5.0.45_1 in both cases, compiled from ports with
> default build settings, and (on purpose) default MySQL runtime
> settings (empty my.cnf).
> 
> Nothing in loader.conf on either machine. On the RELENG_7 one I tried
> the following, one at a time, but none of them caused a different time
> source to be chosen (probably because I was doing it the wrong way):
> 
> kern.timecounter.tc.TSC.quality="1000"
> kern.timecounter.hardware="TSC"
> kern.timecounter.choice="TSC(1200) ACPI-fast(1000)
> i8254(0)
> 
 dummy(-1000000)"
> kern.timecounter.smp_tsc="1"
> 
> CPU details (6.2 machine, then RELENG_7 machine):
> 
> 
> CPU: AMD Athlon(tm) 64 Processor 3200+ (1989.81-MHz K8-class CPU)
>   Origin = "AuthenticAMD"  Id = 0x40ff2  Stepping = 2
> 
 
> Features=0x78bfbff
> ,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2>
>   Features2=0x2001
>   AMD Features=0xea500800
>   AMD Features2=0x1d,,CR8>
> 
> CPU: AMD Athlon(tm) 64 Processor 3200+ (1989.82-MHz K8-class CPU)
>   Origin = "AuthenticAMD"  Id = 0x40ff2  Stepping = 2
> 
 
> Features=0x78bfbff
> ,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2>
>   Features2=0x2001
>  
> AMD
> 
 Features=0xea500800
>   AMD Features2=0x1d
> 
> And the sysbench results:
> 
> 6.2:
> 
> OLTP test statistics:
>     queries performed:
>         read:                            1400000
>         write:                           0
>         other:                           200000
>         total:                           1600000
>     transactions:                        100000 (261.10 per sec.)
>     deadlocks:                           0      (0.00 per sec.)
>     read/write requests:                 1400000 (3655.45 per sec.)
>     other operations:                    200000 (522.21 per sec.)
> 
> Test execution summary:
>     total time:                          382.9903s
>     total number of events:              100000
>     total time taken by event execution: 6125.6312
>     per-request statistics:
>          min:                            0.0028s
>          avg:                            0.0613s
>          max:                            0.8482s
>          approx.  95 percentile:         0.0697s
> 
> Threads fairness:
>     events (avg/stddev):           6250.0000/94.01
>     execution time (avg/stddev):   382.8520/0.01
> 
> RELENG_7 from October 16:
> 
> OLTP test statistics:
>     queries performed:
>         read:                            1400000
>         write:                           0
>         other:                           200000
>         total:                           1600000
>     transactions:                        100000 (292.50 per sec.)
>     deadlocks:                           0      (0.00 per sec.)
>     read/write requests:                 1400000 (4095.01 per sec.)
>     other operations:                    200000 (585.00 per sec.)
> 
> Test execution summary:
>     total time:                          341.8797s
>     total number of events:              100000
>     total time taken by event execution: 5468.4663
>     per-request statistics:
>          min:                            0.0028s
>          avg:                            0.0547s
>          max:                            0.8707s
>          approx.  95 percentile:         0.0561s
> 
> Threads fairness:
>     events (avg/stddev):           6250.0000/124.43
>     execution time (avg/stddev):   341.7791/0.01
> 
> -- 
> / Peter Schuller

Peter,

Could you please try this patch Jeff posted in FreeBSD-performance@ ?


 
Regards, 
-Abdullah Ibn Hamad Al-Marri
Arab Portal
http://www.WeArab.Net/


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
--0-341352189-1194191606=:18739
Content-Type: application/octet-stream; name="=?utf-8?q?uleslice.diff?="
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="=?utf-8?q?uleslice.diff?="

SW5kZXg6IHNjaGVkX3VsZS5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpS
Q1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvc3lzL2tlcm4vc2NoZWRfdWxlLmMs
dg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjIxNg0KZGlmZiAtdSAtcjEuMjE2
IHNjaGVkX3VsZS5jDQotLS0gc2NoZWRfdWxlLmMJMjMgT2N0IDIwMDcgMDA6
NTI6MjQgLTAwMDAJMS4yMTYNCisrKyBzY2hlZF91bGUuYwkzIE5vdiAyMDA3
IDIxOjM2OjI3IC0wMDAwDQpAQCAtODgsNyArODgsOCBAQA0KIAlzaG9ydAkJ
dHNfZmxhZ3M7CS8qIFRTRl8qIGZsYWdzLiAqLw0KIAl1X2NoYXIJCXRzX3Jx
aW5kZXg7CS8qIFJ1biBxdWV1ZSBpbmRleC4gKi8NCiAJdV9jaGFyCQl0c19j
cHU7CQkvKiBDUFUgdGhhdCB3ZSBoYXZlIGFmZmluaXR5IGZvci4gKi8NCi0J
aW50CQl0c19zbGljZTsJLyogVGlja3Mgb2Ygc2xpY2UgcmVtYWluaW5nLiAq
Lw0KKwlpbnQJCXRzX3NsaWNlOwkvKiBUaWNrcyBvZiBzbGljZSB1c2VkLiAq
Lw0KKwlpbnQJCXRzX3Njb3JlOwkvKiBJbnRlcmFjdGl2aXR5IHNjb3JlLiAq
Lw0KIAl1X2ludAkJdHNfc2xwdGltZTsJLyogTnVtYmVyIG9mIHRpY2tzIHdl
IHZvbC4gc2xlcHQgKi8NCiAJdV9pbnQJCXRzX3J1bnRpbWU7CS8qIE51bWJl
ciBvZiB0aWNrcyB3ZSB3ZXJlIHJ1bm5pbmcgKi8NCiAJLyogVGhlIGZvbGxv
d2luZyB2YXJpYWJsZXMgYXJlIG9ubHkgdXNlZCBmb3IgcGN0Y3B1IGNhbGN1
bGF0aW9uICovDQpAQCAtMTAyLDYgKzEwMyw3IEBADQogLyogZmxhZ3Mga2Vw
dCBpbiB0c19mbGFncyAqLw0KICNkZWZpbmUJVFNGX0JPVU5ECTB4MDAwMQkJ
LyogVGhyZWFkIGNhbiBub3QgbWlncmF0ZS4gKi8NCiAjZGVmaW5lCVRTRl9Y
RkVSQUJMRQkweDAwMDIJCS8qIFRocmVhZCB3YXMgYWRkZWQgYXMgdHJhbnNm
ZXJhYmxlLiAqLw0KKyNkZWZpbmUJVFNGX0lOVEVSTE9BRAkweDAwMDQJCS8q
IEludGVyYWN0aXZlIGxvYWQgb24gcnVucS4gKi8NCiANCiBzdGF0aWMgc3Ry
dWN0IHRkX3NjaGVkIHRkX3NjaGVkMDsNCiANCkBAIC0xNjcsMTMgKzE2OSwx
NSBAQA0KICAqCQkJdGhlIHNoaWZ0IGZhY3Rvci4gIFdpdGhvdXQgdGhlIHNo
aWZ0IHRoZSBlcnJvciByYXRlDQogICoJCQlkdWUgdG8gcm91bmRpbmcgd291
bGQgYmUgdW5hY2NlcHRhYmx5IGhpZ2guDQogICogcmVhbHN0YXRoejoJCXN0
YXRoeiBpcyBzb21ldGltZXMgMCBhbmQgcnVuIG9mZiBvZiBoei4NCi0gKiBz
Y2hlZF9zbGljZToJCVJ1bnRpbWUgb2YgZWFjaCB0aHJlYWQgYmVmb3JlIHJl
c2NoZWR1bGluZy4NCisgKiBzY2hlZF9zbGljZV9tYXg6CU1heGltdW0gcnVu
dGltZSBvZiBlYWNoIHRocmVhZCBiZWZvcmUgcmVzY2hlZHVsaW5nLg0KKyAq
IHNjaGVkX3NsaWNlX21pbjoJTWluaW11bSBydW50aW1lIG9mIGVhY2ggdGhy
ZWFkIGJlZm9yZSByZXNjaGVkdWxpbmcuDQogICogcHJlZW1wdF90aHJlc2g6
CVByaW9yaXR5IHRocmVzaG9sZCBmb3IgcHJlZW1wdGlvbiBhbmQgcmVtb3Rl
IElQSXMuDQogICovDQogc3RhdGljIGludCBzY2hlZF9pbnRlcmFjdCA9IFND
SEVEX0lOVEVSQUNUX1RIUkVTSDsNCiBzdGF0aWMgaW50IHJlYWxzdGF0aHo7
DQogc3RhdGljIGludCB0aWNraW5jcjsNCi1zdGF0aWMgaW50IHNjaGVkX3Ns
aWNlOw0KK3N0YXRpYyBpbnQgc2NoZWRfc2xpY2VfbWF4ID0gMTsNCitzdGF0
aWMgaW50IHNjaGVkX3NsaWNlX21pbiA9IDE7DQogI2lmZGVmIFBSRUVNUFRJ
T04NCiAjaWZkZWYgRlVMTF9QUkVFTVBUSU9ODQogc3RhdGljIGludCBwcmVl
bXB0X3RocmVzaCA9IFBSSV9NQVhfSURMRTsNCkBAIC0xOTQsNiArMTk4LDcg
QEANCiAJc3RydWN0IHJ1bnEJdGRxX3JlYWx0aW1lOwkJLyogcmVhbC10aW1l
IHJ1biBxdWV1ZS4gKi8NCiAJc3RydWN0IHJ1bnEJdGRxX3RpbWVzaGFyZTsJ
CS8qIHRpbWVzaGFyZSBydW4gcXVldWUuICovDQogCXN0cnVjdCBydW5xCXRk
cV9pZGxlOwkJLyogUXVldWUgb2YgSURMRSB0aHJlYWRzLiAqLw0KKwl1bnNp
Z25lZCBpbnQJdGRxX2ludGVybG9hZDsJCS8qIEludGVyYWN0aXZlIGxvYWQu
ICovDQogCWludAkJdGRxX2xvYWQ7CQkvKiBBZ2dyZWdhdGUgbG9hZC4gKi8N
CiAJdV9jaGFyCQl0ZHFfaWR4OwkJLyogQ3VycmVudCBpbnNlcnQgaW5kZXgu
ICovDQogCXVfY2hhcgkJdGRxX3JpZHg7CQkvKiBDdXJyZW50IHJlbW92YWwg
aW5kZXguICovDQpAQCAtMjM5LDcgKzI0NCw2IEBADQogc3RhdGljIGludCBi
YWxhbmNlX2ludGVydmFsID0gMTI4OwkvKiBEZWZhdWx0IHNldCBpbiBzY2hl
ZF9pbml0dGlja3MoKS4gKi8NCiBzdGF0aWMgaW50IHBpY2tfcHJpID0gMTsN
CiBzdGF0aWMgaW50IGFmZmluaXR5Ow0KLXN0YXRpYyBpbnQgdHJ5c2VsZiA9
IDE7DQogc3RhdGljIGludCBzdGVhbF9odHQgPSAxOw0KIHN0YXRpYyBpbnQg
c3RlYWxfaWRsZSA9IDE7DQogc3RhdGljIGludCBzdGVhbF90aHJlc2ggPSAy
Ow0KQEAgLTI4OCwxMCArMjkyLDEyIEBADQogc3RhdGljIHZvaWQgdGRxX3Nl
dHVwKHN0cnVjdCB0ZHEgKik7DQogc3RhdGljIHZvaWQgdGRxX2xvYWRfYWRk
KHN0cnVjdCB0ZHEgKiwgc3RydWN0IHRkX3NjaGVkICopOw0KIHN0YXRpYyB2
b2lkIHRkcV9sb2FkX3JlbShzdHJ1Y3QgdGRxICosIHN0cnVjdCB0ZF9zY2hl
ZCAqKTsNCitzdGF0aWMgaW50IHRkcV9zbGljZShzdHJ1Y3QgdGRxICopOw0K
IHN0YXRpYyBfX2lubGluZSB2b2lkIHRkcV9ydW5xX2FkZChzdHJ1Y3QgdGRx
ICosIHN0cnVjdCB0ZF9zY2hlZCAqLCBpbnQpOw0KIHN0YXRpYyBfX2lubGlu
ZSB2b2lkIHRkcV9ydW5xX3JlbShzdHJ1Y3QgdGRxICosIHN0cnVjdCB0ZF9z
Y2hlZCAqKTsNCi12b2lkIHRkcV9wcmludChpbnQgY3B1KTsNCi1zdGF0aWMg
dm9pZCBydW5xX3ByaW50KHN0cnVjdCBydW5xICpycSk7DQordm9pZCB0ZHFf
cHJpbnQoaW50KTsNCit2b2lkIHNjaGVkX3ByaW50KHN0cnVjdCB0aHJlYWQg
Kik7DQorc3RhdGljIHZvaWQgcnVucV9wcmludChzdHJ1Y3QgcnVucSAqKTsN
CiBzdGF0aWMgdm9pZCB0ZHFfYWRkKHN0cnVjdCB0ZHEgKiwgc3RydWN0IHRo
cmVhZCAqLCBpbnQpOw0KICNpZmRlZiBTTVANCiBzdGF0aWMgdm9pZCB0ZHFf
bW92ZShzdHJ1Y3QgdGRxICosIHN0cnVjdCB0ZHEgKik7DQpAQCAtMzQ1LDYg
KzM1MSwyNiBAQA0KIAl9DQogfQ0KIA0KK3ZvaWQNCitzY2hlZF9wcmludChz
dHJ1Y3QgdGhyZWFkICp0ZCkNCit7DQorCXN0cnVjdCB0ZF9zY2hlZCAqdHM7
DQorDQorCWlmICh0ZCA9PSBOVUxMKQ0KKwkJdGQgPSBjdXJ0aHJlYWQ7DQor
CXRzID0gdGQtPnRkX3NjaGVkOw0KKwlwcmludGYoImZsYWdzOiAgICAweCVY
XG4iLCB0cy0+dHNfZmxhZ3MpOw0KKwlwcmludGYoInJxaW5kZXg6ICAlZFxu
IiwgdHMtPnRzX3JxaW5kZXgpOw0KKwlwcmludGYoImNwdTogICAgICAlZFxu
IiwgdHMtPnRzX2NwdSk7DQorCXByaW50Zigic2xpY2U6ICAgICVkXG4iLCB0
cy0+dHNfc2xpY2UpOw0KKwlwcmludGYoInNjb3JlOiAgICAlZFxuIiwgdHMt
PnRzX3Njb3JlKTsNCisJcHJpbnRmKCJzbHB0aW1lOiAgJWRcbiIsIHRzLT50
c19zbHB0aW1lKTsNCisJcHJpbnRmKCJydW50aW1lOiAgJWRcbiIsIHRzLT50
c19ydW50aW1lKTsNCisJcHJpbnRmKCJsdGljazogICAgJWRcbiIsIHRzLT50
c19sdGljayk7DQorCXByaW50ZigiZnRpY2s6ICAgICVkXG4iLCB0cy0+dHNf
ZnRpY2spOw0KKwlwcmludGYoInRpY2tzOiAgICAlZFxuIiwgdHMtPnRzX3Rp
Y2tzKTsNCit9DQorDQogLyoNCiAgKiBQcmludCB0aGUgc3RhdHVzIG9mIGEg
cGVyLWNwdSB0aHJlYWQgcXVldWUuICBTaG91bGQgYmUgYSBkZGIgc2hvdyBj
bWQuDQogICovDQpAQCAtMzU3LDcgKzM4Myw5IEBADQogDQogCXByaW50Zigi
dGRxICVkOlxuIiwgVERRX0lEKHRkcSkpOw0KIAlwcmludGYoIlx0bG9ja3B0
ciAgICAgICAgICVwXG4iLCBURFFfTE9DS1BUUih0ZHEpKTsNCisJcHJpbnRm
KCJcdGludGVybG9hZDoJICAlZFxuIiwgdGRxLT50ZHFfaW50ZXJsb2FkKTsN
CiAJcHJpbnRmKCJcdGxvYWQ6ICAgICAgICAgICAlZFxuIiwgdGRxLT50ZHFf
bG9hZCk7DQorCXByaW50ZigiXHRzbGljZTogICAgICAgICAgJWRcbiIsIHRk
cV9zbGljZSh0ZHEpKTsNCiAJcHJpbnRmKCJcdHRpbWVzaGFyZSBpZHg6ICAl
ZFxuIiwgdGRxLT50ZHFfaWR4KTsNCiAJcHJpbnRmKCJcdHRpbWVzaGFyZSBy
aWR4OiAlZFxuIiwgdGRxLT50ZHFfcmlkeCk7DQogCXByaW50ZigiXHRyZWFs
dGltZSBydW5xOlxuIik7DQpAQCAtMzgzLDggKzQxMSwxMiBAQA0KIHN0YXRp
YyBfX2lubGluZSB2b2lkDQogdGRxX3J1bnFfYWRkKHN0cnVjdCB0ZHEgKnRk
cSwgc3RydWN0IHRkX3NjaGVkICp0cywgaW50IGZsYWdzKQ0KIHsNCisJdV9j
aGFyIHByaTsNCisNCisJcHJpID0gdHMtPnRzX3RocmVhZC0+dGRfcHJpb3Jp
dHk7DQogCVREUV9MT0NLX0FTU0VSVCh0ZHEsIE1BX09XTkVEKTsNCiAJVEhS
RUFEX0xPQ0tfQVNTRVJUKHRzLT50c190aHJlYWQsIE1BX09XTkVEKTsNCisJ
VERfU0VUX1JVTlEodHMtPnRzX3RocmVhZCk7DQogI2lmZGVmIFNNUA0KIAlp
ZiAoVEhSRUFEX0NBTl9NSUdSQVRFKHRzLT50c190aHJlYWQpKSB7DQogCQl0
ZHEtPnRkcV90cmFuc2ZlcmFibGUrKzsNCkBAIC0zOTIsMTUgKzQyNCwxNSBA
QA0KIAkJdHMtPnRzX2ZsYWdzIHw9IFRTRl9YRkVSQUJMRTsNCiAJfQ0KICNl
bmRpZg0KLQlpZiAodHMtPnRzX3J1bnEgPT0gJnRkcS0+dGRxX3RpbWVzaGFy
ZSkgew0KLQkJdV9jaGFyIHByaTsNCi0NCi0JCXByaSA9IHRzLT50c190aHJl
YWQtPnRkX3ByaW9yaXR5Ow0KKwlpZiAocHJpIDw9IFBSSV9NQVhfUkVBTFRJ
TUUpIHsNCisJCXRzLT50c19ydW5xID0gJnRkcS0+dGRxX3JlYWx0aW1lOw0K
Kwl9IGVsc2UgaWYgKHByaSA8PSBQUklfTUFYX1RJTUVTSEFSRSkgew0KKwkJ
dHMtPnRzX3J1bnEgPSAmdGRxLT50ZHFfdGltZXNoYXJlOw0KIAkJS0FTU0VS
VChwcmkgPD0gUFJJX01BWF9USU1FU0hBUkUgJiYgcHJpID49IFBSSV9NSU5f
VElNRVNIQVJFLA0KIAkJCSgiSW52YWxpZCBwcmlvcml0eSAlZCBvbiB0aW1l
c2hhcmUgcnVucSIsIHByaSkpOw0KIAkJLyoNCiAJCSAqIFRoaXMgcXVldWUg
Y29udGFpbnMgb25seSBwcmlvcml0aWVzIGJldHdlZW4gTUlOIGFuZCBNQVgN
Ci0JCSAqIHJlYWx0aW1lLiAgVXNlIHRoZSB3aG9sZSBxdWV1ZSB0byByZXBy
ZXNlbnQgdGhlc2UgdmFsdWVzLg0KKwkJICogdGltZXNoYXJlLiAgVXNlIHRo
ZSB3aG9sZSBxdWV1ZSB0byByZXByZXNlbnQgdGhlc2UgdmFsdWVzLg0KIAkJ
ICovDQogCQlpZiAoKGZsYWdzICYgKFNSUV9CT1JST1dJTkd8U1JRX1BSRUVN
UFRFRCkpID09IDApIHsNCiAJCQlwcmkgPSAocHJpIC0gUFJJX01JTl9USU1F
U0hBUkUpIC8gVFNfUlFfUFBROw0KQEAgLTQxNiw4ICs0NDgsMTAgQEANCiAJ
CX0gZWxzZQ0KIAkJCXByaSA9IHRkcS0+dGRxX3JpZHg7DQogCQlydW5xX2Fk
ZF9wcmkodHMtPnRzX3J1bnEsIHRzLCBwcmksIGZsYWdzKTsNCisJCXJldHVy
bjsNCiAJfSBlbHNlDQotCQlydW5xX2FkZCh0cy0+dHNfcnVucSwgdHMsIGZs
YWdzKTsNCisJCXRzLT50c19ydW5xID0gJnRkcS0+dGRxX2lkbGU7DQorCXJ1
bnFfYWRkKHRzLT50c19ydW5xLCB0cywgZmxhZ3MpOw0KIH0NCiANCiAvKiAN
CkBAIC00NDMsMTMgKzQ3Nyw2IEBADQogCQkJcnVucV9yZW1vdmVfaWR4KHRz
LT50c19ydW5xLCB0cywgJnRkcS0+dGRxX3JpZHgpOw0KIAkJZWxzZQ0KIAkJ
CXJ1bnFfcmVtb3ZlX2lkeCh0cy0+dHNfcnVucSwgdHMsIE5VTEwpOw0KLQkJ
LyoNCi0JCSAqIEZvciB0aW1lc2hhcmUgdGhyZWFkcyB3ZSB1cGRhdGUgdGhl
IHByaW9yaXR5IGhlcmUgc28NCi0JCSAqIHRoZSBwcmlvcml0eSByZWZsZWN0
cyB0aGUgdGltZSB3ZSd2ZSBiZWVuIHNsZWVwaW5nLg0KLQkJICovDQotCQl0
cy0+dHNfbHRpY2sgPSB0aWNrczsNCi0JCXNjaGVkX3BjdGNwdV91cGRhdGUo
dHMpOw0KLQkJc2NoZWRfcHJpb3JpdHkodHMtPnRzX3RocmVhZCk7DQogCX0g
ZWxzZQ0KIAkJcnVucV9yZW1vdmUodHMtPnRzX3J1bnEsIHRzKTsNCiB9DQpA
QCAtNDY2LDYgKzQ5Myw4IEBADQogCVREUV9MT0NLX0FTU0VSVCh0ZHEsIE1B
X09XTkVEKTsNCiAJVEhSRUFEX0xPQ0tfQVNTRVJUKHRzLT50c190aHJlYWQs
IE1BX09XTkVEKTsNCiAJY2xhc3MgPSBQUklfQkFTRSh0cy0+dHNfdGhyZWFk
LT50ZF9wcmlfY2xhc3MpOw0KKwl0ZHEtPnRkcV9pbnRlcmxvYWQgKz0gdHMt
PnRzX3Njb3JlOw0KKwl0cy0+dHNfZmxhZ3MgfD0gVFNGX0lOVEVSTE9BRDsN
CiAJdGRxLT50ZHFfbG9hZCsrOw0KIAlDVFIyKEtUUl9TQ0hFRCwgImNwdSAl
ZCBsb2FkOiAlZCIsIFREUV9JRCh0ZHEpLCB0ZHEtPnRkcV9sb2FkKTsNCiAJ
aWYgKGNsYXNzICE9IFBSSV9JVEhEICYmDQpAQCAtNDk4LDkgKzUyNywzNyBA
QA0KICNlbmRpZg0KIAlLQVNTRVJUKHRkcS0+dGRxX2xvYWQgIT0gMCwNCiAJ
ICAgICgidGRxX2xvYWRfcmVtOiBSZW1vdmluZyB3aXRoIDAgbG9hZCBvbiBx
dWV1ZSAlZCIsIFREUV9JRCh0ZHEpKSk7DQorCXRzLT50c19mbGFncyAmPSB+
VFNGX0lOVEVSTE9BRDsNCisJdHMtPnRzX3J1bnEgPSBOVUxMOw0KKwl0ZHEt
PnRkcV9pbnRlcmxvYWQgLT0gdHMtPnRzX3Njb3JlOw0KIAl0ZHEtPnRkcV9s
b2FkLS07DQogCUNUUjEoS1RSX1NDSEVELCAibG9hZDogJWQiLCB0ZHEtPnRk
cV9sb2FkKTsNCi0JdHMtPnRzX3J1bnEgPSBOVUxMOw0KK30NCisNCisvKg0K
KyAqIENvbXB1dGUgdGhlIG1heGltdW0gc2xpY2Ugd2hlbiB0aGUgaW50ZXJs
b2FkIGNoYW5nZXMuICBUaGlzIGdpdmVzIGEgc29mdA0KKyAqIHVwcGVyIGJv
dW5kIG9uIGxhdGVuY3kgYXMgdGhlIGxvYWQgaW5jcmVhc2VzLg0KKyAqLw0K
K3N0YXRpYyBpbnQNCit0ZHFfc2xpY2Uoc3RydWN0IHRkcSAqdGRxKQ0KK3sN
CisJaW50IHNsaWNlOw0KKwlpbnQgbG9hZDsNCisNCisJVERRX0xPQ0tfQVNT
RVJUKHRkcSwgTUFfT1dORUQpOw0KKwlpZiAodGRxLT50ZHFfaW50ZXJsb2Fk
ID09IDApDQorCQlyZXR1cm4gKHNjaGVkX3NsaWNlX21heCk7DQorCS8qDQor
CSAqIEFuIGludGVybG9hZCBvZiAxMDAgaXMgcm91Z2hseSBlcXVpdmFsZW50
IHRvIDEwMCUgY3B1IHV0aWxpemF0aW9uDQorCSAqIHJlcXVlc3RlZC4gIENh
bGN1bGF0ZSBob3cgbWFueSB0aW1lcyBvdmVybG9hZGVkIHdlIGFyZSBhbmQg
dGhlbg0KKwkgKiBkaXZpZGUgdGhlIGxhdGVuY3kgdGFyZ2V0IGJ5IHRoaXMg
bnVtYmVyLiAgTm9uZSBvZiB0aGlzIGlzIHByZWNpc2UNCisJICogYnV0IGl0
IGRvZXMgeWllbGQgZGVjcmVhc2luZyBzbGljZSB2YWx1ZXMgd2l0aGluIHRo
ZSBbbWluLCBtYXhdDQorCSAqIHJhbmdlIGFzIGxvYWQgaW5jcmVhc2VzLg0K
KwkgKi8NCisJbG9hZCA9ICh0ZHEtPnRkcV9pbnRlcmxvYWQgKyA5OSkgLyAx
MDA7DQorCXNsaWNlID0gc2NoZWRfc2xpY2VfbWF4IC8gbG9hZDsNCisJc2xp
Y2UgPSBtYXgoc2xpY2UsIHNjaGVkX3NsaWNlX21pbik7DQorCXJldHVybiAo
c2xpY2UpOw0KIH0NCiANCiAjaWZkZWYgU01QDQpAQCAtMTA3MCwxNCArMTEy
Nyw2IEBADQogCWNwdSA9IHNlbGYgPSBQQ1BVX0dFVChjcHVpZCk7DQogCWlm
IChzbXBfc3RhcnRlZCA9PSAwKQ0KIAkJcmV0dXJuIChzZWxmKTsNCi0JLyoN
Ci0JICogRG9uJ3QgbWlncmF0ZSBhIHJ1bm5pbmcgdGhyZWFkIGZyb20gc2No
ZWRfc3dpdGNoKCkuDQotCSAqLw0KLQlpZiAoZmxhZ3MgJiBTUlFfT1VSU0VM
Rikgew0KLQkJQ1RSMShLVFJfVUxFLCAiWUlFTERJTkcgJWQiLA0KLQkJICAg
IGN1cnRocmVhZC0+dGRfcHJpb3JpdHkpOw0KLQkJcmV0dXJuIChzZWxmKTsN
Ci0JfQ0KIAlwcmkgPSB0cy0+dHNfdGhyZWFkLT50ZF9wcmlvcml0eTsNCiAJ
Y3B1ID0gdHMtPnRzX2NwdTsNCiAJLyoNCkBAIC0xMDk0LDcgKzExNDMsOCBA
QA0KIAkvKg0KIAkgKiBJZiB3ZSBoYXZlIGFmZmluaXR5LCB0cnkgdG8gcGxh
Y2UgaXQgb24gdGhlIGNwdSB3ZSBsYXN0IHJhbiBvbi4NCiAJICovDQotCWlm
IChTQ0hFRF9BRkZJTklUWSh0cykgJiYgdGRxLT50ZHFfbG93cHJpID4gcHJp
KSB7DQorCWlmIChTQ0hFRF9BRkZJTklUWSh0cykgJiYNCisJICAgICh0ZHEt
PnRkcV9sb3dwcmkgPiBwcmkgfHwgdGRxLT50ZHFfaW50ZXJsb2FkIDwgMTAp
KSB7DQogCQlDVFI1KEtUUl9VTEUsDQogCQkgICAgImFmZmluaXR5IGZvciAl
ZCwgbHRpY2sgJWQgdGlja3MgJWQgcHJpICVkIGN1cnRocmVhZCAlZCIsDQog
CQkgICAgdHMtPnRzX2NwdSwgdHMtPnRzX3JsdGljaywgdGlja3MsIHByaSwN
CkBAIC0xMTEzLDkgKzExNjMsOSBAQA0KIAkgKiBUaGlzIG1heSBpbXByb3Zl
IGxvY2FsaXR5IGFtb25nIHNsZWVwZXJzIGFuZCB3YWtlcnMgd2hlbiB0aGVy
ZQ0KIAkgKiBpcyBzaGFyZWQgZGF0YS4NCiAJICovDQotCWlmICh0cnlzZWxm
ICYmIHByaSA8IGN1cnRocmVhZC0+dGRfcHJpb3JpdHkpIHsNCi0JCUNUUjEo
S1RSX1VMRSwgInRyeXNlbGYgJWQiLA0KLQkJICAgIGN1cnRocmVhZC0+dGRf
cHJpb3JpdHkpOw0KKwl0ZHEgPSBURFFfQ1BVKHNlbGYpOw0KKwlpZiAocHJp
IDwgY3VydGhyZWFkLT50ZF9wcmlvcml0eSB8fCB0ZHEtPnRkcV9pbnRlcmxv
YWQgPCAxMCkgew0KKwkJQ1RSMShLVFJfVUxFLCAidHJ5c2VsZiAlZCIsIGN1
cnRocmVhZC0+dGRfcHJpb3JpdHkpOw0KIAkJcmV0dXJuIChzZWxmKTsNCiAJ
fQ0KIAkvKg0KQEAgLTExNzUsNiArMTIyNSw3IEBADQogCXJ1bnFfaW5pdCgm
dGRxLT50ZHFfdGltZXNoYXJlKTsNCiAJcnVucV9pbml0KCZ0ZHEtPnRkcV9p
ZGxlKTsNCiAJdGRxLT50ZHFfbG9hZCA9IDA7DQorCXRkcS0+dGRxX2ludGVy
bG9hZCA9IDA7DQogfQ0KIA0KICNpZmRlZiBTTVANCkBAIC0xMzI0LDEyICsx
Mzc1LDEyIEBADQogCSAqIGluIGNhc2Ugd2hpY2ggc2NoZWRfY2xvY2soKSBj
YWxsZWQgYmVmb3JlIHNjaGVkX2luaXR0aWNrcygpLg0KIAkgKi8NCiAJcmVh
bHN0YXRoeiA9IGh6Ow0KLQlzY2hlZF9zbGljZSA9IChyZWFsc3RhdGh6LzEw
KTsJLyogfjEwMG1zICovDQogCXRpY2tpbmNyID0gMSA8PCBTQ0hFRF9USUNL
X1NISUZUOw0KIA0KIAkvKiBBZGQgdGhyZWFkMCdzIGxvYWQgc2luY2UgaXQn
cyBydW5uaW5nLiAqLw0KIAlURFFfTE9DSyh0ZHEpOw0KIAl0aHJlYWQwLnRk
X2xvY2sgPSBURFFfTE9DS1BUUihURFFfU0VMRigpKTsNCisJdGRfc2NoZWQw
LnRzX3Njb3JlID0gMDsNCiAJdGRxX2xvYWRfYWRkKHRkcSwgJnRkX3NjaGVk
MCk7DQogCVREUV9VTkxPQ0sodGRxKTsNCiB9DQpAQCAtMTM0NCw3ICsxMzk1
LDggQEANCiAJaW50IGluY3I7DQogDQogCXJlYWxzdGF0aHogPSBzdGF0aHog
PyBzdGF0aHogOiBoejsNCi0Jc2NoZWRfc2xpY2UgPSAocmVhbHN0YXRoei8x
MCk7CS8qIH4xMDBtcyAqLw0KKwlzY2hlZF9zbGljZV9tYXggPSByZWFsc3Rh
dGh6IC8gMTU7CS8qIH42Nm1zICovDQorCXNjaGVkX3NsaWNlX21pbiA9IHJl
YWxzdGF0aHogLyA1MDsJLyogfjIwbXMgKi8NCiANCiAJLyoNCiAJICogdGlj
a2luY3IgaXMgc2hpZnRlZCBvdXQgYnkgMTAgdG8gYXZvaWQgcm91bmRpbmcg
ZXJyb3JzIGR1ZSB0bw0KQEAgLTEzNzQsNyArMTQyNiw2IEBADQogI2VuZGlm
DQogfQ0KIA0KLQ0KIC8qDQogICogVGhpcyBpcyB0aGUgY29yZSBvZiB0aGUg
aW50ZXJhY3Rpdml0eSBhbGdvcml0aG0uICBEZXRlcm1pbmVzIGEgc2NvcmUg
YmFzZWQNCiAgKiBvbiBwYXN0IGJlaGF2aW9yLiAgSXQgaXMgdGhlIHJhdGlv
IG9mIHNsZWVwIHRpbWUgdG8gcnVuIHRpbWUgc2NhbGVkIHRvDQpAQCAtMTM4
OSwxNSArMTQ0MCw2IEBADQogCWludCBkaXY7DQogDQogCXRzID0gdGQtPnRk
X3NjaGVkOw0KLQkvKg0KLQkgKiBUaGUgc2NvcmUgaXMgb25seSBuZWVkZWQg
aWYgdGhpcyBpcyBsaWtlbHkgdG8gYmUgYW4gaW50ZXJhY3RpdmUNCi0JICog
dGFzay4gIERvbid0IGdvIHRocm91Z2ggdGhlIGV4cGVuc2Ugb2YgY29tcHV0
aW5nIGl0IGlmIHRoZXJlJ3MNCi0JICogbm8gY2hhbmNlLg0KLQkgKi8NCi0J
aWYgKHNjaGVkX2ludGVyYWN0IDw9IFNDSEVEX0lOVEVSQUNUX0hBTEYgJiYN
Ci0JCXRzLT50c19ydW50aW1lID49IHRzLT50c19zbHB0aW1lKQ0KLQkJCXJl
dHVybiAoU0NIRURfSU5URVJBQ1RfSEFMRik7DQotDQogCWlmICh0cy0+dHNf
cnVudGltZSA+IHRzLT50c19zbHB0aW1lKSB7DQogCQlkaXYgPSBtYXgoMSwg
dHMtPnRzX3J1bnRpbWUgLyBTQ0hFRF9JTlRFUkFDVF9IQUxGKTsNCiAJCXJl
dHVybiAoU0NIRURfSU5URVJBQ1RfSEFMRiArDQpAQCAtMTQ0Myw3ICsxNDg1
LDcgQEANCiAJICogc2NvcmUuICBOZWdhdGl2ZSBuaWNlIHZhbHVlcyBtYWtl
IGl0IGVhc2llciBmb3IgYSB0aHJlYWQgdG8gYmUNCiAJICogY29uc2lkZXJl
ZCBpbnRlcmFjdGl2ZS4NCiAJICovDQotCXNjb3JlID0gaW1heCgwLCBzY2hl
ZF9pbnRlcmFjdF9zY29yZSh0ZCkgLSB0ZC0+dGRfcHJvYy0+cF9uaWNlKTsN
CisJc2NvcmUgPSBpbWF4KDAsIHRkLT50ZF9zY2hlZC0+dHNfc2NvcmUgLSB0
ZC0+dGRfcHJvYy0+cF9uaWNlKTsNCiAJaWYgKHNjb3JlIDwgc2NoZWRfaW50
ZXJhY3QpIHsNCiAJCXByaSA9IFBSSV9NSU5fUkVBTFRJTUU7DQogCQlwcmkg
Kz0gKChQUklfTUFYX1JFQUxUSU1FIC0gUFJJX01JTl9SRUFMVElNRSkgLyBz
Y2hlZF9pbnRlcmFjdCkNCkBAIC0xNDc3LDEyICsxNTE5LDE1IEBADQogc2No
ZWRfaW50ZXJhY3RfdXBkYXRlKHN0cnVjdCB0aHJlYWQgKnRkKQ0KIHsNCiAJ
c3RydWN0IHRkX3NjaGVkICp0czsNCisJc3RydWN0IHRkcSAqdGRxOw0KIAl1
X2ludCBzdW07DQorCWludCBzY29yZTsNCiANCisJVEhSRUFEX0xPQ0tfQVNT
RVJUKHRkLCBNQV9PV05FRCk7DQogCXRzID0gdGQtPnRkX3NjaGVkOw0KIAlz
dW0gPSB0cy0+dHNfcnVudGltZSArIHRzLT50c19zbHB0aW1lOw0KIAlpZiAo
c3VtIDwgU0NIRURfU0xQX1JVTl9NQVgpDQotCQlyZXR1cm47DQorCQlnb3Rv
IHNjb3JlOw0KIAkvKg0KIAkgKiBUaGlzIG9ubHkgaGFwcGVucyBmcm9tIHR3
byBwbGFjZXM6DQogCSAqIDEpIFdlIGhhdmUgYWRkZWQgYW4gdW51c3VhbCBh
bW91bnQgb2YgcnVuIHRpbWUgZnJvbSBmb3JrX2V4aXQuDQpAQCAtMTQ5MCwx
MyArMTUzNSwxMyBAQA0KIAkgKi8NCiAJaWYgKHN1bSA+IFNDSEVEX1NMUF9S
VU5fTUFYICogMikgew0KIAkJaWYgKHRzLT50c19ydW50aW1lID4gdHMtPnRz
X3NscHRpbWUpIHsNCi0JCQl0cy0+dHNfcnVudGltZSA9IFNDSEVEX1NMUF9S
VU5fTUFYOw0KKwkJCXRzLT50c19ydW50aW1lID0gU0NIRURfU0xQX1JVTl9N
QVggLyAyOw0KIAkJCXRzLT50c19zbHB0aW1lID0gMTsNCiAJCX0gZWxzZSB7
DQotCQkJdHMtPnRzX3NscHRpbWUgPSBTQ0hFRF9TTFBfUlVOX01BWDsNCisJ
CQl0cy0+dHNfc2xwdGltZSA9IFNDSEVEX1NMUF9SVU5fTUFYIC8gMjsNCiAJ
CQl0cy0+dHNfcnVudGltZSA9IDE7DQogCQl9DQotCQlyZXR1cm47DQorCQln
b3RvIHNjb3JlOw0KIAl9DQogCS8qDQogCSAqIElmIHdlIGhhdmUgZXhjZWVk
ZWQgYnkgbW9yZSB0aGFuIDEvNXRoIHRoZW4gdGhlIGFsZ29yaXRobSBiZWxv
dw0KQEAgLTE1MDYsMTAgKzE1NTEsMTkgQEANCiAJaWYgKHN1bSA+IChTQ0hF
RF9TTFBfUlVOX01BWCAvIDUpICogNikgew0KIAkJdHMtPnRzX3J1bnRpbWUg
Lz0gMjsNCiAJCXRzLT50c19zbHB0aW1lIC89IDI7DQotCQlyZXR1cm47DQor
CQlnb3RvIHNjb3JlOw0KIAl9DQogCXRzLT50c19ydW50aW1lID0gKHRzLT50
c19ydW50aW1lIC8gNSkgKiA0Ow0KIAl0cy0+dHNfc2xwdGltZSA9ICh0cy0+
dHNfc2xwdGltZSAvIDUpICogNDsNCitzY29yZToNCisJc2NvcmUgPSBzY2hl
ZF9pbnRlcmFjdF9zY29yZSh0ZCk7DQorCWlmICh0cy0+dHNfZmxhZ3MgJiBU
U0ZfSU5URVJMT0FEKSB7DQorCQl0ZHEgPSBURFFfQ1BVKHRzLT50c19jcHUp
Ow0KKwkJVERRX0xPQ0tfQVNTRVJUKHRkcSwgTUFfT1dORUQpOw0KKwkJdGRx
LT50ZHFfaW50ZXJsb2FkIC09IHRzLT50c19zY29yZTsNCisJCXRkcS0+dGRx
X2ludGVybG9hZCArPSBzY29yZTsNCisJfQ0KKwl0cy0+dHNfc2NvcmUgPSBz
Y29yZTsNCiB9DQogDQogLyoNCkBAIC0xNTU5LDcgKzE2MTMsNyBAQA0KIHsN
CiANCiAJLyogQ29udmVydCBzY2hlZF9zbGljZSB0byBoeiAqLw0KLQlyZXR1
cm4gKGh6LyhyZWFsc3RhdGh6L3NjaGVkX3NsaWNlKSk7DQorCXJldHVybiAo
aHovKHJlYWxzdGF0aHovc2NoZWRfc2xpY2VfbWF4KSk7DQogfQ0KIA0KIC8q
DQpAQCAtMTU5OCwxNiArMTY1MiwxOSBAQA0KIHNjaGVkX3RocmVhZF9wcmlv
cml0eShzdHJ1Y3QgdGhyZWFkICp0ZCwgdV9jaGFyIHByaW8pDQogew0KIAlz
dHJ1Y3QgdGRfc2NoZWQgKnRzOw0KKwlzdHJ1Y3QgdGRxICp0ZHE7DQogDQog
CUNUUjYoS1RSX1NDSEVELCAic2NoZWRfcHJpbzogJXAoJXMpIHByaW8gJWQg
bmV3cHJpbyAlZCBieSAlcCglcykiLA0KIAkgICAgdGQsIHRkLT50ZF9wcm9j
LT5wX2NvbW0sIHRkLT50ZF9wcmlvcml0eSwgcHJpbywgY3VydGhyZWFkLA0K
IAkgICAgY3VydGhyZWFkLT50ZF9wcm9jLT5wX2NvbW0pOw0KIAl0cyA9IHRk
LT50ZF9zY2hlZDsNCisJdGRxID0gVERRX0NQVSh0cy0+dHNfY3B1KTsNCiAJ
VEhSRUFEX0xPQ0tfQVNTRVJUKHRkLCBNQV9PV05FRCk7DQotCWlmICh0ZC0+
dGRfcHJpb3JpdHkgPT0gcHJpbykNCisJaWYgKHRkLT50ZF9wcmlvcml0eSA8
PSBwcmlvKSB7DQorCQl0ZC0+dGRfcHJpb3JpdHkgPSBwcmlvOw0KIAkJcmV0
dXJuOw0KLQ0KLQlpZiAoVERfT05fUlVOUSh0ZCkgJiYgcHJpbyA8IHRkLT50
ZF9wcmlvcml0eSkgew0KKwl9DQorCWlmIChURF9PTl9SVU5RKHRkKSkgew0K
IAkJLyoNCiAJCSAqIElmIHRoZSBwcmlvcml0eSBoYXMgYmVlbiBlbGV2YXRl
ZCBkdWUgdG8gcHJpb3JpdHkNCiAJCSAqIHByb3BhZ2F0aW9uLCB3ZSBtYXkg
aGF2ZSB0byBtb3ZlIG91cnNlbHZlcyB0byBhIG5ldw0KQEAgLTE2MTcsMTYg
KzE2NzQsMTQgQEANCiAJCXNjaGVkX3JlbSh0ZCk7DQogCQl0ZC0+dGRfcHJp
b3JpdHkgPSBwcmlvOw0KIAkJc2NoZWRfYWRkKHRkLCBTUlFfQk9SUk9XSU5H
KTsNCi0JfSBlbHNlIHsNCiAjaWZkZWYgU01QDQotCQlzdHJ1Y3QgdGRxICp0
ZHE7DQotDQotCQl0ZHEgPSBURFFfQ1BVKHRzLT50c19jcHUpOw0KKwl9IGVs
c2UgaWYgKFREX0lTX1JVTk5JTkcodGQpKSB7DQogCQlpZiAocHJpbyA8IHRk
cS0+dGRxX2xvd3ByaSkNCiAJCQl0ZHEtPnRkcV9sb3dwcmkgPSBwcmlvOw0K
KwkJdGQtPnRkX3ByaW9yaXR5ID0gcHJpbzsNCiAjZW5kaWYNCisJfSBlbHNl
DQogCQl0ZC0+dGRfcHJpb3JpdHkgPSBwcmlvOw0KLQl9DQogfQ0KIA0KIC8q
DQpAQCAtMTc3Miw2ICsxODI3LDggQEANCiANCiAJdGRuID0gVERRX0NQVSh0
ZC0+dGRfc2NoZWQtPnRzX2NwdSk7DQogI2lmZGVmIFNNUA0KKwkvKiBUaGUg
bG9hZCBpcyBiZWluZyByZW1vdmVkIGZyb20gdGhlIGN1cnJlbnQgY3B1LiAq
Lw0KKwl0ZHFfbG9hZF9yZW0odGRxLCB0ZC0+dGRfc2NoZWQpOw0KIAkvKg0K
IAkgKiBEbyB0aGUgbG9jayBkYW5jZSByZXF1aXJlZCB0byBhdm9pZCBMT1Iu
ICBXZSBncmFiIGFuIGV4dHJhDQogCSAqIHNwaW5sb2NrIG5lc3RpbmcgdG8g
cHJldmVudCBwcmVlbXB0aW9uIHdoaWxlIHdlJ3JlDQpAQCAtMTg2MywxMiAr
MTkyMCwxMSBAQA0KIAkJVERfU0VUX0NBTl9SVU4odGQpOw0KIAl9IGVsc2Ug
aWYgKFREX0lTX1JVTk5JTkcodGQpKSB7DQogCQlNUEFTUyh0ZC0+dGRfbG9j
ayA9PSBURFFfTE9DS1BUUih0ZHEpKTsNCi0JCXRkcV9sb2FkX3JlbSh0ZHEs
IHRzKTsNCiAJCXNycWZsYWcgPSAoZmxhZ3MgJiBTV19QUkVFTVBUKSA/DQog
CQkgICAgU1JRX09VUlNFTEZ8U1JRX1lJRUxESU5HfFNSUV9QUkVFTVBURUQg
Og0KIAkJICAgIFNSUV9PVVJTRUxGfFNSUV9ZSUVMRElORzsNCiAJCWlmICh0
cy0+dHNfY3B1ID09IGNwdWlkKQ0KLQkJCXRkcV9hZGQodGRxLCB0ZCwgc3Jx
ZmxhZyk7DQorCQkJdGRxX3J1bnFfYWRkKHRkcSwgdHMsIHNycWZsYWcpOw0K
IAkJZWxzZQ0KIAkJCW10eCA9IHNjaGVkX3N3aXRjaF9taWdyYXRlKHRkcSwg
dGQsIHNycWZsYWcpOw0KIAl9IGVsc2Ugew0KQEAgLTE5NzAsMjIgKzIwMjYs
MTggQEANCiAJVEhSRUFEX0xPQ0tfQVNTRVJUKHRkLCBNQV9PV05FRCk7DQog
CXRzID0gdGQtPnRkX3NjaGVkOw0KIAkvKg0KLQkgKiBJZiB3ZSBzbGVwdCBm
b3IgbW9yZSB0aGFuIGEgdGljayB1cGRhdGUgb3VyIGludGVyYWN0aXZpdHkg
YW5kDQotCSAqIHByaW9yaXR5Lg0KKwkgKiBVcGRhdGUgaW50ZXJhY3Rpdml0
eSBhbmQgcHJpb3JpdHkgYWZ0ZXIgYSBzbGVlcC4NCiAJICovDQogCXNscHRp
Y2sgPSB0ZC0+dGRfc2xwdGljazsNCiAJdGQtPnRkX3NscHRpY2sgPSAwOw0K
LQlpZiAoc2xwdGljayAmJiBzbHB0aWNrICE9IHRpY2tzKSB7DQotCQl1X2lu
dCBoenRpY2tzOw0KLQ0KLQkJaHp0aWNrcyA9ICh0aWNrcyAtIHNscHRpY2sp
IDw8IFNDSEVEX1RJQ0tfU0hJRlQ7DQotCQl0cy0+dHNfc2xwdGltZSArPSBo
enRpY2tzOw0KKwlpZiAoc2xwdGljayAmJiBzbHB0aWNrICE9IHRpY2tzKSAg
ew0KKwkJdHMtPnRzX3NscHRpbWUgKz0gKHRpY2tzIC0gc2xwdGljaykgPDwg
U0NIRURfVElDS19TSElGVDsNCiAJCXNjaGVkX2ludGVyYWN0X3VwZGF0ZSh0
ZCk7DQogCQlzY2hlZF9wY3RjcHVfdXBkYXRlKHRzKTsNCiAJCXNjaGVkX3By
aW9yaXR5KHRkKTsNCisJCS8qIFJlc2V0IHRoZSBzbGljZSB2YWx1ZSBhZnRl
ciB3ZSBzbGVlcC4gKi8NCisJCXRzLT50c19zbGljZSA9IDA7DQogCX0NCi0J
LyogUmVzZXQgdGhlIHNsaWNlIHZhbHVlIGFmdGVyIHdlIHNsZWVwLiAqLw0K
LQl0cy0+dHNfc2xpY2UgPSBzY2hlZF9zbGljZTsNCiAJc2NoZWRfYWRkKHRk
LCBTUlFfQk9SSU5HKTsNCiB9DQogDQpAQCAtMjA0MCw3ICsyMDkyLDYgQEAN
CiAJICovDQogCXRzMi0+dHNfc2xwdGltZSA9IHRzLT50c19zbHB0aW1lOw0K
IAl0czItPnRzX3J1bnRpbWUgPSB0cy0+dHNfcnVudGltZTsNCi0JdHMyLT50
c19zbGljZSA9IDE7CS8qIEF0dGVtcHQgdG8gcXVpY2tseSBsZWFybiBpbnRl
cmFjdGl2aXR5LiAqLw0KIH0NCiANCiAvKg0KQEAgLTIxODgsMjUgKzIyMzks
MjYgQEANCiAJfQ0KIAl0cyA9IHRkLT50ZF9zY2hlZDsNCiAJLyoNCi0JICog
V2Ugb25seSBkbyBzbGljaW5nIGNvZGUgZm9yIFRJTUVTSEFSRSB0aHJlYWRz
Lg0KLQkgKi8NCi0JaWYgKHRkLT50ZF9wcmlfY2xhc3MgIT0gUFJJX1RJTUVT
SEFSRSkNCi0JCXJldHVybjsNCi0JLyoNCiAJICogV2UgdXNlZCBhIHRpY2s7
IGNoYXJnZSBpdCB0byB0aGUgdGhyZWFkIHNvIHRoYXQgd2UgY2FuIGNvbXB1
dGUgb3VyDQogCSAqIGludGVyYWN0aXZpdHkuDQogCSAqLw0KIAl0ZC0+dGRf
c2NoZWQtPnRzX3J1bnRpbWUgKz0gdGlja2luY3I7DQogCXNjaGVkX2ludGVy
YWN0X3VwZGF0ZSh0ZCk7DQogCS8qDQorCSAqIFdlIG9ubHkgZG8gc2xpY2lu
ZyBjb2RlIGZvciBUSU1FU0hBUkUgdGhyZWFkcy4NCisJICovDQorCWlmICh0
ZC0+dGRfcHJpX2NsYXNzICE9IFBSSV9USU1FU0hBUkUpDQorCQlyZXR1cm47
DQorCXNjaGVkX3ByaW9yaXR5KHRkKTsNCisJLyoNCiAJICogV2UgdXNlZCB1
cCBvbmUgdGltZSBzbGljZS4NCiAJICovDQotCWlmICgtLXRzLT50c19zbGlj
ZSA+IDApDQorCWlmICgrK3RzLT50c19zbGljZSA8IHRkcV9zbGljZSh0ZHEp
KQ0KIAkJcmV0dXJuOw0KIAkvKg0KLQkgKiBXZSdyZSBvdXQgb2YgdGltZSwg
cmVjb21wdXRlIHByaW9yaXRpZXMgYW5kIHJlcXVldWUuDQorCSAqIFdlJ3Jl
IG91dCBvZiB0aW1lLCBmb3JjZSBhIHJlcXVldWUgbGF0ZXIuDQogCSAqLw0K
LQlzY2hlZF9wcmlvcml0eSh0ZCk7DQorCXRzLT50c19zbGljZSA9IDA7DQog
CXRkLT50ZF9mbGFncyB8PSBUREZfTkVFRFJFU0NIRUQ7DQogfQ0KIA0KQEAg
LTIzMjgsMTEgKzIzODAsMTAgQEANCiB0ZHFfYWRkKHN0cnVjdCB0ZHEgKnRk
cSwgc3RydWN0IHRocmVhZCAqdGQsIGludCBmbGFncykNCiB7DQogCXN0cnVj
dCB0ZF9zY2hlZCAqdHM7DQotCWludCBjbGFzczsNCiAjaWZkZWYgU01QDQor
CWludCBjbGFzczsNCiAJaW50IGNwdW1hc2s7DQogI2VuZGlmDQotDQogCVRE
UV9MT0NLX0FTU0VSVCh0ZHEsIE1BX09XTkVEKTsNCiAJS0FTU0VSVCgodGQt
PnRkX2luaGliaXRvcnMgPT0gMCksDQogCSAgICAoInNjaGVkX2FkZDogdHJ5
aW5nIHRvIHJ1biBpbmhpYml0ZWQgdGhyZWFkIikpOw0KQEAgLTIzNDIsMjAg
KzIzOTMsMTAgQEANCiAJICAgICgic2NoZWRfYWRkOiB0aHJlYWQgc3dhcHBl
ZCBvdXQiKSk7DQogDQogCXRzID0gdGQtPnRkX3NjaGVkOw0KLQljbGFzcyA9
IFBSSV9CQVNFKHRkLT50ZF9wcmlfY2xhc3MpOw0KLSAgICAgICAgVERfU0VU
X1JVTlEodGQpOw0KLQlpZiAodHMtPnRzX3NsaWNlID09IDApDQotCQl0cy0+
dHNfc2xpY2UgPSBzY2hlZF9zbGljZTsNCi0JLyoNCi0JICogUGljayB0aGUg
cnVuIHF1ZXVlIGJhc2VkIG9uIHByaW9yaXR5Lg0KLQkgKi8NCi0JaWYgKHRk
LT50ZF9wcmlvcml0eSA8PSBQUklfTUFYX1JFQUxUSU1FKQ0KLQkJdHMtPnRz
X3J1bnEgPSAmdGRxLT50ZHFfcmVhbHRpbWU7DQotCWVsc2UgaWYgKHRkLT50
ZF9wcmlvcml0eSA8PSBQUklfTUFYX1RJTUVTSEFSRSkNCi0JCXRzLT50c19y
dW5xID0gJnRkcS0+dGRxX3RpbWVzaGFyZTsNCi0JZWxzZQ0KLQkJdHMtPnRz
X3J1bnEgPSAmdGRxLT50ZHFfaWRsZTsNCisJdGRxX3J1bnFfYWRkKHRkcSwg
dHMsIGZsYWdzKTsNCisJdGRxX2xvYWRfYWRkKHRkcSwgdHMpOw0KICNpZmRl
ZiBTTVANCisJY2xhc3MgPSBQUklfQkFTRSh0ZC0+dGRfcHJpX2NsYXNzKTsN
CiAJY3B1bWFzayA9IDEgPDwgdHMtPnRzX2NwdTsNCiAJLyoNCiAJICogSWYg
d2UgaGFkIGJlZW4gaWRsZSwgY2xlYXIgb3VyIGJpdCBpbiB0aGUgZ3JvdXAg
YW5kIHBvdGVudGlhbGx5DQpAQCAtMjM3OCw4ICsyNDE5LDYgQEANCiAJaWYg
KHRkLT50ZF9wcmlvcml0eSA8IHRkcS0+dGRxX2xvd3ByaSkNCiAJCXRkcS0+
dGRxX2xvd3ByaSA9IHRkLT50ZF9wcmlvcml0eTsNCiAjZW5kaWYNCi0JdGRx
X3J1bnFfYWRkKHRkcSwgdHMsIGZsYWdzKTsNCi0JdGRxX2xvYWRfYWRkKHRk
cSwgdHMpOw0KIH0NCiANCiAvKg0KQEAgLTI2NjAsOCArMjY5OSwxMCBAQA0K
ICAgICAiU2NoZWR1bGVyIik7DQogU1lTQ1RMX1NUUklORyhfa2Vybl9zY2hl
ZCwgT0lEX0FVVE8sIG5hbWUsIENUTEZMQUdfUkQsICJVTEUiLCAwLA0KICAg
ICAiU2NoZWR1bGVyIG5hbWUiKTsNCi1TWVNDVExfSU5UKF9rZXJuX3NjaGVk
LCBPSURfQVVUTywgc2xpY2UsIENUTEZMQUdfUlcsICZzY2hlZF9zbGljZSwg
MCwNCi0gICAgIlNsaWNlIHNpemUgZm9yIHRpbWVzaGFyZSB0aHJlYWRzIik7
DQorU1lTQ1RMX0lOVChfa2Vybl9zY2hlZCwgT0lEX0FVVE8sIHNsaWNlLCBD
VExGTEFHX1JXLCAmc2NoZWRfc2xpY2VfbWF4LCAwLA0KKyAgICAiTWF4aW11
bSBzbGljZSBzaXplIGZvciB0aW1lc2hhcmUgdGhyZWFkcyIpOw0KK1NZU0NU
TF9JTlQoX2tlcm5fc2NoZWQsIE9JRF9BVVRPLCBzbGljZV9taW4sIENUTEZM
QUdfUlcsICZzY2hlZF9zbGljZV9taW4sIDAsDQorICAgICJNaW5pbXVtIHNs
aWNlIHNpemUgZm9yIHRpbWVzaGFyZSB0aHJlYWRzIik7DQogU1lTQ1RMX0lO
VChfa2Vybl9zY2hlZCwgT0lEX0FVVE8sIGludGVyYWN0LCBDVExGTEFHX1JX
LCAmc2NoZWRfaW50ZXJhY3QsIDAsDQogICAgICAiSW50ZXJhY3Rpdml0eSBz
Y29yZSB0aHJlc2hvbGQiKTsNCiBTWVNDVExfSU5UKF9rZXJuX3NjaGVkLCBP
SURfQVVUTywgcHJlZW1wdF90aHJlc2gsIENUTEZMQUdfUlcsICZwcmVlbXB0
X3RocmVzaCwNCkBAIC0yNjcxLDcgKzI3MTIsNiBAQA0KICAgICAiUGljayB0
aGUgdGFyZ2V0IGNwdSBiYXNlZCBvbiBwcmlvcml0eSByYXRoZXIgdGhhbiBs
b2FkLiIpOw0KIFNZU0NUTF9JTlQoX2tlcm5fc2NoZWQsIE9JRF9BVVRPLCBh
ZmZpbml0eSwgQ1RMRkxBR19SVywgJmFmZmluaXR5LCAwLA0KICAgICAiTnVt
YmVyIG9mIGh6IHRpY2tzIHRvIGtlZXAgdGhyZWFkIGFmZmluaXR5IGZvciIp
Ow0KLVNZU0NUTF9JTlQoX2tlcm5fc2NoZWQsIE9JRF9BVVRPLCB0cnlzZWxm
LCBDVExGTEFHX1JXLCAmdHJ5c2VsZiwgMCwgIiIpOw0KIFNZU0NUTF9JTlQo
X2tlcm5fc2NoZWQsIE9JRF9BVVRPLCBiYWxhbmNlLCBDVExGTEFHX1JXLCAm
cmViYWxhbmNlLCAwLA0KICAgICAiRW5hYmxlcyB0aGUgbG9uZy10ZXJtIGxv
YWQgYmFsYW5jZXIiKTsNCiBTWVNDVExfSU5UKF9rZXJuX3NjaGVkLCBPSURf
QVVUTywgYmFsYW5jZV9pbnRlcnZhbCwgQ1RMRkxBR19SVywNCg==

--0-341352189-1194191606=:18739--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?614810.18739.qm>