From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: lock in vhpet Date: Wed, 18 Apr 2012 10:14:35 +0100 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="B_3417588880_251225" Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: "Zhang, Yang Z" , "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org > This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. --B_3417588880_251225 Content-type: text/plain; charset="US-ASCII" Content-transfer-encoding: 7bit On 18/04/2012 09:29, "Keir Fraser" wrote: > On 18/04/2012 08:55, "Zhang, Yang Z" wrote: > >>> If the HPET accesses are atomic on bare metal, we have to maintain that, >>> even >>> if some guests have extra locking themselves. Also, in some cases Xen needs >>> locking to correctly maintain its own internal state regardless of what an >>> (untrusted) guest might do. So we cannot just get rid of the vhpet lock >>> everywhere. It's definitely not correct to do so. Optimising the hpet read >>> path >>> however, sounds okay. I agree the lock may not be needed on that specific >>> path. >> >> You are right. >> For this case, since the main access of hpet is to read the main counter, so >> I >> think the rwlock is a better choice. > > I'll see if I can make a patch... Please try the attached patch (build tested only). -- Keir > -- Keir > > --B_3417588880_251225 Content-type: application/octet-stream; name="00-hpet-lockfree" Content-disposition: attachment; filename="00-hpet-lockfree" Content-transfer-encoding: base64 ZGlmZiAtciBjZjEyOWE4MGU0N2UgeGVuL2FyY2gveDg2L2h2bS9ocGV0LmMKLS0tIGEveGVu L2FyY2gveDg2L2h2bS9ocGV0LmMJVHVlIEFwciAxNyAxNTozNzowNSAyMDEyICswMjAwCisr KyBiL3hlbi9hcmNoL3g4Ni9odm0vaHBldC5jCVdlZCBBcHIgMTggMTA6MTM6MDcgMjAxMiAr MDEwMApAQCAtNzMsMTQgKzczLDM2IEBACiAgICAgKCh0aW1lcl9jb25maWcoaCwgbikgJiBI UEVUX1ROX0lOVF9ST1VURV9DQVBfTUFTSykgXAogICAgICAgICA+PiBIUEVUX1ROX0lOVF9S T1VURV9DQVBfU0hJRlQpCiAKLXN0YXRpYyBpbmxpbmUgdWludDY0X3QgaHBldF9yZWFkX21h aW5jb3VudGVyKEhQRVRTdGF0ZSAqaCkKKy8qCisgKiBocGV0X3tyZWFkLHNldH1fbWFpbmNv dW50ZXIoKToKKyAqICBBdG9taWNhbGx5IGdldC9zZXQgaC0+bWNfY29uZmlnIHRvIGFsbG93 IHNhZmUgbG9jay1mcmVlIHJlYWQgYWNjZXNzIHRvCisgKiAgdGhlIEhQRVQgbWFpbiBjb3Vu dGVyLiBtY19jb25maWdbMF0gaXMgMSB3aGVuIHRoZSBjb3VudGVyIGlzIGVuYWJsZWQuCisg KiAgV2hlbiB0aGUgY291bnRlciBpcyBkaXNhYmxlZCwgbWNfY29uZmlnWzYzOjFdIGlzIHRo ZSBjb3VudGVyIHZhbHVlLgorICogIFdoZW4gdGhlIGNvdW50ZXIgaXMgZW5hYmxlZCwgbWNf Y29uZmlnWzYzOjFdIGlzIGEgc2lnbmVkIGNvdW50ZXIgb2Zmc2V0LgorICovCitzdGF0aWMg dWludDY0X3QgaHBldF9yZWFkX21haW5jb3VudGVyKEhQRVRTdGF0ZSAqaCkKIHsKKyAgICBp bnQ2NF90IG1jX2NvbmZpZyA9IHJlYWRfYXRvbWljKCZoLT5tY19jb25maWcpOworICAgIGlu dDY0X3QgY291bnRlciA9IG1jX2NvbmZpZyA+PiAxOworICAgIGJvb2xfdCBlbmFibGVkID0g bWNfY29uZmlnICYgMTsKKworICAgIGlmICggZW5hYmxlZCApCisgICAgICAgIGNvdW50ZXIg Kz0gZ3Vlc3RfdGltZV9ocGV0KGgpOworCisgICAgcmV0dXJuICh1aW50NjRfdCljb3VudGVy OworfQorCitzdGF0aWMgdm9pZCBocGV0X3NldF9tYWluY291bnRlcihIUEVUU3RhdGUgKmgp Cit7CisgICAgaW50NjRfdCBtY19jb25maWc7CisKICAgICBBU1NFUlQoc3Bpbl9pc19sb2Nr ZWQoJmgtPmxvY2spKTsKIAotICAgIGlmICggaHBldF9lbmFibGVkKGgpICkKLSAgICAgICAg cmV0dXJuIGd1ZXN0X3RpbWVfaHBldChoKSArIGgtPm1jX29mZnNldDsKLSAgICBlbHNlIAot ICAgICAgICByZXR1cm4gaC0+aHBldC5tYzY0OworICAgIG1jX2NvbmZpZyA9IChocGV0X2Vu YWJsZWQoaCkKKyAgICAgICAgICAgICAgICAgPyAoKChoLT5ocGV0Lm1jNjQgLSBndWVzdF90 aW1lX2hwZXQoaCkpIDw8IDEpIHwgMXVsbCkKKyAgICAgICAgICAgICAgICAgOiAoaC0+aHBl dC5tYzY0IDw8IDEpKTsKKworICAgIHdyaXRlX2F0b21pYygmaC0+bWNfY29uZmlnLCBtY19j b25maWcpOwogfQogCiBzdGF0aWMgdWludDY0X3QgaHBldF9nZXRfY29tcGFyYXRvcihIUEVU U3RhdGUgKmgsIHVuc2lnbmVkIGludCB0bikKQEAgLTEwNyw3ICsxMjksOCBAQCBzdGF0aWMg dWludDY0X3QgaHBldF9nZXRfY29tcGFyYXRvcihIUEVUCiAgICAgaC0+aHBldC50aW1lcnNb dG5dLmNtcCA9IGNvbXBhcmF0b3I7CiAgICAgcmV0dXJuIGNvbXBhcmF0b3I7CiB9Ci1zdGF0 aWMgaW5saW5lIHVpbnQ2NF90IGhwZXRfcmVhZDY0KEhQRVRTdGF0ZSAqaCwgdW5zaWduZWQg bG9uZyBhZGRyKQorCitzdGF0aWMgdWludDY0X3QgX19ocGV0X3JlYWQ2NChIUEVUU3RhdGUg KmgsIHVuc2lnbmVkIGxvbmcgYWRkcikKIHsKICAgICBhZGRyICY9IH43OwogCkBAIC0xMzgs NiArMTYxLDIzIEBAIHN0YXRpYyBpbmxpbmUgdWludDY0X3QgaHBldF9yZWFkNjQoSFBFVFMK ICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIHVpbnQ2NF90IGhwZXRfcmVhZDY0KEhQRVRT dGF0ZSAqaCwgdW5zaWduZWQgbG9uZyBhZGRyKQoreworICAgIC8qIEFsbG93IGxvY2stZnJl ZSBhY2Nlc3MgdG8gbWFpbiBjb3VudGVyLiAqLworICAgIGJvb2xfdCBsb2NrID0gKChhZGRy ICYgfjcpICE9IEhQRVRfQ09VTlRFUik7CisgICAgdWludDY0X3QgdmFsOworCisgICAgaWYg KCBsb2NrICkKKyAgICAgICAgc3Bpbl9sb2NrKCZoLT5sb2NrKTsKKworICAgIHZhbCA9IF9f aHBldF9yZWFkNjQoaCwgYWRkcik7CisKKyAgICBpZiAoIGxvY2sgKQorICAgICAgICBzcGlu X3VubG9jaygmaC0+bG9jayk7CisKKyAgICByZXR1cm4gdmFsOworfQorCiBzdGF0aWMgaW5s aW5lIGludCBocGV0X2NoZWNrX2FjY2Vzc19sZW5ndGgoCiAgICAgdW5zaWduZWQgbG9uZyBh ZGRyLCB1bnNpZ25lZCBsb25nIGxlbikKIHsKQEAgLTE3MiwxNiArMjEyLDEyIEBAIHN0YXRp YyBpbnQgaHBldF9yZWFkKAogICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKLSAgICBzcGlu X2xvY2soJmgtPmxvY2spOwotCiAgICAgdmFsID0gaHBldF9yZWFkNjQoaCwgYWRkcik7CiAK ICAgICByZXN1bHQgPSB2YWw7CiAgICAgaWYgKCBsZW5ndGggIT0gOCApCiAgICAgICAgIHJl c3VsdCA9ICh2YWwgPj4gKChhZGRyICYgNykgKiA4KSkgJiAoKDFVTEwgPDwgKGxlbmd0aCAq IDgpKSAtIDEpOwogCi0gICAgc3Bpbl91bmxvY2soJmgtPmxvY2spOwotCiAgb3V0OgogICAg ICpwdmFsID0gcmVzdWx0OwogICAgIHJldHVybiBYODZFTVVMX09LQVk7CkBAIC0yOTEsNyAr MzI3LDcgQEAgc3RhdGljIGludCBocGV0X3dyaXRlKAogCiAgICAgc3Bpbl9sb2NrKCZoLT5s b2NrKTsKIAotICAgIG9sZF92YWwgPSBocGV0X3JlYWQ2NChoLCBhZGRyKTsKKyAgICBvbGRf dmFsID0gX19ocGV0X3JlYWQ2NChoLCBhZGRyKTsKICAgICBuZXdfdmFsID0gdmFsOwogICAg IGlmICggbGVuZ3RoICE9IDggKQogICAgICAgICBuZXdfdmFsID0gaHBldF9maXh1cF9yZWco CkBAIC0zMDYsNyArMzQyLDcgQEAgc3RhdGljIGludCBocGV0X3dyaXRlKAogICAgICAgICBp ZiAoICEob2xkX3ZhbCAmIEhQRVRfQ0ZHX0VOQUJMRSkgJiYgKG5ld192YWwgJiBIUEVUX0NG R19FTkFCTEUpICkKICAgICAgICAgewogICAgICAgICAgICAgLyogRW5hYmxlIG1haW4gY291 bnRlciBhbmQgaW50ZXJydXB0IGdlbmVyYXRpb24uICovCi0gICAgICAgICAgICBoLT5tY19v ZmZzZXQgPSBoLT5ocGV0Lm1jNjQgLSBndWVzdF90aW1lX2hwZXQoaCk7CisgICAgICAgICAg ICBocGV0X3NldF9tYWluY291bnRlcihoKTsKICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBp IDwgSFBFVF9USU1FUl9OVU07IGkrKyApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgaC0+aHBldC5jb21wYXJhdG9yNjRbaV0gPQpAQCAtMzIwLDcgKzM1Niw3IEBAIHN0YXRp YyBpbnQgaHBldF93cml0ZSgKICAgICAgICAgZWxzZSBpZiAoIChvbGRfdmFsICYgSFBFVF9D RkdfRU5BQkxFKSAmJiAhKG5ld192YWwgJiBIUEVUX0NGR19FTkFCTEUpICkKICAgICAgICAg ewogICAgICAgICAgICAgLyogSGFsdCBtYWluIGNvdW50ZXIgYW5kIGRpc2FibGUgaW50ZXJy dXB0IGdlbmVyYXRpb24uICovCi0gICAgICAgICAgICBoLT5ocGV0Lm1jNjQgPSBoLT5tY19v ZmZzZXQgKyBndWVzdF90aW1lX2hwZXQoaCk7CisgICAgICAgICAgICBocGV0X3NldF9tYWlu Y291bnRlcihoKTsKICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgSFBFVF9USU1FUl9O VU07IGkrKyApCiAgICAgICAgICAgICAgICAgaWYgKCB0aW1lcl9lbmFibGVkKGgsIGkpICkK ICAgICAgICAgICAgICAgICAgICAgc2V0X3N0b3BfdGltZXIoaSk7CkBAIC00NzYsNyArNTEy LDcgQEAgc3RhdGljIGludCBocGV0X3NhdmUoc3RydWN0IGRvbWFpbiAqZCwgaAogICAgIHNw aW5fbG9jaygmaHAtPmxvY2spOwogCiAgICAgLyogV3JpdGUgdGhlIHByb3BlciB2YWx1ZSBp bnRvIHRoZSBtYWluIGNvdW50ZXIgKi8KLSAgICBocC0+aHBldC5tYzY0ID0gaHAtPm1jX29m ZnNldCArIGd1ZXN0X3RpbWVfaHBldChocCk7CisgICAgaHAtPmhwZXQubWM2NCA9IGhwZXRf cmVhZF9tYWluY291bnRlcihocCk7CiAKICAgICAvKiBTYXZlIHRoZSBIUEVUIHJlZ2lzdGVy cyAqLwogICAgIHJjID0gX2h2bV9pbml0X2VudHJ5KGgsIEhWTV9TQVZFX0NPREUoSFBFVCks IDAsIEhWTV9TQVZFX0xFTkdUSChIUEVUKSk7CkBAIC01NTQsOCArNTkwLDcgQEAgc3RhdGlj IGludCBocGV0X2xvYWQoc3RydWN0IGRvbWFpbiAqZCwgaAogICAgIH0KICN1bmRlZiBDCiAg ICAgCi0gICAgLyogUmVjYWxjdWxhdGUgdGhlIG9mZnNldCBiZXR3ZWVuIHRoZSBtYWluIGNv dW50ZXIgYW5kIGd1ZXN0IHRpbWUgKi8KLSAgICBocC0+bWNfb2Zmc2V0ID0gaHAtPmhwZXQu bWM2NCAtIGd1ZXN0X3RpbWVfaHBldChocCk7CisgICAgaHBldF9zZXRfbWFpbmNvdW50ZXIo aHApOwogCiAgICAgLyogcmVzdGFydCBhbGwgdGltZXJzICovCiAKZGlmZiAtciBjZjEyOWE4 MGU0N2UgeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdnB0LmgKLS0tIGEveGVuL2luY2x1ZGUv YXNtLXg4Ni9odm0vdnB0LmgJVHVlIEFwciAxNyAxNTozNzowNSAyMDEyICswMjAwCisrKyBi L3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZwdC5oCVdlZCBBcHIgMTggMTA6MTM6MDcgMjAx MiArMDEwMApAQCAtOTQsNyArOTQsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgSFBFVFN0YXRlIHsK ICAgICB1aW50NjRfdCBzdGltZV9mcmVxOwogICAgIHVpbnQ2NF90IGhwZXRfdG9fbnNfc2Nh bGU7IC8qIGhwZXQgdGlja3MgdG8gbnMgKG11bHRpcGxpZWQgYnkgMl4xMCkgKi8KICAgICB1 aW50NjRfdCBocGV0X3RvX25zX2xpbWl0OyAvKiBtYXggaHBldCB0aWNrcyBjb252ZXJ0YWJs ZSB0byBucyAgICAgICovCi0gICAgdWludDY0X3QgbWNfb2Zmc2V0OworICAgIC8qCisgICAg ICogbWNfY29uZmlnOiBBbGxvd3Mgc2FmZSBsb2NrLWZyZWUgcmVhZCBhY2Nlc3MgdG8gdGhl IG1haW4gY291bnRlcgorICAgICAqICBiaXQgMDogc2V0IGlmIHRpbWVyIGlzIGVuYWJsZWQK KyAgICAgKiAgMS02MzogbWFpbiBjb3VudGVyIHZhbHVlIChpZiB0aW1lciBlbmFibGVkKQor ICAgICAqICAxLTYzOiBtYWluIGNvdW50ZXIgb2Zmc2V0IGZyb20gc3lzdGVtIHRpbWUgKGlm IHRpbWVyIGRpc2FibGVkKQorICAgICAqLworICAgIGludDY0X3QgbWNfY29uZmlnOwogICAg IHN0cnVjdCBwZXJpb2RpY190aW1lIHB0W0hQRVRfVElNRVJfTlVNXTsKICAgICBzcGlubG9j a190IGxvY2s7CiB9IEhQRVRTdGF0ZTsK --B_3417588880_251225 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --B_3417588880_251225--