Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 4 Nov 2007 15:19:32 -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:  <20071104151722.M544@10.0.0.1>
In-Reply-To: <8cb6106e0711041243s37ef92e3i9c5c79827f547dbb@mail.gmail.com>
References:  <8cb6106e0710230902x4edf2c8eu2d912d5de1f5d4a2@mail.gmail.com> <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> <20071103133711.Q544@10.0.0.1> <8cb6106e0711032221i2ecf1d59ge82f368d4162a827@mail.gmail.com> <20071104122546.S544@10.0.0.1> <8cb6106e0711041243s37ef92e3i9c5c79827f547dbb@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-603731913-1194218372=:544
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed

On Sun, 4 Nov 2007, Josh Carroll wrote:

>> Josh, I included one too many changes in the diff and it made the results
>> ambiguous.  I've scaled it back slightly by removing the changes to
>> sched_pickcpu() and included the patch in this email again.  Can you run
>> through your tests once more?  I'd like to commit this part soon as it
>> helps in other cases.  I'm most interested in the buildworld numbers for
>> now.
>
> Sure, I can run through them. Should I change the slice_min value at
> all during testing to compare different values? Or is that part of the
> other patch that is not included in this (haven't fetched and grep'd
> it yet). :)
>
> I'll get the benchmark numbers as soon as I can.

Turns out the last patch I posted had a small compile error because I 
edited it by hand to remove one section.  Here's an updated patch that 
fixes that and changes the min/max slice values to something more 
reasonable.  Slice min should be around 4 with a max of 12.

Also looks like 4BSD's slice handling got more precise recently as well. 
jhb changed it from using a callout to an actual counter based on runtime.

Thanks,
Jeff

>
> Thanks,
> Josh
> _______________________________________________
> freebsd-performance@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-performance
> To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org"
>
--0-603731913-1194218372=:544
Content-Type: TEXT/x-diff; charset=US-ASCII; name=uleslice.diff
Content-Transfer-Encoding: BASE64
Content-ID: <20071104151932.T544@10.0.0.1>
Content-Description: 
Content-Disposition: attachment; filename=uleslice.diff

