From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 8/9] x86/pagewalk: Improve the logic behind setting access and dirty bits Date: Thu, 16 Mar 2017 16:31:42 +0000 Message-ID: <1489681903-28119-9-git-send-email-andrew.cooper3@citrix.com> References: <1489681903-28119-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1489681903-28119-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: George Dunlap , Andrew Cooper , Tim Deegan , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhlIGJvb2xlYW4gcHNlMk0gaXMgbWlzbmFtZWQsIGJlY2F1c2UgaXQgbWlnaHQgcmVmZXIgdG8g YSA0TSBzdXBlcnBhZ2UuCgpTd2l0Y2ggdGhlIGxvZ2ljIHRvIGJlIGluIHRlcm1zIG9mIHRoZSBs ZXZlbCBvZiB0aGUgbGVhZiBlbnRyeSwgYW5kIHJlYXJyYW5nZQp0aGUgY2FsbHMgdG8gc2V0X2Fk X2JpdHMoKSB0byBiZSBhIGZhbGx0aHJvdWdoIHN3aXRjaCBzdGF0ZW1lbnQsIHRvIG1ha2UgaXQK ZWFzaWVyIHRvIGZvbGxvdy4KCkFsdGVyIHNldF9hZF9iaXRzKCkgdG8gdXNlIHByb3Blcmx5IHVz ZSBib29sIHJhdGhlciB0aGFuIGludGVnZXJzLiAgSW50cm9kdWNlCnByb3Blcmx5IHR5cGVkIHBv aW50ZXJzIHJhdGhlciB0aGFuIHJlcGVhdGVkbHkgY2FzdGluZyBhd2F5IGZyb20gdm9pZC4gIFVz ZQpBQ0NFU1NfT05DRSgpIHRvIGVuc3VyZSB0aGF0ICp3YWxrX3AgaXMgb25seSByZWFkIG9uY2Uu CgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29t PgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KQ0M6IFRpbSBEZWVnYW4g PHRpbUB4ZW4ub3JnPgpDQzogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXgu Y29tPgoKdjI6CiAqIE5ldwotLS0KIHhlbi9hcmNoL3g4Ni9tbS9ndWVzdF93YWxrLmMgfCA4MSAr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDQ3IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9tbS9ndWVzdF93YWxrLmMgYi94ZW4vYXJjaC94ODYvbW0vZ3Vlc3Rfd2Fsay5jCmlu ZGV4IGJkYjUyZDkuLjRiYTc2MDIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9ndWVzdF93 YWxrLmMKKysrIGIveGVuL2FyY2gveDg2L21tL2d1ZXN0X3dhbGsuYwpAQCAtMzIsMjQgKzMyLDI4 IEBAIGFzbSgiLmZpbGUgXCIiIF9fT0JKRUNUX0ZJTEVfXyAiXCIiKTsKICNpbmNsdWRlIDxhc20v cGFnZS5oPgogI2luY2x1ZGUgPGFzbS9ndWVzdF9wdC5oPgogCi0vKiBNb2RpZnkgYSBndWVzdCBw YWdldGFibGUgZW50cnkgdG8gc2V0IHRoZSBBY2Nlc3NlZCBhbmQgRGlydHkgYml0cy4KLSAqIFJl dHVybnMgbm9uLXplcm8gaWYgaXQgYWN0dWFsbHkgd3JpdGVzIHRvIGd1ZXN0IG1lbW9yeS4gKi8K LXN0YXRpYyB1aW50MzJfdCBzZXRfYWRfYml0cyh2b2lkICpndWVzdF9wLCB2b2lkICp3YWxrX3As IGludCBzZXRfZGlydHkpCisvKgorICogTW9kaWZ5IGEgZ3Vlc3QgcGFnZXRhYmxlIGVudHJ5IHRv IHNldCB0aGUgQWNjZXNzZWQgYW5kIERpcnR5IGJpdHMuCisgKiBSZXR1cm5zIG5vbi16ZXJvIGlm IGl0IGFjdHVhbGx5IHdyaXRlcyB0byBndWVzdCBtZW1vcnkuCisgKi8KK3N0YXRpYyBib29sIHNl dF9hZF9iaXRzKHZvaWQgKl9ndWVzdF9wLCB2b2lkICpfd2Fsa19wLCBib29sIHNldF9kaXJ0eSkK IHsKLSAgICBndWVzdF9pbnRwdGVfdCBvbGQsIG5ldzsKKyAgICBndWVzdF9pbnRwdGVfdCAqZ3Vl c3RfcCA9IF9ndWVzdF9wLCAqd2Fsa19wID0gX3dhbGtfcDsKKyAgICBndWVzdF9pbnRwdGVfdCBu ZXcsIG9sZCA9IEFDQ0VTU19PTkNFKCp3YWxrX3ApOwogCi0gICAgb2xkID0gKihndWVzdF9pbnRw dGVfdCAqKXdhbGtfcDsKICAgICBuZXcgPSBvbGQgfCBfUEFHRV9BQ0NFU1NFRCB8IChzZXRfZGly dHkgPyBfUEFHRV9ESVJUWSA6IDApOwotICAgIGlmICggb2xkICE9IG5ldyApIAorICAgIGlmICgg b2xkICE9IG5ldyApCiAgICAgewotICAgICAgICAvKiBXcml0ZSB0aGUgbmV3IGVudHJ5IGludG8g dGhlIHdhbGssIGFuZCB0cnkgdG8gd3JpdGUgaXQgYmFjaworICAgICAgICAvKgorICAgICAgICAg KiBXcml0ZSB0aGUgbmV3IGVudHJ5IGludG8gdGhlIHdhbGssIGFuZCB0cnkgdG8gd3JpdGUgaXQg YmFjawogICAgICAgICAgKiBpbnRvIHRoZSBndWVzdCB0YWJsZSBhcyB3ZWxsLiAgSWYgdGhlIGd1 ZXN0IHRhYmxlIGhhcyBjaGFuZ2VkCi0gICAgICAgICAqIHVuZGVyIG91dCBmZWV0IHRoZW4gbGVh dmUgaXQgYWxvbmUuICovCi0gICAgICAgICooZ3Vlc3RfaW50cHRlX3QgKil3YWxrX3AgPSBuZXc7 Ci0gICAgICAgIGlmICggY21weGNoZygoKGd1ZXN0X2ludHB0ZV90ICopZ3Vlc3RfcCksIG9sZCwg bmV3KSA9PSBvbGQgKSAKLSAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgKiB1bmRlciBv dXQgZmVldCB0aGVuIGxlYXZlIGl0IGFsb25lLgorICAgICAgICAgKi8KKyAgICAgICAgKndhbGtf cCA9IG5ldzsKKyAgICAgICAgaWYgKCBjbXB4Y2hnKGd1ZXN0X3AsIG9sZCwgbmV3KSA9PSBvbGQg KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVybiAwOworICAgIHJl dHVybiBmYWxzZTsKIH0KIAogLyoKQEAgLTg5LDcgKzkzLDcgQEAgZ3Vlc3Rfd2Fsa190YWJsZXMo c3RydWN0IHZjcHUgKnYsIHN0cnVjdCBwMm1fZG9tYWluICpwMm0sCiAgICAgZ3Vlc3RfbDRlX3Qg Kmw0cDsKICNlbmRpZgogICAgIHVpbnQzMl90IGdmbGFncywgcmM7Ci0gICAgYm9vbF90IHBzZTFH ID0gMCwgcHNlMk0gPSAwOworICAgIHVuc2lnbmVkIGludCBsZWFmX2xldmVsOwogICAgIHAybV9x dWVyeV90IHF0ID0gUDJNX0FMTE9DIHwgUDJNX1VOU0hBUkU7CiAKICNkZWZpbmUgQVJfQUNDVU1f QU5EIChfUEFHRV9VU0VSIHwgX1BBR0VfUlcpCkBAIC0xNzksOSArMTgzLDcgQEAgZ3Vlc3Rfd2Fs a190YWJsZXMoc3RydWN0IHZjcHUgKnYsIHN0cnVjdCBwMm1fZG9tYWluICpwMm0sCiAgICAgYXJf YW5kICY9IGdmbGFnczsKICAgICBhcl9vciAgfD0gZ2ZsYWdzOwogCi0gICAgcHNlMUcgPSAhIShn ZmxhZ3MgJiBfUEFHRV9QU0UpOwotCi0gICAgaWYgKCBwc2UxRyApCisgICAgaWYgKCBnZmxhZ3Mg JiBfUEFHRV9QU0UgKQogICAgIHsKICAgICAgICAgLyogR2VuZXJhdGUgYSBmYWtlIGwxIHRhYmxl IGVudHJ5IHNvIGNhbGxlcnMgZG9uJ3QgYWxsIAogICAgICAgICAgKiBoYXZlIHRvIHVuZGVyc3Rh bmQgc3VwZXJwYWdlcy4gKi8KQEAgLTIwNCw2ICsyMDYsNyBAQCBndWVzdF93YWxrX3RhYmxlcyhz dHJ1Y3QgdmNwdSAqdiwgc3RydWN0IHAybV9kb21haW4gKnAybSwKICAgICAgICAgICAgICAgICAg ICAgICgodmEgPj4gUEFHRV9TSElGVCkgJiBHVUVTVF9MM19HRk5fTUFTSykpOwogICAgICAgICBn dy0+bDFlID0gZ3Vlc3RfbDFlX2Zyb21fZ2ZuKHN0YXJ0LCBmbGFncyk7CiAgICAgICAgIGd3LT5s Mm1mbiA9IGd3LT5sMW1mbiA9IElOVkFMSURfTUZOOworICAgICAgICBsZWFmX2xldmVsID0gMzsK ICAgICAgICAgZ290byBsZWFmOwogICAgIH0KIApAQCAtMjczLDkgKzI3Niw3IEBAIGd1ZXN0X3dh bGtfdGFibGVzKHN0cnVjdCB2Y3B1ICp2LCBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLAogICAgIGFy X2FuZCAmPSBnZmxhZ3M7CiAgICAgYXJfb3IgIHw9IGdmbGFnczsKIAotICAgIHBzZTJNID0gISEo Z2ZsYWdzICYgX1BBR0VfUFNFKTsKLQotICAgIGlmICggcHNlMk0gKQorICAgIGlmICggZ2ZsYWdz ICYgX1BBR0VfUFNFICkKICAgICB7CiAgICAgICAgIC8qIFNwZWNpYWwgY2FzZTogdGhpcyBndWVz dCBWQSBpcyBpbiBhIFBTRSBzdXBlcnBhZ2UsIHNvIHRoZXJlJ3MKICAgICAgICAgICogbm8gZ3Vl c3QgbDFlLiAgV2UgbWFrZSBvbmUgdXAgc28gdGhhdCB0aGUgcHJvcGFnYXRpb24gY29kZQpAQCAt MzA5LDYgKzMxMCw3IEBAIGd1ZXN0X3dhbGtfdGFibGVzKHN0cnVjdCB2Y3B1ICp2LCBzdHJ1Y3Qg cDJtX2RvbWFpbiAqcDJtLAogICAgICAgICBndy0+bDFlID0gZ3Vlc3RfbDFlX2Zyb21fZ2ZuKHN0 YXJ0LCBmbGFncyk7CiAjZW5kaWYKICAgICAgICAgZ3ctPmwxbWZuID0gSU5WQUxJRF9NRk47Cisg ICAgICAgIGxlYWZfbGV2ZWwgPSAyOwogICAgICAgICBnb3RvIGxlYWY7CiAgICAgfQogCkBAIC0z NDAsNiArMzQyLDggQEAgZ3Vlc3Rfd2Fsa190YWJsZXMoc3RydWN0IHZjcHUgKnYsIHN0cnVjdCBw Mm1fZG9tYWluICpwMm0sCiAgICAgYXJfYW5kICY9IGdmbGFnczsKICAgICBhcl9vciAgfD0gZ2Zs YWdzOwogCisgICAgbGVhZl9sZXZlbCA9IDE7CisKICBsZWFmOgogICAgIGd3LT5wZmVjIHw9IFBG RUNfcGFnZV9wcmVzZW50OwogCkBAIC00MTMsMjQgKzQxNywzMyBAQCBndWVzdF93YWxrX3RhYmxl cyhzdHJ1Y3QgdmNwdSAqdiwgc3RydWN0IHAybV9kb21haW4gKnAybSwKICAgICAgKiBzdWNjZXNz LiAgQWx0aG91Z2ggdGhlIFBSTXMgc2F5IGhpZ2hlci1sZXZlbCBfUEFHRV9BQ0NFU1NFRCBiaXRz CiAgICAgICogZ2V0IHNldCB3aGVuZXZlciBhIGxvd2VyLWxldmVsIFBUIGlzIHVzZWQsIGF0IGxl YXN0IHNvbWUgaGFyZHdhcmUKICAgICAgKiB3YWxrZXJzIGJlaGF2ZSB0aGlzIHdheS4gKi8KLSNp ZiBHVUVTVF9QQUdJTkdfTEVWRUxTID09IDQgLyogNjQtYml0IG9ubHkuLi4gKi8KLSAgICBpZiAo IHNldF9hZF9iaXRzKGw0cCArIGd1ZXN0X2w0X3RhYmxlX29mZnNldCh2YSksICZndy0+bDRlLCAw KSApCi0gICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KGQsIGd3LT5sNG1mbik7Ci0gICAgaWYgKCBz ZXRfYWRfYml0cyhsM3AgKyBndWVzdF9sM190YWJsZV9vZmZzZXQodmEpLCAmZ3ctPmwzZSwKLSAg ICAgICAgICAgICAgICAgICAgIChwc2UxRyAmJiAod2FsayAmIFBGRUNfd3JpdGVfYWNjZXNzKSkp ICkKLSAgICAgICAgcGFnaW5nX21hcmtfZGlydHkoZCwgZ3ctPmwzbWZuKTsKLSNlbmRpZgotICAg IGlmICggIXBzZTFHICkKKyAgICBzd2l0Y2ggKCBsZWFmX2xldmVsICkKICAgICB7CisgICAgZGVm YXVsdDoKKyAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CisgICAgICAgIGJyZWFrOworCisg ICAgY2FzZSAxOgorICAgICAgICBpZiAoIHNldF9hZF9iaXRzKGwxcCArIGd1ZXN0X2wxX3RhYmxl X29mZnNldCh2YSksICZndy0+bDFlLAorICAgICAgICAgICAgICAgICAgICAgICAgICh3YWxrICYg UEZFQ193cml0ZV9hY2Nlc3MpICYmIGxlYWZfbGV2ZWwgPT0gMSkgKQorICAgICAgICAgICAgcGFn aW5nX21hcmtfZGlydHkoZCwgZ3ctPmwxbWZuKTsKKyAgICAgICAgLyogRmFsbHRocm91Z2ggKi8K KworICAgIGNhc2UgMjoKICAgICAgICAgaWYgKCBzZXRfYWRfYml0cyhsMnAgKyBndWVzdF9sMl90 YWJsZV9vZmZzZXQodmEpLCAmZ3ctPmwyZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAocHNl Mk0gJiYgKHdhbGsgJiBQRkVDX3dyaXRlX2FjY2VzcykpKSApCisgICAgICAgICAgICAgICAgICAg ICAgICAgKHdhbGsgJiBQRkVDX3dyaXRlX2FjY2VzcykgJiYgbGVhZl9sZXZlbCA9PSAyKSApCiAg ICAgICAgICAgICBwYWdpbmdfbWFya19kaXJ0eShkLCBndy0+bDJtZm4pOwotICAgICAgICBpZiAo ICFwc2UyTSApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICggc2V0X2FkX2JpdHMobDFwICsg Z3Vlc3RfbDFfdGFibGVfb2Zmc2V0KHZhKSwgJmd3LT5sMWUsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICh3YWxrICYgUEZFQ193cml0ZV9hY2Nlc3MpKSApCi0gICAgICAgICAgICAgICAg cGFnaW5nX21hcmtfZGlydHkoZCwgZ3ctPmwxbWZuKTsKLSAgICAgICAgfQorICAgICAgICAvKiBG YWxsdGhyb3VnaCAqLworCisjaWYgR1VFU1RfUEFHSU5HX0xFVkVMUyA9PSA0IC8qIDY0LWJpdCBv bmx5Li4uICovCisgICAgY2FzZSAzOgorICAgICAgICBpZiAoIHNldF9hZF9iaXRzKGwzcCArIGd1 ZXN0X2wzX3RhYmxlX29mZnNldCh2YSksICZndy0+bDNlLAorICAgICAgICAgICAgICAgICAgICAg ICAgICh3YWxrICYgUEZFQ193cml0ZV9hY2Nlc3MpICYmIGxlYWZfbGV2ZWwgPT0gMykgKQorICAg ICAgICAgICAgcGFnaW5nX21hcmtfZGlydHkoZCwgZ3ctPmwzbWZuKTsKKworICAgICAgICBpZiAo IHNldF9hZF9iaXRzKGw0cCArIGd1ZXN0X2w0X3RhYmxlX29mZnNldCh2YSksICZndy0+bDRlLCAw KSApCisgICAgICAgICAgICBwYWdpbmdfbWFya19kaXJ0eShkLCBndy0+bDRtZm4pOworI2VuZGlm CiAgICAgfQogCiAgb3V0OgotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK