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

On Sun, 4 Nov 2007, Josh Carroll wrote:

>> Josh, thanks for your help so far.  This has been very useful.
>
> You're welcome, glad to help! Thanks for the effort and the patch.
>
>> 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.
>
> Here are a few benchmarks comparing ULE and the patched ULE. I
> experimented in changing the slice_min value from 2 to 4, in case that
> might be useful info for you. Hopefully that helps a bit, but if not
> it's just a few minutes of CPU time wasted :)

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.

Thanks,
Jeff

>
> Sysbench results:
> # threads    slice=7     slice=13     slice_min=4      slice_min=2
> 4                2265.67    2250.36      2261.71            2297.08
> 8                2300.25    2310.02      2306.79            2313.61
> 12              2269.54    2304.04      2296.54            2279.73
> 16              2249.26    2252.04      2260.53            2245.76
>
> It looks like with the default minimum (2), the performance for systat
> is better with 4 and 8 threads (on a 4 core system), but worse for 12
> and 16 threads.
>
> Here are the results for ffmpeg (-threads 8):
>
> slice=7      slice=13       slice_min=4         slice_min=2
> 1:37.00      1:39.09         1:38.12                1:38.06
>
> The patch definitely improves things there, though not quite as good
> as using a slice value of 7. But it does improve things. So it
> slightly improves things for ffmpeg and also slightly increases the
> performance of sysbench/MySQL (with 8 threads).
>
> I also ran through buildworld for both slice_min of 2 and 4, and here
> are the results, again with ULE as a base line:
>
> slice=7      slice=13       slice_min=4         slice_min=2
> 13:40.56    13:44.28       13:46.64              13:45.80
>
> So buildworld performance is about the same as with the default ULE
> and default slice value.
>
> 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-799710710-1194208176=:544
Content-Type: TEXT/x-diff; charset=US-ASCII; name=uleslice.diff
Content-Transfer-Encoding: BASE64
Content-ID: <20071104122936.D544@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
Y3B1ID0gdHMtPnRzX2NwdTsNCiAJLyoNCkBAIC0xMTc1LDYgKzEyMjUsNyBA
QA0KIAlydW5xX2luaXQoJnRkcS0+dGRxX3RpbWVzaGFyZSk7DQogCXJ1bnFf
aW5pdCgmdGRxLT50ZHFfaWRsZSk7DQogCXRkcS0+dGRxX2xvYWQgPSAwOw0K
Kwl0ZHEtPnRkcV9pbnRlcmxvYWQgPSAwOw0KIH0NCiANCiAjaWZkZWYgU01Q
DQpAQCAtMTMyNCwxMiArMTM3NSwxMiBAQA0KIAkgKiBpbiBjYXNlIHdoaWNo
IHNjaGVkX2Nsb2NrKCkgY2FsbGVkIGJlZm9yZSBzY2hlZF9pbml0dGlja3Mo
KS4NCiAJICovDQogCXJlYWxzdGF0aHogPSBoejsNCi0Jc2NoZWRfc2xpY2Ug
PSAocmVhbHN0YXRoei8xMCk7CS8qIH4xMDBtcyAqLw0KIAl0aWNraW5jciA9
IDEgPDwgU0NIRURfVElDS19TSElGVDsNCiANCiAJLyogQWRkIHRocmVhZDAn
cyBsb2FkIHNpbmNlIGl0J3MgcnVubmluZy4gKi8NCiAJVERRX0xPQ0sodGRx
KTsNCiAJdGhyZWFkMC50ZF9sb2NrID0gVERRX0xPQ0tQVFIoVERRX1NFTEYo
KSk7DQorCXRkX3NjaGVkMC50c19zY29yZSA9IDA7DQogCXRkcV9sb2FkX2Fk
ZCh0ZHEsICZ0ZF9zY2hlZDApOw0KIAlURFFfVU5MT0NLKHRkcSk7DQogfQ0K
QEAgLTEzNDQsNyArMTM5NSw4IEBADQogCWludCBpbmNyOw0KIA0KIAlyZWFs
c3RhdGh6ID0gc3RhdGh6ID8gc3RhdGh6IDogaHo7DQotCXNjaGVkX3NsaWNl
ID0gKHJlYWxzdGF0aHovMTApOwkvKiB+MTAwbXMgKi8NCisJc2NoZWRfc2xp
Y2VfbWF4ID0gcmVhbHN0YXRoeiAvIDE1OwkvKiB+NjZtcyAqLw0KKwlzY2hl
ZF9zbGljZV9taW4gPSByZWFsc3RhdGh6IC8gNTA7CS8qIH4yMG1zICovDQog
DQogCS8qDQogCSAqIHRpY2tpbmNyIGlzIHNoaWZ0ZWQgb3V0IGJ5IDEwIHRv
IGF2b2lkIHJvdW5kaW5nIGVycm9ycyBkdWUgdG8NCkBAIC0xMzc0LDcgKzE0
MjYsNiBAQA0KICNlbmRpZg0KIH0NCiANCi0NCiAvKg0KICAqIFRoaXMgaXMg
dGhlIGNvcmUgb2YgdGhlIGludGVyYWN0aXZpdHkgYWxnb3JpdGhtLiAgRGV0
ZXJtaW5lcyBhIHNjb3JlIGJhc2VkDQogICogb24gcGFzdCBiZWhhdmlvci4g
IEl0IGlzIHRoZSByYXRpbyBvZiBzbGVlcCB0aW1lIHRvIHJ1biB0aW1lIHNj
YWxlZCB0bw0KQEAgLTEzODksMTUgKzE0NDAsNiBAQA0KIAlpbnQgZGl2Ow0K
IA0KIAl0cyA9IHRkLT50ZF9zY2hlZDsNCi0JLyoNCi0JICogVGhlIHNjb3Jl
IGlzIG9ubHkgbmVlZGVkIGlmIHRoaXMgaXMgbGlrZWx5IHRvIGJlIGFuIGlu
dGVyYWN0aXZlDQotCSAqIHRhc2suICBEb24ndCBnbyB0aHJvdWdoIHRoZSBl
eHBlbnNlIG9mIGNvbXB1dGluZyBpdCBpZiB0aGVyZSdzDQotCSAqIG5vIGNo
YW5jZS4NCi0JICovDQotCWlmIChzY2hlZF9pbnRlcmFjdCA8PSBTQ0hFRF9J
TlRFUkFDVF9IQUxGICYmDQotCQl0cy0+dHNfcnVudGltZSA+PSB0cy0+dHNf
c2xwdGltZSkNCi0JCQlyZXR1cm4gKFNDSEVEX0lOVEVSQUNUX0hBTEYpOw0K
LQ0KIAlpZiAodHMtPnRzX3J1bnRpbWUgPiB0cy0+dHNfc2xwdGltZSkgew0K
IAkJZGl2ID0gbWF4KDEsIHRzLT50c19ydW50aW1lIC8gU0NIRURfSU5URVJB
Q1RfSEFMRik7DQogCQlyZXR1cm4gKFNDSEVEX0lOVEVSQUNUX0hBTEYgKw0K
QEAgLTE0NDMsNyArMTQ4NSw3IEBADQogCSAqIHNjb3JlLiAgTmVnYXRpdmUg
bmljZSB2YWx1ZXMgbWFrZSBpdCBlYXNpZXIgZm9yIGEgdGhyZWFkIHRvIGJl
DQogCSAqIGNvbnNpZGVyZWQgaW50ZXJhY3RpdmUuDQogCSAqLw0KLQlzY29y
ZSA9IGltYXgoMCwgc2NoZWRfaW50ZXJhY3Rfc2NvcmUodGQpIC0gdGQtPnRk
X3Byb2MtPnBfbmljZSk7DQorCXNjb3JlID0gaW1heCgwLCB0ZC0+dGRfc2No
ZWQtPnRzX3Njb3JlIC0gdGQtPnRkX3Byb2MtPnBfbmljZSk7DQogCWlmIChz
Y29yZSA8IHNjaGVkX2ludGVyYWN0KSB7DQogCQlwcmkgPSBQUklfTUlOX1JF
QUxUSU1FOw0KIAkJcHJpICs9ICgoUFJJX01BWF9SRUFMVElNRSAtIFBSSV9N
SU5fUkVBTFRJTUUpIC8gc2NoZWRfaW50ZXJhY3QpDQpAQCAtMTQ3NywxMiAr
MTUxOSwxNSBAQA0KIHNjaGVkX2ludGVyYWN0X3VwZGF0ZShzdHJ1Y3QgdGhy
ZWFkICp0ZCkNCiB7DQogCXN0cnVjdCB0ZF9zY2hlZCAqdHM7DQorCXN0cnVj
dCB0ZHEgKnRkcTsNCiAJdV9pbnQgc3VtOw0KKwlpbnQgc2NvcmU7DQogDQor
CVRIUkVBRF9MT0NLX0FTU0VSVCh0ZCwgTUFfT1dORUQpOw0KIAl0cyA9IHRk
LT50ZF9zY2hlZDsNCiAJc3VtID0gdHMtPnRzX3J1bnRpbWUgKyB0cy0+dHNf
c2xwdGltZTsNCiAJaWYgKHN1bSA8IFNDSEVEX1NMUF9SVU5fTUFYKQ0KLQkJ
cmV0dXJuOw0KKwkJZ290byBzY29yZTsNCiAJLyoNCiAJICogVGhpcyBvbmx5
IGhhcHBlbnMgZnJvbSB0d28gcGxhY2VzOg0KIAkgKiAxKSBXZSBoYXZlIGFk
ZGVkIGFuIHVudXN1YWwgYW1vdW50IG9mIHJ1biB0aW1lIGZyb20gZm9ya19l
eGl0Lg0KQEAgLTE0OTAsMTMgKzE1MzUsMTMgQEANCiAJICovDQogCWlmIChz
dW0gPiBTQ0hFRF9TTFBfUlVOX01BWCAqIDIpIHsNCiAJCWlmICh0cy0+dHNf
cnVudGltZSA+IHRzLT50c19zbHB0aW1lKSB7DQotCQkJdHMtPnRzX3J1bnRp
bWUgPSBTQ0hFRF9TTFBfUlVOX01BWDsNCisJCQl0cy0+dHNfcnVudGltZSA9
IFNDSEVEX1NMUF9SVU5fTUFYIC8gMjsNCiAJCQl0cy0+dHNfc2xwdGltZSA9
IDE7DQogCQl9IGVsc2Ugew0KLQkJCXRzLT50c19zbHB0aW1lID0gU0NIRURf
U0xQX1JVTl9NQVg7DQorCQkJdHMtPnRzX3NscHRpbWUgPSBTQ0hFRF9TTFBf
UlVOX01BWCAvIDI7DQogCQkJdHMtPnRzX3J1bnRpbWUgPSAxOw0KIAkJfQ0K
LQkJcmV0dXJuOw0KKwkJZ290byBzY29yZTsNCiAJfQ0KIAkvKg0KIAkgKiBJ
ZiB3ZSBoYXZlIGV4Y2VlZGVkIGJ5IG1vcmUgdGhhbiAxLzV0aCB0aGVuIHRo
ZSBhbGdvcml0aG0gYmVsb3cNCkBAIC0xNTA2LDEwICsxNTUxLDE5IEBADQog
CWlmIChzdW0gPiAoU0NIRURfU0xQX1JVTl9NQVggLyA1KSAqIDYpIHsNCiAJ
CXRzLT50c19ydW50aW1lIC89IDI7DQogCQl0cy0+dHNfc2xwdGltZSAvPSAy
Ow0KLQkJcmV0dXJuOw0KKwkJZ290byBzY29yZTsNCiAJfQ0KIAl0cy0+dHNf
cnVudGltZSA9ICh0cy0+dHNfcnVudGltZSAvIDUpICogNDsNCiAJdHMtPnRz
X3NscHRpbWUgPSAodHMtPnRzX3NscHRpbWUgLyA1KSAqIDQ7DQorc2NvcmU6
DQorCXNjb3JlID0gc2NoZWRfaW50ZXJhY3Rfc2NvcmUodGQpOw0KKwlpZiAo
dHMtPnRzX2ZsYWdzICYgVFNGX0lOVEVSTE9BRCkgew0KKwkJdGRxID0gVERR
X0NQVSh0cy0+dHNfY3B1KTsNCisJCVREUV9MT0NLX0FTU0VSVCh0ZHEsIE1B
X09XTkVEKTsNCisJCXRkcS0+dGRxX2ludGVybG9hZCAtPSB0cy0+dHNfc2Nv
cmU7DQorCQl0ZHEtPnRkcV9pbnRlcmxvYWQgKz0gc2NvcmU7DQorCX0NCisJ
dHMtPnRzX3Njb3JlID0gc2NvcmU7DQogfQ0KIA0KIC8qDQpAQCAtMTU1OSw3
ICsxNjEzLDcgQEANCiB7DQogDQogCS8qIENvbnZlcnQgc2NoZWRfc2xpY2Ug
dG8gaHogKi8NCi0JcmV0dXJuIChoei8ocmVhbHN0YXRoei9zY2hlZF9zbGlj
ZSkpOw0KKwlyZXR1cm4gKGh6LyhyZWFsc3RhdGh6L3NjaGVkX3NsaWNlX21h
eCkpOw0KIH0NCiANCiAvKg0KQEAgLTE1OTgsMTYgKzE2NTIsMTkgQEANCiBz
Y2hlZF90aHJlYWRfcHJpb3JpdHkoc3RydWN0IHRocmVhZCAqdGQsIHVfY2hh
ciBwcmlvKQ0KIHsNCiAJc3RydWN0IHRkX3NjaGVkICp0czsNCisJc3RydWN0
IHRkcSAqdGRxOw0KIA0KIAlDVFI2KEtUUl9TQ0hFRCwgInNjaGVkX3ByaW86
ICVwKCVzKSBwcmlvICVkIG5ld3ByaW8gJWQgYnkgJXAoJXMpIiwNCiAJICAg
IHRkLCB0ZC0+dGRfcHJvYy0+cF9jb21tLCB0ZC0+dGRfcHJpb3JpdHksIHBy
aW8sIGN1cnRocmVhZCwNCiAJICAgIGN1cnRocmVhZC0+dGRfcHJvYy0+cF9j
b21tKTsNCiAJdHMgPSB0ZC0+dGRfc2NoZWQ7DQorCXRkcSA9IFREUV9DUFUo
dHMtPnRzX2NwdSk7DQogCVRIUkVBRF9MT0NLX0FTU0VSVCh0ZCwgTUFfT1dO
RUQpOw0KLQlpZiAodGQtPnRkX3ByaW9yaXR5ID09IHByaW8pDQorCWlmICh0
ZC0+dGRfcHJpb3JpdHkgPD0gcHJpbykgew0KKwkJdGQtPnRkX3ByaW9yaXR5
ID0gcHJpbzsNCiAJCXJldHVybjsNCi0NCi0JaWYgKFREX09OX1JVTlEodGQp
ICYmIHByaW8gPCB0ZC0+dGRfcHJpb3JpdHkpIHsNCisJfQ0KKwlpZiAoVERf
T05fUlVOUSh0ZCkpIHsNCiAJCS8qDQogCQkgKiBJZiB0aGUgcHJpb3JpdHkg
aGFzIGJlZW4gZWxldmF0ZWQgZHVlIHRvIHByaW9yaXR5DQogCQkgKiBwcm9w
YWdhdGlvbiwgd2UgbWF5IGhhdmUgdG8gbW92ZSBvdXJzZWx2ZXMgdG8gYSBu
ZXcNCkBAIC0xNjE3LDE2ICsxNjc0LDE0IEBADQogCQlzY2hlZF9yZW0odGQp
Ow0KIAkJdGQtPnRkX3ByaW9yaXR5ID0gcHJpbzsNCiAJCXNjaGVkX2FkZCh0
ZCwgU1JRX0JPUlJPV0lORyk7DQotCX0gZWxzZSB7DQogI2lmZGVmIFNNUA0K
LQkJc3RydWN0IHRkcSAqdGRxOw0KLQ0KLQkJdGRxID0gVERRX0NQVSh0cy0+
dHNfY3B1KTsNCisJfSBlbHNlIGlmIChURF9JU19SVU5OSU5HKHRkKSkgew0K
IAkJaWYgKHByaW8gPCB0ZHEtPnRkcV9sb3dwcmkpDQogCQkJdGRxLT50ZHFf
bG93cHJpID0gcHJpbzsNCisJCXRkLT50ZF9wcmlvcml0eSA9IHByaW87DQog
I2VuZGlmDQorCX0gZWxzZQ0KIAkJdGQtPnRkX3ByaW9yaXR5ID0gcHJpbzsN
Ci0JfQ0KIH0NCiANCiAvKg0KQEAgLTE3NzIsNiArMTgyNyw4IEBADQogDQog
CXRkbiA9IFREUV9DUFUodGQtPnRkX3NjaGVkLT50c19jcHUpOw0KICNpZmRl
ZiBTTVANCisJLyogVGhlIGxvYWQgaXMgYmVpbmcgcmVtb3ZlZCBmcm9tIHRo
ZSBjdXJyZW50IGNwdS4gKi8NCisJdGRxX2xvYWRfcmVtKHRkcSwgdGQtPnRk
X3NjaGVkKTsNCiAJLyoNCiAJICogRG8gdGhlIGxvY2sgZGFuY2UgcmVxdWly
ZWQgdG8gYXZvaWQgTE9SLiAgV2UgZ3JhYiBhbiBleHRyYQ0KIAkgKiBzcGlu
bG9jayBuZXN0aW5nIHRvIHByZXZlbnQgcHJlZW1wdGlvbiB3aGlsZSB3ZSdy
ZQ0KQEAgLTE4NjMsMTIgKzE5MjAsMTEgQEANCiAJCVREX1NFVF9DQU5fUlVO
KHRkKTsNCiAJfSBlbHNlIGlmIChURF9JU19SVU5OSU5HKHRkKSkgew0KIAkJ
TVBBU1ModGQtPnRkX2xvY2sgPT0gVERRX0xPQ0tQVFIodGRxKSk7DQotCQl0
ZHFfbG9hZF9yZW0odGRxLCB0cyk7DQogCQlzcnFmbGFnID0gKGZsYWdzICYg
U1dfUFJFRU1QVCkgPw0KIAkJICAgIFNSUV9PVVJTRUxGfFNSUV9ZSUVMRElO
R3xTUlFfUFJFRU1QVEVEIDoNCiAJCSAgICBTUlFfT1VSU0VMRnxTUlFfWUlF
TERJTkc7DQogCQlpZiAodHMtPnRzX2NwdSA9PSBjcHVpZCkNCi0JCQl0ZHFf
YWRkKHRkcSwgdGQsIHNycWZsYWcpOw0KKwkJCXRkcV9ydW5xX2FkZCh0ZHEs
IHRzLCBzcnFmbGFnKTsNCiAJCWVsc2UNCiAJCQltdHggPSBzY2hlZF9zd2l0
Y2hfbWlncmF0ZSh0ZHEsIHRkLCBzcnFmbGFnKTsNCiAJfSBlbHNlIHsNCkBA
IC0xOTcwLDIyICsyMDI2LDE4IEBADQogCVRIUkVBRF9MT0NLX0FTU0VSVCh0
ZCwgTUFfT1dORUQpOw0KIAl0cyA9IHRkLT50ZF9zY2hlZDsNCiAJLyoNCi0J
ICogSWYgd2Ugc2xlcHQgZm9yIG1vcmUgdGhhbiBhIHRpY2sgdXBkYXRlIG91
ciBpbnRlcmFjdGl2aXR5IGFuZA0KLQkgKiBwcmlvcml0eS4NCisJICogVXBk
YXRlIGludGVyYWN0aXZpdHkgYW5kIHByaW9yaXR5IGFmdGVyIGEgc2xlZXAu
DQogCSAqLw0KIAlzbHB0aWNrID0gdGQtPnRkX3NscHRpY2s7DQogCXRkLT50
ZF9zbHB0aWNrID0gMDsNCi0JaWYgKHNscHRpY2sgJiYgc2xwdGljayAhPSB0
aWNrcykgew0KLQkJdV9pbnQgaHp0aWNrczsNCi0NCi0JCWh6dGlja3MgPSAo
dGlja3MgLSBzbHB0aWNrKSA8PCBTQ0hFRF9USUNLX1NISUZUOw0KLQkJdHMt
PnRzX3NscHRpbWUgKz0gaHp0aWNrczsNCisJaWYgKHNscHRpY2sgJiYgc2xw
dGljayAhPSB0aWNrcykgIHsNCisJCXRzLT50c19zbHB0aW1lICs9ICh0aWNr
cyAtIHNscHRpY2spIDw8IFNDSEVEX1RJQ0tfU0hJRlQ7DQogCQlzY2hlZF9p
bnRlcmFjdF91cGRhdGUodGQpOw0KIAkJc2NoZWRfcGN0Y3B1X3VwZGF0ZSh0
cyk7DQogCQlzY2hlZF9wcmlvcml0eSh0ZCk7DQorCQkvKiBSZXNldCB0aGUg
c2xpY2UgdmFsdWUgYWZ0ZXIgd2Ugc2xlZXAuICovDQorCQl0cy0+dHNfc2xp
Y2UgPSAwOw0KIAl9DQotCS8qIFJlc2V0IHRoZSBzbGljZSB2YWx1ZSBhZnRl
ciB3ZSBzbGVlcC4gKi8NCi0JdHMtPnRzX3NsaWNlID0gc2NoZWRfc2xpY2U7
DQogCXNjaGVkX2FkZCh0ZCwgU1JRX0JPUklORyk7DQogfQ0KIA0KQEAgLTIw
NDAsNyArMjA5Miw2IEBADQogCSAqLw0KIAl0czItPnRzX3NscHRpbWUgPSB0
cy0+dHNfc2xwdGltZTsNCiAJdHMyLT50c19ydW50aW1lID0gdHMtPnRzX3J1
bnRpbWU7DQotCXRzMi0+dHNfc2xpY2UgPSAxOwkvKiBBdHRlbXB0IHRvIHF1
aWNrbHkgbGVhcm4gaW50ZXJhY3Rpdml0eS4gKi8NCiB9DQogDQogLyoNCkBA
IC0yMTg4LDI1ICsyMjM5LDI2IEBADQogCX0NCiAJdHMgPSB0ZC0+dGRfc2No
ZWQ7DQogCS8qDQotCSAqIFdlIG9ubHkgZG8gc2xpY2luZyBjb2RlIGZvciBU
SU1FU0hBUkUgdGhyZWFkcy4NCi0JICovDQotCWlmICh0ZC0+dGRfcHJpX2Ns
YXNzICE9IFBSSV9USU1FU0hBUkUpDQotCQlyZXR1cm47DQotCS8qDQogCSAq
IFdlIHVzZWQgYSB0aWNrOyBjaGFyZ2UgaXQgdG8gdGhlIHRocmVhZCBzbyB0
aGF0IHdlIGNhbiBjb21wdXRlIG91cg0KIAkgKiBpbnRlcmFjdGl2aXR5Lg0K
IAkgKi8NCiAJdGQtPnRkX3NjaGVkLT50c19ydW50aW1lICs9IHRpY2tpbmNy
Ow0KIAlzY2hlZF9pbnRlcmFjdF91cGRhdGUodGQpOw0KIAkvKg0KKwkgKiBX
ZSBvbmx5IGRvIHNsaWNpbmcgY29kZSBmb3IgVElNRVNIQVJFIHRocmVhZHMu
DQorCSAqLw0KKwlpZiAodGQtPnRkX3ByaV9jbGFzcyAhPSBQUklfVElNRVNI
QVJFKQ0KKwkJcmV0dXJuOw0KKwlzY2hlZF9wcmlvcml0eSh0ZCk7DQorCS8q
DQogCSAqIFdlIHVzZWQgdXAgb25lIHRpbWUgc2xpY2UuDQogCSAqLw0KLQlp
ZiAoLS10cy0+dHNfc2xpY2UgPiAwKQ0KKwlpZiAoKyt0cy0+dHNfc2xpY2Ug
PCB0ZHFfc2xpY2UodGRxKSkNCiAJCXJldHVybjsNCiAJLyoNCi0JICogV2Un
cmUgb3V0IG9mIHRpbWUsIHJlY29tcHV0ZSBwcmlvcml0aWVzIGFuZCByZXF1
ZXVlLg0KKwkgKiBXZSdyZSBvdXQgb2YgdGltZSwgZm9yY2UgYSByZXF1ZXVl
IGxhdGVyLg0KIAkgKi8NCi0Jc2NoZWRfcHJpb3JpdHkodGQpOw0KKwl0cy0+
dHNfc2xpY2UgPSAwOw0KIAl0ZC0+dGRfZmxhZ3MgfD0gVERGX05FRURSRVND
SEVEOw0KIH0NCiANCkBAIC0yMzI4LDExICsyMzgwLDEwIEBADQogdGRxX2Fk
ZChzdHJ1Y3QgdGRxICp0ZHEsIHN0cnVjdCB0aHJlYWQgKnRkLCBpbnQgZmxh
Z3MpDQogew0KIAlzdHJ1Y3QgdGRfc2NoZWQgKnRzOw0KLQlpbnQgY2xhc3M7
DQogI2lmZGVmIFNNUA0KKwlpbnQgY2xhc3M7DQogCWludCBjcHVtYXNrOw0K
ICNlbmRpZg0KLQ0KIAlURFFfTE9DS19BU1NFUlQodGRxLCBNQV9PV05FRCk7
DQogCUtBU1NFUlQoKHRkLT50ZF9pbmhpYml0b3JzID09IDApLA0KIAkgICAg
KCJzY2hlZF9hZGQ6IHRyeWluZyB0byBydW4gaW5oaWJpdGVkIHRocmVhZCIp
KTsNCkBAIC0yMzQyLDIwICsyMzkzLDEwIEBADQogCSAgICAoInNjaGVkX2Fk
ZDogdGhyZWFkIHN3YXBwZWQgb3V0IikpOw0KIA0KIAl0cyA9IHRkLT50ZF9z
Y2hlZDsNCi0JY2xhc3MgPSBQUklfQkFTRSh0ZC0+dGRfcHJpX2NsYXNzKTsN
Ci0gICAgICAgIFREX1NFVF9SVU5RKHRkKTsNCi0JaWYgKHRzLT50c19zbGlj
ZSA9PSAwKQ0KLQkJdHMtPnRzX3NsaWNlID0gc2NoZWRfc2xpY2U7DQotCS8q
DQotCSAqIFBpY2sgdGhlIHJ1biBxdWV1ZSBiYXNlZCBvbiBwcmlvcml0eS4N
Ci0JICovDQotCWlmICh0ZC0+dGRfcHJpb3JpdHkgPD0gUFJJX01BWF9SRUFM
VElNRSkNCi0JCXRzLT50c19ydW5xID0gJnRkcS0+dGRxX3JlYWx0aW1lOw0K
LQllbHNlIGlmICh0ZC0+dGRfcHJpb3JpdHkgPD0gUFJJX01BWF9USU1FU0hB
UkUpDQotCQl0cy0+dHNfcnVucSA9ICZ0ZHEtPnRkcV90aW1lc2hhcmU7DQot
CWVsc2UNCi0JCXRzLT50c19ydW5xID0gJnRkcS0+dGRxX2lkbGU7DQorCXRk
cV9ydW5xX2FkZCh0ZHEsIHRzLCBmbGFncyk7DQorCXRkcV9sb2FkX2FkZCh0
ZHEsIHRzKTsNCiAjaWZkZWYgU01QDQorCWNsYXNzID0gUFJJX0JBU0UodGQt
PnRkX3ByaV9jbGFzcyk7DQogCWNwdW1hc2sgPSAxIDw8IHRzLT50c19jcHU7
DQogCS8qDQogCSAqIElmIHdlIGhhZCBiZWVuIGlkbGUsIGNsZWFyIG91ciBi
aXQgaW4gdGhlIGdyb3VwIGFuZCBwb3RlbnRpYWxseQ0KQEAgLTIzNzgsOCAr
MjQxOSw2IEBADQogCWlmICh0ZC0+dGRfcHJpb3JpdHkgPCB0ZHEtPnRkcV9s
b3dwcmkpDQogCQl0ZHEtPnRkcV9sb3dwcmkgPSB0ZC0+dGRfcHJpb3JpdHk7
DQogI2VuZGlmDQotCXRkcV9ydW5xX2FkZCh0ZHEsIHRzLCBmbGFncyk7DQot
CXRkcV9sb2FkX2FkZCh0ZHEsIHRzKTsNCiB9DQogDQogLyoNCkBAIC0yNjYw
LDggKzI2OTksMTAgQEANCiAgICAgIlNjaGVkdWxlciIpOw0KIFNZU0NUTF9T
VFJJTkcoX2tlcm5fc2NoZWQsIE9JRF9BVVRPLCBuYW1lLCBDVExGTEFHX1JE
LCAiVUxFIiwgMCwNCiAgICAgIlNjaGVkdWxlciBuYW1lIik7DQotU1lTQ1RM
X0lOVChfa2Vybl9zY2hlZCwgT0lEX0FVVE8sIHNsaWNlLCBDVExGTEFHX1JX
LCAmc2NoZWRfc2xpY2UsIDAsDQotICAgICJTbGljZSBzaXplIGZvciB0aW1l
c2hhcmUgdGhyZWFkcyIpOw0KK1NZU0NUTF9JTlQoX2tlcm5fc2NoZWQsIE9J
RF9BVVRPLCBzbGljZSwgQ1RMRkxBR19SVywgJnNjaGVkX3NsaWNlX21heCwg
MCwNCisgICAgIk1heGltdW0gc2xpY2Ugc2l6ZSBmb3IgdGltZXNoYXJlIHRo
cmVhZHMiKTsNCitTWVNDVExfSU5UKF9rZXJuX3NjaGVkLCBPSURfQVVUTywg
c2xpY2VfbWluLCBDVExGTEFHX1JXLCAmc2NoZWRfc2xpY2VfbWluLCAwLA0K
KyAgICAiTWluaW11bSBzbGljZSBzaXplIGZvciB0aW1lc2hhcmUgdGhyZWFk
cyIpOw0KIFNZU0NUTF9JTlQoX2tlcm5fc2NoZWQsIE9JRF9BVVRPLCBpbnRl
cmFjdCwgQ1RMRkxBR19SVywgJnNjaGVkX2ludGVyYWN0LCAwLA0KICAgICAg
IkludGVyYWN0aXZpdHkgc2NvcmUgdGhyZXNob2xkIik7DQogU1lTQ1RMX0lO
VChfa2Vybl9zY2hlZCwgT0lEX0FVVE8sIHByZWVtcHRfdGhyZXNoLCBDVExG
TEFHX1JXLCAmcHJlZW1wdF90aHJlc2gsDQpAQCAtMjY3MSw3ICsyNzEyLDYg
QEANCiAgICAgIlBpY2sgdGhlIHRhcmdldCBjcHUgYmFzZWQgb24gcHJpb3Jp
dHkgcmF0aGVyIHRoYW4gbG9hZC4iKTsNCiBTWVNDVExfSU5UKF9rZXJuX3Nj
aGVkLCBPSURfQVVUTywgYWZmaW5pdHksIENUTEZMQUdfUlcsICZhZmZpbml0
eSwgMCwNCiAgICAgIk51bWJlciBvZiBoeiB0aWNrcyB0byBrZWVwIHRocmVh
ZCBhZmZpbml0eSBmb3IiKTsNCi1TWVNDVExfSU5UKF9rZXJuX3NjaGVkLCBP
SURfQVVUTywgdHJ5c2VsZiwgQ1RMRkxBR19SVywgJnRyeXNlbGYsIDAsICIi
KTsNCiBTWVNDVExfSU5UKF9rZXJuX3NjaGVkLCBPSURfQVVUTywgYmFsYW5j
ZSwgQ1RMRkxBR19SVywgJnJlYmFsYW5jZSwgMCwNCiAgICAgIkVuYWJsZXMg
dGhlIGxvbmctdGVybSBsb2FkIGJhbGFuY2VyIik7DQogU1lTQ1RMX0lOVChf
a2Vybl9zY2hlZCwgT0lEX0FVVE8sIGJhbGFuY2VfaW50ZXJ2YWwsIENUTEZM
QUdfUlcsDQo=

--0-799710710-1194208176=:544--



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