From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jacob Pan Subject: Re: [PATCH 10/18] iommu/vt-d: Add custom allocator for IOASID Date: Thu, 18 Apr 2019 21:29:58 -0700 Message-ID: <20190418212958.65975103@jacob-builder> References: <1554767973-30125-1-git-send-email-jacob.jun.pan@linux.intel.com> <1554767973-30125-11-git-send-email-jacob.jun.pan@linux.intel.com> <20190415143711.13c29308@x1.home> <20190415161015.564cb071@jacob-builder> <70c6b197-029e-94cd-2745-d4a193cbbcd0@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <70c6b197-029e-94cd-2745-d4a193cbbcd0-5wv7dgnIgG8@public.gmane.org> 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 To: Jean-Philippe Brucker Cc: "Tian, Kevin" , Raj Ashok , "iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org" , LKML , Alex Williamson , Andriy Shevchenko , David Woodhouse List-Id: iommu@lists.linux-foundation.org T24gVGh1LCAxOCBBcHIgMjAxOSAxNjozNjowMiArMDEwMApKZWFuLVBoaWxpcHBlIEJydWNrZXIg PGplYW4tcGhpbGlwcGUuYnJ1Y2tlckBhcm0uY29tPiB3cm90ZToKCj4gT24gMTYvMDQvMjAxOSAw MDoxMCwgSmFjb2IgUGFuIHdyb3RlOlsuLi5dCj4gPj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIC8qCj4gPj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgKiBSZWdpc3RlciBhIGN1c3RvbSBBU0lEIGFsbG9jYXRvciBpZiB3ZQo+ID4+ID4g YXJlIHJ1bm5pbmcKPiA+PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAqIGluIGEgZ3Vlc3QsIHRoZSBwdXJwb3NlIGlzIHRvIGhhdmUgYQo+ID4+ID4gc3lzdGVtIHdp ZGUgUEFTSUQKPiA+PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAq IG5hbWVzcGFjZSBhbW9uZyBhbGwgUEFTSUQgdXNlcnMuCj4gPj4gPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBOb3RlIHRoYXQgb25seSBvbmUgdklPTU1VIGluIGVh Y2ggZ3Vlc3QKPiA+PiA+IGlzIHN1cHBvcnRlZC7CoCAgIAo+ID4+IAo+ID4+IFdoeSBvbmUgdklP TU1VIHBlciBndWVzdD/CoCBUaGlzIHdvdWxkIHByZXZlbnQgZ3Vlc3RzIHdpdGggbXVsdGlwbGUK PiA+PiBQQ0kgZG9tYWlucyBhaXVpLgo+ID4+ICAgCj4gPiBUaGlzIGlzIG1haW5seSBmb3Igc2lt cGxpY2l0eSByZWFzb25zLiBUaGVzZSBhcmUgYWxsIHZpcnR1YWwgQkRGcwo+ID4gYW55d2F5LiBB cyBsb25nIGFzIGd1ZXN0IEJERiBjYW4gYmUgbWFwcGVkIHRvIGEgaG9zdCBCREYsIGl0IHNob3Vs ZAo+ID4gYmUgc3VmZmljaWVudCwgYW0gSSBtaXNzaW5nIGFueXRoaW5nPwo+ID4gCj4gPiBGcm9t IFBBU0lEIGFsbG9jYXRpb24gcGVyc3BlY3RpdmUsIGl0IGlzIG5vdCB0aWVkIHRvIGFueSBQQ0kg ZGV2aWNlCj4gPiB1bnRpbCBiaW5kIGNhbGwuIFdlIG9ubHkgbmVlZCB0byB0cmFjayBQQVNJRCBv d25lcnNoaXAgcGVyIGd1ZXN0Lgo+ID4gCj4gPiB2aXJ0aW8tSU9NTVUgc3BlYyBkb2VzIHN1cHBv cnQgbXVsdGlwbGUgUENJIGRvbWFpbnMgYnV0IEkgYW0gbm90Cj4gPiBzdXJlIGlmIHRoYXQgYXBw bGllcyB0byBhbGwgYXNzaWduZWQgZGV2aWNlcywgd2hldGhlciBhbGwgYXNzaWduZWQKPiA+IGRl dmljZXMgYXJlIHVuZGVyIHRoZSBzYW1lIGRvbWFpbi4gUGVyaGFwcyBKZWFuIGNhbiBoZWxwIHRv IGNsYXJpZnkKPiA+IGhvdyBQQVNJRCBhbGxvY2F0aW9uIEFQSSBsb29rcyBsaWtlIG9uIHZpcnRp byBJT01NVS4gIAo+IAo+IFtVZ2gsIHRoaXMgaXMgbXVjaCBsb25nZXIgdGhhbiBJIGhvcGVkLiBJ biBzaG9ydCBJIGRvbid0IHRoaW5rCj4gbXVsdGlwbGUgdklPTU1VcyBpcyBhIHByb2JsZW0sIGJl Y2F1c2UgdGhlIGhvc3QgdXNlcyB0aGUgc2FtZQo+IGFsbG9jYXRvciBmb3IgYWxsIG9mIHRoZW0u XQo+IApJIGFncmVlZCwgaXQgaXMgbm90IGFuIGlzc3VlIGFzIGZhciBhcyBQQVNJRCBhbGxvY2F0 aW9uIGlzIGNvbmNlcm5lZC4KPiBZZXMgdGhlcmUgY2FuIGJlIGEgc2luZ2xlIHZpcnRpby1pb21t dSBpbnN0YW5jZSBmb3IgbXVsdGlwbGUgUENJCj4gZG9tYWlucywgb3IgbXVsdGlwbGUgaW5zdGFu Y2VzIGVhY2ggbWFuYWdpbmcgYXNzaWduZWQgZGV2aWNlcy4gSXQncwo+IHVwIHRvIHRoZSBoeXBl cnZpc29yIHRvIGRlY2lkZSBvbiB0aGUgdG9wb2xvZ3kuCj4gCj4gRm9yIExpbnV4IGFuZCBRRU1V IEkgd2FzIGFzc3VtaW5nIHRoYXQgY2hvb3NpbmcgdGhlIHZJT01NVSB1c2VkIGZvcgo+IFBBU0lE IGFsbG9jYXRpb24gaXNuJ3QgYSBiaWcgZGVhbCwgc2luY2UgaW4gdGhlIGVuZCB0aGV5IGFsbCB1 c2UgdGhlCj4gc2FtZSBhbGxvY2F0b3IgaW4gdGhlIGhvc3QuIEl0IGdldHMgY29tcGxpY2F0ZWQg d2hlbiBzb21lIHZJT01NVXMgY2FuCj4gYmUgcmVtb3ZlZCBhdCBydW50aW1lICh1bmxvYWQgdGhl IHZpcnRpby1pb21tdSBtb2R1bGUgdGhhdCB3YXMKPiBwcm92aWRpbmcgdGhlIFBBU0lEIGFsbG9j YXRvciwgYW5kIHRoZW4geW91IGNhbid0IGFsbG9jYXRlIFBBU0lEcyBmb3IKPiB0aGUgVlQtZCBp bnN0YW5jZSBhbnltb3JlKSwgc28gbWF5YmUgbGltaXRpbmcgdG8gb25lIHR5cGUgb2YgdklPTU1V Cj4gKGRvbid0IG1peCBWVC1kIGFuZCB2aXJ0aW8taW9tbXUgaW4gdGhlIHNhbWUgVk0pIGlzIG1v cmUgcmVhc29uYWJsZS4KPiAKSSB0aGluayB5b3UgY2FuIGRlYWwgd2l0aCB0aGUgaG90IHJlbW92 YWwgb2YgdklPTU1VIGJ5IGtlZXBpbmcgbXVsdGlwbGUKYWxsb2NhdG9ycyBpbiBhIGxpc3QuIGku ZS4gd2hlbiB0aGUgc2Vjb25kIHZJT01NVSByZWdpc3RlciBhbgphbGxvY2F0b3IsIGluc3RlYWQg b2YgcmV0dXJuIC1FQlVTWSwgd2UganVzdCBrZWVwIHRoZSBpdCBpbiBiYWNrIHBvY2tldApsaXN0 LiBJZiB0aGUgZmlyc3QgdklPTU1VIGlzIHJlbW92ZWQsIHRoZSBzZWNvbmQgb25lIGNhbiBiZSBw b3BwZWQgb3V0CmludG8gYWN0aW9uIChhbmQgdmlzZSB2ZXJzYSkuIFRoZW4gd2UgYWx3YXlzIGhh dmUgYW4gYWxsb2NhdG9yLgo+IEl0J3MgYSBiaXQgbW9yZSBkZWxpY2F0ZSBmcm9tIHRoZSB2aXJ0 aW8taW9tbXUgcGVyc3BlY3RpdmUuIFRoZQo+IGludGVyZmFjZSBpcyBwb3J0YWJsZSBhbmQgSSBj YW4ndCB0aWUgaXQgZG93biB0byB0aGUgY2hvaWNlcyB3ZSdyZQo+IG1ha2luZyBmb3IgTGludXgg YW5kIEtWTS4gSGF2aW5nIGEgc3lzdGVtLXdpZGUgUEFTSUQgc3BhY2UgaXMgd2hhdCB3ZQo+IHBp Y2tlZCBmb3IgTGludXggYnV0IHRoZSBQQ0llIGFyY2hpdGVjdHVyZSBhbGxvd3MgZm9yIGVhY2gg ZGV2aWNlIHRvCj4gaGF2ZSB0aGVpciBvd24gUEFTSUQgc3BhY2UsIGFuZCBJIHN1cHBvc2Ugc29t ZSBoeXBlcnZpc29ycyBhbmQgZ3Vlc3RzCj4gbWlnaHQgcHJlZmVyIGltcGxlbWVudGluZyBpdCB0 aGF0IHdheS4KPiAKPiBNeSBwbGFuIGZvciB0aGUgbW9tZW50IGlzIHRvIGltcGxlbWVudCBnbG9i YWwgUEFTSUQgYWxsb2NhdGlvbiB1c2luZwo+IG9uZSBmZWF0dXJlIGJpdCBhbmQgdHdvIG5ldyBy ZXF1ZXN0cywgYnV0IGxlYXZlIHNwYWNlIGZvciBhCj4gcGVyLWRldmljZSBQQVNJRCBhbGxvY2F0 aW9uLCBpbnRyb2R1Y2VkIHdpdGggYW5vdGhlciBmZWF0dXJlIGJpdCBpZgo+IG5lY2Vzc2FyeS4g SWYgaXQgZXZlciBnZXRzIGFkZGVkLCBJIGV4cGVjdCB0aGUgcGVyLWRldmljZSBhbGxvY2F0aW9u Cj4gdG8gYmUgZG9uZSBkdXJpbmcgdGhlIGJpbmQgcmVxdWVzdCByYXRoZXIgdGhhbiB3aXRoIGEg c2VwYXJhdGUKPiBQQVNJRF9BTExPQyByZXF1ZXN0Lgo+IAo+IFNvIGN1cnJlbnRseSBJIGhhdmUg YSBuZXcgZmVhdHVyZSBiaXQgYW5kIHR3byBjb21tYW5kczoKPiAKPiAjZGVmaW5lIFZJUlRJT19J T01NVV9GX1BBU0lEX0FMTE9DCj4gI2RlZmluZSBWSVJUSU9fSU9NTVVfVF9BTExPQ19QQVNJRAo+ ICNkZWZpbmUgVklSVElPX0lPTU1VX1RfRlJFRV9QQVNJRAo+IAo+IHN0cnVjdCB2aXJ0aW9faW9t bXVfcmVxX2FsbG9jX3Bhc2lkIHsKPiAgICAgICAgIHN0cnVjdCB2aXJ0aW9faW9tbXVfcmVxX2hl YWQgaGVhZDsKPiAgICAgICAgIHUzMiByZXNlcnZlZDsKPiAKPiAgICAgICAgIC8qIERldmljZS13 cml0ZWFibGUgKi8KPiAgICAgICAgIGxlMzIgcGFzaWQ7Cj4gICAgICAgICBzdHJ1Y3QgdmlydGlv X2lvbW11X3JlcV90YWlsIHRhaWw7Cj4gfTsKPiAKPiBzdHJ1Y3QgdmlydGlvX2lvbW11X3JlcV9m cmVlX3Bhc2lkIHsKPiAgICAgICAgIHN0cnVjdCB2aXJ0aW9faW9tbXVfcmVxX2hlYWQgaGVhZDsK PiAgICAgICAgIHUzMiByZXNlcnZlZDsKPiAgICAgICAgIGxlMzIgcGFzaWQ7Cj4gCj4gICAgICAg ICAvKiBEZXZpY2Utd3JpdGVhYmxlICovCj4gICAgICAgICBzdHJ1Y3QgdmlydGlvX2lvbW11X3Jl cV90YWlsIHRhaWw7Cj4gfTsKPiAKPiBJZiB0aGUgZmVhdHVyZSBiaXQgaXMgb2ZmZXJlZCBpdCBt dXN0IGJlIHVzZWQsIGFuZCB0aGUgZ3Vlc3QgY2FuIG9ubHkKPiB1c2UgUEFTSURzIGFsbG9jYXRl ZCB2aWEgVklSVElPX0lPTU1VX1RfQUxMT0NfUEFTSUQgaW4gaXRzIGJpbmQKPiByZXF1ZXN0cy4K PiAKPiBUaGUgUEFTSUQgc3BhY2UgaXMgZ2xvYmFsIGF0IHRoZSBob3N0IHNjb3BlLiBJZiBtdWx0 aXBsZSB2aXJ0aW8taW9tbXUKPiBkZXZpY2VzIGluIHRoZSBWTSBvZmZlciB0aGUgZmVhdHVyZSBi aXQsIHRoZW4gdXNpbmcgZWl0aGVyIG9mIHRoZWlyCj4gY29tbWFuZCBxdWV1ZSB0byBpc3N1ZSBh IFZJUlRJT19JT01NVV9GX0FMTE9DX1BBU0lEIGFuZAo+IFZJUlRJT19JT01NVV9GX0ZSRUVfUEFT SUQgaXMgZXF1aXZhbGVudC4gQW5vdGhlciBwb3NzaWJpbGl0eSBpcyB0bwo+IHJlcXVpcmUgdGhh dCBvbmx5IG9uZSBvZiB0aGUgdmlydGlvLWlvbW11IGluc3RhbmNlcyBwZXIgVk0gb2ZmZXJzIHRo ZQo+IGZlYXR1cmUgYml0LiBJIGRvIHByZWZlciB0aGlzIG9wdGlvbiwgYnV0IHRoZXJlIGlzIHRo ZSB2SU9NTVUgcmVtb3ZhbAo+IHByb2JsZW0gbWVudGlvbmVkIGFib3ZlIC0gd2hpY2gsIHdpdGgg dGhlIGZpcnN0IG9wdGlvbiwgY291bGQgYmUKPiBzb2x2ZWQgYnkga2VlcGluZyBhIGxpc3Qgb2Yg UEFTSUQgYWxsb2NhdG9yIGZ1bmN0aW9ucyByYXRoZXIgdGhhbiBhCj4gc2luZ2xlIG9uZS4KPiAK PiBJJ20gY29uc2lkZXJpbmcgYWRkaW5nIG1heF9wYXNpZCBmaWVsZCB0bwo+IHZpcnRpb19pb21t dV9yZXFfYWxsb2NfcGFzaWQuIElmIFZJUlRJT19JT01NVV9UX0FMTE9DX1BBU0lEIHJldHVybnMg YQo+IHJhbmRvbSAyMC1iaXQgdmFsdWUgdGhlbiBhIGxvdCBvZiBzcGFjZSBtaWdodCBiZSBuZWVk ZWQgZm9yIHN0b3JpbmcKPiBQQVNJRCBjb250ZXh0cyAoaXMgdGhhdCBhIHJlYWwgY29uY2VybiB0 aG91Z2g/IEZvciBpbnRlcm5hbCBkYXRhIGl0Cj4gY2FuIHVzZSBhIGJpbmFyeSB0cmVlLCBhbmQg dGhlIGd1ZXN0IGlzIG5vdCBpbiBjaGFyZ2Ugb2YgaGFyZHdhcmUKPiBQQVNJRCB0YWJsZXMgaGVy ZSkuIElmIHRoZSBndWVzdCBpcyBzaG9ydCBvbiBtZW1vcnkgdGhlbiBpdCBjb3VsZAo+IGJlbmVm aXQgZnJvbSBhIHNtYWxsZXIgbnVtYmVyIG9mIFBBU0lEIGJpdHMuIFRoYXQgY291bGQgZWl0aGVy IGJlCj4gZ2xvYmFsbHkgY29uZmlndXJhYmxlIGluIHRoZSB2aXJ0aW8taW9tbXUgY29uZmlnIHNw YWNlLCBvciB1c2luZyBhCj4gbWF4X3Bhc2lkIGZpZWxkIGluIHRoZSBWSVJUSU9fSU9NTVVfVF9B TExPQ19QQVNJRCByZXF1ZXN0LiBUaGUgbGF0dGVyCj4gYWxsb3dzIHRvIHN1cHBvcnQgZGV2aWNl cyB3aXRoIGxlc3MgdGhhbiAyMCBQQVNJRCBiaXRzLCB0aG91Z2ggd2UncmUKPiBob3BpbmcgdGhh dCBubyBvbmUgd2lsbCBpbXBsZW1lbnQgdGhhdC4KPiAKU3BhY2UgaXMgbm90IGFuIGNvbmNlcm4g Zm9yIFZ0LWQgdklPTU1VIGluIHRoYXQgd2UgaGF2ZSBhIHR3byBsZXZlbApwYXNpZCB0YWJsZS4g QW5kIHdlIG5lZWQgdG8gc2hhZG93IGFueXdheS4KCklmIGl0IGlzIE9LIHdpdGggeW91LCBJIHdp bGwgc3F1YXNoIG15IGNoYW5nZXMgaW50byB5b3VyIGlvYXNpZCBwYXRjaAphbmQgYWRkcmVzcyB0 aGUgcmV2aWV3IGNvbW1lbnRzIGluIHRoZSB2MiBvZiB0aGlzIHNldCwgT0s/CmkuZS4gCltQQVRD SCAwMi8xOF0gaW9hc2lkOiBBZGQgY3VzdG9tIElPQVNJRCBhbGxvY2F0b3IKW1BBVENIIDAzLzE4 XSBpb2FzaWQ6IENvbnZlcnQgaW9hc2lkX2lkciB0byBYQXJyYXkKCj4gVGhhbmtzLAo+IEplYW4K Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlvbW11IG1h aWxpbmcgbGlzdAppb21tdUBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3Rz LmxpbnV4Zm91bmRhdGlvbi5vcmcvbWFpbG1hbi9saXN0aW5mby9pb21tdQ== 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=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,URIBL_BLOCKED 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 7F48AC282DA for ; Fri, 19 Apr 2019 04:27:39 +0000 (UTC) Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4CF8921736 for ; Fri, 19 Apr 2019 04:27:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4CF8921736 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=iommu-bounces@lists.linux-foundation.org Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 1B6E22171; Fri, 19 Apr 2019 04:27:39 +0000 (UTC) Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 81BE51E09 for ; Fri, 19 Apr 2019 04:27:20 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id A8867108 for ; Fri, 19 Apr 2019 04:27:19 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Apr 2019 21:27:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,368,1549958400"; d="scan'208";a="292800020" Received: from jacob-builder.jf.intel.com (HELO jacob-builder) ([10.7.199.155]) by orsmga004.jf.intel.com with ESMTP; 18 Apr 2019 21:27:18 -0700 Date: Thu, 18 Apr 2019 21:29:58 -0700 From: Jacob Pan To: Jean-Philippe Brucker Subject: Re: [PATCH 10/18] iommu/vt-d: Add custom allocator for IOASID Message-ID: <20190418212958.65975103@jacob-builder> In-Reply-To: <70c6b197-029e-94cd-2745-d4a193cbbcd0@arm.com> References: <1554767973-30125-1-git-send-email-jacob.jun.pan@linux.intel.com> <1554767973-30125-11-git-send-email-jacob.jun.pan@linux.intel.com> <20190415143711.13c29308@x1.home> <20190415161015.564cb071@jacob-builder> <70c6b197-029e-94cd-2745-d4a193cbbcd0@arm.com> Organization: OTC X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Cc: "Tian, Kevin" , Raj Ashok , "iommu@lists.linux-foundation.org" , LKML , Alex Williamson , Andriy Shevchenko , David Woodhouse X-BeenThere: iommu@lists.linux-foundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Development issues for Linux IOMMU support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Sender: iommu-bounces@lists.linux-foundation.org Errors-To: iommu-bounces@lists.linux-foundation.org Message-ID: <20190419042958.mIIssIWe7-Z2VR-sn1MhBwv99sWN3lkpNSRZXw6EcrA@z> T24gVGh1LCAxOCBBcHIgMjAxOSAxNjozNjowMiArMDEwMApKZWFuLVBoaWxpcHBlIEJydWNrZXIg PGplYW4tcGhpbGlwcGUuYnJ1Y2tlckBhcm0uY29tPiB3cm90ZToKCj4gT24gMTYvMDQvMjAxOSAw MDoxMCwgSmFjb2IgUGFuIHdyb3RlOlsuLi5dCj4gPj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIC8qCj4gPj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgKiBSZWdpc3RlciBhIGN1c3RvbSBBU0lEIGFsbG9jYXRvciBpZiB3ZQo+ID4+ID4g YXJlIHJ1bm5pbmcKPiA+PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAqIGluIGEgZ3Vlc3QsIHRoZSBwdXJwb3NlIGlzIHRvIGhhdmUgYQo+ID4+ID4gc3lzdGVtIHdp ZGUgUEFTSUQKPiA+PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAq IG5hbWVzcGFjZSBhbW9uZyBhbGwgUEFTSUQgdXNlcnMuCj4gPj4gPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBOb3RlIHRoYXQgb25seSBvbmUgdklPTU1VIGluIGVh Y2ggZ3Vlc3QKPiA+PiA+IGlzIHN1cHBvcnRlZC7CoCAgIAo+ID4+IAo+ID4+IFdoeSBvbmUgdklP TU1VIHBlciBndWVzdD/CoCBUaGlzIHdvdWxkIHByZXZlbnQgZ3Vlc3RzIHdpdGggbXVsdGlwbGUK PiA+PiBQQ0kgZG9tYWlucyBhaXVpLgo+ID4+ICAgCj4gPiBUaGlzIGlzIG1haW5seSBmb3Igc2lt cGxpY2l0eSByZWFzb25zLiBUaGVzZSBhcmUgYWxsIHZpcnR1YWwgQkRGcwo+ID4gYW55d2F5LiBB cyBsb25nIGFzIGd1ZXN0IEJERiBjYW4gYmUgbWFwcGVkIHRvIGEgaG9zdCBCREYsIGl0IHNob3Vs ZAo+ID4gYmUgc3VmZmljaWVudCwgYW0gSSBtaXNzaW5nIGFueXRoaW5nPwo+ID4gCj4gPiBGcm9t IFBBU0lEIGFsbG9jYXRpb24gcGVyc3BlY3RpdmUsIGl0IGlzIG5vdCB0aWVkIHRvIGFueSBQQ0kg ZGV2aWNlCj4gPiB1bnRpbCBiaW5kIGNhbGwuIFdlIG9ubHkgbmVlZCB0byB0cmFjayBQQVNJRCBv d25lcnNoaXAgcGVyIGd1ZXN0Lgo+ID4gCj4gPiB2aXJ0aW8tSU9NTVUgc3BlYyBkb2VzIHN1cHBv cnQgbXVsdGlwbGUgUENJIGRvbWFpbnMgYnV0IEkgYW0gbm90Cj4gPiBzdXJlIGlmIHRoYXQgYXBw bGllcyB0byBhbGwgYXNzaWduZWQgZGV2aWNlcywgd2hldGhlciBhbGwgYXNzaWduZWQKPiA+IGRl dmljZXMgYXJlIHVuZGVyIHRoZSBzYW1lIGRvbWFpbi4gUGVyaGFwcyBKZWFuIGNhbiBoZWxwIHRv IGNsYXJpZnkKPiA+IGhvdyBQQVNJRCBhbGxvY2F0aW9uIEFQSSBsb29rcyBsaWtlIG9uIHZpcnRp byBJT01NVS4gIAo+IAo+IFtVZ2gsIHRoaXMgaXMgbXVjaCBsb25nZXIgdGhhbiBJIGhvcGVkLiBJ biBzaG9ydCBJIGRvbid0IHRoaW5rCj4gbXVsdGlwbGUgdklPTU1VcyBpcyBhIHByb2JsZW0sIGJl Y2F1c2UgdGhlIGhvc3QgdXNlcyB0aGUgc2FtZQo+IGFsbG9jYXRvciBmb3IgYWxsIG9mIHRoZW0u XQo+IApJIGFncmVlZCwgaXQgaXMgbm90IGFuIGlzc3VlIGFzIGZhciBhcyBQQVNJRCBhbGxvY2F0 aW9uIGlzIGNvbmNlcm5lZC4KPiBZZXMgdGhlcmUgY2FuIGJlIGEgc2luZ2xlIHZpcnRpby1pb21t dSBpbnN0YW5jZSBmb3IgbXVsdGlwbGUgUENJCj4gZG9tYWlucywgb3IgbXVsdGlwbGUgaW5zdGFu Y2VzIGVhY2ggbWFuYWdpbmcgYXNzaWduZWQgZGV2aWNlcy4gSXQncwo+IHVwIHRvIHRoZSBoeXBl cnZpc29yIHRvIGRlY2lkZSBvbiB0aGUgdG9wb2xvZ3kuCj4gCj4gRm9yIExpbnV4IGFuZCBRRU1V IEkgd2FzIGFzc3VtaW5nIHRoYXQgY2hvb3NpbmcgdGhlIHZJT01NVSB1c2VkIGZvcgo+IFBBU0lE IGFsbG9jYXRpb24gaXNuJ3QgYSBiaWcgZGVhbCwgc2luY2UgaW4gdGhlIGVuZCB0aGV5IGFsbCB1 c2UgdGhlCj4gc2FtZSBhbGxvY2F0b3IgaW4gdGhlIGhvc3QuIEl0IGdldHMgY29tcGxpY2F0ZWQg d2hlbiBzb21lIHZJT01NVXMgY2FuCj4gYmUgcmVtb3ZlZCBhdCBydW50aW1lICh1bmxvYWQgdGhl IHZpcnRpby1pb21tdSBtb2R1bGUgdGhhdCB3YXMKPiBwcm92aWRpbmcgdGhlIFBBU0lEIGFsbG9j YXRvciwgYW5kIHRoZW4geW91IGNhbid0IGFsbG9jYXRlIFBBU0lEcyBmb3IKPiB0aGUgVlQtZCBp bnN0YW5jZSBhbnltb3JlKSwgc28gbWF5YmUgbGltaXRpbmcgdG8gb25lIHR5cGUgb2YgdklPTU1V Cj4gKGRvbid0IG1peCBWVC1kIGFuZCB2aXJ0aW8taW9tbXUgaW4gdGhlIHNhbWUgVk0pIGlzIG1v cmUgcmVhc29uYWJsZS4KPiAKSSB0aGluayB5b3UgY2FuIGRlYWwgd2l0aCB0aGUgaG90IHJlbW92 YWwgb2YgdklPTU1VIGJ5IGtlZXBpbmcgbXVsdGlwbGUKYWxsb2NhdG9ycyBpbiBhIGxpc3QuIGku ZS4gd2hlbiB0aGUgc2Vjb25kIHZJT01NVSByZWdpc3RlciBhbgphbGxvY2F0b3IsIGluc3RlYWQg b2YgcmV0dXJuIC1FQlVTWSwgd2UganVzdCBrZWVwIHRoZSBpdCBpbiBiYWNrIHBvY2tldApsaXN0 LiBJZiB0aGUgZmlyc3QgdklPTU1VIGlzIHJlbW92ZWQsIHRoZSBzZWNvbmQgb25lIGNhbiBiZSBw b3BwZWQgb3V0CmludG8gYWN0aW9uIChhbmQgdmlzZSB2ZXJzYSkuIFRoZW4gd2UgYWx3YXlzIGhh dmUgYW4gYWxsb2NhdG9yLgo+IEl0J3MgYSBiaXQgbW9yZSBkZWxpY2F0ZSBmcm9tIHRoZSB2aXJ0 aW8taW9tbXUgcGVyc3BlY3RpdmUuIFRoZQo+IGludGVyZmFjZSBpcyBwb3J0YWJsZSBhbmQgSSBj YW4ndCB0aWUgaXQgZG93biB0byB0aGUgY2hvaWNlcyB3ZSdyZQo+IG1ha2luZyBmb3IgTGludXgg YW5kIEtWTS4gSGF2aW5nIGEgc3lzdGVtLXdpZGUgUEFTSUQgc3BhY2UgaXMgd2hhdCB3ZQo+IHBp Y2tlZCBmb3IgTGludXggYnV0IHRoZSBQQ0llIGFyY2hpdGVjdHVyZSBhbGxvd3MgZm9yIGVhY2gg ZGV2aWNlIHRvCj4gaGF2ZSB0aGVpciBvd24gUEFTSUQgc3BhY2UsIGFuZCBJIHN1cHBvc2Ugc29t ZSBoeXBlcnZpc29ycyBhbmQgZ3Vlc3RzCj4gbWlnaHQgcHJlZmVyIGltcGxlbWVudGluZyBpdCB0 aGF0IHdheS4KPiAKPiBNeSBwbGFuIGZvciB0aGUgbW9tZW50IGlzIHRvIGltcGxlbWVudCBnbG9i YWwgUEFTSUQgYWxsb2NhdGlvbiB1c2luZwo+IG9uZSBmZWF0dXJlIGJpdCBhbmQgdHdvIG5ldyBy ZXF1ZXN0cywgYnV0IGxlYXZlIHNwYWNlIGZvciBhCj4gcGVyLWRldmljZSBQQVNJRCBhbGxvY2F0 aW9uLCBpbnRyb2R1Y2VkIHdpdGggYW5vdGhlciBmZWF0dXJlIGJpdCBpZgo+IG5lY2Vzc2FyeS4g SWYgaXQgZXZlciBnZXRzIGFkZGVkLCBJIGV4cGVjdCB0aGUgcGVyLWRldmljZSBhbGxvY2F0aW9u Cj4gdG8gYmUgZG9uZSBkdXJpbmcgdGhlIGJpbmQgcmVxdWVzdCByYXRoZXIgdGhhbiB3aXRoIGEg c2VwYXJhdGUKPiBQQVNJRF9BTExPQyByZXF1ZXN0Lgo+IAo+IFNvIGN1cnJlbnRseSBJIGhhdmUg YSBuZXcgZmVhdHVyZSBiaXQgYW5kIHR3byBjb21tYW5kczoKPiAKPiAjZGVmaW5lIFZJUlRJT19J T01NVV9GX1BBU0lEX0FMTE9DCj4gI2RlZmluZSBWSVJUSU9fSU9NTVVfVF9BTExPQ19QQVNJRAo+ ICNkZWZpbmUgVklSVElPX0lPTU1VX1RfRlJFRV9QQVNJRAo+IAo+IHN0cnVjdCB2aXJ0aW9faW9t bXVfcmVxX2FsbG9jX3Bhc2lkIHsKPiAgICAgICAgIHN0cnVjdCB2aXJ0aW9faW9tbXVfcmVxX2hl YWQgaGVhZDsKPiAgICAgICAgIHUzMiByZXNlcnZlZDsKPiAKPiAgICAgICAgIC8qIERldmljZS13 cml0ZWFibGUgKi8KPiAgICAgICAgIGxlMzIgcGFzaWQ7Cj4gICAgICAgICBzdHJ1Y3QgdmlydGlv X2lvbW11X3JlcV90YWlsIHRhaWw7Cj4gfTsKPiAKPiBzdHJ1Y3QgdmlydGlvX2lvbW11X3JlcV9m cmVlX3Bhc2lkIHsKPiAgICAgICAgIHN0cnVjdCB2aXJ0aW9faW9tbXVfcmVxX2hlYWQgaGVhZDsK PiAgICAgICAgIHUzMiByZXNlcnZlZDsKPiAgICAgICAgIGxlMzIgcGFzaWQ7Cj4gCj4gICAgICAg ICAvKiBEZXZpY2Utd3JpdGVhYmxlICovCj4gICAgICAgICBzdHJ1Y3QgdmlydGlvX2lvbW11X3Jl cV90YWlsIHRhaWw7Cj4gfTsKPiAKPiBJZiB0aGUgZmVhdHVyZSBiaXQgaXMgb2ZmZXJlZCBpdCBt dXN0IGJlIHVzZWQsIGFuZCB0aGUgZ3Vlc3QgY2FuIG9ubHkKPiB1c2UgUEFTSURzIGFsbG9jYXRl ZCB2aWEgVklSVElPX0lPTU1VX1RfQUxMT0NfUEFTSUQgaW4gaXRzIGJpbmQKPiByZXF1ZXN0cy4K PiAKPiBUaGUgUEFTSUQgc3BhY2UgaXMgZ2xvYmFsIGF0IHRoZSBob3N0IHNjb3BlLiBJZiBtdWx0 aXBsZSB2aXJ0aW8taW9tbXUKPiBkZXZpY2VzIGluIHRoZSBWTSBvZmZlciB0aGUgZmVhdHVyZSBi aXQsIHRoZW4gdXNpbmcgZWl0aGVyIG9mIHRoZWlyCj4gY29tbWFuZCBxdWV1ZSB0byBpc3N1ZSBh IFZJUlRJT19JT01NVV9GX0FMTE9DX1BBU0lEIGFuZAo+IFZJUlRJT19JT01NVV9GX0ZSRUVfUEFT SUQgaXMgZXF1aXZhbGVudC4gQW5vdGhlciBwb3NzaWJpbGl0eSBpcyB0bwo+IHJlcXVpcmUgdGhh dCBvbmx5IG9uZSBvZiB0aGUgdmlydGlvLWlvbW11IGluc3RhbmNlcyBwZXIgVk0gb2ZmZXJzIHRo ZQo+IGZlYXR1cmUgYml0LiBJIGRvIHByZWZlciB0aGlzIG9wdGlvbiwgYnV0IHRoZXJlIGlzIHRo ZSB2SU9NTVUgcmVtb3ZhbAo+IHByb2JsZW0gbWVudGlvbmVkIGFib3ZlIC0gd2hpY2gsIHdpdGgg dGhlIGZpcnN0IG9wdGlvbiwgY291bGQgYmUKPiBzb2x2ZWQgYnkga2VlcGluZyBhIGxpc3Qgb2Yg UEFTSUQgYWxsb2NhdG9yIGZ1bmN0aW9ucyByYXRoZXIgdGhhbiBhCj4gc2luZ2xlIG9uZS4KPiAK PiBJJ20gY29uc2lkZXJpbmcgYWRkaW5nIG1heF9wYXNpZCBmaWVsZCB0bwo+IHZpcnRpb19pb21t dV9yZXFfYWxsb2NfcGFzaWQuIElmIFZJUlRJT19JT01NVV9UX0FMTE9DX1BBU0lEIHJldHVybnMg YQo+IHJhbmRvbSAyMC1iaXQgdmFsdWUgdGhlbiBhIGxvdCBvZiBzcGFjZSBtaWdodCBiZSBuZWVk ZWQgZm9yIHN0b3JpbmcKPiBQQVNJRCBjb250ZXh0cyAoaXMgdGhhdCBhIHJlYWwgY29uY2VybiB0 aG91Z2g/IEZvciBpbnRlcm5hbCBkYXRhIGl0Cj4gY2FuIHVzZSBhIGJpbmFyeSB0cmVlLCBhbmQg dGhlIGd1ZXN0IGlzIG5vdCBpbiBjaGFyZ2Ugb2YgaGFyZHdhcmUKPiBQQVNJRCB0YWJsZXMgaGVy ZSkuIElmIHRoZSBndWVzdCBpcyBzaG9ydCBvbiBtZW1vcnkgdGhlbiBpdCBjb3VsZAo+IGJlbmVm aXQgZnJvbSBhIHNtYWxsZXIgbnVtYmVyIG9mIFBBU0lEIGJpdHMuIFRoYXQgY291bGQgZWl0aGVy IGJlCj4gZ2xvYmFsbHkgY29uZmlndXJhYmxlIGluIHRoZSB2aXJ0aW8taW9tbXUgY29uZmlnIHNw YWNlLCBvciB1c2luZyBhCj4gbWF4X3Bhc2lkIGZpZWxkIGluIHRoZSBWSVJUSU9fSU9NTVVfVF9B TExPQ19QQVNJRCByZXF1ZXN0LiBUaGUgbGF0dGVyCj4gYWxsb3dzIHRvIHN1cHBvcnQgZGV2aWNl cyB3aXRoIGxlc3MgdGhhbiAyMCBQQVNJRCBiaXRzLCB0aG91Z2ggd2UncmUKPiBob3BpbmcgdGhh dCBubyBvbmUgd2lsbCBpbXBsZW1lbnQgdGhhdC4KPiAKU3BhY2UgaXMgbm90IGFuIGNvbmNlcm4g Zm9yIFZ0LWQgdklPTU1VIGluIHRoYXQgd2UgaGF2ZSBhIHR3byBsZXZlbApwYXNpZCB0YWJsZS4g QW5kIHdlIG5lZWQgdG8gc2hhZG93IGFueXdheS4KCklmIGl0IGlzIE9LIHdpdGggeW91LCBJIHdp bGwgc3F1YXNoIG15IGNoYW5nZXMgaW50byB5b3VyIGlvYXNpZCBwYXRjaAphbmQgYWRkcmVzcyB0 aGUgcmV2aWV3IGNvbW1lbnRzIGluIHRoZSB2MiBvZiB0aGlzIHNldCwgT0s/CmkuZS4gCltQQVRD SCAwMi8xOF0gaW9hc2lkOiBBZGQgY3VzdG9tIElPQVNJRCBhbGxvY2F0b3IKW1BBVENIIDAzLzE4 XSBpb2FzaWQ6IENvbnZlcnQgaW9hc2lkX2lkciB0byBYQXJyYXkKCj4gVGhhbmtzLAo+IEplYW4K Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlvbW11IG1h aWxpbmcgbGlzdAppb21tdUBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3Rz LmxpbnV4Zm91bmRhdGlvbi5vcmcvbWFpbG1hbi9saXN0aW5mby9pb21tdQ== 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=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS 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 B4F05C282DA for ; Fri, 19 Apr 2019 18:49:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 821B420645 for ; Fri, 19 Apr 2019 18:49:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727658AbfDSSts convert rfc822-to-8bit (ORCPT ); Fri, 19 Apr 2019 14:49:48 -0400 Received: from mga14.intel.com ([192.55.52.115]:11707 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726195AbfDSStr (ORCPT ); Fri, 19 Apr 2019 14:49:47 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Apr 2019 21:27:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,368,1549958400"; d="scan'208";a="292800020" Received: from jacob-builder.jf.intel.com (HELO jacob-builder) ([10.7.199.155]) by orsmga004.jf.intel.com with ESMTP; 18 Apr 2019 21:27:18 -0700 Date: Thu, 18 Apr 2019 21:29:58 -0700 From: Jacob Pan To: Jean-Philippe Brucker Cc: Alex Williamson , "iommu@lists.linux-foundation.org" , LKML , Joerg Roedel , David Woodhouse , Yi Liu , "Tian, Kevin" , Raj Ashok , Christoph Hellwig , Lu Baolu , Andriy Shevchenko , jacob.jun.pan@linux.intel.com Subject: Re: [PATCH 10/18] iommu/vt-d: Add custom allocator for IOASID Message-ID: <20190418212958.65975103@jacob-builder> In-Reply-To: <70c6b197-029e-94cd-2745-d4a193cbbcd0@arm.com> References: <1554767973-30125-1-git-send-email-jacob.jun.pan@linux.intel.com> <1554767973-30125-11-git-send-email-jacob.jun.pan@linux.intel.com> <20190415143711.13c29308@x1.home> <20190415161015.564cb071@jacob-builder> <70c6b197-029e-94cd-2745-d4a193cbbcd0@arm.com> Organization: OTC X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 18 Apr 2019 16:36:02 +0100 Jean-Philippe Brucker wrote: > On 16/04/2019 00:10, Jacob Pan wrote:[...] > >> > +                   /* > >> > +                    * Register a custom ASID allocator if we > >> > are running > >> > +                    * in a guest, the purpose is to have a > >> > system wide PASID > >> > +                    * namespace among all PASID users. > >> > +                    * Note that only one vIOMMU in each guest > >> > is supported.  > >> > >> Why one vIOMMU per guest?  This would prevent guests with multiple > >> PCI domains aiui. > >> > > This is mainly for simplicity reasons. These are all virtual BDFs > > anyway. As long as guest BDF can be mapped to a host BDF, it should > > be sufficient, am I missing anything? > > > > From PASID allocation perspective, it is not tied to any PCI device > > until bind call. We only need to track PASID ownership per guest. > > > > virtio-IOMMU spec does support multiple PCI domains but I am not > > sure if that applies to all assigned devices, whether all assigned > > devices are under the same domain. Perhaps Jean can help to clarify > > how PASID allocation API looks like on virtio IOMMU. > > [Ugh, this is much longer than I hoped. In short I don't think > multiple vIOMMUs is a problem, because the host uses the same > allocator for all of them.] > I agreed, it is not an issue as far as PASID allocation is concerned. > Yes there can be a single virtio-iommu instance for multiple PCI > domains, or multiple instances each managing assigned devices. It's > up to the hypervisor to decide on the topology. > > For Linux and QEMU I was assuming that choosing the vIOMMU used for > PASID allocation isn't a big deal, since in the end they all use the > same allocator in the host. It gets complicated when some vIOMMUs can > be removed at runtime (unload the virtio-iommu module that was > providing the PASID allocator, and then you can't allocate PASIDs for > the VT-d instance anymore), so maybe limiting to one type of vIOMMU > (don't mix VT-d and virtio-iommu in the same VM) is more reasonable. > I think you can deal with the hot removal of vIOMMU by keeping multiple allocators in a list. i.e. when the second vIOMMU register an allocator, instead of return -EBUSY, we just keep the it in back pocket list. If the first vIOMMU is removed, the second one can be popped out into action (and vise versa). Then we always have an allocator. > It's a bit more delicate from the virtio-iommu perspective. The > interface is portable and I can't tie it down to the choices we're > making for Linux and KVM. Having a system-wide PASID space is what we > picked for Linux but the PCIe architecture allows for each device to > have their own PASID space, and I suppose some hypervisors and guests > might prefer implementing it that way. > > My plan for the moment is to implement global PASID allocation using > one feature bit and two new requests, but leave space for a > per-device PASID allocation, introduced with another feature bit if > necessary. If it ever gets added, I expect the per-device allocation > to be done during the bind request rather than with a separate > PASID_ALLOC request. > > So currently I have a new feature bit and two commands: > > #define VIRTIO_IOMMU_F_PASID_ALLOC > #define VIRTIO_IOMMU_T_ALLOC_PASID > #define VIRTIO_IOMMU_T_FREE_PASID > > struct virtio_iommu_req_alloc_pasid { > struct virtio_iommu_req_head head; > u32 reserved; > > /* Device-writeable */ > le32 pasid; > struct virtio_iommu_req_tail tail; > }; > > struct virtio_iommu_req_free_pasid { > struct virtio_iommu_req_head head; > u32 reserved; > le32 pasid; > > /* Device-writeable */ > struct virtio_iommu_req_tail tail; > }; > > If the feature bit is offered it must be used, and the guest can only > use PASIDs allocated via VIRTIO_IOMMU_T_ALLOC_PASID in its bind > requests. > > The PASID space is global at the host scope. If multiple virtio-iommu > devices in the VM offer the feature bit, then using either of their > command queue to issue a VIRTIO_IOMMU_F_ALLOC_PASID and > VIRTIO_IOMMU_F_FREE_PASID is equivalent. Another possibility is to > require that only one of the virtio-iommu instances per VM offers the > feature bit. I do prefer this option, but there is the vIOMMU removal > problem mentioned above - which, with the first option, could be > solved by keeping a list of PASID allocator functions rather than a > single one. > > I'm considering adding max_pasid field to > virtio_iommu_req_alloc_pasid. If VIRTIO_IOMMU_T_ALLOC_PASID returns a > random 20-bit value then a lot of space might be needed for storing > PASID contexts (is that a real concern though? For internal data it > can use a binary tree, and the guest is not in charge of hardware > PASID tables here). If the guest is short on memory then it could > benefit from a smaller number of PASID bits. That could either be > globally configurable in the virtio-iommu config space, or using a > max_pasid field in the VIRTIO_IOMMU_T_ALLOC_PASID request. The latter > allows to support devices with less than 20 PASID bits, though we're > hoping that no one will implement that. > Space is not an concern for Vt-d vIOMMU in that we have a two level pasid table. And we need to shadow anyway. If it is OK with you, I will squash my changes into your ioasid patch and address the review comments in the v2 of this set, OK? i.e. [PATCH 02/18] ioasid: Add custom IOASID allocator [PATCH 03/18] ioasid: Convert ioasid_idr to XArray > Thanks, > Jean