Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Oct 2007 16:53:33 -0700 (PDT)
From:      Jeff Roberson <jroberson@chesapeake.net>
To:        current@freebsd.org
Subject:   ULE/yielding patch for testing.
Message-ID:  <20071002165007.D587@10.0.0.1>

next 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-92347239-1191369213=:587
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed

Enclosed is a patch that does two things:

1)  Reduces UP context switch time by over 10% making it faster than 4BSD 
on UP.  On SMP it's hard to compare since ULE can do as many as 30x as 
many switches per second on my 8way system.

2)  Restores old sched_yield() behavior from 6.x.  This was changed in 
-current unintentionally I think.

I'd appreciate any extra testing.  The ULE context switch time 
improvements required some changes to the frequency that we recalculate 
priorities.  I'm mostly interested in hearing whether this causes any 
regression in normal workloads.

Those of you still using 4BSD can also verify that the yield changes don't 
cause any problems there.

Thanks,
Jeff
--0-92347239-1191369213=:587
Content-Type: TEXT/x-diff; charset=US-ASCII; name=yield.diff
Content-Transfer-Encoding: BASE64
Content-ID: <20071002165333.F587@10.0.0.1>
Content-Description: 
Content-Disposition: attachment; filename=yield.diff

SW5kZXg6IGtlcm5fc3dpdGNoLmMNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
ClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMva2Vybi9rZXJuX3N3aXRj
aC5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMzYNCmRpZmYgLXAgLXUg
LXIxLjEzNiBrZXJuX3N3aXRjaC5jDQotLS0ga2Vybl9zd2l0Y2guYwkyMCBT
ZXAgMjAwNyAyMDozODo0MyAtMDAwMAkxLjEzNg0KKysrIGtlcm5fc3dpdGNo
LmMJMiBPY3QgMjAwNyAyMTo0MToxMCAtMDAwMA0KQEAgLTEzMywxNiArMTMz
LDYgQEAgY2hvb3NldGhyZWFkKHZvaWQpDQogew0KIAlzdHJ1Y3QgdGhyZWFk
ICp0ZDsNCiANCi0jaWYgZGVmaW5lZChTTVApICYmIChkZWZpbmVkKF9faTM4
Nl9fKSB8fCBkZWZpbmVkKF9fYW1kNjRfXykpDQotCWlmIChzbXBfYWN0aXZl
ID09IDAgJiYgUENQVV9HRVQoY3B1aWQpICE9IDApIHsNCi0JCS8qIFNodXR0
aW5nIGRvd24sIHJ1biBpZGxldGhyZWFkIG9uIEFQJ3MgKi8NCi0JCXRkID0g
UENQVV9HRVQoaWRsZXRocmVhZCk7DQotCQlDVFIxKEtUUl9SVU5RLCAiY2hv
b3NldGhyZWFkOiB0ZD0lcCAoaWRsZSkiLCB0ZCk7DQotCQlURF9TRVRfUlVO
TklORyh0ZCk7DQotCQlyZXR1cm4gKHRkKTsNCi0JfQ0KLSNlbmRpZg0KLQ0K
IHJldHJ5Og0KIAl0ZCA9IHNjaGVkX2Nob29zZSgpOw0KIA0KQEAgLTE4NCw3
ICsxNzQsNyBAQCBjcml0aWNhbF9leGl0KHZvaWQpDQogCXRkID0gY3VydGhy
ZWFkOw0KIAlLQVNTRVJUKHRkLT50ZF9jcml0bmVzdCAhPSAwLA0KIAkgICAg
KCJjcml0aWNhbF9leGl0OiB0ZF9jcml0bmVzdCA9PSAwIikpOw0KLSNpZmRl
ZiBQUkVFTVBUSU9ODQorDQogCWlmICh0ZC0+dGRfY3JpdG5lc3QgPT0gMSkg
ew0KIAkJdGQtPnRkX2NyaXRuZXN0ID0gMDsNCiAJCWlmICh0ZC0+dGRfb3dl
cHJlZW1wdCkgew0KQEAgLTE5Niw3ICsxODYsNiBAQCBjcml0aWNhbF9leGl0
KHZvaWQpDQogCQkJdGhyZWFkX3VubG9jayh0ZCk7DQogCQl9DQogCX0gZWxz
ZQ0KLSNlbmRpZg0KIAkJdGQtPnRkX2NyaXRuZXN0LS07DQogDQogCUNUUjQo
S1RSX0NSSVRJQ0FMLCAiY3JpdGljYWxfZXhpdCBieSB0aHJlYWQgJXAgKCVs
ZCwgJXMpIHRvICVkIiwgdGQsDQpJbmRleDoga2Vybl9zeW5jaC5jDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMv
c3lzL2tlcm4va2Vybl9zeW5jaC5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24g
MS4zMDENCmRpZmYgLXAgLXUgLXIxLjMwMSBrZXJuX3N5bmNoLmMNCi0tLSBr
ZXJuX3N5bmNoLmMJMTcgU2VwIDIwMDcgMDU6Mjc6MjAgLTAwMDAJMS4zMDEN
CisrKyBrZXJuX3N5bmNoLmMJMiBPY3QgMjAwNyAwODoxODoxOSAtMDAwMA0K
QEAgLTU1Myw4ICs1NTMsMTEgQEAgc3luY2hfc2V0dXAoZHVtbXkpDQogaW50
DQogeWllbGQoc3RydWN0IHRocmVhZCAqdGQsIHN0cnVjdCB5aWVsZF9hcmdz
ICp1YXApDQogew0KLQltdHhfYXNzZXJ0KCZHaWFudCwgTUFfTk9UT1dORUQp
Ow0KLQkodm9pZCl1YXA7DQotCXNjaGVkX3JlbGlucXVpc2godGQpOw0KKw0K
Kwl0aHJlYWRfbG9jayh0ZCk7DQorCXNjaGVkX3ByaW8odGQsIFBSSV9NQVhf
VElNRVNIQVJFKTsNCisJbWlfc3dpdGNoKFNXX1ZPTCwgTlVMTCk7DQorCXRo
cmVhZF91bmxvY2sodGQpOw0KKwl0ZC0+dGRfcmV0dmFsWzBdID0gMDsNCiAJ
cmV0dXJuICgwKTsNCiB9DQpJbmRleDogcDEwMDNfMWIuYw0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9r
ZXJuL3AxMDAzXzFiLmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjM1DQpk
aWZmIC1wIC11IC1yMS4zNSBwMTAwM18xYi5jDQotLS0gcDEwMDNfMWIuYwk1
IE1hciAyMDA3IDEzOjEwOjU3IC0wMDAwCTEuMzUNCisrKyBwMTAwM18xYi5j
CTIgT2N0IDIwMDcgMjE6NTU6NDggLTAwMDANCkBAIC0yNDEsNyArMjQxLDgg
QEAgaW50DQogc2NoZWRfeWllbGQoc3RydWN0IHRocmVhZCAqdGQsIHN0cnVj
dCBzY2hlZF95aWVsZF9hcmdzICp1YXApDQogew0KIA0KLQlyZXR1cm4gKGtz
Y2hlZF95aWVsZChrc2NoZWQpKTsNCisJc2NoZWRfcmVsaW5xdWlzaChjdXJ0
aHJlYWQpOw0KKwlyZXR1cm4gMDsNCiB9DQogDQogaW50DQpJbmRleDogc2No
ZWRfNGJzZC5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTog
L2hvbWUvbmN2cy9zcmMvc3lzL2tlcm4vc2NoZWRfNGJzZC5jLHYNCnJldHJp
ZXZpbmcgcmV2aXNpb24gMS4xMDUNCmRpZmYgLXAgLXUgLXIxLjEwNSBzY2hl
ZF80YnNkLmMNCi0tLSBzY2hlZF80YnNkLmMJMjEgU2VwIDIwMDcgMDQ6MTA6
MjMgLTAwMDAJMS4xMDUNCisrKyBzY2hlZF80YnNkLmMJMiBPY3QgMjAwNyAw
ODowODozNiAtMDAwMA0KQEAgLTEzMjQsOCArMTMyNCw2IEBAIHZvaWQNCiBz
Y2hlZF9yZWxpbnF1aXNoKHN0cnVjdCB0aHJlYWQgKnRkKQ0KIHsNCiAJdGhy
ZWFkX2xvY2sodGQpOw0KLQlpZiAodGQtPnRkX3ByaV9jbGFzcyA9PSBQUklf
VElNRVNIQVJFKQ0KLQkJc2NoZWRfcHJpbyh0ZCwgUFJJX01BWF9USU1FU0hB
UkUpOw0KIAlTQ0hFRF9TVEFUX0lOQyhzd2l0Y2hfcmVsaW5xdWlzaCk7DQog
CW1pX3N3aXRjaChTV19WT0wsIE5VTEwpOw0KIAl0aHJlYWRfdW5sb2NrKHRk
KTsNCkluZGV4OiBzY2hlZF91bGUuYw0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9rZXJuL3NjaGVkX3Vs
ZS5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMDkNCmRpZmYgLXAgLXUg
LXIxLjIwOSBzY2hlZF91bGUuYw0KLS0tIHNjaGVkX3VsZS5jCTI0IFNlcCAy
MDA3IDAwOjI4OjU0IC0wMDAwCTEuMjA5DQorKysgc2NoZWRfdWxlLmMJMiBP
Y3QgMjAwNyAyMjoyNjoxNCAtMDAwMA0KQEAgLTM3Niw2ICszNzYsNyBAQCB0
ZHFfcnVucV9hZGQoc3RydWN0IHRkcSAqdGRxLCBzdHJ1Y3QgdGRfDQogew0K
IAlURFFfTE9DS19BU1NFUlQodGRxLCBNQV9PV05FRCk7DQogCVRIUkVBRF9M
T0NLX0FTU0VSVCh0cy0+dHNfdGhyZWFkLCBNQV9PV05FRCk7DQorCVREX1NF
VF9SVU5RKHRzLT50c190aHJlYWQpOw0KICNpZmRlZiBTTVANCiAJaWYgKFRI
UkVBRF9DQU5fTUlHUkFURSh0cy0+dHNfdGhyZWFkKSkgew0KIAkJdGRxLT50
ZHFfdHJhbnNmZXJhYmxlKys7DQpAQCAtNDExLDYgKzQxMiwyMyBAQCB0ZHFf
cnVucV9hZGQoc3RydWN0IHRkcSAqdGRxLCBzdHJ1Y3QgdGRfDQogCQlydW5x
X2FkZCh0cy0+dHNfcnVucSwgdHMsIGZsYWdzKTsNCiB9DQogDQorLyoNCisg
KiBQaWNrIHRoZSBydW4gcXVldWUgYmFzZWQgb24gcHJpb3JpdHkuDQorICov
DQorc3RhdGljIF9faW5saW5lIHZvaWQNCit0ZHFfcnVucV9waWNrKHN0cnVj
dCB0ZHEgKnRkcSwgc3RydWN0IHRkX3NjaGVkICp0cykNCit7DQorCWludCBw
cmk7DQorDQorCXByaSA9IHRzLT50c190aHJlYWQtPnRkX3ByaW9yaXR5Ow0K
KwlpZiAocHJpIDw9IFBSSV9NQVhfUkVBTFRJTUUpDQorCQl0cy0+dHNfcnVu
cSA9ICZ0ZHEtPnRkcV9yZWFsdGltZTsNCisJZWxzZSBpZiAocHJpIDw9IFBS
SV9NQVhfVElNRVNIQVJFKQ0KKwkJdHMtPnRzX3J1bnEgPSAmdGRxLT50ZHFf
dGltZXNoYXJlOw0KKwllbHNlDQorCQl0cy0+dHNfcnVucSA9ICZ0ZHEtPnRk
cV9pZGxlOw0KK30NCisNCiAvKiANCiAgKiBSZW1vdmUgYSB0aHJlYWQgZnJv
bSBhIHJ1bi1xdWV1ZS4gIFRoaXMgdHlwaWNhbGx5IGhhcHBlbnMgd2hlbiBh
IHRocmVhZA0KICAqIGlzIHNlbGVjdGVkIHRvIHJ1bi4gIFJ1bm5pbmcgdGhy
ZWFkcyBhcmUgbm90IG9uIHRoZSBxdWV1ZSBhbmQgdGhlDQpAQCAtNDM0LDEz
ICs0NTIsNiBAQCB0ZHFfcnVucV9yZW0oc3RydWN0IHRkcSAqdGRxLCBzdHJ1
Y3QgdGRfDQogCQkJcnVucV9yZW1vdmVfaWR4KHRzLT50c19ydW5xLCB0cywg
JnRkcS0+dGRxX3JpZHgpOw0KIAkJZWxzZQ0KIAkJCXJ1bnFfcmVtb3ZlX2lk
eCh0cy0+dHNfcnVucSwgdHMsIE5VTEwpOw0KLQkJLyoNCi0JCSAqIEZvciB0
aW1lc2hhcmUgdGhyZWFkcyB3ZSB1cGRhdGUgdGhlIHByaW9yaXR5IGhlcmUg
c28NCi0JCSAqIHRoZSBwcmlvcml0eSByZWZsZWN0cyB0aGUgdGltZSB3ZSd2
ZSBiZWVuIHNsZWVwaW5nLg0KLQkJICovDQotCQl0cy0+dHNfbHRpY2sgPSB0
aWNrczsNCi0JCXNjaGVkX3BjdGNwdV91cGRhdGUodHMpOw0KLQkJc2NoZWRf
cHJpb3JpdHkodHMtPnRzX3RocmVhZCk7DQogCX0gZWxzZQ0KIAkJcnVucV9y
ZW1vdmUodHMtPnRzX3J1bnEsIHRzKTsNCiB9DQpAQCAtMTA5OSw2ICsxMTEw
LDE1IEBAIHNjaGVkX3BpY2tjcHUoc3RydWN0IHRkX3NjaGVkICp0cywgaW50
IGYNCiANCiAjZW5kaWYJLyogU01QICovDQogDQorI2lmIFJRQl9MRU4gPT0g
MQ0KKyNkZWZpbmUJcnVucV9lbXB0eShycSkJKChycSktPnJxX3N0YXR1cy5y
cWJfYml0c1swXSA9PSAwKQ0KKyNlbGlmIFJRQl9MRU4gPT0gMg0KKyNkZWZp
bmUJcnVucV9lbXB0eShycSkJCQkJCQkJXA0KKyAgICAoKChycSktPnJxX3N0
YXR1cy5ycWJfYml0c1swXSB8IChycSktPnJxX3N0YXR1cy5ycWJfYml0c1sx
XSkgPT0gMCkNCisjZWxzZQ0KKyNlcnJvciAiVW5zdXBwb3J0ZWQgUlFCX0xF
TiINCisjZW5kaWYNCisNCiAvKg0KICAqIFBpY2sgdGhlIGhpZ2hlc3QgcHJp
b3JpdHkgdGFzayB3ZSBoYXZlIGFuZCByZXR1cm4gaXQuDQogICovDQpAQCAt
MTEwOCwyNSArMTEyOCwyOSBAQCB0ZHFfY2hvb3NlKHN0cnVjdCB0ZHEgKnRk
cSkNCiAJc3RydWN0IHRkX3NjaGVkICp0czsNCiANCiAJVERRX0xPQ0tfQVNT
RVJUKHRkcSwgTUFfT1dORUQpOw0KLQl0cyA9IHJ1bnFfY2hvb3NlKCZ0ZHEt
PnRkcV9yZWFsdGltZSk7DQotCWlmICh0cyAhPSBOVUxMKQ0KLQkJcmV0dXJu
ICh0cyk7DQotCXRzID0gcnVucV9jaG9vc2VfZnJvbSgmdGRxLT50ZHFfdGlt
ZXNoYXJlLCB0ZHEtPnRkcV9yaWR4KTsNCi0JaWYgKHRzICE9IE5VTEwpIHsN
Ci0JCUtBU1NFUlQodHMtPnRzX3RocmVhZC0+dGRfcHJpb3JpdHkgPj0gUFJJ
X01JTl9USU1FU0hBUkUsDQotCQkgICAgKCJ0ZHFfY2hvb3NlOiBJbnZhbGlk
IHByaW9yaXR5IG9uIHRpbWVzaGFyZSBxdWV1ZSAlZCIsDQotCQkgICAgdHMt
PnRzX3RocmVhZC0+dGRfcHJpb3JpdHkpKTsNCi0JCXJldHVybiAodHMpOw0K
KwlpZiAoIXJ1bnFfZW1wdHkoJnRkcS0+dGRxX3JlYWx0aW1lKSkgew0KKwkJ
dHMgPSBydW5xX2Nob29zZSgmdGRxLT50ZHFfcmVhbHRpbWUpOw0KKwkJaWYg
KHRzICE9IE5VTEwpDQorCQkJcmV0dXJuICh0cyk7DQorCX0NCisJaWYgKCFy
dW5xX2VtcHR5KCZ0ZHEtPnRkcV90aW1lc2hhcmUpKSB7DQorCQl0cyA9IHJ1
bnFfY2hvb3NlX2Zyb20oJnRkcS0+dGRxX3RpbWVzaGFyZSwgdGRxLT50ZHFf
cmlkeCk7DQorCQlpZiAodHMgIT0gTlVMTCkgew0KKwkJCUtBU1NFUlQodHMt
PnRzX3RocmVhZC0+dGRfcHJpb3JpdHkgPj0gUFJJX01JTl9USU1FU0hBUkUs
DQorCQkJICAgICgidGRxX2Nob29zZTogSW52YWxpZCB0aW1lc2hhcmUgcHJp
b3JpdHkgJWQiLA0KKwkJCSAgICB0cy0+dHNfdGhyZWFkLT50ZF9wcmlvcml0
eSkpOw0KKwkJCXJldHVybiAodHMpOw0KKwkJfQ0KIAl9DQotDQotCXRzID0g
cnVucV9jaG9vc2UoJnRkcS0+dGRxX2lkbGUpOw0KLQlpZiAodHMgIT0gTlVM
TCkgew0KLQkJS0FTU0VSVCh0cy0+dHNfdGhyZWFkLT50ZF9wcmlvcml0eSA+
PSBQUklfTUlOX0lETEUsDQotCQkgICAgKCJ0ZHFfY2hvb3NlOiBJbnZhbGlk
IHByaW9yaXR5IG9uIGlkbGUgcXVldWUgJWQiLA0KLQkJICAgIHRzLT50c190
aHJlYWQtPnRkX3ByaW9yaXR5KSk7DQotCQlyZXR1cm4gKHRzKTsNCisJaWYg
KCFydW5xX2VtcHR5KCZ0ZHEtPnRkcV9pZGxlKSkgew0KKwkJdHMgPSBydW5x
X2Nob29zZSgmdGRxLT50ZHFfaWRsZSk7DQorCQlpZiAodHMgIT0gTlVMTCkg
ew0KKwkJCUtBU1NFUlQodHMtPnRzX3RocmVhZC0+dGRfcHJpb3JpdHkgPj0g
UFJJX01JTl9JRExFLA0KKwkJCSAgICAoInRkcV9jaG9vc2U6IEludmFsaWQg
cHJpb3JpdHkgb24gaWRsZSBxdWV1ZSAlZCIsDQorCQkJICAgIHRzLT50c190
aHJlYWQtPnRkX3ByaW9yaXR5KSk7DQorCQkJcmV0dXJuICh0cyk7DQorCQl9
DQogCX0NCi0NCiAJcmV0dXJuIChOVUxMKTsNCiB9DQogDQpAQCAtMTMwMiw2
ICsxMzI2LDcgQEAgc2NoZWRfc2V0dXAodm9pZCAqZHVtbXkpDQogCS8qIEFk
ZCB0aHJlYWQwJ3MgbG9hZCBzaW5jZSBpdCdzIHJ1bm5pbmcuICovDQogCVRE
UV9MT0NLKHRkcSk7DQogCXRocmVhZDAudGRfbG9jayA9IFREUV9MT0NLUFRS
KFREUV9TRUxGKCkpOw0KKwl0ZHFfcnVucV9waWNrKHRkcSwgJnRkX3NjaGVk
MCk7DQogCXRkcV9sb2FkX2FkZCh0ZHEsICZ0ZF9zY2hlZDApOw0KIAlURFFf
VU5MT0NLKHRkcSk7DQogfQ0KQEAgLTE1NjUsMTUgKzE1OTAsMjAgQEAgc3Rh
dGljIHZvaWQNCiBzY2hlZF90aHJlYWRfcHJpb3JpdHkoc3RydWN0IHRocmVh
ZCAqdGQsIHVfY2hhciBwcmlvKQ0KIHsNCiAJc3RydWN0IHRkX3NjaGVkICp0
czsNCisJc3RydWN0IHRkcSAqdGRxOw0KIA0KIAlDVFI2KEtUUl9TQ0hFRCwg
InNjaGVkX3ByaW86ICVwKCVzKSBwcmlvICVkIG5ld3ByaW8gJWQgYnkgJXAo
JXMpIiwNCiAJICAgIHRkLCB0ZC0+dGRfcHJvYy0+cF9jb21tLCB0ZC0+dGRf
cHJpb3JpdHksIHByaW8sIGN1cnRocmVhZCwNCiAJICAgIGN1cnRocmVhZC0+
dGRfcHJvYy0+cF9jb21tKTsNCiAJdHMgPSB0ZC0+dGRfc2NoZWQ7DQorCXRk
cSA9IFREUV9DUFUodHMtPnRzX2NwdSk7DQogCVRIUkVBRF9MT0NLX0FTU0VS
VCh0ZCwgTUFfT1dORUQpOw0KIAlpZiAodGQtPnRkX3ByaW9yaXR5ID09IHBy
aW8pDQogCQlyZXR1cm47DQotDQorI2lmZGVmIFNNUA0KKwlpZiAocHJpbyA8
IHRkcS0+dGRxX2xvd3ByaSkNCisJCXRkcS0+dGRxX2xvd3ByaSA9IHByaW87
DQorI2VuZGlmDQogCWlmIChURF9PTl9SVU5RKHRkKSAmJiBwcmlvIDwgdGQt
PnRkX3ByaW9yaXR5KSB7DQogCQkvKg0KIAkJICogSWYgdGhlIHByaW9yaXR5
IGhhcyBiZWVuIGVsZXZhdGVkIGR1ZSB0byBwcmlvcml0eQ0KQEAgLTE1ODUs
MTQgKzE2MTUsOCBAQCBzY2hlZF90aHJlYWRfcHJpb3JpdHkoc3RydWN0IHRo
cmVhZCAqdGQsDQogCQl0ZC0+dGRfcHJpb3JpdHkgPSBwcmlvOw0KIAkJc2No
ZWRfYWRkKHRkLCBTUlFfQk9SUk9XSU5HKTsNCiAJfSBlbHNlIHsNCi0jaWZk
ZWYgU01QDQotCQlzdHJ1Y3QgdGRxICp0ZHE7DQotDQotCQl0ZHEgPSBURFFf
Q1BVKHRzLT50c19jcHUpOw0KLQkJaWYgKHByaW8gPCB0ZHEtPnRkcV9sb3dw
cmkpDQotCQkJdGRxLT50ZHFfbG93cHJpID0gcHJpbzsNCi0jZW5kaWYNCiAJ
CXRkLT50ZF9wcmlvcml0eSA9IHByaW87DQorCQl0ZHFfcnVucV9waWNrKHRk
cSwgdHMpOw0KIAl9DQogfQ0KIA0KQEAgLTE3MzksNiArMTc2Myw4IEBAIHNj
aGVkX3N3aXRjaF9taWdyYXRlKHN0cnVjdCB0ZHEgKnRkcSwgc3QNCiANCiAJ
dGRuID0gVERRX0NQVSh0ZC0+dGRfc2NoZWQtPnRzX2NwdSk7DQogI2lmZGVm
IFNNUA0KKwkvKiBUaGUgbG9hZCBpcyBiZWluZyByZW1vdmVkIGZyb20gdGhl
IGN1cnJlbnQgY3B1LiAqLw0KKwl0ZHFfbG9hZF9yZW0odGRxLCB0ZC0+dGRf
c2NoZWQpOw0KIAkvKg0KIAkgKiBEbyB0aGUgbG9jayBkYW5jZSByZXF1aXJl
ZCB0byBhdm9pZCBMT1IuICBXZSBncmFiIGFuIGV4dHJhDQogCSAqIHNwaW5s
b2NrIG5lc3RpbmcgdG8gcHJldmVudCBwcmVlbXB0aW9uIHdoaWxlIHdlJ3Jl
DQpAQCAtMTgzMCwxMiArMTg1NiwxMSBAQCBzY2hlZF9zd2l0Y2goc3RydWN0
IHRocmVhZCAqdGQsIHN0cnVjdCB0DQogCQlURF9TRVRfQ0FOX1JVTih0ZCk7
DQogCX0gZWxzZSBpZiAoVERfSVNfUlVOTklORyh0ZCkpIHsNCiAJCU1QQVNT
KHRkLT50ZF9sb2NrID09IFREUV9MT0NLUFRSKHRkcSkpOw0KLQkJdGRxX2xv
YWRfcmVtKHRkcSwgdHMpOw0KIAkJc3JxZmxhZyA9IChmbGFncyAmIFNXX1BS
RUVNUFQpID8NCiAJCSAgICBTUlFfT1VSU0VMRnxTUlFfWUlFTERJTkd8U1JR
X1BSRUVNUFRFRCA6DQogCQkgICAgU1JRX09VUlNFTEZ8U1JRX1lJRUxESU5H
Ow0KIAkJaWYgKHRzLT50c19jcHUgPT0gY3B1aWQpDQotCQkJdGRxX2FkZCh0
ZHEsIHRkLCBzcnFmbGFnKTsNCisJCQl0ZHFfcnVucV9hZGQodGRxLCB0cywg
c3JxZmxhZyk7DQogCQllbHNlDQogCQkJbXR4ID0gc2NoZWRfc3dpdGNoX21p
Z3JhdGUodGRxLCB0ZCwgc3JxZmxhZyk7DQogCX0gZWxzZSB7DQpAQCAtMTk0
OSw3ICsxOTc0LDYgQEAgc2NoZWRfd2FrZXVwKHN0cnVjdCB0aHJlYWQgKnRk
KQ0KIAkJdHMtPnRzX3NscHRpbWUgKz0gaHp0aWNrczsNCiAJCXNjaGVkX2lu
dGVyYWN0X3VwZGF0ZSh0ZCk7DQogCQlzY2hlZF9wY3RjcHVfdXBkYXRlKHRz
KTsNCi0JCXNjaGVkX3ByaW9yaXR5KHRkKTsNCiAJfQ0KIAkvKiBSZXNldCB0
aGUgc2xpY2UgdmFsdWUgYWZ0ZXIgd2Ugc2xlZXAuICovDQogCXRzLT50c19z
bGljZSA9IHNjaGVkX3NsaWNlOw0KQEAgLTIxNTQsMTYgKzIxNzgsMTcgQEAg
c2NoZWRfY2xvY2soc3RydWN0IHRocmVhZCAqdGQpDQogCSAqLw0KIAl0ZC0+
dGRfc2NoZWQtPnRzX3J1bnRpbWUgKz0gdGlja2luY3I7DQogCXNjaGVkX2lu
dGVyYWN0X3VwZGF0ZSh0ZCk7DQorCXNjaGVkX3ByaW9yaXR5KHRkKTsNCiAJ
LyoNCiAJICogV2UgdXNlZCB1cCBvbmUgdGltZSBzbGljZS4NCiAJICovDQog
CWlmICgtLXRzLT50c19zbGljZSA+IDApDQogCQlyZXR1cm47DQogCS8qDQot
CSAqIFdlJ3JlIG91dCBvZiB0aW1lLCByZWNvbXB1dGUgcHJpb3JpdGllcyBh
bmQgcmVxdWV1ZS4NCisJICogV2UncmUgb3V0IG9mIHRpbWUsIGZvcmNlIGEg
cmVxdWV1ZSBsYXRlci4NCiAJICovDQotCXNjaGVkX3ByaW9yaXR5KHRkKTsN
CiAJdGQtPnRkX2ZsYWdzIHw9IFRERl9ORUVEUkVTQ0hFRDsNCisJdHMtPnRz
X3NsaWNlID0gc2NoZWRfc2xpY2U7DQogfQ0KIA0KIC8qDQpAQCAtMjI4NCwx
MSArMjMwOSwxMCBAQCB2b2lkDQogdGRxX2FkZChzdHJ1Y3QgdGRxICp0ZHEs
IHN0cnVjdCB0aHJlYWQgKnRkLCBpbnQgZmxhZ3MpDQogew0KIAlzdHJ1Y3Qg
dGRfc2NoZWQgKnRzOw0KLQlpbnQgY2xhc3M7DQogI2lmZGVmIFNNUA0KKwlp
bnQgY2xhc3M7DQogCWludCBjcHVtYXNrOw0KICNlbmRpZg0KLQ0KIAlURFFf
TE9DS19BU1NFUlQodGRxLCBNQV9PV05FRCk7DQogCUtBU1NFUlQoKHRkLT50
ZF9pbmhpYml0b3JzID09IDApLA0KIAkgICAgKCJzY2hlZF9hZGQ6IHRyeWlu
ZyB0byBydW4gaW5oaWJpdGVkIHRocmVhZCIpKTsNCkBAIC0yMjk4LDIwICsy
MzIyLDExIEBAIHRkcV9hZGQoc3RydWN0IHRkcSAqdGRxLCBzdHJ1Y3QgdGhy
ZWFkICoNCiAJICAgICgic2NoZWRfYWRkOiB0aHJlYWQgc3dhcHBlZCBvdXQi
KSk7DQogDQogCXRzID0gdGQtPnRkX3NjaGVkOw0KLQljbGFzcyA9IFBSSV9C
QVNFKHRkLT50ZF9wcmlfY2xhc3MpOw0KLSAgICAgICAgVERfU0VUX1JVTlEo
dGQpOw0KLQlpZiAodHMtPnRzX3NsaWNlID09IDApDQotCQl0cy0+dHNfc2xp
Y2UgPSBzY2hlZF9zbGljZTsNCi0JLyoNCi0JICogUGljayB0aGUgcnVuIHF1
ZXVlIGJhc2VkIG9uIHByaW9yaXR5Lg0KLQkgKi8NCi0JaWYgKHRkLT50ZF9w
cmlvcml0eSA8PSBQUklfTUFYX1JFQUxUSU1FKQ0KLQkJdHMtPnRzX3J1bnEg
PSAmdGRxLT50ZHFfcmVhbHRpbWU7DQotCWVsc2UgaWYgKHRkLT50ZF9wcmlv
cml0eSA8PSBQUklfTUFYX1RJTUVTSEFSRSkNCi0JCXRzLT50c19ydW5xID0g
JnRkcS0+dGRxX3RpbWVzaGFyZTsNCi0JZWxzZQ0KLQkJdHMtPnRzX3J1bnEg
PSAmdGRxLT50ZHFfaWRsZTsNCisJdGRxX3J1bnFfcGljayh0ZHEsIHRzKTsN
CisJdGRxX3J1bnFfYWRkKHRkcSwgdHMsIGZsYWdzKTsNCisJdGRxX2xvYWRf
YWRkKHRkcSwgdHMpOw0KICNpZmRlZiBTTVANCisJY2xhc3MgPSBQUklfQkFT
RSh0ZC0+dGRfcHJpX2NsYXNzKTsNCiAJY3B1bWFzayA9IDEgPDwgdHMtPnRz
X2NwdTsNCiAJLyoNCiAJICogSWYgd2UgaGFkIGJlZW4gaWRsZSwgY2xlYXIg
b3VyIGJpdCBpbiB0aGUgZ3JvdXAgYW5kIHBvdGVudGlhbGx5DQpAQCAtMjMz
NCw4ICsyMzQ5LDYgQEAgdGRxX2FkZChzdHJ1Y3QgdGRxICp0ZHEsIHN0cnVj
dCB0aHJlYWQgKg0KIAlpZiAodGQtPnRkX3ByaW9yaXR5IDwgdGRxLT50ZHFf
bG93cHJpKQ0KIAkJdGRxLT50ZHFfbG93cHJpID0gdGQtPnRkX3ByaW9yaXR5
Ow0KICNlbmRpZg0KLQl0ZHFfcnVucV9hZGQodGRxLCB0cywgZmxhZ3MpOw0K
LQl0ZHFfbG9hZF9hZGQodGRxLCB0cyk7DQogfQ0KIA0KIC8qDQpAQCAtMjUw
Miw4ICsyNTE1LDYgQEAgdm9pZA0KIHNjaGVkX3JlbGlucXVpc2goc3RydWN0
IHRocmVhZCAqdGQpDQogew0KIAl0aHJlYWRfbG9jayh0ZCk7DQotCWlmICh0
ZC0+dGRfcHJpX2NsYXNzID09IFBSSV9USU1FU0hBUkUpDQotCQlzY2hlZF9w
cmlvKHRkLCBQUklfTUFYX1RJTUVTSEFSRSk7DQogCVNDSEVEX1NUQVRfSU5D
KHN3aXRjaF9yZWxpbnF1aXNoKTsNCiAJbWlfc3dpdGNoKFNXX1ZPTCwgTlVM
TCk7DQogCXRocmVhZF91bmxvY2sodGQpOw0K

--0-92347239-1191369213=:587--



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