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=-8.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,MAILING_LIST_MULTI, SPF_HELO_NONE,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 0CDF2C2B9F8 for ; Mon, 24 May 2021 18:12:33 +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 C176C600D1 for ; Mon, 24 May 2021 18:12:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C176C600D1 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.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 E660D6E214; Mon, 24 May 2021 18:12:30 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id DF4406E214; Mon, 24 May 2021 18:12:28 +0000 (UTC) IronPort-SDR: Uom0dkArOJsA1fqx3sQkH//72xcf6lkRZz8XDBITzsSFzlv9XEKxxsRVK5NRgcuddpmbv9t/P3 Wc8JPznMVVrA== X-IronPort-AV: E=McAfee;i="6200,9189,9993"; a="223155277" X-IronPort-AV: E=Sophos;i="5.82,325,1613462400"; d="scan'208";a="223155277" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 May 2021 11:12:28 -0700 IronPort-SDR: MzMrCTn+8MtjrwfYKbbu/od2RURmBiVbMlUuQsB7YxDVefBLGLkeEc+1a1FJlOr5Q6TGYzyvXi 4vig1xd+o14A== X-IronPort-AV: E=Sophos;i="5.82,325,1613462400"; d="scan'208";a="475997705" Received: from clanggaa-mobl1.ger.corp.intel.com ([10.249.254.179]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 May 2021 11:12:26 -0700 Message-ID: Subject: Re: [Intel-gfx] [PATCH v3 07/12] drm, drm/i915: Move the memcpy_from_wc functionality to core drm From: Thomas =?ISO-8859-1?Q?Hellstr=F6m?= To: Matthew Auld Date: Mon, 24 May 2021 20:12:23 +0200 In-Reply-To: References: <20210521153253.518037-1-thomas.hellstrom@linux.intel.com> <20210521153253.518037-8-thomas.hellstrom@linux.intel.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.38.4 (3.38.4-1.fc33) MIME-Version: 1.0 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 , Intel Graphics Development , Christian =?ISO-8859-1?Q?K=F6nig?= , ML dri-devel Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On Mon, 2021-05-24 at 17:45 +0100, Matthew Auld wrote: > On Fri, 21 May 2021 at 16:33, Thomas Hellström > wrote: > > > > Memcpy from wc will be used as well by TTM memcpy. > > Move it to core drm, and make the interface do the right thing > > even on !X86. > > > > Cc: Christian König > > Cc: Daniel Vetter > > Cc: Dave Airlie > > Signed-off-by: Thomas Hellström > > --- > > > > > + > > +#ifdef CONFIG_X86 > > +bool drm_memcpy_from_wc(void *dst, const void *src, unsigned long > > len); > > +bool drm_memcpy_from_wc_dbm(struct dma_buf_map *dst, > > +                           const struct dma_buf_map *src, > > +                           unsigned long len); > > +void drm_unaligned_memcpy_from_wc(void *dst, const void *src, > > unsigned long len); > > + > > +/* The movntdqa instructions used for memcpy-from-wc require 16- > > byte alignment, > > + * as well as SSE4.1 support. drm_memcpy_from_wc() will report if > > it cannot > > + * perform the operation. To check beforehand, pass in the > > parameters to > > + * drm_can_memcpy_from_wc() - since we only care about the low 4 > > bits, > > + * you only need to pass in the minor offsets, page-aligned > > pointers are > > + * always valid. > > + * > > + * For just checking for SSE4.1, in the foreknowledge that the > > future use > > + * will be correctly aligned, just use drm_has_memcpy_from_wc(). > > + */ > > +#define drm_can_memcpy_from_wc(dst, src, len) \ > > +       drm_memcpy_from_wc((void *)((unsigned long)(dst) | > > (unsigned long)(src) | (len)), NULL, 0) > > + > > +#define drm_has_memcpy_from_wc() \ > > +       drm_memcpy_from_wc(NULL, NULL, 0) > > + > > +void drm_memcpy_init_early(void); > > + > > +#else > > + > > +#define drm_memcpy_from_wc(_dst, _src, _len) (false) > > +#define drm_memcpy_from_wc_dbm(_dst, _src, _len) (false) > > +#define drm_can_memcpy_from_wc(_dst, _src, _len) (false) > > +#define drm_has_memcpy_from_wc() (false) > > Does the compiler not complain for these on !x86, if called without > checking the result of the statement? Maybe just make these function > stubs? > > Otherwise, > Reviewed-by: Matthew Auld Hmm, you're right. I'll fix. Thanks for reviewing! /Thomas 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=-8.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,MAILING_LIST_MULTI, SPF_HELO_NONE,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 103A5C47084 for ; Mon, 24 May 2021 18:12:33 +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 9A5A3613F4 for ; Mon, 24 May 2021 18:12:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9A5A3613F4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.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 0CE546E8E2; Mon, 24 May 2021 18:12:31 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id DF4406E214; Mon, 24 May 2021 18:12:28 +0000 (UTC) IronPort-SDR: Uom0dkArOJsA1fqx3sQkH//72xcf6lkRZz8XDBITzsSFzlv9XEKxxsRVK5NRgcuddpmbv9t/P3 Wc8JPznMVVrA== X-IronPort-AV: E=McAfee;i="6200,9189,9993"; a="223155277" X-IronPort-AV: E=Sophos;i="5.82,325,1613462400"; d="scan'208";a="223155277" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 May 2021 11:12:28 -0700 IronPort-SDR: MzMrCTn+8MtjrwfYKbbu/od2RURmBiVbMlUuQsB7YxDVefBLGLkeEc+1a1FJlOr5Q6TGYzyvXi 4vig1xd+o14A== X-IronPort-AV: E=Sophos;i="5.82,325,1613462400"; d="scan'208";a="475997705" Received: from clanggaa-mobl1.ger.corp.intel.com ([10.249.254.179]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 May 2021 11:12:26 -0700 Message-ID: From: Thomas =?ISO-8859-1?Q?Hellstr=F6m?= To: Matthew Auld Date: Mon, 24 May 2021 20:12:23 +0200 In-Reply-To: References: <20210521153253.518037-1-thomas.hellstrom@linux.intel.com> <20210521153253.518037-8-thomas.hellstrom@linux.intel.com> User-Agent: Evolution 3.38.4 (3.38.4-1.fc33) MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH v3 07/12] drm, drm/i915: Move the memcpy_from_wc functionality to core drm 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 , Intel Graphics Development , Christian =?ISO-8859-1?Q?K=F6nig?= , ML dri-devel Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gTW9uLCAyMDIxLTA1LTI0IGF0IDE3OjQ1ICswMTAwLCBNYXR0aGV3IEF1bGQgd3JvdGU6Cj4g T24gRnJpLCAyMSBNYXkgMjAyMSBhdCAxNjozMywgVGhvbWFzIEhlbGxzdHLDtm0KPiA8dGhvbWFz LmhlbGxzdHJvbUBsaW51eC5pbnRlbC5jb20+IHdyb3RlOgo+ID4gCj4gPiBNZW1jcHkgZnJvbSB3 YyB3aWxsIGJlIHVzZWQgYXMgd2VsbCBieSBUVE0gbWVtY3B5Lgo+ID4gTW92ZSBpdCB0byBjb3Jl IGRybSwgYW5kIG1ha2UgdGhlIGludGVyZmFjZSBkbyB0aGUgcmlnaHQgdGhpbmcKPiA+IGV2ZW4g b24gIVg4Ni4KPiA+IAo+ID4gQ2M6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdA YW1kLmNvbT4KPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+ ID4gQ2M6IERhdmUgQWlybGllIDxhaXJsaWVkQGdtYWlsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6 IFRob21hcyBIZWxsc3Ryw7ZtIDx0aG9tYXMuaGVsbHN0cm9tQGxpbnV4LmludGVsLmNvbT4KPiA+ IC0tLQo+IAo+IDxzbmlwPgo+IAo+ID4gKwo+ID4gKyNpZmRlZiBDT05GSUdfWDg2Cj4gPiArYm9v bCBkcm1fbWVtY3B5X2Zyb21fd2Modm9pZCAqZHN0LCBjb25zdCB2b2lkICpzcmMsIHVuc2lnbmVk IGxvbmcKPiA+IGxlbik7Cj4gPiArYm9vbCBkcm1fbWVtY3B5X2Zyb21fd2NfZGJtKHN0cnVjdCBk bWFfYnVmX21hcCAqZHN0LAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgY29uc3Qgc3RydWN0IGRtYV9idWZfbWFwICpzcmMsCj4gPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25l ZCBsb25nIGxlbik7Cj4gPiArdm9pZCBkcm1fdW5hbGlnbmVkX21lbWNweV9mcm9tX3djKHZvaWQg KmRzdCwgY29uc3Qgdm9pZCAqc3JjLAo+ID4gdW5zaWduZWQgbG9uZyBsZW4pOwo+ID4gKwo+ID4g Ky8qIFRoZSBtb3ZudGRxYSBpbnN0cnVjdGlvbnMgdXNlZCBmb3IgbWVtY3B5LWZyb20td2MgcmVx dWlyZSAxNi0KPiA+IGJ5dGUgYWxpZ25tZW50LAo+ID4gKyAqIGFzIHdlbGwgYXMgU1NFNC4xIHN1 cHBvcnQuIGRybV9tZW1jcHlfZnJvbV93YygpIHdpbGwgcmVwb3J0IGlmCj4gPiBpdCBjYW5ub3QK PiA+ICsgKiBwZXJmb3JtIHRoZSBvcGVyYXRpb24uIFRvIGNoZWNrIGJlZm9yZWhhbmQsIHBhc3Mg aW4gdGhlCj4gPiBwYXJhbWV0ZXJzIHRvCj4gPiArICogZHJtX2Nhbl9tZW1jcHlfZnJvbV93Yygp IC0gc2luY2Ugd2Ugb25seSBjYXJlIGFib3V0IHRoZSBsb3cgNAo+ID4gYml0cywKPiA+ICsgKiB5 b3Ugb25seSBuZWVkIHRvIHBhc3MgaW4gdGhlIG1pbm9yIG9mZnNldHMsIHBhZ2UtYWxpZ25lZAo+ ID4gcG9pbnRlcnMgYXJlCj4gPiArICogYWx3YXlzIHZhbGlkLgo+ID4gKyAqCj4gPiArICogRm9y IGp1c3QgY2hlY2tpbmcgZm9yIFNTRTQuMSwgaW4gdGhlIGZvcmVrbm93bGVkZ2UgdGhhdCB0aGUK PiA+IGZ1dHVyZSB1c2UKPiA+ICsgKiB3aWxsIGJlIGNvcnJlY3RseSBhbGlnbmVkLCBqdXN0IHVz ZSBkcm1faGFzX21lbWNweV9mcm9tX3djKCkuCj4gPiArICovCj4gPiArI2RlZmluZSBkcm1fY2Fu X21lbWNweV9mcm9tX3djKGRzdCwgc3JjLCBsZW4pIFwKPiA+ICvCoMKgwqDCoMKgwqAgZHJtX21l bWNweV9mcm9tX3djKCh2b2lkICopKCh1bnNpZ25lZCBsb25nKShkc3QpIHwKPiA+ICh1bnNpZ25l ZCBsb25nKShzcmMpIHwgKGxlbikpLCBOVUxMLCAwKQo+ID4gKwo+ID4gKyNkZWZpbmUgZHJtX2hh c19tZW1jcHlfZnJvbV93YygpIFwKPiA+ICvCoMKgwqDCoMKgwqAgZHJtX21lbWNweV9mcm9tX3dj KE5VTEwsIE5VTEwsIDApCj4gPiArCj4gPiArdm9pZCBkcm1fbWVtY3B5X2luaXRfZWFybHkodm9p ZCk7Cj4gPiArCj4gPiArI2Vsc2UKPiA+ICsKPiA+ICsjZGVmaW5lIGRybV9tZW1jcHlfZnJvbV93 YyhfZHN0LCBfc3JjLCBfbGVuKSAoZmFsc2UpCj4gPiArI2RlZmluZSBkcm1fbWVtY3B5X2Zyb21f d2NfZGJtKF9kc3QsIF9zcmMsIF9sZW4pIChmYWxzZSkKPiA+ICsjZGVmaW5lIGRybV9jYW5fbWVt Y3B5X2Zyb21fd2MoX2RzdCwgX3NyYywgX2xlbikgKGZhbHNlKQo+ID4gKyNkZWZpbmUgZHJtX2hh c19tZW1jcHlfZnJvbV93YygpIChmYWxzZSkKPiAKPiBEb2VzIHRoZSBjb21waWxlciBub3QgY29t cGxhaW4gZm9yIHRoZXNlIG9uICF4ODYsIGlmIGNhbGxlZCB3aXRob3V0Cj4gY2hlY2tpbmcgdGhl IHJlc3VsdCBvZiB0aGUgc3RhdGVtZW50PyBNYXliZSBqdXN0IG1ha2UgdGhlc2UgZnVuY3Rpb24K PiBzdHVicz8KPiAKPiBPdGhlcndpc2UsCj4gUmV2aWV3ZWQtYnk6IE1hdHRoZXcgQXVsZCA8bWF0 dGhldy5hdWxkQGludGVsLmNvbT4KCkhtbSwgeW91J3JlIHJpZ2h0LiBJJ2xsIGZpeC4gVGhhbmtz IGZvciByZXZpZXdpbmchCgovVGhvbWFzCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==