Date: Wed, 1 Jun 2005 00:24:30 -0400 (EDT) From: Andre Guibert de Bruet <andy@siliconlandmark.com> To: current@freebsd.org Subject: [RFC] [PATCH] VM & VFS changes Message-ID: <20050601000203.D69811@lexi.siliconlandmark.com>
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-504302586-1117599870=:69811 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Hi, I would like to present a unified set of VM and VFS diffs for wider scrutiny and testing. I have been running these diffs since May 10th across daily reboots with no issues. What this patch does: - Adds code that cleanly unmounts swaps (Forcing page-in first) after the final sync but before all of the filesystems are unmounted. This causes references to swap slices in devfs to not be dangling when the machine is rebooted. - Defers unmounting of devfs until all other filesystems are unmounted. - Prints diagnostic messages when non-free dangling vnodes are still active on shutdown. What it doesn't: - Fix the EBUSY error code that is returned on reboot (But it sharply reduces the amount of dangling vnodes. I am still working on this issue). - Vacuum your apartment (Sorry...). The patch is attached to this email. Just in case it doesn't make it to the list, it can also be found online at: http://bling.properkernel.com/freebsd/vm+vfs.shutdown.changes.patch Comments and constructive criticism very welcome. :-) Cheers, Andy PS: This work was sponsored by my employer, Silicon Landmark. If you like what you see, support us. /* Andre Guibert de Bruet * 6f43 6564 7020 656f 2e74 4220 7469 6a20 */ /* Code poet / Sysadmin * 636f 656b 2e79 5320 7379 6461 696d 2e6e */ /* GSM: +1 734 846 8758 * 5520 494e 2058 6c73 7565 6874 002e 0000 */ /* WWW: siliconlandmark.com * Tormenting bytes since 1980. */ --0-504302586-1117599870=:69811 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=vm+vfs.shutdown.changes.patch Content-Transfer-Encoding: BASE64 Content-ID: <20050601002430.J69811@lexi.siliconlandmark.com> Content-Description: Content-Disposition: attachment; filename=vm+vfs.shutdown.changes.patch SW5kZXg6IGtlcm4va2Vybl9zaHV0ZG93bi5jDQo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09DQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvc3lzL2tlcm4va2Vy bl9zaHV0ZG93bi5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNzQNCmRp ZmYgLXUgLXIxLjE3NCBrZXJuX3NodXRkb3duLmMNCi0tLSBrZXJuL2tlcm5f c2h1dGRvd24uYwkxMiBBcHIgMjAwNSAwNTo0NTo1OCAtMDAwMAkxLjE3NA0K KysrIGtlcm4va2Vybl9zaHV0ZG93bi5jCTEwIE1heSAyMDA1IDE3OjA5OjAy IC0wMDAwDQpAQCAtNjQsNiArNjQsOSBAQA0KICNpbmNsdWRlIDxzeXMvc3lz Y3RsLmg+DQogI2luY2x1ZGUgPHN5cy9zeXNwcm90by5oPg0KIA0KKyNpbmNs dWRlIDx2bS92bS5oPg0KKyNpbmNsdWRlIDx2bS9zd2FwX3BhZ2VyLmg+DQor DQogI2luY2x1ZGUgPG1hY2hpbmUvY3B1Lmg+DQogI2luY2x1ZGUgPG1hY2hp bmUvcGNiLmg+DQogI2luY2x1ZGUgPG1hY2hpbmUvc21wLmg+DQpAQCAtMzc0 LDYgKzM3NywxMiBAQA0KIAkJCWlmICghZmlyc3RfYnVmX3ByaW50ZikNCiAJ CQkJcHJpbnRmKCJGaW5hbCBzeW5jIGNvbXBsZXRlXG4iKTsNCiAJCQkvKg0K KwkJCSAqIERpc2FibGUgc3dhcHBpbmcNCisJCQkgKi8NCisJCQlpZiAocGFu aWNzdHIgPT0gMCkNCisJCQkJc3dhcF9zd2Fwb2ZmX2FsbChjdXJ0aHJlYWQp Ow0KKw0KKwkJCS8qDQogCQkJICogVW5tb3VudCBmaWxlc3lzdGVtcw0KIAkJ CSAqLw0KIAkJCWlmIChwYW5pY3N0ciA9PSAwKQ0KSW5kZXg6IGtlcm4vdmZz X3N1YnIuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9o b21lL25jdnMvc3JjL3N5cy9rZXJuL3Zmc19zdWJyLmMsdg0KcmV0cmlldmlu ZyByZXZpc2lvbiAxLjYyNA0KZGlmZiAtdSAtcjEuNjI0IHZmc19zdWJyLmMN Ci0tLSBrZXJuL3Zmc19zdWJyLmMJNiBNYXkgMjAwNSAwMjo0ODoyMCAtMDAw MAkxLjYyNA0KKysrIGtlcm4vdmZzX3N1YnIuYwkxMSBNYXkgMjAwNSAwMTow NDowMyAtMDAwMA0KQEAgLTI2NjAsNiArMjY2MCw3IEBADQogew0KIAlzdHJ1 Y3QgbW91bnQgKm1wOw0KIAlzdHJ1Y3QgdGhyZWFkICp0ZDsNCisJc3RydWN0 IHZub2RlICp2cDsNCiAJaW50IGVycm9yOw0KIA0KIAlLQVNTRVJUKGN1cnRo cmVhZCAhPSBOVUxMLCAoInZmc191bm1vdW50YWxsOiBOVUxMIGN1cnRocmVh ZCIpKTsNCkBAIC0yNjY5LDYgKzI2NzAsMzkgQEANCiAJICovDQogCXdoaWxl KCFUQUlMUV9FTVBUWSgmbW91bnRsaXN0KSkgew0KIAkJbXAgPSBUQUlMUV9M QVNUKCZtb3VudGxpc3QsIG1udGxpc3QpOw0KKw0KKyNpZmRlZiBESUFHTk9T VElDDQorCQlwcmludGYoInZmc191bm1vdW50YWxsOiBUQUlMUV9MQVNUIGdh dmUgdXM6ICVzXG4iLA0KKwkJCW1wLT5tbnRfc3RhdC5mX21udGZyb21uYW1l KTsNCisjZW5kaWYgLyogRElBR05PU1RJQyAqLw0KKw0KKwkJaWYoIXN0cmNt cChtcC0+bW50X3N0YXQuZl9tbnRmcm9tbmFtZSwgImRldmZzIikgJiYNCisJ CQlUQUlMUV9GSVJTVCgmbW91bnRsaXN0KSAhPQ0KKwkJCVRBSUxRX0xBU1Qo Jm1vdW50bGlzdCwgbW50bGlzdCkpDQorCQl7DQorCQkJbXAgPSBUQUlMUV9Q UkVWKG1wLCBtbnRsaXN0LCBtbnRfbGlzdCk7DQorCQkJcHJpbnRmKCJ2ZnNf dW5tb3VudF9hbGw6IEZvdW5kIGRldmZzLiAiDQorCQkJCSJkZWZlcnJpbmcg dW5tb3VudC5cbiIpOw0KKwkJfQ0KKw0KKyNpZmRlZiBESUFHTk9TVElDDQor CQlwcmludGYoInZmc191bm1vdW50YWxsOiB1bm1vdW50aW5nOiAlc1xuIiwN CisJCQltcC0+bW50X3N0YXQuZl9tbnRmcm9tbmFtZSk7DQorI2VuZGlmIC8q IERJQUdOT1NUSUMgKi8NCisNCisJCWlmKCFzdHJjbXAobXAtPm1udF9zdGF0 LmZfbW50ZnJvbW5hbWUsICJkZXZmcyIpKQ0KKwkJew0KKwkJCVRBSUxRX0ZP UkVBQ0godnAsICZtcC0+bW50X252bm9kZWxpc3QsIHZfbm1udHZub2RlcykN CisJCQl7DQorCQkJCWlmKCEodnAtPnZfdmZsYWcgJiBWSV9GUkVFKSkNCisJ CQkJCSAvKnZwLT52X3VzZWNvdW50ID4gMCkqLw0KKwkJCQl7DQorCQkJCQl2 bl9wcmludGYodnAsICIlcyIsICIiKTsNCisJCQkJCS8qVk9QX0RFU1RST1lW T0JKRUNUKHZwKTsqLw0KKwkJCQl9DQorCQkJfQ0KKwkJfQ0KKw0KIAkJZXJy b3IgPSBkb3VubW91bnQobXAsIE1OVF9GT1JDRSwgdGQpOw0KIAkJaWYgKGVy cm9yKSB7DQogCQkJVEFJTFFfUkVNT1ZFKCZtb3VudGxpc3QsIG1wLCBtbnRf bGlzdCk7DQpAQCAtMjY4Miw2ICsyNzE2LDkgQEANCiAJCQkvKiBUaGUgdW5t b3VudCBoYXMgcmVtb3ZlZCBtcCBmcm9tIHRoZSBtb3VudGxpc3QgKi8NCiAJ CX0NCiAJfQ0KKyNpZmRlZiBESUFHTk9TVElDDQorCXByaW50ZigidmZzX3Vu bW91bnRhbGwoKTogZG9uZSFcbiIpOw0KKyNlbmRpZiAvKiBESUFHTk9TVElD ICovDQogfQ0KIA0KIC8qDQpJbmRleDogdm0vc3dhcF9wYWdlci5jDQo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMv c3lzL3ZtL3N3YXBfcGFnZXIuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEu MjczDQpkaWZmIC11IC1yMS4yNzMgc3dhcF9wYWdlci5jDQotLS0gdm0vc3dh cF9wYWdlci5jCTIwIE1heSAyMDA1IDIxOjI2OjA1IC0wMDAwCTEuMjczDQor Kysgdm0vc3dhcF9wYWdlci5jCTI0IE1heSAyMDA1IDAyOjIxOjMwIC0wMDAw DQpAQCAtMjE5Myw2ICsyMTkzLDYwIEBADQogCXJldHVybiAoZXJyb3IpOw0K IH0NCiANCisNCisNCisvKg0KKyAqIHN3YXBfc3dhcG9mZl9hbGwodGhyZWFk KSAtIERpc2FibGUgYWxsIHN3YXAgZm9yIHN5c3RlbSBzaHV0ZG93bi4gVGhp cw0KKyAqIGZ1bmN0aW9uIGV4aXN0cyBiZWNhdXNlIG9mIHRoZSBiYWQgZGVz aWduIG9mIHN3YXBvZmYgd2l0aCBpdHMgcmVxdWlyZW1lbnQNCisgKiBmb3Ig YSBwYXRobmFtZSBpbnN0ZWFkIG9mIGEgc3dhcCBpbmRleC4gVG8gZ2V0IGFy b3VuZCB0aGUgb3ZlcmhlYWQgb2YgVkZTDQorICogbG9va3Vwcywgd2UgaXRl cmF0ZSB0aHJvdWdoIHRoZSBzd2FwIHRhaWxxLCBmb3JjZSBwYWdlLWlucyB0 aGVuIHJlbW92ZSB0aGUNCisgKiByZWZlcmVuY2UgdG8gZWFjaCBzdyBpbiBx dWV1ZS4NCisgKi8NCit2b2lkDQorc3dhcF9zd2Fwb2ZmX2FsbChzdHJ1Y3Qg dGhyZWFkICp0ZCkNCit7DQorCXN0cnVjdCBzd2RldnQgKnNwOw0KKw0KKwkv KiBwcmludGYoInN3YXBfc3dhcG9mZl9hbGw6IGNhbGxlZCFcbiIpOyAqLw0K KwlLQVNTRVJUKChuc3dhcGRldiA+IC0xKSwgKCJuc3dhcGRldiBpcyBuZWdh dGl2ZTogJWkiLCBuc3dhcGRldikpOw0KKw0KKwltdHhfbG9jaygmc3dfZGV2 X210eCk7DQorCXNwID0gVEFJTFFfRklSU1QoJnN3dGFpbHEpOw0KKw0KKwl3 aGlsZSAobnN3YXBkZXYpDQorCXsNCisJCS8qIFhYWCBXaGVuIHRoZSBzeXN0 ZW0gaXMgZ29pbmcgZG93biwgaXQgc2hvdWxkIGJlIHNhZmUgdG8gcGFnZQ0K KwkJICogYW55dGhpbmcgb24gc3dhcCBiYWNrIGluIHdpdGhvdXQgYW55IGlz c3VlcywgYXMgYWxsIHVzZXINCisJCSAqIHByb2Nlc3NlcyBoYXZlIGJlZW4g a2lsbGVkIG9mZi4NCisJCSAqLw0KKwkJc3AtPnN3X2ZsYWdzIHw9IFNXX0NM T1NJTkc7DQorCQltdHhfdW5sb2NrKCZzd19kZXZfbXR4KTsNCisJCQ0KKwkJ LypwcmludGYoInN3YXBfc3dhcG9mZl9hbGw6IEl0ZXJhdGluZyBpbiBsb29w Li4uXG4iKTsgKi8NCisJCXN3YXBfcGFnZXJfc3dhcG9mZihzcCk7DQorDQor CQlzcC0+c3dfY2xvc2UodGQsIHNwKTsNCisJCXNwLT5zd19pZCA9IE5VTEw7 DQorDQorCQluc3dhcGRldi0tOw0KKw0KKwkJbXR4X2xvY2soJnN3X2Rldl9t dHgpOw0KKwkJVEFJTFFfUkVNT1ZFKCZzd3RhaWxxLCBzcCwgc3dfbGlzdCk7 DQorDQorCQlzcCA9IFRBSUxRX0ZJUlNUKCZzd3RhaWxxKTsNCisJCWZyZWUo c3AsIE1fVk1QR0RBVEEpOw0KKwl9DQorCW10eF91bmxvY2soJnN3X2Rldl9t dHgpOw0KKw0KKwlzd2FwX3BhZ2VyX2Z1bGwgPSAyOw0KKwlzd2FwX3BhZ2Vy X2FsbW9zdF9mdWxsID0gMTsNCisJc3dkZXZoZCA9IE5VTEw7DQorCQ0KKwkv KiBwcmludGYoInN3YXBfc3dhcG9mZl9hbGw6IGRvbmUhXG4iKTsgKi8NCit9 DQorDQorDQorDQogdm9pZA0KIHN3YXBfcGFnZXJfc3RhdHVzKGludCAqdG90 YWwsIGludCAqdXNlZCkNCiB7DQpJbmRleDogdm0vc3dhcF9wYWdlci5oDQo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9z cmMvc3lzL3ZtL3N3YXBfcGFnZXIuaCx2DQpyZXRyaWV2aW5nIHJldmlzaW9u IDEuNTANCmRpZmYgLXUgLXIxLjUwIHN3YXBfcGFnZXIuaA0KLS0tIHZtL3N3 YXBfcGFnZXIuaAk3IEphbiAyMDA1IDAyOjI5OjI3IC0wMDAwCTEuNTANCisr KyB2bS9zd2FwX3BhZ2VyLmgJMTAgTWF5IDIwMDUgMTc6NTQ6NDEgLTAwMDAN CkBAIC01MCw2ICs1MCw3IEBADQogaW50IHN3YXBfcGFnZXJfaXNzd2FwcGVk KHZtX29iamVjdF90LCBzdHJ1Y3Qgc3dkZXZ0ICopOw0KIGludCBzd2FwX3Bh Z2VyX3Jlc2VydmUodm1fb2JqZWN0X3QsIHZtX3BpbmRleF90LCB2bV9zaXpl X3QpOw0KIHZvaWQgc3dhcF9wYWdlcl9zdGF0dXMoaW50ICp0b3RhbCwgaW50 ICp1c2VkKTsNCit2b2lkIHN3YXBfc3dhcG9mZl9hbGwoc3RydWN0IHRocmVh ZCAqKTsNCiANCiAjZW5kaWYJCQkJLyogX0tFUk5FTCAqLw0KICNlbmRpZgkJ CQkvKiBfVk1fU1dBUF9QQUdFUl9IXyAqLw0K --0-504302586-1117599870=:69811--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050601000203.D69811>