Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3230371pxf; Mon, 15 Mar 2021 05:02:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy0euXm552gdsbsCtmcx4Pc5hv+7Ab055ucWSbMEpecdAcazvGe/6MLp9yu7GyeRZoJg+hX X-Received: by 2002:a17:906:32da:: with SMTP id k26mr23093139ejk.483.1615809761156; Mon, 15 Mar 2021 05:02:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1615809761; cv=none; d=google.com; s=arc-20160816; b=ZWP5iOj+MVUq6eoc4I8HoePFXZdw6ZAjOF3iGOI/C4aLomWHgTzniX8RdE88DsIDIB nkaeh7wup2e3rl9gLhm5U9uA1tbSwbr8Inj6OTljvLDOpde7zp36F4YK+5ECbIPdKLn0 3NU1OiQhzsyqDkkf2i7aTTGtj3Q6PVcHVr08z6QsigzldcQIIYeoLCnev5aowkCsiQxL Ysdnes6Uq8N6NO8uH/0Yx24GZZDZYT3gHxs4MPBtGUH6jmyItJYgyTYs9EYt5yWGQxKp KWLrHdx+GUpK1ggDCBVQ/qrNz3PbZZNuvdW99Bp3VGpFnoWxv5cg2LJTnmoaGy7xU444 FjOQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:cc:to:subject:from:date; bh=TmEe/QjI3Aw0Wr7QhGHZtr2KLRdjxHJUPFxOZB61E30=; b=vLInyicyP+F6AKg0X570znbINfgBA1rAXxuys6gUf4uSwa2vWXSQ5PMNqocsBQ/b25 Fd81dsH7A0jCXfujpmJdCioJVROs9oyrQcGIaoKj1bhQNSsGwWJlTt9SeFWa3YcKvURu M5gIGFa1CqYvFYx6OQSAWiB4sp4c9Vyzfu27LZYQFxO1kTNsDbG/1nbUXANeIzzQ2L2i dvrjYMrKTrfVr9HGkI1XfaRaPwRiQf3yKcgXPCyRkcQrZVXxKmJWTxL2dECrR8umDwqH 2uj4MXpNagGHiZzjTGJS1s7vxeZcwd6o0qJeHu1Y45RKhsBanZaVisYZp2RoOivLhF1a CyNg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=crapouillou.net Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v5si10879954edx.253.2021.03.15.05.02.13; Mon, 15 Mar 2021 05:02:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=crapouillou.net Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229559AbhCOMAe convert rfc822-to-8bit (ORCPT + 99 others); Mon, 15 Mar 2021 08:00:34 -0400 Received: from aposti.net ([89.234.176.197]:52818 "EHLO aposti.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229518AbhCOMAQ (ORCPT ); Mon, 15 Mar 2021 08:00:16 -0400 Date: Mon, 15 Mar 2021 11:59:50 +0000 From: Paul Cercueil Subject: Re: [PATCH v2 4/5] drm: Add and export function drm_gem_cma_sync_data To: Thomas Zimmermann Cc: Christoph Hellwig , Maarten Lankhorst , Maxime Ripard , David Airlie , Daniel Vetter , Sam Ravnborg , od@zcrc.me, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org Message-Id: In-Reply-To: <9c3c8e15-9e8c-4413-e75b-de989a750954@suse.de> References: <20210307202835.253907-1-paul@crapouillou.net> <20210307202835.253907-5-paul@crapouillou.net> <20210311122846.GC1739082@infradead.org> <9c3c8e15-9e8c-4413-e75b-de989a750954@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: 8BIT Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Thomas, Le lun. 15 mars 2021 ? 8:43, Thomas Zimmermann a ?crit : > Hi > > Am 11.03.21 um 13:33 schrieb Paul Cercueil: >> >> >> Le jeu. 11 mars 2021 ? 12:28, Christoph Hellwig >> a ?crit : >>> On Sun, Mar 07, 2021 at 08:28:34PM +0000, Paul Cercueil wrote: >>>> + drm_atomic_for_each_plane_damage(&iter, &clip) { >>>> + for (i = 0; i < finfo->num_planes; i++) { >>>> + daddr = drm_fb_cma_get_gem_addr(state->fb, state, i); >>>> + >>>> + /* Ignore x1/x2 values, invalidate complete lines */ >>>> + offset = clip.y1 * state->fb->pitches[i]; >>>> + >>>> + dma_sync_single_for_device(dev, daddr + offset, >>>> + (clip.y2 - clip.y1) * >>>> state->fb->pitches[i], >>>> + DMA_TO_DEVICE); >>> >>> Are these helpers only ever used to transfer data to the device and >>> never from it? If so please clearly document that. >> >> Yes. In the DRM world, are there cases where we transfer data from >> the device? I assume these cases are handled by v4l2 instead. > > Software rendering (i.e., anything wrt dumb buffers) likely reads > back framebuffer content during blit operations. For devices where > this is a slow operation (e.g., PCI read) we set struct > drm_mode_config.prefer_shadow to hint renderers to use shadow > buffering. This has been brought up a few times already. I answered that in the cover letter. In my case, *writes* (e.g. dumb memcpy) are also slower with a write-combine buffer than with a non-coherent buffer + cache sync. So a shadow buffer does nothing for me. Cheers, -Paul