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=-15.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 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 33153C47082 for ; Tue, 8 Jun 2021 09:57:26 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 E54E860FDA for ; Tue, 8 Jun 2021 09:57:25 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E54E860FDA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7AAF76EB9A; Tue, 8 Jun 2021 09:57:25 +0000 (UTC) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 51F506EB9A; Tue, 8 Jun 2021 09:57:24 +0000 (UTC) IronPort-SDR: dpJ8iqeMshQfBrFeQorWkY34Ah3TuyiaIOMfh17lgWC0nEFB5dBpL6O3ewpNsxGbWfLd2AKrqt IjNsS6DMGstA== X-IronPort-AV: E=McAfee;i="6200,9189,10008"; a="184497863" X-IronPort-AV: E=Sophos;i="5.83,257,1616482800"; d="scan'208";a="184497863" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jun 2021 02:57:23 -0700 IronPort-SDR: /hdK1PNlNI5g+cP3Eyv8o4vvczEYtQFVh+GWXZtkXDbYrmHjC/ZNijYJqVbEkiDQVqWH3M6B48 gi7y7js4ZCMw== X-IronPort-AV: E=Sophos;i="5.83,257,1616482800"; d="scan'208";a="485157306" Received: from mrahim1x-mobl.gar.corp.intel.com (HELO [10.215.170.251]) ([10.215.170.251]) by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jun 2021 02:57:20 -0700 To: =?UTF-8?Q?Thomas_Hellstr=c3=b6m?= , intel-gfx@lists.freedesktop.org References: <20210602093636.167070-1-matthew.auld@intel.com> <3af30ebb-a46b-2b21-57b0-988b2400ac08@linux.intel.com> From: Matthew Auld Message-ID: Date: Tue, 8 Jun 2021 10:57:13 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: <3af30ebb-a46b-2b21-57b0-988b2400ac08@linux.intel.com> Content-Language: en-GB Subject: Re: [Intel-gfx] [PATCH] drm/i915/gem/mman: only allow WC for lmem X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , dri-devel@lists.freedesktop.org Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gMDIvMDYvMjAyMSAxMzowMCwgVGhvbWFzIEhlbGxzdHLDtm0gd3JvdGU6Cj4gSGksCj4gCj4g T24gNi8yLzIxIDExOjM2IEFNLCBNYXR0aGV3IEF1bGQgd3JvdGU6Cj4+IEZvciBkZ2Z4IHdoZXJl IHdlIG5vdyBoYXZlIGxtZW0gYW5kIHR0bSwgd2UgY2FuIG9ubHkgc3VwcG9ydCBzaW5nbGUgbW1h cAo+PiBtb2RlIGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIG9iamVjdCwgYW5kIGZvciBsbWVtIG9i amVjdHMgdGhpcyBzaG91bGQgYmUKPj4gV0MsIHNvIHJlamVjdCBhbGwgb3RoZXIgbWFwcGluZyBt b2RlcyBmb3IgbW1hcF9vZmZzZXQsIGluY2x1ZGluZyBpZiB0aGUKPj4gb2JqZWN0IGNhbiBiZSBw bGFjZWQgaW4gYm90aCBzbWVtIGFuZCBsbWVtLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3 IEF1bGQgPG1hdHRoZXcuYXVsZEBpbnRlbC5jb20+Cj4+IENjOiBUaG9tYXMgSGVsbHN0csO2bSA8 dGhvbWFzLmhlbGxzdHJvbUBsaW51eC5pbnRlbC5jb20+Cj4+IENjOiBNYWFydGVuIExhbmtob3Jz dCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+PiBDYzogRGFuaWVsIFZldHRl ciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPj4gLS0tCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2dlbS9pOTE1X2dlbV9tbWFuLmPCoMKgIHzCoCA0ICsrKysKPj4gwqAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jIHwgMjIgKysrKysrKysrKysrKysrKysrKysr Kwo+PiDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmggfMKgIDQg KysrKwo+PiDCoCAzIGZpbGVzIGNoYW5nZWQsIDMwIGluc2VydGlvbnMoKykKPj4KPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmMgCj4+IGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4uYwo+PiBpbmRleCBmZDFjOTcxNGY4 ZDguLjMyZjg4ZjIzNjc3MSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX21tYW4uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9n ZW1fbW1hbi5jCj4+IEBAIC02ODksNiArNjg5LDEwIEBAIF9fYXNzaWduX21tYXBfb2Zmc2V0KHN0 cnVjdCBkcm1fZmlsZSAqZmlsZSwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gb3V0Owo+PiDC oMKgwqDCoMKgIH0KPj4gK8KgwqDCoCBpZiAobW1hcF90eXBlICE9IEk5MTVfTU1BUF9UWVBFX1dD ICYmCj4+ICvCoMKgwqDCoMKgwqDCoCBpOTE1X2dlbV9vYmplY3RfcGxhY2VtZW50c19jb250YWlu X3R5cGUob2JqLCAKPj4gSU5URUxfTUVNT1JZX0xPQ0FMKSkKPj4gK8KgwqDCoMKgwqDCoMKgIHJl dHVybiAtRU5PREVWOwo+PiArCj4gCj4gSSB0aGluayB3ZSB3aWxsIGFsc28gaGF2ZSB0aGUgcmVz dHJpY3Rpb24gdGhhdCBhbnkgb3RoZXIgb2JqZWN0cyBvbiBER0ZYIAo+IGNhbiBvbmx5IGJlIG1h cHBlZCBjYWNoZWQ/IEF0IGxlYXN0IHRoYXQncyB3aGF0IHRoZSBUVE0gY29kZSBpcyAKPiBpbXBs ZW1lbnRpbmcgY3VycmVudGx5LgoKWWVhaCwgd2l0aCB0aGlzIHBhdGNoIHRoZSBjYWNoaW5nIG1v ZGUgc2hvdWxkIG5vdyBhdCBsZWFzdCBiZSBjb25zaXN0ZW50IApmb3IgbG1lbSBvYmplY3RzLCBm b3Igc21lbSB3ZSBzdGlsbCBuZWVkIG1vcmUgcGF0Y2hlcy4KCj4gCj4gCj4+IMKgwqDCoMKgwqAg bW1vID0gbW1hcF9vZmZzZXRfYXR0YWNoKG9iaiwgbW1hcF90eXBlLCBmaWxlKTsKPj4gwqDCoMKg wqDCoCBpZiAoSVNfRVJSKG1tbykpIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGVyciA9IFBUUl9F UlIobW1vKTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dl bV9vYmplY3QuYyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0 LmMKPj4gaW5kZXggMmJlNjEwOWQwMDkzLi5kNGIwZGE4ZWQ5NjkgMTAwNjQ0Cj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYwo+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmMKPj4gQEAgLTQwMyw2ICs0MDMsMjgg QEAgaW50IGk5MTVfZ2VtX29iamVjdF9yZWFkX2Zyb21fcGFnZShzdHJ1Y3QgCj4+IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwgdTY0IG9mZnNldCwKPj4gwqDCoMKgwqDCoCByZXR1cm4gMDsKPj4g wqAgfQo+PiArLyoqCj4+ICsgKiBpOTE1X2dlbV9vYmplY3RfcGxhY2VtZW50c19jb250YWluX3R5 cGUgLSBDaGVjayB3aGV0aGVyIHRoZSBvYmplY3QgCj4+IGNhbiBiZQo+PiArICogcGxhY2VkIGF0 IGNlcnRhaW4gbWVtb3J5IHR5cGUKPj4gKyAqIEBvYmo6IFBvaW50ZXIgdG8gdGhlIG9iamVjdAo+ PiArICogQHR5cGU6IFRoZSBtZW1vcnkgdHlwZSB0byBjaGVjawo+PiArICoKPj4gKyAqIFJldHVy bjogVHJ1ZSBpZiB0aGUgb2JqZWN0IGNhbiBiZSBwbGFjZWQgaW4gQHR5cGUuIEZhbHNlIG90aGVy d2lzZS4KPj4gKyAqLwo+PiArYm9vbCBpOTE1X2dlbV9vYmplY3RfcGxhY2VtZW50c19jb250YWlu X3R5cGUoc3RydWN0IAo+PiBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW51bSBpbnRlbF9tZW1vcnlf dHlwZSB0eXBlKQo+PiArewo+PiArwqDCoMKgIHVuc2lnbmVkIGludCBpOwo+PiArCj4+ICvCoMKg wqAgLyogVE9ETzogY29uc2lkZXIgbWF5YmUgc3RvcmluZyBhcyBhIG1hc2sgd2hlbiBkb2luZyAK Pj4gZ2VtX2NyZWF0ZV9leHQgKi8KPj4gK8KgwqDCoCBmb3IgKGkgPSAwOyBpIDwgb2JqLT5tbS5u X3BsYWNlbWVudHM7IGkrKykgewo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKG9iai0+bW0ucGxhY2Vt ZW50c1tpXS0+dHlwZSA9PSB0eXBlKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4g dHJ1ZTsKPj4gK8KgwqDCoCB9Cj4+ICsKPj4gK8KgwqDCoCByZXR1cm4gZmFsc2U7Cj4+ICt9Cj4+ ICsKPiAKPiBEbyB3ZSBuZWVkIHNvbWV0aGluZyBmb3IgdGhlIGluLWtlcm5lbCBtYXBwaW5ncyBh cyB3ZWxsPyBPciBqdXN0IHJldHVybiAKPiBhIG1hcHBpbmcgd2l0aCB0aGUgb25seSBhbGxvd2Vk IGNhY2hpbmcgbW9kZT8KCkZvciBsbWVtIGV2ZXJ5dGhpbmcgc2hvdWxkIGFscmVhZHkgYmUgV0Mg Zm9yIGluLWtlcm5lbCBtYXBwaW5ncy4gRm9yIApldmVyeXRoaW5nIGVsc2Ugd2hpY2ggdXNlcyBw aW5fbWFwKCkgd2Ugd2lsbCBuZWVkIHRvIGRlZmF1bHQgdG8gY2FjaGVkLiAKSSBndWVzcyBqdXN0 IGFkZCBhIGRpZmZlcmVudCBoZWxwZXIgZm9yIHRoaXM/IFdlIHNob3VsZCBwcm9iYWJseSBhbHNv IAphZGp1c3QgdGhlIG9iai0+Y2FjaGVfbGV2ZWwgZm9yIGRnMS4KCj4gCj4gL1Rob21hcwo+IAo+ IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK 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=-15.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 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 19989C4743D for ; Tue, 8 Jun 2021 09:57:28 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 B28F261185 for ; Tue, 8 Jun 2021 09:57:27 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B28F261185 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B647D6EB9D; Tue, 8 Jun 2021 09:57:25 +0000 (UTC) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 51F506EB9A; Tue, 8 Jun 2021 09:57:24 +0000 (UTC) IronPort-SDR: dpJ8iqeMshQfBrFeQorWkY34Ah3TuyiaIOMfh17lgWC0nEFB5dBpL6O3ewpNsxGbWfLd2AKrqt IjNsS6DMGstA== X-IronPort-AV: E=McAfee;i="6200,9189,10008"; a="184497863" X-IronPort-AV: E=Sophos;i="5.83,257,1616482800"; d="scan'208";a="184497863" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jun 2021 02:57:23 -0700 IronPort-SDR: /hdK1PNlNI5g+cP3Eyv8o4vvczEYtQFVh+GWXZtkXDbYrmHjC/ZNijYJqVbEkiDQVqWH3M6B48 gi7y7js4ZCMw== X-IronPort-AV: E=Sophos;i="5.83,257,1616482800"; d="scan'208";a="485157306" Received: from mrahim1x-mobl.gar.corp.intel.com (HELO [10.215.170.251]) ([10.215.170.251]) by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jun 2021 02:57:20 -0700 Subject: Re: [PATCH] drm/i915/gem/mman: only allow WC for lmem To: =?UTF-8?Q?Thomas_Hellstr=c3=b6m?= , intel-gfx@lists.freedesktop.org References: <20210602093636.167070-1-matthew.auld@intel.com> <3af30ebb-a46b-2b21-57b0-988b2400ac08@linux.intel.com> From: Matthew Auld Message-ID: Date: Tue, 8 Jun 2021 10:57:13 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: <3af30ebb-a46b-2b21-57b0-988b2400ac08@linux.intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 8bit X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , dri-devel@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On 02/06/2021 13:00, Thomas Hellström wrote: > Hi, > > On 6/2/21 11:36 AM, Matthew Auld wrote: >> For dgfx where we now have lmem and ttm, we can only support single mmap >> mode for the lifetime of the object, and for lmem objects this should be >> WC, so reject all other mapping modes for mmap_offset, including if the >> object can be placed in both smem and lmem. >> >> Signed-off-by: Matthew Auld >> Cc: Thomas Hellström >> Cc: Maarten Lankhorst >> Cc: Daniel Vetter >> --- >>   drivers/gpu/drm/i915/gem/i915_gem_mman.c   |  4 ++++ >>   drivers/gpu/drm/i915/gem/i915_gem_object.c | 22 ++++++++++++++++++++++ >>   drivers/gpu/drm/i915/gem/i915_gem_object.h |  4 ++++ >>   3 files changed, 30 insertions(+) >> >> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c >> b/drivers/gpu/drm/i915/gem/i915_gem_mman.c >> index fd1c9714f8d8..32f88f236771 100644 >> --- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c >> +++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c >> @@ -689,6 +689,10 @@ __assign_mmap_offset(struct drm_file *file, >>           goto out; >>       } >> +    if (mmap_type != I915_MMAP_TYPE_WC && >> +        i915_gem_object_placements_contain_type(obj, >> INTEL_MEMORY_LOCAL)) >> +        return -ENODEV; >> + > > I think we will also have the restriction that any other objects on DGFX > can only be mapped cached? At least that's what the TTM code is > implementing currently. Yeah, with this patch the caching mode should now at least be consistent for lmem objects, for smem we still need more patches. > > >>       mmo = mmap_offset_attach(obj, mmap_type, file); >>       if (IS_ERR(mmo)) { >>           err = PTR_ERR(mmo); >> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.c >> b/drivers/gpu/drm/i915/gem/i915_gem_object.c >> index 2be6109d0093..d4b0da8ed969 100644 >> --- a/drivers/gpu/drm/i915/gem/i915_gem_object.c >> +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.c >> @@ -403,6 +403,28 @@ int i915_gem_object_read_from_page(struct >> drm_i915_gem_object *obj, u64 offset, >>       return 0; >>   } >> +/** >> + * i915_gem_object_placements_contain_type - Check whether the object >> can be >> + * placed at certain memory type >> + * @obj: Pointer to the object >> + * @type: The memory type to check >> + * >> + * Return: True if the object can be placed in @type. False otherwise. >> + */ >> +bool i915_gem_object_placements_contain_type(struct >> drm_i915_gem_object *obj, >> +                         enum intel_memory_type type) >> +{ >> +    unsigned int i; >> + >> +    /* TODO: consider maybe storing as a mask when doing >> gem_create_ext */ >> +    for (i = 0; i < obj->mm.n_placements; i++) { >> +        if (obj->mm.placements[i]->type == type) >> +            return true; >> +    } >> + >> +    return false; >> +} >> + > > Do we need something for the in-kernel mappings as well? Or just return > a mapping with the only allowed caching mode? For lmem everything should already be WC for in-kernel mappings. For everything else which uses pin_map() we will need to default to cached. I guess just add a different helper for this? We should probably also adjust the obj->cache_level for dg1. > > /Thomas > >