Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Sep 2007 14:15:36 -0700 (PDT)
From:      Jeff Roberson <jroberson@chesapeake.net>
To:        current@freebsd.org
Subject:   Fix ULE swapping.
Message-ID:  <20070917141407.B558@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-1681148293-1190063736=:558
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed

The enclosed patch changes the way the kernel detects how long as thread 
has been swapped out or sleeping so that it is more compatible with ULE. 
For those of you who have run into swapping problems with ULE leading to 
poor interactivity, please test and report back your findings.

Thanks,
Jeff
--0-1681148293-1190063736=:558
Content-Type: TEXT/x-diff; charset=US-ASCII; name=swap2.diff
Content-Transfer-Encoding: BASE64
Content-ID: <20070917141536.M558@10.0.0.1>
Content-Description: 
Content-Disposition: attachment; filename=swap2.diff

SW5kZXg6IGxpYi9saWJrdm0va3ZtX3Byb2MuYw0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL2xpYi9saWJrdm0v
a3ZtX3Byb2MuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOTMNCmRpZmYg
LXUgLXAgLXIxLjkzIGt2bV9wcm9jLmMNCi0tLSBsaWIvbGlia3ZtL2t2bV9w
cm9jLmMJMTcgU2VwIDIwMDcgMDU6Mjc6MTggLTAwMDAJMS45Mw0KKysrIGxp
Yi9saWJrdm0va3ZtX3Byb2MuYwkxNyBTZXAgMjAwNyAwNTo1ODowOSAtMDAw
MA0KQEAgLTg1LDYgKzg1LDkgQEAgX19GQlNESUQoIiRGcmVlQlNEOiBzcmMv
bGliL2xpYmt2bS9rdm1fcA0KICNkZWZpbmUgS1JFQUQoa2QsIGFkZHIsIG9i
aikgXA0KIAkoa3ZtX3JlYWQoa2QsIGFkZHIsIChjaGFyICopKG9iaiksIHNp
emVvZigqb2JqKSkgIT0gc2l6ZW9mKCpvYmopKQ0KIA0KK2ludCB0aWNrczsN
CitpbnQgaHo7DQorDQogLyoNCiAgKiBSZWFkIHByb2MncyBmcm9tIG1lbW9y
eSBmaWxlIGludG8gYnVmZmVyIGJwLCB3aGljaCBoYXMgc3BhY2UgdG8gaG9s
ZA0KICAqIGF0IG1vc3QgbWF4Y250IHByb2NzLg0KQEAgLTM2OCw3ICszNzEs
NyBAQCBub3BncnA6DQogCQlrcC0+a2lfYWNmbGFnID0gcHJvYy5wX2FjZmxh
ZzsNCiAJCWtwLT5raV9sb2NrID0gcHJvYy5wX2xvY2s7DQogCQlpZiAocHJv
Yy5wX3N0YXRlICE9IFBSU19aT01CSUUpIHsNCi0JCQlrcC0+a2lfc3d0aW1l
ID0gcHJvYy5wX3N3dGltZTsNCisJCQlrcC0+a2lfc3d0aW1lID0gKHRpY2tz
IC0gcHJvYy5wX3N3dGljaykgLyBoejsNCiAJCQlrcC0+a2lfZmxhZyA9IHBy
b2MucF9mbGFnOw0KIAkJCWtwLT5raV9zZmxhZyA9IDA7DQogCQkJa3AtPmtp
X25pY2UgPSBwcm9jLnBfbmljZTsNCkBAIC01MzUsMTIgKzUzOCwxNCBAQCBr
dm1fZ2V0cHJvY3Moa2QsIG9wLCBhcmcsIGNudCkNCiBsaXZlb3V0Og0KIAkJ
bnByb2NzID0gc2l6ZSA9PSAwID8gMCA6IHNpemUgLyBrZC0+cHJvY2Jhc2Ut
PmtpX3N0cnVjdHNpemU7DQogCX0gZWxzZSB7DQotCQlzdHJ1Y3Qgbmxpc3Qg
bmxbNF0sICpwOw0KKwkJc3RydWN0IG5saXN0IG5sWzZdLCAqcDsNCiANCiAJ
CW5sWzBdLm5fbmFtZSA9ICJfbnByb2NzIjsNCiAJCW5sWzFdLm5fbmFtZSA9
ICJfYWxscHJvYyI7DQogCQlubFsyXS5uX25hbWUgPSAiX3pvbWJwcm9jIjsN
Ci0JCW5sWzNdLm5fbmFtZSA9IDA7DQorCQlubFszXS5uX25hbWUgPSAiX3Rp
Y2tzIjsNCisJCW5sWzRdLm5fbmFtZSA9ICJfaHoiOw0KKwkJbmxbNV0ubl9u
YW1lID0gMDsNCiANCiAJCWlmIChrdm1fbmxpc3Qoa2QsIG5sKSAhPSAwKSB7
DQogCQkJZm9yIChwID0gbmw7IHAtPm5fdHlwZSAhPSAwOyArK3ApDQpAQCAt
NTUzLDYgKzU1OCwxNCBAQCBsaXZlb3V0Og0KIAkJCV9rdm1fZXJyKGtkLCBr
ZC0+cHJvZ3JhbSwgImNhbid0IHJlYWQgbnByb2NzIik7DQogCQkJcmV0dXJu
ICgwKTsNCiAJCX0NCisJCWlmIChLUkVBRChrZCwgbmxbM10ubl92YWx1ZSwg
JnRpY2tzKSkgew0KKwkJCV9rdm1fZXJyKGtkLCBrZC0+cHJvZ3JhbSwgImNh
bid0IHJlYWQgdGlja3MiKTsNCisJCQlyZXR1cm4gKDApOw0KKwkJfQ0KKwkJ
aWYgKEtSRUFEKGtkLCBubFs0XS5uX3ZhbHVlLCAmaHopKSB7DQorCQkJX2t2
bV9lcnIoa2QsIGtkLT5wcm9ncmFtLCAiY2FuJ3QgcmVhZCBoeiIpOw0KKwkJ
CXJldHVybiAoMCk7DQorCQl9DQogCQlzaXplID0gbnByb2NzICogc2l6ZW9m
KHN0cnVjdCBraW5mb19wcm9jKTsNCiAJCWtkLT5wcm9jYmFzZSA9IChzdHJ1
Y3Qga2luZm9fcHJvYyAqKV9rdm1fbWFsbG9jKGtkLCBzaXplKTsNCiAJCWlm
IChrZC0+cHJvY2Jhc2UgPT0gMCkNCkluZGV4OiBzeXMva2Vybi9rZXJuX2Zv
cmsuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9ob21l
L25jdnMvc3JjL3N5cy9rZXJuL2tlcm5fZm9yay5jLHYNCnJldHJpZXZpbmcg
cmV2aXNpb24gMS4yODENCmRpZmYgLXUgLXAgLXIxLjI4MSBrZXJuX2Zvcmsu
Yw0KLS0tIHN5cy9rZXJuL2tlcm5fZm9yay5jCTE3IFNlcCAyMDA3IDA1OjI3
OjIwIC0wMDAwCTEuMjgxDQorKysgc3lzL2tlcm4va2Vybl9mb3JrLmMJMTcg
U2VwIDIwMDcgMDU6NDg6NTMgLTAwMDANCkBAIC01MDAsNiArNTAwLDcgQEAg
YWdhaW46DQogCSAqIEluY3JlYXNlIHJlZmVyZW5jZSBjb3VudHMgb24gc2hh
cmVkIG9iamVjdHMuDQogCSAqLw0KIAlwMi0+cF9mbGFnID0gUF9JTk1FTTsN
CisJcDItPnBfc3d0aWNrID0gdGlja3M7DQogCWlmIChwMS0+cF9mbGFnICYg
UF9QUk9GSUwpDQogCQlzdGFydHByb2ZjbG9jayhwMik7DQogCXRkMi0+dGRf
dWNyZWQgPSBjcmhvbGQocDItPnBfdWNyZWQpOw0KSW5kZXg6IHN5cy9rZXJu
L2tlcm5fcHJvYy5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmls
ZTogL2hvbWUvbmN2cy9zcmMvc3lzL2tlcm4va2Vybl9wcm9jLmMsdg0KcmV0
cmlldmluZyByZXZpc2lvbiAxLjI1MQ0KZGlmZiAtdSAtcCAtcjEuMjUxIGtl
cm5fcHJvYy5jDQotLS0gc3lzL2tlcm4va2Vybl9wcm9jLmMJMTcgU2VwIDIw
MDcgMDU6Mjc6MjAgLTAwMDAJMS4yNTENCisrKyBzeXMva2Vybi9rZXJuX3By
b2MuYwkxNyBTZXAgMjAwNyAwNjowMzoyMSAtMDAwMA0KQEAgLTY5NCw3ICs2
OTQsOCBAQCBmaWxsX2tpbmZvX3Byb2Nfb25seShzdHJ1Y3QgcHJvYyAqcCwg
c3RyDQogCQlrcC0+a2lfc2ZsYWcgPSBQU19JTk1FTTsNCiAJZWxzZQ0KIAkJ
a3AtPmtpX3NmbGFnID0gMDsNCi0Ja3AtPmtpX3N3dGltZSA9IHAtPnBfc3d0
aW1lOw0KKwkvKiBDYWxjdWxhdGUgbGVnYWN5IHN3dGltZSBhcyBzZWNvbmRz
IHNpbmNlICdzd3RpY2snLiAqLw0KKwlrcC0+a2lfc3d0aW1lID0gKHRpY2tz
IC0gcC0+cF9zd3RpY2spIC8gaHo7DQogCWtwLT5raV9waWQgPSBwLT5wX3Bp
ZDsNCiAJa3AtPmtpX25pY2UgPSBwLT5wX25pY2U7DQogCXJ1ZmV0Y2gocCwg
JmtwLT5raV9ydXNhZ2UpOw0KQEAgLTgxMiw3ICs4MTMsNyBAQCBmaWxsX2tp
bmZvX3RocmVhZChzdHJ1Y3QgdGhyZWFkICp0ZCwgc3RyDQogCWtwLT5raV9r
c3RhY2sgPSAodm9pZCAqKXRkLT50ZF9rc3RhY2s7DQogCWtwLT5raV9wY3Rj
cHUgPSBzY2hlZF9wY3RjcHUodGQpOw0KIAlrcC0+a2lfZXN0Y3B1ID0gdGQt
PnRkX2VzdGNwdTsNCi0Ja3AtPmtpX3NscHRpbWUgPSB0ZC0+dGRfc2xwdGlt
ZTsNCisJa3AtPmtpX3NscHRpbWUgPSAodGlja3MgLSB0ZC0+dGRfc2xwdGlj
aykgLyBoejsNCiAJa3AtPmtpX3ByaS5wcmlfY2xhc3MgPSB0ZC0+dGRfcHJp
X2NsYXNzOw0KIAlrcC0+a2lfcHJpLnByaV91c2VyID0gdGQtPnRkX3VzZXJf
cHJpOw0KIA0KSW5kZXg6IHN5cy9rZXJuL3NjaGVkXzRic2QuYw0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5
cy9rZXJuL3NjaGVkXzRic2QuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MTA0DQpkaWZmIC11IC1wIC1yMS4xMDQgc2NoZWRfNGJzZC5jDQotLS0gc3lz
L2tlcm4vc2NoZWRfNGJzZC5jCTE3IFNlcCAyMDA3IDA1OjI3OjIwIC0wMDAw
CTEuMTA0DQorKysgc3lzL2tlcm4vc2NoZWRfNGJzZC5jCTE3IFNlcCAyMDA3
IDA2OjA2OjM5IC0wMDAwDQpAQCAtODQsNiArODQsNyBAQCBzdHJ1Y3QgdGRf
c2NoZWQgew0KIAlmaXhwdF90CQl0c19wY3RjcHU7CS8qIChqKSAlY3B1IGR1
cmluZyBwX3N3dGltZS4gKi8NCiAJdV9jaGFyCQl0c19ycWluZGV4OwkvKiAo
aikgUnVuIHF1ZXVlIGluZGV4LiAqLw0KIAlpbnQJCXRzX2NwdGlja3M7CS8q
IChqKSBUaWNrcyBvZiBjcHUgdGltZS4gKi8NCisJaW50CQl0c19zbHB0aW1l
OwkvKiAoaikgU2Vjb25kcyAhUlVOTklORy4gKi8NCiAJc3RydWN0IHJ1bnEJ
KnRzX3J1bnE7CS8qIHJ1bnEgdGhlIHRocmVhZCBpcyBjdXJyZW50bHkgb24g
Ki8NCiB9Ow0KIA0KQEAgLTM3OSwxMSArMzgwLDYgQEAgc2NoZWRjcHUodm9p
ZCkNCiAJc3hfc2xvY2soJmFsbHByb2NfbG9jayk7DQogCUZPUkVBQ0hfUFJP
Q19JTl9TWVNURU0ocCkgew0KIAkJUFJPQ19TTE9DSyhwKTsNCi0JCS8qDQot
CQkgKiBJbmNyZW1lbnQgdGltZSBpbi9vdXQgb2YgbWVtb3J5LiAgV2UgaWdu
b3JlIG92ZXJmbG93OyB3aXRoDQotCQkgKiAxNi1iaXQgaW50J3MgKHJlbWVt
YmVyIHRoZW0/KSBvdmVyZmxvdyB0YWtlcyA0NSBkYXlzLg0KLQkJICovDQot
CQlwLT5wX3N3dGltZSsrOw0KIAkJRk9SRUFDSF9USFJFQURfSU5fUFJPQyhw
LCB0ZCkgeyANCiAJCQlhd2FrZSA9IDA7DQogCQkJdGhyZWFkX2xvY2sodGQp
Ow0KQEAgLTQ0MCw3ICs0MzYsNyBAQCBYWFggIHRoaXMgaXMgYnJva2VuDQog
DQogCQkJICovDQogCQkJaWYgKGF3YWtlKSB7DQotCQkJCWlmICh0ZC0+dGRf
c2xwdGltZSA+IDEpIHsNCisJCQkJaWYgKHRzLT50c19zbHB0aW1lID4gMSkg
ew0KIAkJCQkJLyoNCiAJCQkJCSAqIEluIGFuIGlkZWFsIHdvcmxkLCB0aGlz
IHNob3VsZCBub3QNCiAJCQkJCSAqIGhhcHBlbiwgYmVjYXVzZSB3aG9ldmVy
IHdva2UgdXMNCkBAIC00NTIsMTAgKzQ0OCwxMCBAQCBYWFggIHRoaXMgaXMg
YnJva2VuDQogCQkJCQkgKi8NCiAJCQkJCXVwZGF0ZXByaSh0ZCk7DQogCQkJ
CX0NCi0JCQkJdGQtPnRkX3NscHRpbWUgPSAwOw0KKwkJCQl0cy0+dHNfc2xw
dGltZSA9IDA7DQogCQkJfSBlbHNlDQotCQkJCXRkLT50ZF9zbHB0aW1lKys7
DQotCQkJaWYgKHRkLT50ZF9zbHB0aW1lID4gMSkgew0KKwkJCQl0cy0+dHNf
c2xwdGltZSsrOw0KKwkJCWlmICh0cy0+dHNfc2xwdGltZSA+IDEpIHsNCiAJ
CQkJdGhyZWFkX3VubG9jayh0ZCk7DQogCQkJCWNvbnRpbnVlOw0KIAkJCX0N
CkBAIC00OTAsMTYgKzQ4NiwxOCBAQCBzY2hlZGNwdV90aHJlYWQodm9pZCkN
CiBzdGF0aWMgdm9pZA0KIHVwZGF0ZXByaShzdHJ1Y3QgdGhyZWFkICp0ZCkN
CiB7DQotCXJlZ2lzdGVyIGZpeHB0X3QgbG9hZGZhYzsNCi0JcmVnaXN0ZXIg
dW5zaWduZWQgaW50IG5ld2NwdTsNCisJc3RydWN0IHRkX3NjaGVkICp0czsN
CisJZml4cHRfdCBsb2FkZmFjOw0KKwl1bnNpZ25lZCBpbnQgbmV3Y3B1Ow0K
IA0KKwl0cyA9IHRkLT50ZF9zY2hlZDsNCiAJbG9hZGZhYyA9IGxvYWRmYWN0
b3IoYXZlcnVubmFibGUubGRhdmdbMF0pOw0KLQlpZiAodGQtPnRkX3NscHRp
bWUgPiA1ICogbG9hZGZhYykNCisJaWYgKHRzLT50c19zbHB0aW1lID4gNSAq
IGxvYWRmYWMpDQogCQl0ZC0+dGRfZXN0Y3B1ID0gMDsNCiAJZWxzZSB7DQog
CQluZXdjcHUgPSB0ZC0+dGRfZXN0Y3B1Ow0KLQkJdGQtPnRkX3NscHRpbWUt
LTsJLyogd2FzIGluY3JlbWVudGVkIGluIHNjaGVkY3B1KCkgKi8NCi0JCXdo
aWxlIChuZXdjcHUgJiYgLS10ZC0+dGRfc2xwdGltZSkNCisJCXRzLT50c19z
bHB0aW1lLS07CS8qIHdhcyBpbmNyZW1lbnRlZCBpbiBzY2hlZGNwdSgpICov
DQorCQl3aGlsZSAobmV3Y3B1ICYmIC0tdHMtPnRzX3NscHRpbWUpDQogCQkJ
bmV3Y3B1ID0gZGVjYXlfY3B1KGxvYWRmYWMsIG5ld2NwdSk7DQogCQl0ZC0+
dGRfZXN0Y3B1ID0gbmV3Y3B1Ow0KIAl9DQpAQCAtODI3LDcgKzgyNSw4IEBA
IHNjaGVkX3NsZWVwKHN0cnVjdCB0aHJlYWQgKnRkKQ0KIHsNCiANCiAJVEhS
RUFEX0xPQ0tfQVNTRVJUKHRkLCBNQV9PV05FRCk7DQotCXRkLT50ZF9zbHB0
aW1lID0gMDsNCisJdGQtPnRkX3NscHRpY2sgPSB0aWNrczsNCisJdGQtPnRk
X3NjaGVkLT50c19zbHB0aW1lID0gMDsNCiB9DQogDQogdm9pZA0KQEAgLTkz
OSwxMiArOTM4LDE2IEBAIHNjaGVkX3N3aXRjaChzdHJ1Y3QgdGhyZWFkICp0
ZCwgc3RydWN0IHQNCiB2b2lkDQogc2NoZWRfd2FrZXVwKHN0cnVjdCB0aHJl
YWQgKnRkKQ0KIHsNCisJc3RydWN0IHRkX3NjaGVkICp0czsNCisNCiAJVEhS
RUFEX0xPQ0tfQVNTRVJUKHRkLCBNQV9PV05FRCk7DQotCWlmICh0ZC0+dGRf
c2xwdGltZSA+IDEpIHsNCisJdHMgPSB0ZC0+dGRfc2NoZWQ7DQorCWlmICh0
cy0+dHNfc2xwdGltZSA+IDEpIHsNCiAJCXVwZGF0ZXByaSh0ZCk7DQogCQly
ZXNldHByaW9yaXR5KHRkKTsNCiAJfQ0KLQl0ZC0+dGRfc2xwdGltZSA9IDA7
DQorCXRkLT50ZF9zbHB0aWNrID0gdGlja3M7DQorCXRzLT50c19zbHB0aW1l
ID0gMDsNCiAJc2NoZWRfYWRkKHRkLCBTUlFfQk9SSU5HKTsNCiB9DQogDQpJ
bmRleDogc3lzL2tlcm4vc2NoZWRfdWxlLmMNCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMva2Vybi9zY2hl
ZF91bGUuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjA2DQpkaWZmIC11
IC1wIC1yMS4yMDYgc2NoZWRfdWxlLmMNCi0tLSBzeXMva2Vybi9zY2hlZF91
bGUuYwkxNyBTZXAgMjAwNyAwNToyNzoyMCAtMDAwMAkxLjIwNg0KKysrIHN5
cy9rZXJuL3NjaGVkX3VsZS5jCTE3IFNlcCAyMDA3IDA2OjA3OjMwIC0wMDAw
DQpAQCAtODgsNyArODgsNiBAQCBzdHJ1Y3QgdGRfc2NoZWQgewkNCiAJc2hv
cnQJCXRzX2ZsYWdzOwkvKiBUU0ZfKiBmbGFncy4gKi8NCiAJdV9jaGFyCQl0
c19ycWluZGV4OwkvKiBSdW4gcXVldWUgaW5kZXguICovDQogCXVfY2hhcgkJ
dHNfY3B1OwkJLyogQ1BVIHRoYXQgd2UgaGF2ZSBhZmZpbml0eSBmb3IuICov
DQotCWludAkJdHNfc2xwdGljazsJLyogVGljayB3aGVuIHdlIHdlbnQgdG8g
c2xlZXAuICovDQogCWludAkJdHNfc2xpY2U7CS8qIFRpY2tzIG9mIHNsaWNl
IHJlbWFpbmluZy4gKi8NCiAJdV9pbnQJCXRzX3NscHRpbWU7CS8qIE51bWJl
ciBvZiB0aWNrcyB3ZSB2b2wuIHNsZXB0ICovDQogCXVfaW50CQl0c19ydW50
aW1lOwkvKiBOdW1iZXIgb2YgdGlja3Mgd2Ugd2VyZSBydW5uaW5nICovDQpA
QCAtMTkxNCw3ICsxOTEzLDcgQEAgc2NoZWRfc2xlZXAoc3RydWN0IHRocmVh
ZCAqdGQpDQogDQogCVRIUkVBRF9MT0NLX0FTU0VSVCh0ZCwgTUFfT1dORUQp
Ow0KIA0KLQl0ZC0+dGRfc2NoZWQtPnRzX3NscHRpY2sgPSB0aWNrczsNCisJ
dGQtPnRkX3NscHRpY2sgPSB0aWNrczsNCiB9DQogDQogLyoNCkBAIC0xOTMz
LDggKzE5MzIsOCBAQCBzY2hlZF93YWtldXAoc3RydWN0IHRocmVhZCAqdGQp
DQogCSAqIElmIHdlIHNsZXB0IGZvciBtb3JlIHRoYW4gYSB0aWNrIHVwZGF0
ZSBvdXIgaW50ZXJhY3Rpdml0eSBhbmQNCiAJICogcHJpb3JpdHkuDQogCSAq
Lw0KLQlzbHB0aWNrID0gdHMtPnRzX3NscHRpY2s7DQotCXRzLT50c19zbHB0
aWNrID0gMDsNCisJc2xwdGljayA9IHRkLT50ZF9zbHB0aWNrOw0KKwl0ZC0+
dGRfc2xwdGljayA9IDA7DQogCWlmIChzbHB0aWNrICYmIHNscHRpY2sgIT0g
dGlja3MpIHsNCiAJCXVfaW50IGh6dGlja3M7DQogDQpAQCAtMjQzNSw3ICsy
NDM0LDYgQEAgc2NoZWRfcGN0Y3B1KHN0cnVjdCB0aHJlYWQgKnRkKQ0KIAkJ
cnRpY2sgPSBtaW4oU0NIRURfVElDS19IWih0cykgLyBTQ0hFRF9USUNLX1NF
Q1MsIGh6KTsNCiAJCXBjdGNwdSA9IChGU0NBTEUgKiAoKEZTQ0FMRSAqIHJ0
aWNrKS9oeikpID4+IEZTSElGVDsNCiAJfQ0KLQl0ZC0+dGRfcHJvYy0+cF9z
d3RpbWUgPSB0cy0+dHNfbHRpY2sgLSB0cy0+dHNfZnRpY2s7DQogCXRocmVh
ZF91bmxvY2sodGQpOw0KIA0KIAlyZXR1cm4gKHBjdGNwdSk7DQpJbmRleDog
c3lzL3N5cy9wcm9jLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBm
aWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMvc3lzL3Byb2MuaCx2DQpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuNDkwDQpkaWZmIC11IC1wIC1yMS40OTAgcHJvYy5o
DQotLS0gc3lzL3N5cy9wcm9jLmgJMTcgU2VwIDIwMDcgMDU6Mjc6MjEgLTAw
MDAJMS40OTANCisrKyBzeXMvc3lzL3Byb2MuaAkxNyBTZXAgMjAwNyAwNjow
MDo1MCAtMDAwMA0KQEAgLTI0Miw3ICsyNDIsNyBAQCBzdHJ1Y3QgdGhyZWFk
IHsNCiAJc3RydWN0IHRocmVhZAkqdGRfc3RhbmRpbjsJLyogKGsgKyBhKSBV
c2UgdGhpcyBmb3IgYW4gdXBjYWxsLiAqLw0KIAlzdHJ1Y3Qga3NlX3VwY2Fs
bCAqdGRfdXBjYWxsOwkvKiAoayArIHQpIFVwY2FsbCBzdHJ1Y3R1cmUuICov
DQogCXVfaW50CQl0ZF9lc3RjcHU7CS8qICh0KSBlc3RpbWF0ZWQgY3B1IHV0
aWxpemF0aW9uICovDQotCXVfaW50CQl0ZF9zbHB0aW1lOwkvKiAodCkgSG93
IGxvbmcgY29tcGxldGVseSBibG9ja2VkLiAqLw0KKwl1X2ludAkJdGRfc2xw
dGljazsJLyogKHQpIFRpbWUgYXQgc2xlZXAuICovDQogCXN0cnVjdCBydXNh
Z2UJdGRfcnU7CQkvKiAodCkgcnVzYWdlIGluZm9ybWF0aW9uICovDQogCXVp
bnQ2NF90CXRkX3J1bnRpbWU7CS8qICh0KSBIb3cgbWFueSBjcHUgdGlja3Mg
d2UndmUgcnVuLiAqLw0KIAl1X2ludCAJCXRkX3B0aWNrczsJLyogKHQpIFN0
YXRjbG9jayBoaXRzIGZvciBwcm9maWxpbmcgKi8NCkBAIC01MjAsNyArNTIw
LDcgQEAgc3RydWN0IHByb2Mgew0KICNkZWZpbmUJcF9zdGFydHplcm8JcF9v
cHBpZA0KIAlwaWRfdAkJcF9vcHBpZDsJLyogKGMgKyBlKSBTYXZlIHBwaWQg
aW4gcHRyYWNlLiBYWFggKi8NCiAJc3RydWN0IHZtc3BhY2UJKnBfdm1zcGFj
ZTsJLyogKGIpIEFkZHJlc3Mgc3BhY2UuICovDQotCXVfaW50CQlwX3N3dGlt
ZTsJLyogKGopIFRpbWUgc3dhcHBlZCBpbiBvciBvdXQuICovDQorCXVfaW50
CQlwX3N3dGljazsJLyogKGopIFRpY2sgd2hlbiBzd2FwcGVkIGluIG9yIG91
dC4gKi8NCiAJc3RydWN0IGl0aW1lcnZhbCBwX3JlYWx0aW1lcjsJLyogKGMp
IEFsYXJtIHRpbWVyLiAqLw0KIAlzdHJ1Y3QgcnVzYWdlCXBfcnU7CQkvKiAo
YSkgRXhpdCBpbmZvcm1hdGlvbi4gKi8NCiAJc3RydWN0IHJ1c2FnZV9leHQg
cF9ydXg7CS8qIChjaikgSW50ZXJuYWwgcmVzb3VyY2UgdXNhZ2UuICovDQpJ
bmRleDogc3lzL3ZtL3ZtX2dsdWUuYw0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy92bS92bV9nbHVlLmMs
dg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjIyNA0KZGlmZiAtdSAtcCAtcjEu
MjI0IHZtX2dsdWUuYw0KLS0tIHN5cy92bS92bV9nbHVlLmMJMTcgU2VwIDIw
MDcgMDU6Mjc6MjEgLTAwMDAJMS4yMjQNCisrKyBzeXMvdm0vdm1fZ2x1ZS5j
CTE3IFNlcCAyMDA3IDA2OjA1OjA3IC0wMDAwDQpAQCAtNjM2LDcgKzYzNiw3
IEBAIGZhdWx0aW4ocCkNCiAJCVBST0NfTE9DSyhwKTsNCiAJCVBST0NfU0xP
Q0socCk7DQogCQlzd2FwY2xlYXIocCk7DQotCQlwLT5wX3N3dGltZSA9IDA7
DQorCQlwLT5wX3N3dGljayA9IHRpY2tzOw0KIAkJUFJPQ19TVU5MT0NLKHAp
Ow0KIA0KIAkJd2FrZXVwKCZwLT5wX2ZsYWcpOw0KQEAgLTY2Myw5ICs2NjMs
MTEgQEAgc2NoZWR1bGVyKGR1bW15KQ0KIHsNCiAJc3RydWN0IHByb2MgKnA7
DQogCXN0cnVjdCB0aHJlYWQgKnRkOw0KLQlpbnQgcHJpOw0KIAlzdHJ1Y3Qg
cHJvYyAqcHA7DQorCWludCBzbHB0aW1lOw0KKwlpbnQgc3d0aW1lOw0KIAlp
bnQgcHByaTsNCisJaW50IHByaTsNCiANCiAJbXR4X2Fzc2VydCgmR2lhbnQs
IE1BX09XTkVEIHwgTUFfTk9UUkVDVVJTRUQpOw0KIAltdHhfdW5sb2NrKCZH
aWFudCk7DQpAQCAtNjg4LDYgKzY5MCw3IEBAIGxvb3A6DQogCQkJUFJPQ19V
TkxPQ0socCk7DQogCQkJY29udGludWU7DQogCQl9DQorCQlzd3RpbWUgPSAo
dGlja3MgLSBwLT5wX3N3dGljaykgLyBoejsNCiAJCVBST0NfU0xPQ0socCk7
DQogCQlGT1JFQUNIX1RIUkVBRF9JTl9QUk9DKHAsIHRkKSB7DQogCQkJLyoN
CkBAIC02OTcsNyArNzAwLDggQEAgbG9vcDoNCiAJCQkgKi8NCiAJCQl0aHJl
YWRfbG9jayh0ZCk7DQogCQkJaWYgKHRkLT50ZF9pbmhpYml0b3JzID09IFRE
SV9TV0FQUEVEKSB7DQotCQkJCXByaSA9IHAtPnBfc3d0aW1lICsgdGQtPnRk
X3NscHRpbWU7DQorCQkJCXNscHRpbWUgPSAodGlja3MgLSB0ZC0+dGRfc2xw
dGljaykgLyBoejsNCisJCQkJcHJpID0gc3d0aW1lICsgc2xwdGltZTsNCiAJ
CQkJaWYgKCh0ZC0+dGRfZmxhZ3MgJiBUREZfU1dBUElOUkVRKSA9PSAwKQ0K
IAkJCQkJcHJpIC09IHAtPnBfbmljZSAqIDg7DQogCQkJCS8qDQpAQCAtODE2
LDYgKzgyMCw3IEBAIHJldHJ5Og0KIAlGT1JFQUNIX1BST0NfSU5fU1lTVEVN
KHApIHsNCiAJCXN0cnVjdCB2bXNwYWNlICp2bTsNCiAJCWludCBtaW5zbHB0
aW1lID0gMTAwMDAwOw0KKwkJaW50IHNscHRpbWU7DQogCQkNCiAJCS8qDQog
CQkgKiBXYXRjaCBvdXQgZm9yIGEgcHJvY2VzcyBpbg0KQEAgLTg4MiwxMiAr
ODg3LDEyIEBAIHJldHJ5Og0KIAkJCQkJdGhyZWFkX3VubG9jayh0ZCk7DQog
CQkJCQlnb3RvIG5leHRwcm9jOw0KIAkJCQl9DQotDQorCQkJCXNscHRpbWUg
PSAodGlja3MgLSB0ZC0+dGRfc2xwdGljaykgLyBoejsNCiAJCQkJLyoNCiAJ
CQkJICogR3VhcmFudGVlIHN3YXBfaWRsZV90aHJlc2hvbGQxDQogCQkJCSAq
IHRpbWUgaW4gbWVtb3J5Lg0KIAkJCQkgKi8NCi0JCQkJaWYgKHRkLT50ZF9z
bHB0aW1lIDwgc3dhcF9pZGxlX3RocmVzaG9sZDEpIHsNCisJCQkJaWYgKHNs
cHRpbWUgPCBzd2FwX2lkbGVfdGhyZXNob2xkMSkgew0KIAkJCQkJdGhyZWFk
X3VubG9jayh0ZCk7DQogCQkJCQlnb3RvIG5leHRwcm9jOw0KIAkJCQl9DQpA
QCAtOTE0LDEzICs5MTksMTMgQEAgcmV0cnk6DQogCQkJCSAqLw0KIAkJCQlp
ZiAoKChhY3Rpb24gJiBWTV9TV0FQX05PUk1BTCkgPT0gMCkgJiYNCiAJCQkJ
ICAgICgoKGFjdGlvbiAmIFZNX1NXQVBfSURMRSkgPT0gMCkgfHwNCi0JCQkJ
ICAgICh0ZC0+dGRfc2xwdGltZSA8IHN3YXBfaWRsZV90aHJlc2hvbGQyKSkp
IHsNCisJCQkJICAgIChzbHB0aW1lIDwgc3dhcF9pZGxlX3RocmVzaG9sZDIp
KSkgew0KIAkJCQkJdGhyZWFkX3VubG9jayh0ZCk7DQogCQkJCQlnb3RvIG5l
eHRwcm9jOw0KIAkJCQl9DQogDQotCQkJCWlmIChtaW5zbHB0aW1lID4gdGQt
PnRkX3NscHRpbWUpDQotCQkJCQltaW5zbHB0aW1lID0gdGQtPnRkX3NscHRp
bWU7DQorCQkJCWlmIChtaW5zbHB0aW1lID4gc2xwdGltZSkNCisJCQkJCW1p
bnNscHRpbWUgPSBzbHB0aW1lOw0KIAkJCQl0aHJlYWRfdW5sb2NrKHRkKTsN
CiAJCQl9DQogDQpAQCAtMTAzOCw3ICsxMDQzLDcgQEAgc3dhcG91dChwKQ0K
IAlQUk9DX0xPQ0socCk7DQogCXAtPnBfZmxhZyAmPSB+UF9TV0FQUElOR09V
VDsNCiAJUFJPQ19TTE9DSyhwKTsNCi0JcC0+cF9zd3RpbWUgPSAwOw0KKwlw
LT5wX3N3dGljayA9IHRpY2tzOw0KIAlyZXR1cm4gKDApOw0KIH0NCiAjZW5k
aWYgLyogIU5PX1NXQVBQSU5HICovDQo=

--0-1681148293-1190063736=:558--



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