Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 Nov 2007 13:40:05 -0800 (PST)
From:      Jeff Roberson <jroberson@chesapeake.net>
To:        Josh Carroll <josh.carroll@gmail.com>
Cc:        freebsd-performance@freebsd.org
Subject:   Re: ULE vs. 4BSD in RELENG_7
Message-ID:  <20071103133711.Q544@10.0.0.1>
In-Reply-To: <8cb6106e0711031416l4183e2beueb87fade0d56f504@mail.gmail.com>
References:  <8cb6106e0710230902x4edf2c8eu2d912d5de1f5d4a2@mail.gmail.com>  <8cb6106e0710241229i12852d8cq436f4c955ac62c56@mail.gmail.com>  <20071024133240.X598@10.0.0.1> <8cb6106e0710251925s2db0117cvcb67321b08d7b2a1@mail.gmail.com> <20071102102331.G544@10.0.0.1> <8cb6106e0711021306w10c48a15s99eab526064ac814@mail.gmail.com> <20071102150028.R544@10.0.0.1> <8cb6106e0711021839i4714bdfbh74d412b3e14e808@mail.gmail.com> <8cb6106e0711031227t1e829969s2e6062e1db5167af@mail.gmail.com>  <20071103121921.M544@10.0.0.1> <8cb6106e0711031416l4183e2beueb87fade0d56f504@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--0-298094039-1194126005=:544
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed

On Sat, 3 Nov 2007, Josh Carroll wrote:

>> What was the -j value and number of processors?
>
> -j 8.
>
> I did the following (one warm up, 3 times in a row after that, averaged):
>
> cd /usr/src
> rm -rf /usr/obj/*
> make clean
> time make -j8 -DNOCLEAN buildworld
>
> The system is a Q6600, so 4 cores.

Josh, thanks for your help so far.  This has been very useful.  I have 
attached a patch which does three basic things that might improve these 
benchmarks:

1)  Improves context switch time by shuffling around some priority 
computation work to happen far less frequently.
2)  Dynamically adjusts slice sizes to respond to load.  With low load 
kern.sched.slice is used but this is scaled down to kern.sched.slice_min 
when there is too much work on the queue.  This also changes the default 
slice size down to 8 stathz ticks.
3)  Improves the load balancer to not just consider the number of runnable 
threads but how much work they each might do.

Any testing you can run this through is appreciated.  Anyone else lurking 
in this thread who would like to is also welcome to report back findings.

Thanks,
Jeff

>
> Thanks,
> Josh
>
--0-298094039-1194126005=:544
Content-Type: TEXT/x-diff; charset=US-ASCII; name=uleslice.diff
Content-Transfer-Encoding: BASE64
Content-ID: <20071103134005.R544@10.0.0.1>
Content-Description: 
Content-Disposition: attachment; filename=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-298094039-1194126005=:544--



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