Re: VM idle page zeroing

看板DFBSD_kernel作者時間15年前 (2010/05/18 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串15/19 (看更多)
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323329-1468711201-1274108701=:32223 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII Hi, Attached is a patch that changes a few things: 1) Removes the CVS ID; that was vestigial, I forgot I'd included that. 2) Rename idlezero_count back to cnt_prezero; this is because this is the original name (in FreeBSD and in DragonFly). I don't feel strongly about this at all - is it reasonable to try to match up sysctl names or not worth it? 3) Change vm_page_zero_check() to return the reason that the check failed. 4) In vm_pagezero(), switch tsleep to sleep for a variable amount of time; by default it is still hz/10, now called DEFAULT_SLEEP_TIME. If vm_page_zero_check() failed because zeroing was either disabled or because we hit the ZIDLE_HI limit, mark ourselves to sleep for a long time (hz*10). If we are lower than the upper limit by higher than the low limit, or we are below the low limit, restore the sleep time. 5) Set zero_state when we hit the high mark and clear when we fall below the low mark; this restores the hysteresis formerly present. Other thoughts - before we enter the mainloop, perhaps a sleep without a timeout, if idlezero_enable = 0? Then the enable/disable sysctl could be a SYSCTL_PROC which wakes it up; this would minimize the (admittedly tiny) load on systems on which it is disabled. Thoughts on any of this? Thanks, -- vs --8323329-1468711201-1274108701=:32223 Content-Type: TEXT/x-diff; name=vm_zeroidle1.diff Content-Transfer-Encoding: BASE64 Content-ID: <alpine.DEB.2.00.1005171104470.32223@endeavour> Content-Description: Content-Disposition: attachment; filename=vm_zeroidle1.diff LS0tIC9zY3JhdGNoL2RyYWdvbmZseS9zeXMvdm0vdm1femVyb2lkbGUuYwky MDEwLTA1LTE2IDE0OjE1OjQwLjAwMDAwMDAwMCAtMDQwMA0KKysrIHZtX3pl cm9pZGxlLmMJMjAxMC0wNS0xNyAwNDo1ODoyMi4wMDAwMDAwMDAgLTA0MDAN CkBAIC0zNSw4ICszNSw2IEBADQogICoJZnJvbTogQCgjKXZtX21hY2hkZXAu Ywk3LjMgKEJlcmtlbGV5KSA1LzEzLzkxDQogICoJVXRhaCAkSGRyOiB2bV9t YWNoZGVwLmMJMS4xNi4xLjEgODkvMDYvMjMkDQogICogZnJvbSBGcmVlQlNE OiAuLi4vaTM4Ni92bV9tYWNoZGVwLmMsdiAxLjE2NSAyMDAxLzA3LzA0IDIz OjI3OjA0IGRpbGxvbg0KLSAqDQotICogJElkOiB2bV96ZXJvaWRsZS5jLHYg MS4zIDIwMTAvMDUvMTIgMDQ6NTA6NDUgc3Y1Njc5IEV4cCAkDQogICovDQog DQogI2luY2x1ZGUgPHN5cy9wYXJhbS5oPg0KQEAgLTY3LDcgKzY1LDYgQEAN CiAvKiBNYXhpbXVtIG51bWJlciBvZiBwYWdlcyBwZXIgc2Vjb25kIHRvIHpl cm8gKi8NCiAjZGVmaW5lIE5QQUdFU19SVU4JKDIwMDAwKQ0KIA0KLQ0KIHN0 YXRpYyBpbnQgaWRsZXplcm9fZW5hYmxlID0gMDsNCiBUVU5BQkxFX0lOVCgi dm0uaWRsZXplcm9fZW5hYmxlIiwgJmlkbGV6ZXJvX2VuYWJsZSk7DQogU1lT Q1RMX0lOVChfdm0sIE9JRF9BVVRPLCBpZGxlemVyb19lbmFibGUsIENUTEZM QUdfUlcsICZpZGxlemVyb19lbmFibGUsIDAsDQpAQCAtNzksOCArNzYsOCBA QA0KIFNZU0NUTF9JTlQoX3ZtLCBPSURfQVVUTywgaWRsZXplcm9fbm9jYWNo ZSwgQ1RMRkxBR19SVywgJmlkbGV6ZXJvX25vY2FjaGUsIDAsDQogCSAgICJN YXhpbXVtIHBhZ2VzIHBlciBzZWNvbmQgdG8gemVybyIpOw0KIA0KLXN0YXRp YyBpbnQgaWRsZXplcm9fY291bnQgPSAwOw0KLVNZU0NUTF9JTlQoX3ZtLCBP SURfQVVUTywgaWRsZXplcm9fY291bnQsIENUTEZMQUdfUkQsICZpZGxlemVy b19jb3VudCwgMCwNCitzdGF0aWMgaW50IGNudF9wcmV6ZXJvID0gMDsNCitT WVNDVExfSU5UKF92bSwgT0lEX0FVVE8sIGNudF9wcmV6ZXJvLCBDVExGTEFH X1JELCAmY250X3ByZXplcm8sIDAsDQogCSAgICJUaGUgbnVtYmVyIG9mIHBo eXNpY2FsIHBhZ2VzIHByZXplcm9lZCBhdCBpZGxlIHRpbWUiKTsNCiANCiBl bnVtIHplcm9pZGxlX3N0YXRlIHsNCkBAIC05MCw3ICs4NywxOCBAQA0KIAlT VEFURV9SRUxFQVNFX1BBR0UNCiB9Ow0KIA0KK2VudW0gemVyb19jaGVja19z dGF0ZSB7DQorCVpfRElTQUJMRUQsDQorCVpfTE9XX0xJTSwNCisJWl9ISUdI X0xJTSwNCisJWl9aRVJPDQorfTsNCisNCisjZGVmaW5lIERFRkFVTFRfU0xF RVBfVElNRQkoaHogLyAxMCkNCisjZGVmaW5lIExPTkdfU0xFRVBfVElNRQko aHogKiAxMCkNCisNCiBzdGF0aWMgaW50IHplcm9fc3RhdGU7DQorc3RhdGlj IGludCBzbGVlcF90aW1lOw0KIA0KIC8qDQogICogQXR0ZW1wdCB0byBtYWlu dGFpbiBhcHByb3hpbWF0ZWx5IDEvMiBvZiBvdXIgZnJlZSBwYWdlcyBpbiBh DQpAQCAtMTAwLDE2ICsxMDgsMTYgQEANCiAgKiBmYXN0IHNsZWVwcy4gV2Ug YWxzbyBkbyBub3Qgd2FudCB0byBiZSBjb250aW51b3VzbHkgemVyb2luZw0K ICAqIHBhZ2VzIGJlY2F1c2UgZG9pbmcgc28gbWF5IGZsdXNoIG91ciBMMSBh bmQgTDIgY2FjaGVzIHRvbyBtdWNoLg0KICAqLw0KLXN0YXRpYyBpbnQNCitz dGF0aWMgZW51bSB6ZXJvX2NoZWNrX3N0YXRlDQogdm1fcGFnZV96ZXJvX2No ZWNrKHZvaWQpDQogew0KIAlpZiAoaWRsZXplcm9fZW5hYmxlID09IDApDQot CQlyZXR1cm4gKDApOw0KKwkJcmV0dXJuIChaX0RJU0FCTEVEKTsNCiAJaWYg KHplcm9fc3RhdGUgJiYgdm1fcGFnZV96ZXJvX2NvdW50ID49IFpJRExFX0xP KHZtc3RhdHMudl9mcmVlX2NvdW50KSkNCi0JCXJldHVybiAoMCk7DQorCQly ZXR1cm4gKFpfTE9XX0xJTSk7DQogCWlmICh2bV9wYWdlX3plcm9fY291bnQg Pj0gWklETEVfSEkodm1zdGF0cy52X2ZyZWVfY291bnQpKQ0KLQkJcmV0dXJu ICgwKTsNCi0JcmV0dXJuICgxKTsNCisJCXJldHVybiAoWl9ISUdIX0xJTSk7 DQorCXJldHVybiAoWl9aRVJPKTsNCiB9DQogDQogc3RhdGljIHZvaWQNCkBA IC0xMjEsNiArMTI5LDcgQEANCiAJY2hhciAqcGcgPSBOVUxMOw0KIAlpbnQg bnBhZ2VzID0gMDsNCiAJaW50IGkgPSAwOw0KKwllbnVtIHplcm9fY2hlY2tf c3RhdGUgenM7DQogDQogCS8qDQogCSAqIEFkanVzdCB0aHJlYWQgcGFyYW1l dGVycyBiZWZvcmUgZW50ZXJpbmcgb3VyIGxvb3AuICBUaGUgdGhyZWFkDQpA QCAtMTMyLDYgKzE0MSw3IEBADQogCXJlbF9tcGxvY2soKTsNCiAJbHdrdF9z ZXRwcmlfc2VsZihURFBSSV9JRExFX1dPUkspOw0KIAlsd2t0X3NldGNwdV9z ZWxmKGdsb2JhbGRhdGFfZmluZChuY3B1cyAtIDEpKTsNCisJc2xlZXBfdGlt ZSA9IERFRkFVTFRfU0xFRVBfVElNRTsNCiANCiAJLyoNCiAJICogTG9vcCBm b3JldmVyDQpAQCAtMTQyLDkgKzE1MiwzNSBAQA0KIAkJCS8qDQogCQkJICog V2FpdCBmb3Igd29yay4NCiAJCQkgKi8NCi0JCQl0c2xlZXAoJnplcm9fc3Rh dGUsIDAsICJwZ3plcm8iLCBoeiAvIDEwKTsNCi0JCQlpZiAodm1fcGFnZV96 ZXJvX2NoZWNrKCkpDQorCQkJdHNsZWVwKCZ6ZXJvX3N0YXRlLCAwLCAicGd6 ZXJvIiwgc2xlZXBfdGltZSk7DQorCQkJLyoNCisJCQkgKiBDaGVjayB3aGV0 aGVyIHdlIG91Z2h0IHplcm8gcGFnZXMgLSBpZiB3ZSBhcmUNCisJCQkgKiBk aXNhYmxlZCBvciB0aGVyZSBhcmUgcGxlbnR5IG9mIHplcm8gcGFnZXMsIHdl DQorCQkJICogc2xlZXAsIGZvciBhIGxvbmcgdGltZS4NCisJCQkgKi8NCisJ CQl6cyA9IHZtX3BhZ2VfemVyb19jaGVjaygpOw0KKwkJCWlmICh6cyA9PSBa X0RJU0FCTEVEKSB7DQorCQkJCXNsZWVwX3RpbWUgPSBMT05HX1NMRUVQX1RJ TUU7DQorCQkJCWJyZWFrOw0KKwkJCX0NCisJCQlzd2l0Y2goenMpIHsNCisJ CQljYXNlIFpfWkVSTzoNCisJCQkJc2xlZXBfdGltZSA9IERFRkFVTFRfU0xF RVBfVElNRTsNCiAJCQkJbnBhZ2VzID0gaWRsZXplcm9fcmF0ZSAvIDEwOw0K KwkJCQl6ZXJvX3N0YXRlID0gMDsNCisJCQkJYnJlYWs7DQorCQkJY2FzZSBa X0hJR0hfTElNOg0KKwkJCQlzbGVlcF90aW1lID0gTE9OR19TTEVFUF9USU1F Ow0KKwkJCQl6ZXJvX3N0YXRlID0gMTsNCisJCQkJYnJlYWs7DQorCQkJY2Fz ZSBaX0xPV19MSU06DQorCQkJCXNsZWVwX3RpbWUgPSBERUZBVUxUX1NMRUVQ X1RJTUU7DQorCQkJCWJyZWFrOw0KKwkJCWRlZmF1bHQ6DQorCQkJCS8qIFpf RElTQUJMRUQgaGFuZGxlZCBhYm92ZSBzd2l0Y2ggKi8NCisJCQkJYnJlYWs7 DQorCQkJfQ0KKw0KIAkJCWlmIChucGFnZXMpDQogCQkJCXN0YXRlID0gU1RB VEVfR0VUX1BBR0U7CS8qIEZhbGx0aHJvdWdoICovDQogCQkJYnJlYWs7DQpA QCAtMTkzLDcgKzIyOSw3IEBADQogCQkJCXZtX3BhZ2VfZmxhZ19zZXQobSwg UEdfWkVSTyk7DQogCQkJCXZtX3BhZ2VfZnJlZV90b3EobSk7DQogCQkJCXN0 YXRlID0gU1RBVEVfR0VUX1BBR0U7DQotCQkJCSsraWRsZXplcm9fY291bnQ7 DQorCQkJCSsrY250X3ByZXplcm87DQogCQkJCXJlbF9tcGxvY2soKTsNCiAJ CQl9DQogCQkJYnJlYWs7DQo= --8323329-1468711201-1274108701=:32223--
文章代碼(AID): #1ByOHgSS (DFBSD_kernel)
討論串 (同標題文章)
文章代碼(AID): #1ByOHgSS (DFBSD_kernel)