From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kenneth Lee Subject: Re: [RFC PATCH 2/7] iommu: Add share domain interface in iommu for spimdev Date: Thu, 2 Aug 2018 12:15:47 +0800 Message-ID: <20180802041547.GM160746@Turing-Arch-b> References: <20180801102221.5308-1-nek.in.cn@gmail.com> <20180801102221.5308-3-nek.in.cn@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: Kenneth Lee , Herbert Xu , "kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , Jonathan Corbet , Greg Kroah-Hartman , "linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "Kumar, Sanjay K" , Hao Fang , "iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org" , "linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "linuxarm-hv44wF8Li93QT0dZR+AlfA@public.gmane.org" , Alex Williamson , Thomas Gleixner , "linux-crypto-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , Philippe Ombredanne , Zaibo Xu , "David S . Miller" , "linux-accelerators-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org" To: "Tian, Kevin" Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org List-Id: linux-crypto.vger.kernel.org T24gVGh1LCBBdWcgMDIsIDIwMTggYXQgMDM6MTc6MDNBTSArMDAwMCwgVGlhbiwgS2V2aW4gd3Jv dGU6Cj4gRGF0ZTogVGh1LCAyIEF1ZyAyMDE4IDAzOjE3OjAzICswMDAwCj4gRnJvbTogIlRpYW4s IEtldmluIiA8a2V2aW4udGlhbkBpbnRlbC5jb20+Cj4gVG86IEtlbm5ldGggTGVlIDxuZWsuaW4u Y25AZ21haWwuY29tPiwgSm9uYXRoYW4gQ29yYmV0IDxjb3JiZXRAbHduLm5ldD4sCj4gIEhlcmJl cnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4sICJEYXZpZCBTIC4gTWlsbGVyIgo+ ICA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4sIEpvZXJnIFJvZWRlbCA8am9yb0A4Ynl0ZXMub3JnPiwg QWxleCBXaWxsaWFtc29uCj4gIDxhbGV4LndpbGxpYW1zb25AcmVkaGF0LmNvbT4sIEtlbm5ldGgg TGVlIDxsaWd1b3podUBoaXNpbGljb24uY29tPiwgSGFvCj4gIEZhbmcgPGZhbmdoYW8xMUBodWF3 ZWkuY29tPiwgWmhvdSBXYW5nIDx3YW5nemhvdTFAaGlzaWxpY29uLmNvbT4sIFphaWJvIFh1Cj4g IDx4dXphaWJvQGh1YXdlaS5jb20+LCBQaGlsaXBwZSBPbWJyZWRhbm5lIDxwb21icmVkYW5uZUBu ZXhiLmNvbT4sIEdyZWcKPiAgS3JvYWgtSGFydG1hbiA8Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5v cmc+LCBUaG9tYXMgR2xlaXhuZXIKPiAgPHRnbHhAbGludXRyb25peC5kZT4sICJsaW51eC1kb2NA dmdlci5rZXJuZWwub3JnIgo+ICA8bGludXgtZG9jQHZnZXIua2VybmVsLm9yZz4sICJsaW51eC1r ZXJuZWxAdmdlci5rZXJuZWwub3JnIgo+ICA8bGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZz4s ICJsaW51eC1jcnlwdG9Admdlci5rZXJuZWwub3JnIgo+ICA8bGludXgtY3J5cHRvQHZnZXIua2Vy bmVsLm9yZz4sICJpb21tdUBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZyIKPiAgPGlvbW11QGxp c3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnPiwgImt2bUB2Z2VyLmtlcm5lbC5vcmciCj4gIDxrdm1A dmdlci5rZXJuZWwub3JnPiwgImxpbnV4LWFjY2VsZXJhdG9yc0BsaXN0cy5vemxhYnMub3JnIgo+ ICA8bGludXgtYWNjZWxlcmF0b3JzQGxpc3RzLm96bGFicy5vcmc+LCBMdSBCYW9sdQo+ICA8YmFv bHUubHVAbGludXguaW50ZWwuY29tPiwgIkt1bWFyLCBTYW5qYXkgSyIgPHNhbmpheS5rLmt1bWFy QGludGVsLmNvbT4KPiBDQzogImxpbnV4YXJtQGh1YXdlaS5jb20iIDxsaW51eGFybUBodWF3ZWku Y29tPgo+IFN1YmplY3Q6IFJFOiBbUkZDIFBBVENIIDIvN10gaW9tbXU6IEFkZCBzaGFyZSBkb21h aW4gaW50ZXJmYWNlIGluIGlvbW11IGZvcgo+ICBzcGltZGV2Cj4gTWVzc2FnZS1JRDogPEFBREZD NDFBRkU1NDY4NEFCOUVFNkNCQzAyNzRBNUQxOTEyOTBGNDlAU0hTTVNYMTAxLmNjci5jb3JwLmlu dGVsLmNvbT4KPiAKPiA+IEZyb206IEtlbm5ldGggTGVlCj4gPiBTZW50OiBXZWRuZXNkYXksIEF1 Z3VzdCAxLCAyMDE4IDY6MjIgUE0KPiA+IAo+ID4gRnJvbTogS2VubmV0aCBMZWUgPGxpZ3Vvemh1 QGhpc2lsaWNvbi5jb20+Cj4gPiAKPiA+IFRoaXMgcGF0Y2ggYWRkIHNoYXJpbmcgaW50ZXJmYWNl IGZvciBhIGlvbW11X2dyb3VwLiBUaGUgbmV3IGludGVyZmFjZToKPiA+IAo+ID4gCWlvbW11X2dy b3VwX3NoYXJlX2RvbWFpbigpCj4gPiAJaW9tbXVfZ3JvdXBfdW5zaGFyZV9kb21haW4oKQo+ID4g Cj4gPiBjYW4gYmUgdXNlZCBieSBzb21lIHZpcnR1YWwgaW9tbXVfZ3JvdXAgKHN1Y2ggYXMgaW9t bXVfZ3JvdXAgZm9yCj4gPiBzcGltZGV2KQo+ID4gdG8gc2hhcmUgdGhlaXIgcGFyZW50J3MgaW9t bXVfZ3JvdXAuCj4gPiAKPiA+IFdoZW4gdGhlIGRvbWFpbiBvZiB0aGUgZ3JvdXAgaXMgc2hhcmVk LCBpdCBjYW5ub3QgYmUgY2hhbmdlZCBiZWZvcmUKPiA+IHVuc2hhcmVkLiAgSW4gdGhlIGZ1dHVy ZSwgbm90aWZpY2F0aW9uIGNhbiBiZSBhZGRlZCBpZiB1cGRhdGUgaXMgcmVxdWlyZWQuCj4gCj4g SXMgaXQgbmVjZXNzYXJ5IG9yIGp1c3QgYXNraW5nIFZGSU8gdG8gdXNlIHBhcmVudCBkb21haW4g ZGlyZWN0bHk/IAo+IApFdmVuIHdlIGFkZCB0byBWRklPLCB0aGUgaW9tbXUgc3RpbGwgbmVlZCB0 byBiZSBjaGFuZ2VkLiBXZSBjYW4gbW92ZSB0aGUgdHlwZTEKcGFydCB0byBWRklPIGlmIHdlIGhh dmUgYWdyZWVtZW50IGluIFJGQyBzdGFnZS4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogS2VubmV0 aCBMZWUgPGxpZ3Vvemh1QGhpc2lsaWNvbi5jb20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2lvbW11 L2lvbW11LmMgfCAyOCArKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gPiAgaW5jbHVkZS9s aW51eC9pb21tdS5oIHwgIDIgKysKPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDI5IGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvaW9t bXUuYyBiL2RyaXZlcnMvaW9tbXUvaW9tbXUuYwo+ID4gaW5kZXggNjNiMzc1NjNkYjdlLi5hODMy YWFmZTY2MGQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2lvbW11L2lvbW11LmMKPiA+ICsrKyBi L2RyaXZlcnMvaW9tbXUvaW9tbXUuYwo+ID4gQEAgLTU0LDYgKzU0LDkgQEAgc3RydWN0IGlvbW11 X2dyb3VwIHsKPiA+ICAJaW50IGlkOwo+ID4gIAlzdHJ1Y3QgaW9tbXVfZG9tYWluICpkZWZhdWx0 X2RvbWFpbjsKPiA+ICAJc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluOwo+ID4gKwlhdG9taWNf dCBkb21haW5fc2hhcmVkX3JlZjsgLyogTnVtYmVyIG9mIHVzZXIgb2YgY3VycmVudCBkb21haW4u Cj4gPiArCQkJCSAgICAgKiBUaGUgZG9tYWluIGNhbm5vdCBiZSBtb2RpZmllZCBpZiByZWYgPgo+ ID4gMAo+ID4gKwkJCQkgICAgICovCj4gPiAgfTsKPiA+IAo+ID4gIHN0cnVjdCBncm91cF9kZXZp Y2Ugewo+ID4gQEAgLTM1Myw2ICszNTYsNyBAQCBzdHJ1Y3QgaW9tbXVfZ3JvdXAgKmlvbW11X2dy b3VwX2FsbG9jKHZvaWQpCj4gPiAgCQlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ID4gIAl9Cj4gPiAg CWdyb3VwLT5pZCA9IHJldDsKPiA+ICsJYXRvbWljX3NldCgmZ3JvdXAtPmRvbWFpbl9zaGFyZWRf cmVmLCAwKTsKPiA+IAo+ID4gIAlyZXQgPSBrb2JqZWN0X2luaXRfYW5kX2FkZCgmZ3JvdXAtPmtv YmosICZpb21tdV9ncm91cF9rdHlwZSwKPiA+ICAJCQkJICAgTlVMTCwgIiVkIiwgZ3JvdXAtPmlk KTsKPiA+IEBAIC00ODIsNiArNDg2LDI1IEBAIGludCBpb21tdV9ncm91cF9zZXRfbmFtZShzdHJ1 Y3QgaW9tbXVfZ3JvdXAKPiA+ICpncm91cCwgY29uc3QgY2hhciAqbmFtZSkKPiA+ICB9Cj4gPiAg RVhQT1JUX1NZTUJPTF9HUEwoaW9tbXVfZ3JvdXBfc2V0X25hbWUpOwo+ID4gCj4gPiArc3RydWN0 IGlvbW11X2RvbWFpbiAqaW9tbXVfZ3JvdXBfc2hhcmVfZG9tYWluKHN0cnVjdAo+ID4gaW9tbXVf Z3JvdXAgKmdyb3VwKQo+ID4gK3sKPiA+ICsJLyogdGhlIGRvbWFpbiBjYW4gYmUgc2hhcmVkIG9u bHkgd2hlbiB0aGUgZGVmYXVsdCBkb21haW4gaXMgdXNlZAo+ID4gKi8KPiA+ICsJLyogdG9kbzog bW9yZSBzaGFyZWFibGUgY2hlY2sgKi8KPiA+ICsJaWYgKGdyb3VwLT5kb21haW4gIT0gZ3JvdXAt PmRlZmF1bHRfZG9tYWluKQo+ID4gKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Cj4gPiArCj4g PiArCWF0b21pY19pbmMoJmdyb3VwLT5kb21haW5fc2hhcmVkX3JlZik7Cj4gPiArCXJldHVybiBn cm91cC0+ZG9tYWluOwo+ID4gK30KPiA+ICtFWFBPUlRfU1lNQk9MX0dQTChpb21tdV9ncm91cF9z aGFyZV9kb21haW4pOwo+ID4gKwo+ID4gK3ZvaWQgaW9tbXVfZ3JvdXBfdW5zaGFyZV9kb21haW4o c3RydWN0IGlvbW11X2dyb3VwICpncm91cCkKPiA+ICt7Cj4gPiArCWF0b21pY19kZWMoJmdyb3Vw LT5kb21haW5fc2hhcmVkX3JlZik7Cj4gPiArCVdBUk5fT04oYXRvbWljX3JlYWQoJmdyb3VwLT5k b21haW5fc2hhcmVkX3JlZikgPCAwKTsKPiA+ICt9Cj4gPiArRVhQT1JUX1NZTUJPTF9HUEwoaW9t bXVfZ3JvdXBfdW5zaGFyZV9kb21haW4pOwo+ID4gKwo+ID4gIHN0YXRpYyBpbnQgaW9tbXVfZ3Jv dXBfY3JlYXRlX2RpcmVjdF9tYXBwaW5ncyhzdHJ1Y3QgaW9tbXVfZ3JvdXAKPiA+ICpncm91cCwK PiA+ICAJCQkJCSAgICAgIHN0cnVjdCBkZXZpY2UgKmRldikKPiA+ICB7Cj4gPiBAQCAtMTQwMSw3 ICsxNDI0LDggQEAgc3RhdGljIGludCBfX2lvbW11X2F0dGFjaF9ncm91cChzdHJ1Y3QKPiA+IGlv bW11X2RvbWFpbiAqZG9tYWluLAo+ID4gIHsKPiA+ICAJaW50IHJldDsKPiA+IAo+ID4gLQlpZiAo Z3JvdXAtPmRlZmF1bHRfZG9tYWluICYmIGdyb3VwLT5kb21haW4gIT0gZ3JvdXAtCj4gPiA+ZGVm YXVsdF9kb21haW4pCj4gPiArCWlmICgoZ3JvdXAtPmRlZmF1bHRfZG9tYWluICYmIGdyb3VwLT5k b21haW4gIT0gZ3JvdXAtCj4gPiA+ZGVmYXVsdF9kb21haW4pIHx8Cj4gPiArCSAgICAgYXRvbWlj X3JlYWQoJmdyb3VwLT5kb21haW5fc2hhcmVkX3JlZikgPiAwKQo+ID4gIAkJcmV0dXJuIC1FQlVT WTsKPiA+IAo+ID4gIAlyZXQgPSBfX2lvbW11X2dyb3VwX2Zvcl9lYWNoX2Rldihncm91cCwgZG9t YWluLAo+ID4gQEAgLTE0MzgsNiArMTQ2Miw4IEBAIHN0YXRpYyB2b2lkIF9faW9tbXVfZGV0YWNo X2dyb3VwKHN0cnVjdAo+ID4gaW9tbXVfZG9tYWluICpkb21haW4sCj4gPiAgewo+ID4gIAlpbnQg cmV0Owo+ID4gCj4gPiArCVdBUk5fT04oYXRvbWljX3JlYWQoJmdyb3VwLT5kb21haW5fc2hhcmVk X3JlZikgPiAwKTsKPiA+ICsKPiA+ICAJaWYgKCFncm91cC0+ZGVmYXVsdF9kb21haW4pIHsKPiA+ ICAJCV9faW9tbXVfZ3JvdXBfZm9yX2VhY2hfZGV2KGdyb3VwLCBkb21haW4sCj4gPiAgCQkJCQkg ICBpb21tdV9ncm91cF9kb19kZXRhY2hfZGV2aWNlKTsKPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L2lvbW11LmggYi9pbmNsdWRlL2xpbnV4L2lvbW11LmgKPiA+IGluZGV4IDE5OTM4ZWU2 ZWIzMS4uMjc4ZDYwZTNlYzM5IDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9saW51eC9pb21tdS5o Cj4gPiArKysgYi9pbmNsdWRlL2xpbnV4L2lvbW11LmgKPiA+IEBAIC0zNDksNiArMzQ5LDggQEAg ZXh0ZXJuIGludCBpb21tdV9kb21haW5fZ2V0X2F0dHIoc3RydWN0Cj4gPiBpb21tdV9kb21haW4g KmRvbWFpbiwgZW51bSBpb21tdV9hdHRyLAo+ID4gIAkJCQkgdm9pZCAqZGF0YSk7Cj4gPiAgZXh0 ZXJuIGludCBpb21tdV9kb21haW5fc2V0X2F0dHIoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWlu LCBlbnVtCj4gPiBpb21tdV9hdHRyLAo+ID4gIAkJCQkgdm9pZCAqZGF0YSk7Cj4gPiArZXh0ZXJu IHN0cnVjdCBpb21tdV9kb21haW4gKmlvbW11X2dyb3VwX3NoYXJlX2RvbWFpbihzdHJ1Y3QKPiA+ IGlvbW11X2dyb3VwICpncm91cCk7Cj4gPiArZXh0ZXJuIHZvaWQgaW9tbXVfZ3JvdXBfdW5zaGFy ZV9kb21haW4oc3RydWN0IGlvbW11X2dyb3VwICpncm91cCk7Cj4gPiAKPiA+ICAvKiBXaW5kb3cg aGFuZGxpbmcgZnVuY3Rpb24gcHJvdG90eXBlcyAqLwo+ID4gIGV4dGVybiBpbnQgaW9tbXVfZG9t YWluX3dpbmRvd19lbmFibGUoc3RydWN0IGlvbW11X2RvbWFpbgo+ID4gKmRvbWFpbiwgdTMyIHdu ZF9uciwKPiA+IC0tCj4gPiAyLjE3LjEKCi0tIAoJCQktS2VubmV0aChIaXNpbGljb24pCgo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQrmnKzpgq7ku7blj4rlhbbpmYTku7blkKvmnInljY7kuLrlhazl j7jnmoTkv53lr4bkv6Hmga/vvIzku4XpmZDkuo7lj5HpgIHnu5nkuIrpnaLlnLDlnYDkuK3liJfl h7rnmoTkuKrkurrmiJbnvqTnu4TjgILnpoEK5q2i5Lu75L2V5YW25LuW5Lq65Lul5Lu75L2V5b2i 5byP5L2/55So77yI5YyF5ous5L2G5LiN6ZmQ5LqO5YWo6YOo5oiW6YOo5YiG5Zyw5rOE6Zyy44CB 5aSN5Yi244CB5oiW5pWj5Y+R77yJ5pys6YKu5Lu25LitCueahOS/oeaBr+OAguWmguaenOaCqOmU meaUtuS6huacrOmCruS7tu+8jOivt+aCqOeri+WNs+eUteivneaIlumCruS7tumAmuefpeWPkeS7 tuS6uuW5tuWIoOmZpOacrOmCruS7tu+8gQpUaGlzIGUtbWFpbCBhbmQgaXRzIGF0dGFjaG1lbnRz IGNvbnRhaW4gY29uZmlkZW50aWFsIGluZm9ybWF0aW9uIGZyb20gSFVBV0VJLAp3aGljaCBpcyBp bnRlbmRlZCBvbmx5IGZvciB0aGUgcGVyc29uIG9yIGVudGl0eSB3aG9zZSBhZGRyZXNzIGlzIGxp c3RlZCBhYm92ZS4KQW55IHVzZSBvZiB0aGUgCmluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4g aW4gYW55IHdheSAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8sIHRvdGFsIG9yCnBhcnRp YWwgZGlzY2xvc3VyZSwgcmVwcm9kdWN0aW9uLCBvciBkaXNzZW1pbmF0aW9uKSBieSBwZXJzb25z IG90aGVyIHRoYW4gdGhlCmludGVuZGVkIApyZWNpcGllbnQocykgaXMgcHJvaGliaXRlZC4gSWYg eW91IHJlY2VpdmUgdGhpcyBlLW1haWwgaW4gZXJyb3IsIHBsZWFzZSBub3RpZnkKdGhlIHNlbmRl ciBieSBwaG9uZSBvciBlbWFpbCBpbW1lZGlhdGVseSBhbmQgZGVsZXRlIGl0IQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaW9tbXUgbWFpbGluZyBsaXN0 CmlvbW11QGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGludXhmb3Vu ZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lvbW11 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on archive.lwn.net X-Spam-Level: X-Spam-Status: No, score=-6.0 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=unavailable autolearn_force=no version=3.4.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by archive.lwn.net (Postfix) with ESMTP id 1951A7E3B2 for ; Thu, 2 Aug 2018 04:17:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726021AbeHBGG1 (ORCPT ); Thu, 2 Aug 2018 02:06:27 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:10217 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725994AbeHBGG1 (ORCPT ); Thu, 2 Aug 2018 02:06:27 -0400 Received: from DGGEMS410-HUB.china.huawei.com (unknown [172.30.72.59]) by Forcepoint Email with ESMTP id 43917A0F69DE6; Thu, 2 Aug 2018 12:17:12 +0800 (CST) Received: from localhost (10.67.212.75) by DGGEMS410-HUB.china.huawei.com (10.3.19.210) with Microsoft SMTP Server (TLS) id 14.3.399.0; Thu, 2 Aug 2018 12:17:06 +0800 Date: Thu, 2 Aug 2018 12:15:47 +0800 From: Kenneth Lee To: "Tian, Kevin" CC: Kenneth Lee , Jonathan Corbet , Herbert Xu , "David S . Miller" , Joerg Roedel , Alex Williamson , Hao Fang , Zhou Wang , Zaibo Xu , Philippe Ombredanne , Greg Kroah-Hartman , Thomas Gleixner , "linux-doc@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-crypto@vger.kernel.org" , "iommu@lists.linux-foundation.org" , "kvm@vger.kernel.org" , "linux-accelerators@lists.ozlabs.org" , Lu Baolu , "Kumar, Sanjay K" , "linuxarm@huawei.com" Subject: Re: [RFC PATCH 2/7] iommu: Add share domain interface in iommu for spimdev Message-ID: <20180802041547.GM160746@Turing-Arch-b> References: <20180801102221.5308-1-nek.in.cn@gmail.com> <20180801102221.5308-3-nek.in.cn@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Originating-IP: [10.67.212.75] X-CFilter-Loop: Reflected Sender: linux-doc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-doc@vger.kernel.org On Thu, Aug 02, 2018 at 03:17:03AM +0000, Tian, Kevin wrote: > Date: Thu, 2 Aug 2018 03:17:03 +0000 > From: "Tian, Kevin" > To: Kenneth Lee , Jonathan Corbet , > Herbert Xu , "David S . Miller" > , Joerg Roedel , Alex Williamson > , Kenneth Lee , Hao > Fang , Zhou Wang , Zaibo Xu > , Philippe Ombredanne , Greg > Kroah-Hartman , Thomas Gleixner > , "linux-doc@vger.kernel.org" > , "linux-kernel@vger.kernel.org" > , "linux-crypto@vger.kernel.org" > , "iommu@lists.linux-foundation.org" > , "kvm@vger.kernel.org" > , "linux-accelerators@lists.ozlabs.org" > , Lu Baolu > , "Kumar, Sanjay K" > CC: "linuxarm@huawei.com" > Subject: RE: [RFC PATCH 2/7] iommu: Add share domain interface in iommu for > spimdev > Message-ID: > > > From: Kenneth Lee > > Sent: Wednesday, August 1, 2018 6:22 PM > > > > From: Kenneth Lee > > > > This patch add sharing interface for a iommu_group. The new interface: > > > > iommu_group_share_domain() > > iommu_group_unshare_domain() > > > > can be used by some virtual iommu_group (such as iommu_group for > > spimdev) > > to share their parent's iommu_group. > > > > When the domain of the group is shared, it cannot be changed before > > unshared. In the future, notification can be added if update is required. > > Is it necessary or just asking VFIO to use parent domain directly? > Even we add to VFIO, the iommu still need to be changed. We can move the type1 part to VFIO if we have agreement in RFC stage. > > > > Signed-off-by: Kenneth Lee > > --- > > drivers/iommu/iommu.c | 28 +++++++++++++++++++++++++++- > > include/linux/iommu.h | 2 ++ > > 2 files changed, 29 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c > > index 63b37563db7e..a832aafe660d 100644 > > --- a/drivers/iommu/iommu.c > > +++ b/drivers/iommu/iommu.c > > @@ -54,6 +54,9 @@ struct iommu_group { > > int id; > > struct iommu_domain *default_domain; > > struct iommu_domain *domain; > > + atomic_t domain_shared_ref; /* Number of user of current domain. > > + * The domain cannot be modified if ref > > > 0 > > + */ > > }; > > > > struct group_device { > > @@ -353,6 +356,7 @@ struct iommu_group *iommu_group_alloc(void) > > return ERR_PTR(ret); > > } > > group->id = ret; > > + atomic_set(&group->domain_shared_ref, 0); > > > > ret = kobject_init_and_add(&group->kobj, &iommu_group_ktype, > > NULL, "%d", group->id); > > @@ -482,6 +486,25 @@ int iommu_group_set_name(struct iommu_group > > *group, const char *name) > > } > > EXPORT_SYMBOL_GPL(iommu_group_set_name); > > > > +struct iommu_domain *iommu_group_share_domain(struct > > iommu_group *group) > > +{ > > + /* the domain can be shared only when the default domain is used > > */ > > + /* todo: more shareable check */ > > + if (group->domain != group->default_domain) > > + return ERR_PTR(-EINVAL); > > + > > + atomic_inc(&group->domain_shared_ref); > > + return group->domain; > > +} > > +EXPORT_SYMBOL_GPL(iommu_group_share_domain); > > + > > +void iommu_group_unshare_domain(struct iommu_group *group) > > +{ > > + atomic_dec(&group->domain_shared_ref); > > + WARN_ON(atomic_read(&group->domain_shared_ref) < 0); > > +} > > +EXPORT_SYMBOL_GPL(iommu_group_unshare_domain); > > + > > static int iommu_group_create_direct_mappings(struct iommu_group > > *group, > > struct device *dev) > > { > > @@ -1401,7 +1424,8 @@ static int __iommu_attach_group(struct > > iommu_domain *domain, > > { > > int ret; > > > > - if (group->default_domain && group->domain != group- > > >default_domain) > > + if ((group->default_domain && group->domain != group- > > >default_domain) || > > + atomic_read(&group->domain_shared_ref) > 0) > > return -EBUSY; > > > > ret = __iommu_group_for_each_dev(group, domain, > > @@ -1438,6 +1462,8 @@ static void __iommu_detach_group(struct > > iommu_domain *domain, > > { > > int ret; > > > > + WARN_ON(atomic_read(&group->domain_shared_ref) > 0); > > + > > if (!group->default_domain) { > > __iommu_group_for_each_dev(group, domain, > > iommu_group_do_detach_device); > > diff --git a/include/linux/iommu.h b/include/linux/iommu.h > > index 19938ee6eb31..278d60e3ec39 100644 > > --- a/include/linux/iommu.h > > +++ b/include/linux/iommu.h > > @@ -349,6 +349,8 @@ extern int iommu_domain_get_attr(struct > > iommu_domain *domain, enum iommu_attr, > > void *data); > > extern int iommu_domain_set_attr(struct iommu_domain *domain, enum > > iommu_attr, > > void *data); > > +extern struct iommu_domain *iommu_group_share_domain(struct > > iommu_group *group); > > +extern void iommu_group_unshare_domain(struct iommu_group *group); > > > > /* Window handling function prototypes */ > > extern int iommu_domain_window_enable(struct iommu_domain > > *domain, u32 wnd_nr, > > -- > > 2.17.1 -- -Kenneth(Hisilicon) ================================================================================ 本邮件及其附件含有华为公司的保密信息,仅限于发送给上面地址中列出的个人或群组。禁 止任何其他人以任何形式使用(包括但不限于全部或部分地泄露、复制、或散发)本邮件中 的信息。如果您错收了本邮件,请您立即电话或邮件通知发件人并删除本邮件! This e-mail and its attachments contain confidential information from HUAWEI, which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it! -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.5 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,URIBL_BLOCKED,USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D424CC43142 for ; Thu, 2 Aug 2018 04:17:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 16D6E208C3 for ; Thu, 2 Aug 2018 04:17:32 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 16D6E208C3 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=hisilicon.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726239AbeHBGG1 (ORCPT ); Thu, 2 Aug 2018 02:06:27 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:10217 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725994AbeHBGG1 (ORCPT ); Thu, 2 Aug 2018 02:06:27 -0400 Received: from DGGEMS410-HUB.china.huawei.com (unknown [172.30.72.59]) by Forcepoint Email with ESMTP id 43917A0F69DE6; Thu, 2 Aug 2018 12:17:12 +0800 (CST) Received: from localhost (10.67.212.75) by DGGEMS410-HUB.china.huawei.com (10.3.19.210) with Microsoft SMTP Server (TLS) id 14.3.399.0; Thu, 2 Aug 2018 12:17:06 +0800 Date: Thu, 2 Aug 2018 12:15:47 +0800 From: Kenneth Lee To: "Tian, Kevin" CC: Kenneth Lee , Jonathan Corbet , Herbert Xu , "David S . Miller" , Joerg Roedel , Alex Williamson , Hao Fang , Zhou Wang , Zaibo Xu , Philippe Ombredanne , Greg Kroah-Hartman , Thomas Gleixner , "linux-doc@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-crypto@vger.kernel.org" , "iommu@lists.linux-foundation.org" , "kvm@vger.kernel.org" , "linux-accelerators@lists.ozlabs.org" , Lu Baolu , "Kumar, Sanjay K" , "linuxarm@huawei.com" Subject: Re: [RFC PATCH 2/7] iommu: Add share domain interface in iommu for spimdev Message-ID: <20180802041547.GM160746@Turing-Arch-b> References: <20180801102221.5308-1-nek.in.cn@gmail.com> <20180801102221.5308-3-nek.in.cn@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Originating-IP: [10.67.212.75] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Aug 02, 2018 at 03:17:03AM +0000, Tian, Kevin wrote: > Date: Thu, 2 Aug 2018 03:17:03 +0000 > From: "Tian, Kevin" > To: Kenneth Lee , Jonathan Corbet , > Herbert Xu , "David S . Miller" > , Joerg Roedel , Alex Williamson > , Kenneth Lee , Hao > Fang , Zhou Wang , Zaibo Xu > , Philippe Ombredanne , Greg > Kroah-Hartman , Thomas Gleixner > , "linux-doc@vger.kernel.org" > , "linux-kernel@vger.kernel.org" > , "linux-crypto@vger.kernel.org" > , "iommu@lists.linux-foundation.org" > , "kvm@vger.kernel.org" > , "linux-accelerators@lists.ozlabs.org" > , Lu Baolu > , "Kumar, Sanjay K" > CC: "linuxarm@huawei.com" > Subject: RE: [RFC PATCH 2/7] iommu: Add share domain interface in iommu for > spimdev > Message-ID: > > > From: Kenneth Lee > > Sent: Wednesday, August 1, 2018 6:22 PM > > > > From: Kenneth Lee > > > > This patch add sharing interface for a iommu_group. The new interface: > > > > iommu_group_share_domain() > > iommu_group_unshare_domain() > > > > can be used by some virtual iommu_group (such as iommu_group for > > spimdev) > > to share their parent's iommu_group. > > > > When the domain of the group is shared, it cannot be changed before > > unshared. In the future, notification can be added if update is required. > > Is it necessary or just asking VFIO to use parent domain directly? > Even we add to VFIO, the iommu still need to be changed. We can move the type1 part to VFIO if we have agreement in RFC stage. > > > > Signed-off-by: Kenneth Lee > > --- > > drivers/iommu/iommu.c | 28 +++++++++++++++++++++++++++- > > include/linux/iommu.h | 2 ++ > > 2 files changed, 29 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c > > index 63b37563db7e..a832aafe660d 100644 > > --- a/drivers/iommu/iommu.c > > +++ b/drivers/iommu/iommu.c > > @@ -54,6 +54,9 @@ struct iommu_group { > > int id; > > struct iommu_domain *default_domain; > > struct iommu_domain *domain; > > + atomic_t domain_shared_ref; /* Number of user of current domain. > > + * The domain cannot be modified if ref > > > 0 > > + */ > > }; > > > > struct group_device { > > @@ -353,6 +356,7 @@ struct iommu_group *iommu_group_alloc(void) > > return ERR_PTR(ret); > > } > > group->id = ret; > > + atomic_set(&group->domain_shared_ref, 0); > > > > ret = kobject_init_and_add(&group->kobj, &iommu_group_ktype, > > NULL, "%d", group->id); > > @@ -482,6 +486,25 @@ int iommu_group_set_name(struct iommu_group > > *group, const char *name) > > } > > EXPORT_SYMBOL_GPL(iommu_group_set_name); > > > > +struct iommu_domain *iommu_group_share_domain(struct > > iommu_group *group) > > +{ > > + /* the domain can be shared only when the default domain is used > > */ > > + /* todo: more shareable check */ > > + if (group->domain != group->default_domain) > > + return ERR_PTR(-EINVAL); > > + > > + atomic_inc(&group->domain_shared_ref); > > + return group->domain; > > +} > > +EXPORT_SYMBOL_GPL(iommu_group_share_domain); > > + > > +void iommu_group_unshare_domain(struct iommu_group *group) > > +{ > > + atomic_dec(&group->domain_shared_ref); > > + WARN_ON(atomic_read(&group->domain_shared_ref) < 0); > > +} > > +EXPORT_SYMBOL_GPL(iommu_group_unshare_domain); > > + > > static int iommu_group_create_direct_mappings(struct iommu_group > > *group, > > struct device *dev) > > { > > @@ -1401,7 +1424,8 @@ static int __iommu_attach_group(struct > > iommu_domain *domain, > > { > > int ret; > > > > - if (group->default_domain && group->domain != group- > > >default_domain) > > + if ((group->default_domain && group->domain != group- > > >default_domain) || > > + atomic_read(&group->domain_shared_ref) > 0) > > return -EBUSY; > > > > ret = __iommu_group_for_each_dev(group, domain, > > @@ -1438,6 +1462,8 @@ static void __iommu_detach_group(struct > > iommu_domain *domain, > > { > > int ret; > > > > + WARN_ON(atomic_read(&group->domain_shared_ref) > 0); > > + > > if (!group->default_domain) { > > __iommu_group_for_each_dev(group, domain, > > iommu_group_do_detach_device); > > diff --git a/include/linux/iommu.h b/include/linux/iommu.h > > index 19938ee6eb31..278d60e3ec39 100644 > > --- a/include/linux/iommu.h > > +++ b/include/linux/iommu.h > > @@ -349,6 +349,8 @@ extern int iommu_domain_get_attr(struct > > iommu_domain *domain, enum iommu_attr, > > void *data); > > extern int iommu_domain_set_attr(struct iommu_domain *domain, enum > > iommu_attr, > > void *data); > > +extern struct iommu_domain *iommu_group_share_domain(struct > > iommu_group *group); > > +extern void iommu_group_unshare_domain(struct iommu_group *group); > > > > /* Window handling function prototypes */ > > extern int iommu_domain_window_enable(struct iommu_domain > > *domain, u32 wnd_nr, > > -- > > 2.17.1 -- -Kenneth(Hisilicon) ================================================================================ 本邮件及其附件含有华为公司的保密信息,仅限于发送给上面地址中列出的个人或群组。禁 止任何其他人以任何形式使用(包括但不限于全部或部分地泄露、复制、或散发)本邮件中 的信息。如果您错收了本邮件,请您立即电话或邮件通知发件人并删除本邮件! This e-mail and its attachments contain confidential information from HUAWEI, which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it!