SW5kZXg6IHNjaGVkX3VsZS5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpS
Q1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvc3lzL2tlcm4vc2NoZWRfdWxlLmMs
dg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjIxNg0KZGlmZiAtdSAtcjEuMjE2
IHNjaGVkX3VsZS5jDQotLS0gc2NoZWRfdWxlLmMJMjMgT2N0IDIwMDcgMDA6
NTI6MjQgLTAwMDAJMS4yMTYNCisrKyBzY2hlZF91bGUuYwk0IE5vdiAyMDA3
IDIzOjE2OjMwIC0wMDAwDQpAQCAtODgsNyArODgsOCBAQA0KIAlzaG9ydAkJ
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
IDwgMTAwKQ0KKwkJcmV0dXJuIChzY2hlZF9zbGljZV9tYXgpOw0KKwkvKg0K
KwkgKiBBbiBpbnRlcmxvYWQgb2YgMTAwIGlzIHJvdWdobHkgZXF1aXZhbGVu
dCB0byAxMDAlIGNwdSB1dGlsaXphdGlvbg0KKwkgKiByZXF1ZXN0ZWQuICBD
YWxjdWxhdGUgaG93IG1hbnkgdGltZXMgb3ZlcmxvYWRlZCB3ZSBhcmUgYW5k
IHRoZW4NCisJICogZGl2aWRlIHRoZSBtYXhpbXVtIHNsaWNlIGJ5IHRoaXMg
bnVtYmVyLiAgTm9uZSBvZiB0aGlzIGlzIHByZWNpc2UNCisJICogYnV0IGl0
IGRvZXMgeWllbGQgZGVjcmVhc2luZyBzbGljZSB2YWx1ZXMgd2l0aGluIHRo
ZSBbbWluLCBtYXhdDQorCSAqIHJhbmdlIGFzIGxvYWQgaW5jcmVhc2VzLg0K
KwkgKi8NCisJbG9hZCA9ICh0ZHEtPnRkcV9pbnRlcmxvYWQgKyA5OSkgLyAx
MDA7DQorCXNsaWNlID0gc2NoZWRfc2xpY2VfbWF4IC8gbG9hZDsNCisJc2xp
Y2UgPSBtYXgoc2xpY2UsIHNjaGVkX3NsaWNlX21pbik7DQorCXJldHVybiAo
c2xpY2UpOw0KIH0NCiANCiAjaWZkZWYgU01QDQpAQCAtMTA3MCwxNCArMTEy
Nyw2IEBADQogCWNwdSA9IHNlbGYgPSBQQ1BVX0dFVChjcHVpZCk7DQogCWlm
IChzbXBfc3RhcnRlZCA9PSAwKQ0KIAkJcmV0dXJuIChzZWxmKTsNCi0JLyoN
Ci0JICogRG9uJ3QgbWlncmF0ZSBhIHJ1bm5pbmcgdGhyZWFkIGZyb20gc2No
ZWRfc3dpdGNoKCkuDQotCSAqLw0KLQlpZiAoZmxhZ3MgJiBTUlFfT1VSU0VM
Rikgew0KLQkJQ1RSMShLVFJfVUxFLCAiWUlFTERJTkcgJWQiLA0KLQkJICAg
IGN1cnRocmVhZC0+dGRfcHJpb3JpdHkpOw0KLQkJcmV0dXJuIChzZWxmKTsN
Ci0JfQ0KIAlwcmkgPSB0cy0+dHNfdGhyZWFkLT50ZF9wcmlvcml0eTsNCiAJ
Y3B1ID0gdHMtPnRzX2NwdTsNCiAJLyoNCkBAIC0xMTEzLDkgKzExNjIsOCBA
QA0KIAkgKiBUaGlzIG1heSBpbXByb3ZlIGxvY2FsaXR5IGFtb25nIHNsZWVw
ZXJzIGFuZCB3YWtlcnMgd2hlbiB0aGVyZQ0KIAkgKiBpcyBzaGFyZWQgZGF0
YS4NCiAJICovDQotCWlmICh0cnlzZWxmICYmIHByaSA8IGN1cnRocmVhZC0+
dGRfcHJpb3JpdHkpIHsNCi0JCUNUUjEoS1RSX1VMRSwgInRyeXNlbGYgJWQi
LA0KLQkJICAgIGN1cnRocmVhZC0+dGRfcHJpb3JpdHkpOw0KKwlpZiAocHJp
IDwgY3VydGhyZWFkLT50ZF9wcmlvcml0eSkgew0KKwkJQ1RSMShLVFJfVUxF
LCAidHJ5c2VsZiAlZCIsIGN1cnRocmVhZC0+dGRfcHJpb3JpdHkpOw0KIAkJ
cmV0dXJuIChzZWxmKTsNCiAJfQ0KIAkvKg0KQEAgLTExNzUsNiArMTIyMyw3
IEBADQogCXJ1bnFfaW5pdCgmdGRxLT50ZHFfdGltZXNoYXJlKTsNCiAJcnVu
cV9pbml0KCZ0ZHEtPnRkcV9pZGxlKTsNCiAJdGRxLT50ZHFfbG9hZCA9IDA7
DQorCXRkcS0+dGRxX2ludGVybG9hZCA9IDA7DQogfQ0KIA0KICNpZmRlZiBT
TVANCkBAIC0xMzI0LDEyICsxMzczLDEyIEBADQogCSAqIGluIGNhc2Ugd2hp
Y2ggc2NoZWRfY2xvY2soKSBjYWxsZWQgYmVmb3JlIHNjaGVkX2luaXR0aWNr
cygpLg0KIAkgKi8NCiAJcmVhbHN0YXRoeiA9IGh6Ow0KLQlzY2hlZF9zbGlj
ZSA9IChyZWFsc3RhdGh6LzEwKTsJLyogfjEwMG1zICovDQogCXRpY2tpbmNy
ID0gMSA8PCBTQ0hFRF9USUNLX1NISUZUOw0KIA0KIAkvKiBBZGQgdGhyZWFk
MCdzIGxvYWQgc2luY2UgaXQncyBydW5uaW5nLiAqLw0KIAlURFFfTE9DSyh0
ZHEpOw0KIAl0aHJlYWQwLnRkX2xvY2sgPSBURFFfTE9DS1BUUihURFFfU0VM
RigpKTsNCisJdGRfc2NoZWQwLnRzX3Njb3JlID0gMDsNCiAJdGRxX2xvYWRf
YWRkKHRkcSwgJnRkX3NjaGVkMCk7DQogCVREUV9VTkxPQ0sodGRxKTsNCiB9
DQpAQCAtMTM0NCw3ICsxMzkzLDggQEANCiAJaW50IGluY3I7DQogDQogCXJl
YWxzdGF0aHogPSBzdGF0aHogPyBzdGF0aHogOiBoejsNCi0Jc2NoZWRfc2xp
Y2UgPSAocmVhbHN0YXRoei8xMCk7CS8qIH4xMDBtcyAqLw0KKwlzY2hlZF9z
bGljZV9tYXggPSByZWFsc3RhdGh6IC8gMTA7CS8qIH4xMDBtcyAqLw0KKwlz
Y2hlZF9zbGljZV9taW4gPSByZWFsc3RhdGh6IC8gMjU7CS8qIH40MG1zICov
DQogDQogCS8qDQogCSAqIHRpY2tpbmNyIGlzIHNoaWZ0ZWQgb3V0IGJ5IDEw
IHRvIGF2b2lkIHJvdW5kaW5nIGVycm9ycyBkdWUgdG8NCkBAIC0xMzc0LDcg
KzE0MjQsNiBAQA0KICNlbmRpZg0KIH0NCiANCi0NCiAvKg0KICAqIFRoaXMg
aXMgdGhlIGNvcmUgb2YgdGhlIGludGVyYWN0aXZpdHkgYWxnb3JpdGhtLiAg
RGV0ZXJtaW5lcyBhIHNjb3JlIGJhc2VkDQogICogb24gcGFzdCBiZWhhdmlv
ci4gIEl0IGlzIHRoZSByYXRpbyBvZiBzbGVlcCB0aW1lIHRvIHJ1biB0aW1l
IHNjYWxlZCB0bw0KQEAgLTEzODksMTUgKzE0MzgsNiBAQA0KIAlpbnQgZGl2
Ow0KIA0KIAl0cyA9IHRkLT50ZF9zY2hlZDsNCi0JLyoNCi0JICogVGhlIHNj
b3JlIGlzIG9ubHkgbmVlZGVkIGlmIHRoaXMgaXMgbGlrZWx5IHRvIGJlIGFu
IGludGVyYWN0aXZlDQotCSAqIHRhc2suICBEb24ndCBnbyB0aHJvdWdoIHRo
ZSBleHBlbnNlIG9mIGNvbXB1dGluZyBpdCBpZiB0aGVyZSdzDQotCSAqIG5v
IGNoYW5jZS4NCi0JICovDQotCWlmIChzY2hlZF9pbnRlcmFjdCA8PSBTQ0hF
RF9JTlRFUkFDVF9IQUxGICYmDQotCQl0cy0+dHNfcnVudGltZSA+PSB0cy0+
dHNfc2xwdGltZSkNCi0JCQlyZXR1cm4gKFNDSEVEX0lOVEVSQUNUX0hBTEYp
Ow0KLQ0KIAlpZiAodHMtPnRzX3J1bnRpbWUgPiB0cy0+dHNfc2xwdGltZSkg
ew0KIAkJZGl2ID0gbWF4KDEsIHRzLT50c19ydW50aW1lIC8gU0NIRURfSU5U
RVJBQ1RfSEFMRik7DQogCQlyZXR1cm4gKFNDSEVEX0lOVEVSQUNUX0hBTEYg
Kw0KQEAgLTE0NDMsNyArMTQ4Myw3IEBADQogCSAqIHNjb3JlLiAgTmVnYXRp
dmUgbmljZSB2YWx1ZXMgbWFrZSBpdCBlYXNpZXIgZm9yIGEgdGhyZWFkIHRv
IGJlDQogCSAqIGNvbnNpZGVyZWQgaW50ZXJhY3RpdmUuDQogCSAqLw0KLQlz
Y29yZSA9IGltYXgoMCwgc2NoZWRfaW50ZXJhY3Rfc2NvcmUodGQpIC0gdGQt
PnRkX3Byb2MtPnBfbmljZSk7DQorCXNjb3JlID0gaW1heCgwLCB0ZC0+dGRf
c2NoZWQtPnRzX3Njb3JlIC0gdGQtPnRkX3Byb2MtPnBfbmljZSk7DQogCWlm
IChzY29yZSA8IHNjaGVkX2ludGVyYWN0KSB7DQogCQlwcmkgPSBQUklfTUlO
X1JFQUxUSU1FOw0KIAkJcHJpICs9ICgoUFJJX01BWF9SRUFMVElNRSAtIFBS
SV9NSU5fUkVBTFRJTUUpIC8gc2NoZWRfaW50ZXJhY3QpDQpAQCAtMTQ3Nywx
MiArMTUxNywxNSBAQA0KIHNjaGVkX2ludGVyYWN0X3VwZGF0ZShzdHJ1Y3Qg
dGhyZWFkICp0ZCkNCiB7DQogCXN0cnVjdCB0ZF9zY2hlZCAqdHM7DQorCXN0
cnVjdCB0ZHEgKnRkcTsNCiAJdV9pbnQgc3VtOw0KKwlpbnQgc2NvcmU7DQog
DQorCVRIUkVBRF9MT0NLX0FTU0VSVCh0ZCwgTUFfT1dORUQpOw0KIAl0cyA9
IHRkLT50ZF9zY2hlZDsNCiAJc3VtID0gdHMtPnRzX3J1bnRpbWUgKyB0cy0+
dHNfc2xwdGltZTsNCiAJaWYgKHN1bSA8IFNDSEVEX1NMUF9SVU5fTUFYKQ0K
LQkJcmV0dXJuOw0KKwkJZ290byBzY29yZTsNCiAJLyoNCiAJICogVGhpcyBv
bmx5IGhhcHBlbnMgZnJvbSB0d28gcGxhY2VzOg0KIAkgKiAxKSBXZSBoYXZl
IGFkZGVkIGFuIHVudXN1YWwgYW1vdW50IG9mIHJ1biB0aW1lIGZyb20gZm9y
a19leGl0Lg0KQEAgLTE0OTAsMTMgKzE1MzMsMTMgQEANCiAJICovDQogCWlm
IChzdW0gPiBTQ0hFRF9TTFBfUlVOX01BWCAqIDIpIHsNCiAJCWlmICh0cy0+
dHNfcnVudGltZSA+IHRzLT50c19zbHB0aW1lKSB7DQotCQkJdHMtPnRzX3J1
bnRpbWUgPSBTQ0hFRF9TTFBfUlVOX01BWDsNCisJCQl0cy0+dHNfcnVudGlt
ZSA9IFNDSEVEX1NMUF9SVU5fTUFYIC8gMjsNCiAJCQl0cy0+dHNfc2xwdGlt
ZSA9IDE7DQogCQl9IGVsc2Ugew0KLQkJCXRzLT50c19zbHB0aW1lID0gU0NI
RURfU0xQX1JVTl9NQVg7DQorCQkJdHMtPnRzX3NscHRpbWUgPSBTQ0hFRF9T
TFBfUlVOX01BWCAvIDI7DQogCQkJdHMtPnRzX3J1bnRpbWUgPSAxOw0KIAkJ
fQ0KLQkJcmV0dXJuOw0KKwkJZ290byBzY29yZTsNCiAJfQ0KIAkvKg0KIAkg
KiBJZiB3ZSBoYXZlIGV4Y2VlZGVkIGJ5IG1vcmUgdGhhbiAxLzV0aCB0aGVu
IHRoZSBhbGdvcml0aG0gYmVsb3cNCkBAIC0xNTA2LDEwICsxNTQ5LDE5IEBA
DQogCWlmIChzdW0gPiAoU0NIRURfU0xQX1JVTl9NQVggLyA1KSAqIDYpIHsN
CiAJCXRzLT50c19ydW50aW1lIC89IDI7DQogCQl0cy0+dHNfc2xwdGltZSAv
PSAyOw0KLQkJcmV0dXJuOw0KKwkJZ290byBzY29yZTsNCiAJfQ0KIAl0cy0+
dHNfcnVudGltZSA9ICh0cy0+dHNfcnVudGltZSAvIDUpICogNDsNCiAJdHMt
PnRzX3NscHRpbWUgPSAodHMtPnRzX3NscHRpbWUgLyA1KSAqIDQ7DQorc2Nv
cmU6DQorCXNjb3JlID0gc2NoZWRfaW50ZXJhY3Rfc2NvcmUodGQpOw0KKwlp
ZiAodHMtPnRzX2ZsYWdzICYgVFNGX0lOVEVSTE9BRCkgew0KKwkJdGRxID0g
VERRX0NQVSh0cy0+dHNfY3B1KTsNCisJCVREUV9MT0NLX0FTU0VSVCh0ZHEs
IE1BX09XTkVEKTsNCisJCXRkcS0+dGRxX2ludGVybG9hZCAtPSB0cy0+dHNf
c2NvcmU7DQorCQl0ZHEtPnRkcV9pbnRlcmxvYWQgKz0gc2NvcmU7DQorCX0N
CisJdHMtPnRzX3Njb3JlID0gc2NvcmU7DQogfQ0KIA0KIC8qDQpAQCAtMTU1
OSw3ICsxNjExLDcgQEANCiB7DQogDQogCS8qIENvbnZlcnQgc2NoZWRfc2xp
Y2UgdG8gaHogKi8NCi0JcmV0dXJuIChoei8ocmVhbHN0YXRoei9zY2hlZF9z
bGljZSkpOw0KKwlyZXR1cm4gKGh6LyhyZWFsc3RhdGh6L3NjaGVkX3NsaWNl
X21heCkpOw0KIH0NCiANCiAvKg0KQEAgLTE1OTgsMTYgKzE2NTAsMTkgQEAN
CiBzY2hlZF90aHJlYWRfcHJpb3JpdHkoc3RydWN0IHRocmVhZCAqdGQsIHVf
Y2hhciBwcmlvKQ0KIHsNCiAJc3RydWN0IHRkX3NjaGVkICp0czsNCisJc3Ry
dWN0IHRkcSAqdGRxOw0KIA0KIAlDVFI2KEtUUl9TQ0hFRCwgInNjaGVkX3By
aW86ICVwKCVzKSBwcmlvICVkIG5ld3ByaW8gJWQgYnkgJXAoJXMpIiwNCiAJ
ICAgIHRkLCB0ZC0+dGRfcHJvYy0+cF9jb21tLCB0ZC0+dGRfcHJpb3JpdHks
IHByaW8sIGN1cnRocmVhZCwNCiAJICAgIGN1cnRocmVhZC0+dGRfcHJvYy0+
cF9jb21tKTsNCiAJdHMgPSB0ZC0+dGRfc2NoZWQ7DQorCXRkcSA9IFREUV9D
UFUodHMtPnRzX2NwdSk7DQogCVRIUkVBRF9MT0NLX0FTU0VSVCh0ZCwgTUFf
T1dORUQpOw0KLQlpZiAodGQtPnRkX3ByaW9yaXR5ID09IHByaW8pDQorCWlm
ICh0ZC0+dGRfcHJpb3JpdHkgPD0gcHJpbykgew0KKwkJdGQtPnRkX3ByaW9y
aXR5ID0gcHJpbzsNCiAJCXJldHVybjsNCi0NCi0JaWYgKFREX09OX1JVTlEo
dGQpICYmIHByaW8gPCB0ZC0+dGRfcHJpb3JpdHkpIHsNCisJfQ0KKwlpZiAo
VERfT05fUlVOUSh0ZCkpIHsNCiAJCS8qDQogCQkgKiBJZiB0aGUgcHJpb3Jp
dHkgaGFzIGJlZW4gZWxldmF0ZWQgZHVlIHRvIHByaW9yaXR5DQogCQkgKiBw
cm9wYWdhdGlvbiwgd2UgbWF5IGhhdmUgdG8gbW92ZSBvdXJzZWx2ZXMgdG8g
YSBuZXcNCkBAIC0xNjE3LDE2ICsxNjcyLDE0IEBADQogCQlzY2hlZF9yZW0o
dGQpOw0KIAkJdGQtPnRkX3ByaW9yaXR5ID0gcHJpbzsNCiAJCXNjaGVkX2Fk
ZCh0ZCwgU1JRX0JPUlJPV0lORyk7DQotCX0gZWxzZSB7DQogI2lmZGVmIFNN
UA0KLQkJc3RydWN0IHRkcSAqdGRxOw0KLQ0KLQkJdGRxID0gVERRX0NQVSh0
cy0+dHNfY3B1KTsNCisJfSBlbHNlIGlmIChURF9JU19SVU5OSU5HKHRkKSkg
ew0KIAkJaWYgKHByaW8gPCB0ZHEtPnRkcV9sb3dwcmkpDQogCQkJdGRxLT50
ZHFfbG93cHJpID0gcHJpbzsNCisJCXRkLT50ZF9wcmlvcml0eSA9IHByaW87
DQogI2VuZGlmDQorCX0gZWxzZQ0KIAkJdGQtPnRkX3ByaW9yaXR5ID0gcHJp
bzsNCi0JfQ0KIH0NCiANCiAvKg0KQEAgLTE3NzIsNiArMTgyNSw4IEBADQog
DQogCXRkbiA9IFREUV9DUFUodGQtPnRkX3NjaGVkLT50c19jcHUpOw0KICNp
ZmRlZiBTTVANCisJLyogVGhlIGxvYWQgaXMgYmVpbmcgcmVtb3ZlZCBmcm9t
IHRoZSBjdXJyZW50IGNwdS4gKi8NCisJdGRxX2xvYWRfcmVtKHRkcSwgdGQt
PnRkX3NjaGVkKTsNCiAJLyoNCiAJICogRG8gdGhlIGxvY2sgZGFuY2UgcmVx
dWlyZWQgdG8gYXZvaWQgTE9SLiAgV2UgZ3JhYiBhbiBleHRyYQ0KIAkgKiBz
cGlubG9jayBuZXN0aW5nIHRvIHByZXZlbnQgcHJlZW1wdGlvbiB3aGlsZSB3
ZSdyZQ0KQEAgLTE4NjMsMTIgKzE5MTgsMTEgQEANCiAJCVREX1NFVF9DQU5f
UlVOKHRkKTsNCiAJfSBlbHNlIGlmIChURF9JU19SVU5OSU5HKHRkKSkgew0K
IAkJTVBBU1ModGQtPnRkX2xvY2sgPT0gVERRX0xPQ0tQVFIodGRxKSk7DQot
CQl0ZHFfbG9hZF9yZW0odGRxLCB0cyk7DQogCQlzcnFmbGFnID0gKGZsYWdz
ICYgU1dfUFJFRU1QVCkgPw0KIAkJICAgIFNSUV9PVVJTRUxGfFNSUV9ZSUVM
RElOR3xTUlFfUFJFRU1QVEVEIDoNCiAJCSAgICBTUlFfT1VSU0VMRnxTUlFf
WUlFTERJTkc7DQogCQlpZiAodHMtPnRzX2NwdSA9PSBjcHVpZCkNCi0JCQl0
ZHFfYWRkKHRkcSwgdGQsIHNycWZsYWcpOw0KKwkJCXRkcV9ydW5xX2FkZCh0
ZHEsIHRzLCBzcnFmbGFnKTsNCiAJCWVsc2UNCiAJCQltdHggPSBzY2hlZF9z
d2l0Y2hfbWlncmF0ZSh0ZHEsIHRkLCBzcnFmbGFnKTsNCiAJfSBlbHNlIHsN
CkBAIC0xOTcwLDIyICsyMDI0LDE4IEBADQogCVRIUkVBRF9MT0NLX0FTU0VS
VCh0ZCwgTUFfT1dORUQpOw0KIAl0cyA9IHRkLT50ZF9zY2hlZDsNCiAJLyoN
Ci0JICogSWYgd2Ugc2xlcHQgZm9yIG1vcmUgdGhhbiBhIHRpY2sgdXBkYXRl
IG91ciBpbnRlcmFjdGl2aXR5IGFuZA0KLQkgKiBwcmlvcml0eS4NCisJICog
VXBkYXRlIGludGVyYWN0aXZpdHkgYW5kIHByaW9yaXR5IGFmdGVyIGEgc2xl
ZXAuDQogCSAqLw0KIAlzbHB0aWNrID0gdGQtPnRkX3NscHRpY2s7DQogCXRk
LT50ZF9zbHB0aWNrID0gMDsNCi0JaWYgKHNscHRpY2sgJiYgc2xwdGljayAh
PSB0aWNrcykgew0KLQkJdV9pbnQgaHp0aWNrczsNCi0NCi0JCWh6dGlja3Mg
PSAodGlja3MgLSBzbHB0aWNrKSA8PCBTQ0hFRF9USUNLX1NISUZUOw0KLQkJ
dHMtPnRzX3NscHRpbWUgKz0gaHp0aWNrczsNCisJaWYgKHNscHRpY2sgJiYg
c2xwdGljayAhPSB0aWNrcykgIHsNCisJCXRzLT50c19zbHB0aW1lICs9ICh0
aWNrcyAtIHNscHRpY2spIDw8IFNDSEVEX1RJQ0tfU0hJRlQ7DQogCQlzY2hl
ZF9pbnRlcmFjdF91cGRhdGUodGQpOw0KIAkJc2NoZWRfcGN0Y3B1X3VwZGF0
ZSh0cyk7DQogCQlzY2hlZF9wcmlvcml0eSh0ZCk7DQorCQkvKiBSZXNldCB0
aGUgc2xpY2UgdmFsdWUgYWZ0ZXIgd2Ugc2xlZXAuICovDQorCQl0cy0+dHNf
c2xpY2UgPSAwOw0KIAl9DQotCS8qIFJlc2V0IHRoZSBzbGljZSB2YWx1ZSBh
ZnRlciB3ZSBzbGVlcC4gKi8NCi0JdHMtPnRzX3NsaWNlID0gc2NoZWRfc2xp
Y2U7DQogCXNjaGVkX2FkZCh0ZCwgU1JRX0JPUklORyk7DQogfQ0KIA0KQEAg
LTIwNDAsNyArMjA5MCw2IEBADQogCSAqLw0KIAl0czItPnRzX3NscHRpbWUg
PSB0cy0+dHNfc2xwdGltZTsNCiAJdHMyLT50c19ydW50aW1lID0gdHMtPnRz
X3J1bnRpbWU7DQotCXRzMi0+dHNfc2xpY2UgPSAxOwkvKiBBdHRlbXB0IHRv
IHF1aWNrbHkgbGVhcm4gaW50ZXJhY3Rpdml0eS4gKi8NCiB9DQogDQogLyoN
CkBAIC0yMTg4LDI1ICsyMjM3LDI2IEBADQogCX0NCiAJdHMgPSB0ZC0+dGRf
c2NoZWQ7DQogCS8qDQotCSAqIFdlIG9ubHkgZG8gc2xpY2luZyBjb2RlIGZv
ciBUSU1FU0hBUkUgdGhyZWFkcy4NCi0JICovDQotCWlmICh0ZC0+dGRfcHJp
X2NsYXNzICE9IFBSSV9USU1FU0hBUkUpDQotCQlyZXR1cm47DQotCS8qDQog
CSAqIFdlIHVzZWQgYSB0aWNrOyBjaGFyZ2UgaXQgdG8gdGhlIHRocmVhZCBz
byB0aGF0IHdlIGNhbiBjb21wdXRlIG91cg0KIAkgKiBpbnRlcmFjdGl2aXR5
Lg0KIAkgKi8NCiAJdGQtPnRkX3NjaGVkLT50c19ydW50aW1lICs9IHRpY2tp
bmNyOw0KIAlzY2hlZF9pbnRlcmFjdF91cGRhdGUodGQpOw0KIAkvKg0KKwkg
KiBXZSBvbmx5IGRvIHNsaWNpbmcgY29kZSBmb3IgVElNRVNIQVJFIHRocmVh
ZHMuDQorCSAqLw0KKwlpZiAodGQtPnRkX3ByaV9jbGFzcyAhPSBQUklfVElN
RVNIQVJFKQ0KKwkJcmV0dXJuOw0KKwlzY2hlZF9wcmlvcml0eSh0ZCk7DQor
CS8qDQogCSAqIFdlIHVzZWQgdXAgb25lIHRpbWUgc2xpY2UuDQogCSAqLw0K
LQlpZiAoLS10cy0+dHNfc2xpY2UgPiAwKQ0KKwlpZiAoKyt0cy0+dHNfc2xp
Y2UgPCB0ZHFfc2xpY2UodGRxKSkNCiAJCXJldHVybjsNCiAJLyoNCi0JICog
V2UncmUgb3V0IG9mIHRpbWUsIHJlY29tcHV0ZSBwcmlvcml0aWVzIGFuZCBy
ZXF1ZXVlLg0KKwkgKiBXZSdyZSBvdXQgb2YgdGltZSwgZm9yY2UgYSByZXF1
ZXVlIGxhdGVyLg0KIAkgKi8NCi0Jc2NoZWRfcHJpb3JpdHkodGQpOw0KKwl0
cy0+dHNfc2xpY2UgPSAwOw0KIAl0ZC0+dGRfZmxhZ3MgfD0gVERGX05FRURS
RVNDSEVEOw0KIH0NCiANCkBAIC0yMjkwLDM1ICsyMzQwLDYgQEANCiAjZW5k
aWYNCiAJcmV0dXJuIChQQ1BVX0dFVChpZGxldGhyZWFkKSk7DQogfQ0KLQ0K
LS8qDQotICogU2V0IG93ZXByZWVtcHQgaWYgbmVjZXNzYXJ5LiAgUHJlZW1w
dGlvbiBuZXZlciBoYXBwZW5zIGRpcmVjdGx5IGluIFVMRSwNCi0gKiB3ZSBh
bHdheXMgcmVxdWVzdCBpdCBvbmNlIHdlIGV4aXQgYSBjcml0aWNhbCBzZWN0
aW9uLg0KLSAqLw0KLXN0YXRpYyBpbmxpbmUgdm9pZA0KLXNjaGVkX3NldHBy
ZWVtcHQoc3RydWN0IHRocmVhZCAqdGQpDQotew0KLQlzdHJ1Y3QgdGhyZWFk
ICpjdGQ7DQotCWludCBjcHJpOw0KLQlpbnQgcHJpOw0KLQ0KLQljdGQgPSBj
dXJ0aHJlYWQ7DQotCXByaSA9IHRkLT50ZF9wcmlvcml0eTsNCi0JY3ByaSA9
IGN0ZC0+dGRfcHJpb3JpdHk7DQotCWlmICh0ZC0+dGRfcHJpb3JpdHkgPCBj
dGQtPnRkX3ByaW9yaXR5KQ0KLQkJY3VydGhyZWFkLT50ZF9mbGFncyB8PSBU
REZfTkVFRFJFU0NIRUQ7DQotCWlmIChwYW5pY3N0ciAhPSBOVUxMIHx8IHBy
aSA+PSBjcHJpIHx8IGNvbGQgfHwgVERfSVNfSU5ISUJJVEVEKGN0ZCkpDQot
CQlyZXR1cm47DQotCS8qDQotCSAqIEFsd2F5cyBwcmVlbXB0IElETEUgdGhy
ZWFkcy4gIE90aGVyd2lzZSBvbmx5IGlmIHRoZSBwcmVlbXB0aW5nDQotCSAq
IHRocmVhZCBpcyBhbiBpdGhyZWFkLg0KLQkgKi8NCi0JaWYgKHByaSA+IHBy
ZWVtcHRfdGhyZXNoICYmIGNwcmkgPCBQUklfTUlOX0lETEUpDQotCQlyZXR1
cm47DQotCWN0ZC0+dGRfb3dlcHJlZW1wdCA9IDE7DQotCXJldHVybjsNCi19
DQotDQogLyoNCiAgKiBBZGQgYSB0aHJlYWQgdG8gYSB0aHJlYWQgcXVldWUu
ICBJbml0aWFsaXplcyBwcmlvcml0eSwgc2xpY2UsIHJ1bnEsIGFuZA0KICAq
IGFkZCBpdCB0byB0aGUgYXBwcm9wcmlhdGUgcXVldWUuICBUaGlzIGlzIHRo
ZSBpbnRlcm5hbCBmdW5jdGlvbiBjYWxsZWQNCkBAIC0yMzI4LDExICsyMzQ5
LDEwIEBADQogdGRxX2FkZChzdHJ1Y3QgdGRxICp0ZHEsIHN0cnVjdCB0aHJl
YWQgKnRkLCBpbnQgZmxhZ3MpDQogew0KIAlzdHJ1Y3QgdGRfc2NoZWQgKnRz
Ow0KLQlpbnQgY2xhc3M7DQogI2lmZGVmIFNNUA0KKwlpbnQgY2xhc3M7DQog
CWludCBjcHVtYXNrOw0KICNlbmRpZg0KLQ0KIAlURFFfTE9DS19BU1NFUlQo
dGRxLCBNQV9PV05FRCk7DQogCUtBU1NFUlQoKHRkLT50ZF9pbmhpYml0b3Jz
ID09IDApLA0KIAkgICAgKCJzY2hlZF9hZGQ6IHRyeWluZyB0byBydW4gaW5o
aWJpdGVkIHRocmVhZCIpKTsNCkBAIC0yMzQyLDIwICsyMzYyLDEwIEBADQog
CSAgICAoInNjaGVkX2FkZDogdGhyZWFkIHN3YXBwZWQgb3V0IikpOw0KIA0K
IAl0cyA9IHRkLT50ZF9zY2hlZDsNCi0JY2xhc3MgPSBQUklfQkFTRSh0ZC0+
dGRfcHJpX2NsYXNzKTsNCi0gICAgICAgIFREX1NFVF9SVU5RKHRkKTsNCi0J
aWYgKHRzLT50c19zbGljZSA9PSAwKQ0KLQkJdHMtPnRzX3NsaWNlID0gc2No
ZWRfc2xpY2U7DQotCS8qDQotCSAqIFBpY2sgdGhlIHJ1biBxdWV1ZSBiYXNl
ZCBvbiBwcmlvcml0eS4NCi0JICovDQotCWlmICh0ZC0+dGRfcHJpb3JpdHkg
PD0gUFJJX01BWF9SRUFMVElNRSkNCi0JCXRzLT50c19ydW5xID0gJnRkcS0+
dGRxX3JlYWx0aW1lOw0KLQllbHNlIGlmICh0ZC0+dGRfcHJpb3JpdHkgPD0g
UFJJX01BWF9USU1FU0hBUkUpDQotCQl0cy0+dHNfcnVucSA9ICZ0ZHEtPnRk
cV90aW1lc2hhcmU7DQotCWVsc2UNCi0JCXRzLT50c19ydW5xID0gJnRkcS0+
dGRxX2lkbGU7DQorCXRkcV9ydW5xX2FkZCh0ZHEsIHRzLCBmbGFncyk7DQor
CXRkcV9sb2FkX2FkZCh0ZHEsIHRzKTsNCiAjaWZkZWYgU01QDQorCWNsYXNz
ID0gUFJJX0JBU0UodGQtPnRkX3ByaV9jbGFzcyk7DQogCWNwdW1hc2sgPSAx
IDw8IHRzLT50c19jcHU7DQogCS8qDQogCSAqIElmIHdlIGhhZCBiZWVuIGlk
bGUsIGNsZWFyIG91ciBiaXQgaW4gdGhlIGdyb3VwIGFuZCBwb3RlbnRpYWxs
eQ0KQEAgLTIzNzgsOCArMjM4OCw2IEBADQogCWlmICh0ZC0+dGRfcHJpb3Jp
dHkgPCB0ZHEtPnRkcV9sb3dwcmkpDQogCQl0ZHEtPnRkcV9sb3dwcmkgPSB0
ZC0+dGRfcHJpb3JpdHk7DQogI2VuZGlmDQotCXRkcV9ydW5xX2FkZCh0ZHEs
IHRzLCBmbGFncyk7DQotCXRkcV9sb2FkX2FkZCh0ZHEsIHRzKTsNCiB9DQog
DQogLyoNCkBAIC0yMzkwLDYgKzIzOTgsNyBAQA0KIHNjaGVkX2FkZChzdHJ1
Y3QgdGhyZWFkICp0ZCwgaW50IGZsYWdzKQ0KIHsNCiAJc3RydWN0IHRkX3Nj
aGVkICp0czsNCisJc3RydWN0IHRocmVhZCAqY3RkOw0KIAlzdHJ1Y3QgdGRx
ICp0ZHE7DQogI2lmZGVmIFNNUA0KIAlpbnQgY3B1aWQ7DQpAQCAtMjQzNCw4
ICsyNDQzLDE5IEBADQogCXRocmVhZF9sb2NrX3NldCh0ZCwgVERRX0xPQ0tQ
VFIodGRxKSk7DQogCXRkcV9hZGQodGRxLCB0ZCwgZmxhZ3MpOw0KICNlbmRp
Zg0KLQlpZiAoIShmbGFncyAmIFNSUV9ZSUVMRElORykpDQotCQlzY2hlZF9z
ZXRwcmVlbXB0KHRkKTsNCisJaWYgKGNvbGQgfHwgcGFuaWNzdHIpDQorCQly
ZXR1cm47DQorCS8qDQorCSAqIEFsd2F5cyBwcmVlbXB0IElETEUgdGhyZWFk
cy4gIE90aGVyd2lzZSBvbmx5IGlmIHRoZSBwcmVlbXB0aW5nDQorCSAqIHRo
cmVhZCBpcyBhbiBpdGhyZWFkLg0KKwkgKi8NCisJY3RkID0gY3VydGhyZWFk
Ow0KKwlpZiAodGQtPnRkX3ByaW9yaXR5IDwgY3RkLT50ZF9wcmlvcml0eSkg
ew0KKwkJY3RkLT50ZF9mbGFncyB8PSBUREZfTkVFRFJFU0NIRUQ7DQorCQlp
ZiAodGQtPnRkX3ByaW9yaXR5IDw9IHByZWVtcHRfdGhyZXNoIHx8DQorCQkg
ICAgY3RkLT50ZF9wcmlvcml0eSA+IFBSSV9NSU5fSURMRSkNCisJCQljdGQt
PnRkX293ZXByZWVtcHQgPSAxOw0KKwl9DQogfQ0KIA0KIC8qDQpAQCAtMjY2
MCw4ICsyNjgwLDEwIEBADQogICAgICJTY2hlZHVsZXIiKTsNCiBTWVNDVExf
U1RSSU5HKF9rZXJuX3NjaGVkLCBPSURfQVVUTywgbmFtZSwgQ1RMRkxBR19S
RCwgIlVMRSIsIDAsDQogICAgICJTY2hlZHVsZXIgbmFtZSIpOw0KLVNZU0NU
TF9JTlQoX2tlcm5fc2NoZWQsIE9JRF9BVVRPLCBzbGljZSwgQ1RMRkxBR19S
VywgJnNjaGVkX3NsaWNlLCAwLA0KLSAgICAiU2xpY2Ugc2l6ZSBmb3IgdGlt
ZXNoYXJlIHRocmVhZHMiKTsNCitTWVNDVExfSU5UKF9rZXJuX3NjaGVkLCBP
SURfQVVUTywgc2xpY2UsIENUTEZMQUdfUlcsICZzY2hlZF9zbGljZV9tYXgs
IDAsDQorICAgICJNYXhpbXVtIHNsaWNlIHNpemUgZm9yIHRpbWVzaGFyZSB0
aHJlYWRzIik7DQorU1lTQ1RMX0lOVChfa2Vybl9zY2hlZCwgT0lEX0FVVE8s
IHNsaWNlX21pbiwgQ1RMRkxBR19SVywgJnNjaGVkX3NsaWNlX21pbiwgMCwN
CisgICAgIk1pbmltdW0gc2xpY2Ugc2l6ZSBmb3IgdGltZXNoYXJlIHRocmVh
ZHMiKTsNCiBTWVNDVExfSU5UKF9rZXJuX3NjaGVkLCBPSURfQVVUTywgaW50
ZXJhY3QsIENUTEZMQUdfUlcsICZzY2hlZF9pbnRlcmFjdCwgMCwNCiAgICAg
ICJJbnRlcmFjdGl2aXR5IHNjb3JlIHRocmVzaG9sZCIpOw0KIFNZU0NUTF9J
TlQoX2tlcm5fc2NoZWQsIE9JRF9BVVRPLCBwcmVlbXB0X3RocmVzaCwgQ1RM
RkxBR19SVywgJnByZWVtcHRfdGhyZXNoLA0KQEAgLTI2NzEsNyArMjY5Myw2
IEBADQogICAgICJQaWNrIHRoZSB0YXJnZXQgY3B1IGJhc2VkIG9uIHByaW9y
aXR5IHJhdGhlciB0aGFuIGxvYWQuIik7DQogU1lTQ1RMX0lOVChfa2Vybl9z
Y2hlZCwgT0lEX0FVVE8sIGFmZmluaXR5LCBDVExGTEFHX1JXLCAmYWZmaW5p
dHksIDAsDQogICAgICJOdW1iZXIgb2YgaHogdGlja3MgdG8ga2VlcCB0aHJl
YWQgYWZmaW5pdHkgZm9yIik7DQotU1lTQ1RMX0lOVChfa2Vybl9zY2hlZCwg
T0lEX0FVVE8sIHRyeXNlbGYsIENUTEZMQUdfUlcsICZ0cnlzZWxmLCAwLCAi
Iik7DQogU1lTQ1RMX0lOVChfa2Vybl9zY2hlZCwgT0lEX0FVVE8sIGJhbGFu
Y2UsIENUTEZMQUdfUlcsICZyZWJhbGFuY2UsIDAsDQogICAgICJFbmFibGVz
IHRoZSBsb25nLXRlcm0gbG9hZCBiYWxhbmNlciIpOw0KIFNZU0NUTF9JTlQo
X2tlcm5fc2NoZWQsIE9JRF9BVVRPLCBiYWxhbmNlX2ludGVydmFsLCBDVExG
TEFHX1JXLA0K

--0-603731913-1194218372=:544--



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