From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: lock in vhpet Date: Wed, 18 Apr 2012 10:30:48 +0100 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="B_3417589853_316961" 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_3417589853_316961 Content-type: text/plain; charset="US-ASCII" Content-transfer-encoding: 7bit On 18/04/2012 10:14, "Keir Fraser" wrote: > 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). Actually try this updated one. :-) > -- Keir > >> -- Keir >> >> > --B_3417589853_316961 Content-type: application/octet-stream; name="00-hpet-lockfree-v2" Content-disposition: attachment; filename="00-hpet-lockfree-v2" Content-transfer-encoding: base64 ZGlmZiAtciBjZjEyOWE4MGU0N2UgeGVuL2FyY2gveDg2L2h2bS9ocGV0LmMKLS0tIGEveGVu L2FyY2gveDg2L2h2bS9ocGV0LmMJVHVlIEFwciAxNyAxNTozNzowNSAyMDEyICswMjAwCisr KyBiL3hlbi9hcmNoL3g4Ni9odm0vaHBldC5jCVdlZCBBcHIgMTggMTA6Mjk6MjggMjAxMiAr MDEwMApAQCAtNzMsMTQgKzczLDM2IEBACiAgICAgKCh0aW1lcl9jb25maWcoaCwgbikgJiBI UEVUX1ROX0lOVF9ST1VURV9DQVBfTUFTSykgXAogICAgICAgICA+PiBIUEVUX1ROX0lOVF9S T1VURV9DQVBfU0hJRlQpCiAKLXN0YXRpYyBpbmxpbmUgdWludDY0X3QgaHBldF9yZWFkX21h aW5jb3VudGVyKEhQRVRTdGF0ZSAqaCkKKy8qCisgKiBocGV0X3tyZWFkLHNldH1fbWFpbmNv dW50ZXIoKToKKyAqICBBdG9taWNhbGx5IGdldC9zZXQgaC0+bWNfY29uZmlnIHRvIGFsbG93 IHNhZmUgbG9jay1mcmVlIHJlYWQgYWNjZXNzIHRvCisgKiAgdGhlIEhQRVQgbWFpbiBjb3Vu dGVyLiBtY19jb25maWdbMF0gaXMgMSB3aGVuIHRoZSBjb3VudGVyIGlzIGVuYWJsZWQuCisg KiAgV2hlbiB0aGUgY291bnRlciBpcyBkaXNhYmxlZCwgbWNfY29uZmlnWzYzOjFdIGlzIHRo ZSBjb3VudGVyIHZhbHVlLgorICogIFdoZW4gdGhlIGNvdW50ZXIgaXMgZW5hYmxlZCwgbWNf Y29uZmlnWzYzOjFdIGlzIGEgc2lnbmVkIGNvdW50ZXIgb2Zmc2V0LgorICovCitzdGF0aWMg dWludDY0X3QgaHBldF9yZWFkX21haW5jb3VudGVyKEhQRVRTdGF0ZSAqaCkKIHsKKyAgICBp bnQ2NF90IG1jX2NvbmZpZyA9IHJlYWRfYXRvbWljKCZoLT5tY19jb25maWcpOworICAgIGlu dDY0X3QgY291bnRlciA9IG1jX2NvbmZpZyA+PiAxOworICAgIGJvb2xfdCBlbmFibGVkID0g bWNfY29uZmlnICYgMTsKKworICAgIGlmICggZW5hYmxlZCApCisgICAgICAgIGNvdW50ZXIg Kz0gZ3Vlc3RfdGltZV9ocGV0KGgpOworCisgICAgcmV0dXJuICh1aW50NjRfdCljb3VudGVy OworfQorCitzdGF0aWMgdm9pZCBocGV0X3NldF9tYWluY291bnRlcihIUEVUU3RhdGUgKmgs IHVpbnQ2NF90IG1jKQoreworICAgIGludDY0X3QgbWNfY29uZmlnOworCiAgICAgQVNTRVJU KHNwaW5faXNfbG9ja2VkKCZoLT5sb2NrKSk7CiAKLSAgICBpZiAoIGhwZXRfZW5hYmxlZCho KSApCi0gICAgICAgIHJldHVybiBndWVzdF90aW1lX2hwZXQoaCkgKyBoLT5tY19vZmZzZXQ7 Ci0gICAgZWxzZSAKLSAgICAgICAgcmV0dXJuIGgtPmhwZXQubWM2NDsKKyAgICBtY19jb25m aWcgPSAoaHBldF9lbmFibGVkKGgpCisgICAgICAgICAgICAgICAgID8gKCgobWMgLSBndWVz dF90aW1lX2hwZXQoaCkpIDw8IDEpIHwgMXVsbCkKKyAgICAgICAgICAgICAgICAgOiAobWMg PDwgMSkpOworCisgICAgd3JpdGVfYXRvbWljKCZoLT5tY19jb25maWcsIG1jX2NvbmZpZyk7 CiB9CiAKIHN0YXRpYyB1aW50NjRfdCBocGV0X2dldF9jb21wYXJhdG9yKEhQRVRTdGF0ZSAq aCwgdW5zaWduZWQgaW50IHRuKQpAQCAtMTA3LDcgKzEyOSw4IEBAIHN0YXRpYyB1aW50NjRf dCBocGV0X2dldF9jb21wYXJhdG9yKEhQRVQKICAgICBoLT5ocGV0LnRpbWVyc1t0bl0uY21w ID0gY29tcGFyYXRvcjsKICAgICByZXR1cm4gY29tcGFyYXRvcjsKIH0KLXN0YXRpYyBpbmxp bmUgdWludDY0X3QgaHBldF9yZWFkNjQoSFBFVFN0YXRlICpoLCB1bnNpZ25lZCBsb25nIGFk ZHIpCisKK3N0YXRpYyB1aW50NjRfdCBfX2hwZXRfcmVhZDY0KEhQRVRTdGF0ZSAqaCwgdW5z aWduZWQgbG9uZyBhZGRyKQogewogICAgIGFkZHIgJj0gfjc7CiAKQEAgLTEzOCw2ICsxNjEs MjMgQEAgc3RhdGljIGlubGluZSB1aW50NjRfdCBocGV0X3JlYWQ2NChIUEVUUwogICAgIHJl dHVybiAwOwogfQogCitzdGF0aWMgdWludDY0X3QgaHBldF9yZWFkNjQoSFBFVFN0YXRlICpo LCB1bnNpZ25lZCBsb25nIGFkZHIpCit7CisgICAgLyogQWxsb3cgbG9jay1mcmVlIGFjY2Vz cyB0byBtYWluIGNvdW50ZXIuICovCisgICAgYm9vbF90IGxvY2sgPSAoKGFkZHIgJiB+Nykg IT0gSFBFVF9DT1VOVEVSKTsKKyAgICB1aW50NjRfdCB2YWw7CisKKyAgICBpZiAoIGxvY2sg KQorICAgICAgICBzcGluX2xvY2soJmgtPmxvY2spOworCisgICAgdmFsID0gX19ocGV0X3Jl YWQ2NChoLCBhZGRyKTsKKworICAgIGlmICggbG9jayApCisgICAgICAgIHNwaW5fdW5sb2Nr KCZoLT5sb2NrKTsKKworICAgIHJldHVybiB2YWw7Cit9CisKIHN0YXRpYyBpbmxpbmUgaW50 IGhwZXRfY2hlY2tfYWNjZXNzX2xlbmd0aCgKICAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHVu c2lnbmVkIGxvbmcgbGVuKQogewpAQCAtMTcyLDE2ICsyMTIsMTIgQEAgc3RhdGljIGludCBo cGV0X3JlYWQoCiAgICAgICAgIGdvdG8gb3V0OwogICAgIH0KIAotICAgIHNwaW5fbG9jaygm aC0+bG9jayk7Ci0KICAgICB2YWwgPSBocGV0X3JlYWQ2NChoLCBhZGRyKTsKIAogICAgIHJl c3VsdCA9IHZhbDsKICAgICBpZiAoIGxlbmd0aCAhPSA4ICkKICAgICAgICAgcmVzdWx0ID0g KHZhbCA+PiAoKGFkZHIgJiA3KSAqIDgpKSAmICgoMVVMTCA8PCAobGVuZ3RoICogOCkpIC0g MSk7CiAKLSAgICBzcGluX3VubG9jaygmaC0+bG9jayk7Ci0KICBvdXQ6CiAgICAgKnB2YWwg PSByZXN1bHQ7CiAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKQEAgLTI5MSw3ICszMjcsNyBA QCBzdGF0aWMgaW50IGhwZXRfd3JpdGUoCiAKICAgICBzcGluX2xvY2soJmgtPmxvY2spOwog Ci0gICAgb2xkX3ZhbCA9IGhwZXRfcmVhZDY0KGgsIGFkZHIpOworICAgIG9sZF92YWwgPSBf X2hwZXRfcmVhZDY0KGgsIGFkZHIpOwogICAgIG5ld192YWwgPSB2YWw7CiAgICAgaWYgKCBs ZW5ndGggIT0gOCApCiAgICAgICAgIG5ld192YWwgPSBocGV0X2ZpeHVwX3JlZygKQEAgLTMw MCwxMyArMzM2LDE1IEBAIHN0YXRpYyBpbnQgaHBldF93cml0ZSgKIAogICAgIHN3aXRjaCAo IGFkZHIgJiB+NyApCiAgICAgewotICAgIGNhc2UgSFBFVF9DRkc6CisgICAgY2FzZSBIUEVU X0NGRzogeworICAgICAgICB1aW50NjRfdCBtYyA9IGhwZXRfcmVhZF9tYWluY291bnRlciho KTsKKwogICAgICAgICBoLT5ocGV0LmNvbmZpZyA9IGhwZXRfZml4dXBfcmVnKG5ld192YWws IG9sZF92YWwsIDB4Myk7CiAKICAgICAgICAgaWYgKCAhKG9sZF92YWwgJiBIUEVUX0NGR19F TkFCTEUpICYmIChuZXdfdmFsICYgSFBFVF9DRkdfRU5BQkxFKSApCiAgICAgICAgIHsKICAg ICAgICAgICAgIC8qIEVuYWJsZSBtYWluIGNvdW50ZXIgYW5kIGludGVycnVwdCBnZW5lcmF0 aW9uLiAqLwotICAgICAgICAgICAgaC0+bWNfb2Zmc2V0ID0gaC0+aHBldC5tYzY0IC0gZ3Vl c3RfdGltZV9ocGV0KGgpOworICAgICAgICAgICAgaHBldF9zZXRfbWFpbmNvdW50ZXIoaCwg bWMpOwogICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCBIUEVUX1RJTUVSX05VTTsgaSsr ICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBoLT5ocGV0LmNvbXBhcmF0b3I2 NFtpXSA9CkBAIC0zMjAsMTUgKzM1OCwxNiBAQCBzdGF0aWMgaW50IGhwZXRfd3JpdGUoCiAg ICAgICAgIGVsc2UgaWYgKCAob2xkX3ZhbCAmIEhQRVRfQ0ZHX0VOQUJMRSkgJiYgIShuZXdf dmFsICYgSFBFVF9DRkdfRU5BQkxFKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIC8qIEhh bHQgbWFpbiBjb3VudGVyIGFuZCBkaXNhYmxlIGludGVycnVwdCBnZW5lcmF0aW9uLiAqLwot ICAgICAgICAgICAgaC0+aHBldC5tYzY0ID0gaC0+bWNfb2Zmc2V0ICsgZ3Vlc3RfdGltZV9o cGV0KGgpOworICAgICAgICAgICAgaHBldF9zZXRfbWFpbmNvdW50ZXIoaCwgbWMpOwogICAg ICAgICAgICAgZm9yICggaSA9IDA7IGkgPCBIUEVUX1RJTUVSX05VTTsgaSsrICkKICAgICAg ICAgICAgICAgICBpZiAoIHRpbWVyX2VuYWJsZWQoaCwgaSkgKQogICAgICAgICAgICAgICAg ICAgICBzZXRfc3RvcF90aW1lcihpKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKKyAg ICB9CiAKICAgICBjYXNlIEhQRVRfQ09VTlRFUjoKLSAgICAgICAgaC0+aHBldC5tYzY0ID0g bmV3X3ZhbDsKKyAgICAgICAgaHBldF9zZXRfbWFpbmNvdW50ZXIoaCwgbmV3X3ZhbCk7CiAg ICAgICAgIGlmICggaHBldF9lbmFibGVkKGgpICkKICAgICAgICAgewogICAgICAgICAgICAg Z2RwcmludGsoWEVOTE9HX1dBUk5JTkcsIApAQCAtNDc1LDggKzUxNCw3IEBAIHN0YXRpYyBp bnQgaHBldF9zYXZlKHN0cnVjdCBkb21haW4gKmQsIGgKIAogICAgIHNwaW5fbG9jaygmaHAt PmxvY2spOwogCi0gICAgLyogV3JpdGUgdGhlIHByb3BlciB2YWx1ZSBpbnRvIHRoZSBtYWlu IGNvdW50ZXIgKi8KLSAgICBocC0+aHBldC5tYzY0ID0gaHAtPm1jX29mZnNldCArIGd1ZXN0 X3RpbWVfaHBldChocCk7CisgICAgaHAtPmhwZXQubWM2NCA9IGhwZXRfcmVhZF9tYWluY291 bnRlcihocCk7CiAKICAgICAvKiBTYXZlIHRoZSBIUEVUIHJlZ2lzdGVycyAqLwogICAgIHJj ID0gX2h2bV9pbml0X2VudHJ5KGgsIEhWTV9TQVZFX0NPREUoSFBFVCksIDAsIEhWTV9TQVZF X0xFTkdUSChIUEVUKSk7CkBAIC01NTQsOCArNTkyLDcgQEAgc3RhdGljIGludCBocGV0X2xv YWQoc3RydWN0IGRvbWFpbiAqZCwgaAogICAgIH0KICN1bmRlZiBDCiAgICAgCi0gICAgLyog UmVjYWxjdWxhdGUgdGhlIG9mZnNldCBiZXR3ZWVuIHRoZSBtYWluIGNvdW50ZXIgYW5kIGd1 ZXN0IHRpbWUgKi8KLSAgICBocC0+bWNfb2Zmc2V0ID0gaHAtPmhwZXQubWM2NCAtIGd1ZXN0 X3RpbWVfaHBldChocCk7CisgICAgaHBldF9zZXRfbWFpbmNvdW50ZXIoaHAsIGhwLT5ocGV0 Lm1jNjQpOwogCiAgICAgLyogcmVzdGFydCBhbGwgdGltZXJzICovCiAKZGlmZiAtciBjZjEy OWE4MGU0N2UgeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdnB0LmgKLS0tIGEveGVuL2luY2x1 ZGUvYXNtLXg4Ni9odm0vdnB0LmgJVHVlIEFwciAxNyAxNTozNzowNSAyMDEyICswMjAwCisr KyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZwdC5oCVdlZCBBcHIgMTggMTA6Mjk6Mjgg MjAxMiArMDEwMApAQCAtOTQsNyArOTQsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgSFBFVFN0YXRl IHsKICAgICB1aW50NjRfdCBzdGltZV9mcmVxOwogICAgIHVpbnQ2NF90IGhwZXRfdG9fbnNf c2NhbGU7IC8qIGhwZXQgdGlja3MgdG8gbnMgKG11bHRpcGxpZWQgYnkgMl4xMCkgKi8KICAg ICB1aW50NjRfdCBocGV0X3RvX25zX2xpbWl0OyAvKiBtYXggaHBldCB0aWNrcyBjb252ZXJ0 YWJsZSB0byBucyAgICAgICovCi0gICAgdWludDY0X3QgbWNfb2Zmc2V0OworICAgIC8qCisg ICAgICogbWNfY29uZmlnOiBBbGxvd3Mgc2FmZSBsb2NrLWZyZWUgcmVhZCBhY2Nlc3MgdG8g dGhlIG1haW4gY291bnRlcgorICAgICAqICBiaXQgMDogc2V0IGlmIHRpbWVyIGlzIGVuYWJs ZWQKKyAgICAgKiAgMS02MzogbWFpbiBjb3VudGVyIHZhbHVlIChpZiB0aW1lciBlbmFibGVk KQorICAgICAqICAxLTYzOiBtYWluIGNvdW50ZXIgb2Zmc2V0IGZyb20gc3lzdGVtIHRpbWUg KGlmIHRpbWVyIGRpc2FibGVkKQorICAgICAqLworICAgIGludDY0X3QgbWNfY29uZmlnOwog ICAgIHN0cnVjdCBwZXJpb2RpY190aW1lIHB0W0hQRVRfVElNRVJfTlVNXTsKICAgICBzcGlu bG9ja190IGxvY2s7CiB9IEhQRVRTdGF0ZTsK --B_3417589853_316961 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_3417589853_316961--