From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v5 3/6] smp: add function to execute a function synchronously on a cpu Date: Wed, 6 Apr 2016 16:17:43 +0200 Message-ID: <1459952266-3687-4-git-send-email-jgross__44468.7182004147$1459952350$gmane$org@suse.com> References: <1459952266-3687-1-git-send-email-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1anoHN-00018a-64 for xen-devel@lists.xenproject.org; Wed, 06 Apr 2016 14:17:57 +0000 In-Reply-To: <1459952266-3687-1-git-send-email-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org Cc: Juergen Gross , jeremy@goop.org, jdelvare@suse.com, peterz@infradead.org, hpa@zytor.com, akataria@vmware.com, x86@kernel.org, rusty@rustcorp.com.au, virtualization@lists.linux-foundation.org, chrisw@sous-sol.org, mingo@redhat.com, david.vrabel@citrix.com, Douglas_Warzecha@dell.com, pali.rohar@gmail.com, boris.ostrovsky@oracle.com, tglx@linutronix.de, linux@roeck-us.net List-Id: xen-devel@lists.xenproject.org T24gc29tZSBoYXJkd2FyZSBtb2RlbHMgKGUuZy4gRGVsbCBTdHVkaW8gMTU1NSBsYXB0b3ApIHNv bWUgaGFyZHdhcmUKcmVsYXRlZCBmdW5jdGlvbnMgKGUuZy4gU01JcykgYXJlIHRvIGJlIGV4ZWN1 dGVkIG9uIHBoeXNpY2FsIGNwdSAwCm9ubHkuIEluc3RlYWQgb2Ygb3BlbiBjb2Rpbmcgc3VjaCBh IGZ1bmN0aW9uYWxpdHkgbXVsdGlwbGUgdGltZXMgaW4KdGhlIGtlcm5lbCBhZGQgYSBzZXJ2aWNl IGZ1bmN0aW9uIGZvciB0aGlzIHB1cnBvc2UuIFRoaXMgd2lsbCBlbmFibGUKdGhlIHBvc3NpYmls aXR5IHRvIHRha2Ugc3BlY2lhbCBtZWFzdXJlcyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMK bGlrZSBYZW4sIHRvby4KClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNl LmNvbT4KLS0tClY1OiByZW5hbWUgYW5kIHJlc2h1ZmZsZSBwYXJhbWV0ZXJzIG9mIHNtcF9jYWxs X29uX2NwdSgpIGFzIHJlcXVlc3RlZCBieQogICAgUGV0ZXIgWmlqbHN0cmEKICAgIHRlc3QgdGFy Z2V0IGNwdSB0byBiZSBvbmxpbmUgYXMgcmVxdWVzdGVkIGJ5IFBldGVyIFppamxzdHJhCgpWNDog Y2hhbmdlIHJldHVybiB2YWx1ZSBpbiBjYXNlIG9mIGlsbGVnYWwgY3B1IGFzIHJlcXVlc3RlZCBi eSBQZXRlciBaaWpsc3RyYQogICAgbWFrZSBwaW5uaW5nIG9mIHZjcHUgYW4gb3B0aW9uIGFzIHN1 Z2dlc3RlZCBieSBQZXRlciBaaWpsc3RyYQoKVjI6IGluc3RlYWQgb2YgbWFuaXB1bGF0aW5nIHRo ZSBhbGxvd2VkIHNldCBvZiBjcHVzIHVzZSBjcHUgc3BlY2lmaWMKICAgIHdvcmtxdWV1ZSBhcyBy ZXF1ZXN0ZWQgYnkgUGV0ZXIgWmlqbHN0cmEKLS0tCiBpbmNsdWRlL2xpbnV4L3NtcC5oIHwgIDMg KysrCiBrZXJuZWwvc21wLmMgICAgICAgIHwgNTAgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIGtlcm5lbC91cC5jICAgICAgICAgfCAxNyArKysrKysr KysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA3MCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9saW51eC9zbXAuaCBiL2luY2x1ZGUvbGludXgvc21wLmgKaW5kZXggYzQ0MTQw Ny4uNGYxYzQ3NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zbXAuaAorKysgYi9pbmNsdWRl L2xpbnV4L3NtcC5oCkBAIC0xOTYsNCArMTk2LDcgQEAgZXh0ZXJuIHZvaWQgYXJjaF9lbmFibGVf bm9uYm9vdF9jcHVzX2VuZCh2b2lkKTsKIAogdm9pZCBzbXBfc2V0dXBfcHJvY2Vzc29yX2lkKHZv aWQpOwogCitpbnQgc21wX2NhbGxfb25fY3B1KHVuc2lnbmVkIGludCBjcHUsIGludCAoKmZ1bmMp KHZvaWQgKiksIHZvaWQgKnBhciwKKwkJICAgIGJvb2wgcGh5cyk7CisKICNlbmRpZiAvKiBfX0xJ TlVYX1NNUF9IICovCmRpZmYgLS1naXQgYS9rZXJuZWwvc21wLmMgYi9rZXJuZWwvc21wLmMKaW5k ZXggOTM4ODA2NC4uZjY3MTk0OCAxMDA2NDQKLS0tIGEva2VybmVsL3NtcC5jCisrKyBiL2tlcm5l bC9zbXAuYwpAQCAtNzQwLDMgKzc0MCw1MyBAQCB2b2lkIHdha2VfdXBfYWxsX2lkbGVfY3B1cyh2 b2lkKQogCXByZWVtcHRfZW5hYmxlKCk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTCh3YWtlX3VwX2Fs bF9pZGxlX2NwdXMpOworCisvKioKKyAqIHNtcF9jYWxsX29uX2NwdSAtIENhbGwgYSBmdW5jdGlv biBvbiBhIHNwZWNpZmljIGNwdQorICoKKyAqIFVzZWQgdG8gY2FsbCBhIGZ1bmN0aW9uIG9uIGEg c3BlY2lmaWMgY3B1IGFuZCB3YWl0IGZvciBpdCB0byByZXR1cm4uCisgKiBPcHRpb25hbGx5IG1h a2Ugc3VyZSB0aGUgY2FsbCBpcyBkb25lIG9uIGEgc3BlY2lmaWVkIHBoeXNpY2FsIGNwdSB2aWEg dmNwdQorICogcGlubmluZyBpbiBvcmRlciB0byBzdXBwb3J0IHZpcnR1YWxpemVkIGVudmlyb25t ZW50cy4KKyAqLworc3RydWN0IHNtcF9jYWxsX29uX2NwdV9zdHJ1Y3QgeworCXN0cnVjdCB3b3Jr X3N0cnVjdAl3b3JrOworCXN0cnVjdCBjb21wbGV0aW9uCWRvbmU7CisJaW50CQkJKCpmdW5jKSh2 b2lkICopOworCXZvaWQJCQkqZGF0YTsKKwlpbnQJCQlyZXQ7CisJaW50CQkJY3B1OworfTsKKwor c3RhdGljIHZvaWQgc21wX2NhbGxfb25fY3B1X2NhbGxiYWNrKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yaykKK3sKKwlzdHJ1Y3Qgc21wX2NhbGxfb25fY3B1X3N0cnVjdCAqc3NjczsKKworCXNzY3Mg PSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHNtcF9jYWxsX29uX2NwdV9zdHJ1Y3QsIHdvcmsp OworCWlmIChzc2NzLT5jcHUgPj0gMCkKKwkJaHlwZXJ2aXNvcl9waW5fdmNwdShzc2NzLT5jcHUp OworCXNzY3MtPnJldCA9IHNzY3MtPmZ1bmMoc3Njcy0+ZGF0YSk7CisJaWYgKHNzY3MtPmNwdSA+ PSAwKQorCQloeXBlcnZpc29yX3Bpbl92Y3B1KC0xKTsKKworCWNvbXBsZXRlKCZzc2NzLT5kb25l KTsKK30KKworaW50IHNtcF9jYWxsX29uX2NwdSh1bnNpZ25lZCBpbnQgY3B1LCBpbnQgKCpmdW5j KSh2b2lkICopLCB2b2lkICpwYXIsIGJvb2wgcGh5cykKK3sKKwlzdHJ1Y3Qgc21wX2NhbGxfb25f Y3B1X3N0cnVjdCBzc2NzID0geworCQkud29yayA9IF9fV09SS19JTklUSUFMSVpFUihzc2NzLndv cmssIHNtcF9jYWxsX29uX2NwdV9jYWxsYmFjayksCisJCS5kb25lID0gQ09NUExFVElPTl9JTklU SUFMSVpFUl9PTlNUQUNLKHNzY3MuZG9uZSksCisJCS5mdW5jID0gZnVuYywKKwkJLmRhdGEgPSBw YXIsCisJCS5jcHUgID0gcGh5cyA/IGNwdSA6IC0xLAorCX07CisKKwlpZiAoY3B1ID49IG5yX2Nw dV9pZHMgfHwgIWNwdV9vbmxpbmUoY3B1KSkKKwkJcmV0dXJuIC1FTlhJTzsKKworCXF1ZXVlX3dv cmtfb24oY3B1LCBzeXN0ZW1fd3EsICZzc2NzLndvcmspOworCXdhaXRfZm9yX2NvbXBsZXRpb24o JnNzY3MuZG9uZSk7CisKKwlyZXR1cm4gc3Njcy5yZXQ7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChz bXBfY2FsbF9vbl9jcHUpOwpkaWZmIC0tZ2l0IGEva2VybmVsL3VwLmMgYi9rZXJuZWwvdXAuYwpp bmRleCAzY2NlZTJiLi5lZTgxYWM5IDEwMDY0NAotLS0gYS9rZXJuZWwvdXAuYworKysgYi9rZXJu ZWwvdXAuYwpAQCAtODMsMyArODMsMjAgQEAgdm9pZCBvbl9lYWNoX2NwdV9jb25kKGJvb2wgKCpj b25kX2Z1bmMpKGludCBjcHUsIHZvaWQgKmluZm8pLAogCXByZWVtcHRfZW5hYmxlKCk7CiB9CiBF WFBPUlRfU1lNQk9MKG9uX2VhY2hfY3B1X2NvbmQpOworCitpbnQgc21wX2NhbGxfb25fY3B1KHVu c2lnbmVkIGludCBjcHUsIGludCAoKmZ1bmMpKHZvaWQgKiksIHZvaWQgKnBhciwgYm9vbCBwaHlz KQoreworCWludCByZXQ7CisKKwlpZiAoY3B1ICE9IDApCisJCXJldHVybiAtRU5YSU87CisKKwlp ZiAocGh5cykKKwkJaHlwZXJ2aXNvcl9waW5fdmNwdSgwKTsKKwlyZXQgPSBmdW5jKHBhcik7CisJ aWYgKHBoeXMpCisJCWh5cGVydmlzb3JfcGluX3ZjcHUoLTEpOworCisJcmV0dXJuIHJldDsKK30K K0VYUE9SVF9TWU1CT0xfR1BMKHNtcF9jYWxsX29uX2NwdSk7Ci0tIAoyLjYuNgoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRl dmVsCg==