Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp9404235ybi; Wed, 10 Jul 2019 09:40:39 -0700 (PDT) X-Google-Smtp-Source: APXvYqzNxXIByFgUxAdsqcSGTXoebCM4Hcz3zG6i5PIwNqx7wkWpz5M1e94CzWDvcXhSbbn/hopI X-Received: by 2002:a17:902:d90a:: with SMTP id c10mr39164255plz.208.1562776838957; Wed, 10 Jul 2019 09:40:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562776838; cv=none; d=google.com; s=arc-20160816; b=ne+1rWipRZGfkFUp/Ror1DXnffFKtw01wuirceQoV+ITccgXUtmZ9LYydPwq0pBhpi CUSIz4oaOrW+zO1XyjZukYRDqTN1rHNtg4aGjq0U//K3eQToSXwTi3mdEI2g/8ch+796 m2XSg+8A8lVdQJQgOHW/c0/XjWV3afQR80hymUSQGSgb71yjI//skx0/5SB8tguTggUv xJvxM8S+iYhgwU7ps66qFb4qhc8FFG/ix+hSlXGVzRoN/OT6lnoa+E7Zz8kvBCknjM5y KQrHUQpJOsA4zOXrZU6w1sYypsCWIdKYUWjnM/1u8BZmyFQjqOwZttRlFIFoGeMlMgtw +jfg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:mail-followup-to :message-id:subject:cc:to:from:date:dkim-signature; bh=HvP9tTAwaaYJMZBGKOx/DXOnWdBe7zTCNsTQBUNN9UU=; b=WsulqXxMSTFD5oNGFReLssFIXG1Po26RBK0bbdml9XD2XBfQuIvQTZGZzPbW+czu2t x5dxQ/DkHbYhRxuCaiR0821g8WDXt1AzL4QVQe49PO5iuqAzApzV28ttB2ikKiAXbsvq J16WrG0A0aqg3X3W2rMKuGCq+H3XVrAdXCgnp3JL1oT8c27o2nXMp/zHD9rjSPqW5r3y VcOLpps3OnV2ct4NE6xbx+kbYRyC/gvxhCHY9G3DNdzDIjD6o5ZQfNkIaiKpG+PJxzUs MxDKlInMPVrdghSl6EOpwhNOcfQOpoyfEW74f7GB/qQh/VGVKHNZxagROnXi+vqULI3V +h1Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@ffwll.ch header.s=google header.b=VE9DvZ7t; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y15si2520601pfe.199.2019.07.10.09.40.20; Wed, 10 Jul 2019 09:40:38 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@ffwll.ch header.s=google header.b=VE9DvZ7t; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727489AbfGJP02 (ORCPT + 99 others); Wed, 10 Jul 2019 11:26:28 -0400 Received: from mail-ed1-f65.google.com ([209.85.208.65]:32992 "EHLO mail-ed1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725911AbfGJP02 (ORCPT ); Wed, 10 Jul 2019 11:26:28 -0400 Received: by mail-ed1-f65.google.com with SMTP id i11so2594036edq.0 for ; Wed, 10 Jul 2019 08:26:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=sender:date:from:to:cc:subject:message-id:mail-followup-to :references:mime-version:content-disposition:in-reply-to:user-agent; bh=HvP9tTAwaaYJMZBGKOx/DXOnWdBe7zTCNsTQBUNN9UU=; b=VE9DvZ7tmj0h7eXR7nx6Y/YBeM0ouoY0jSH+AKwdDxRg1jMJ3ZAe6qYjsPHKrfNvCp IB4k743Buiu9MvGx1Fap8pBYM3ufk2ygUOnCSObcdgLRSwMnWLLbTKLXz1FpegaaCLcU cpc5lSpvwthHG5nAS4DFOKnVLt4PXeuVxW1sE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :in-reply-to:user-agent; bh=HvP9tTAwaaYJMZBGKOx/DXOnWdBe7zTCNsTQBUNN9UU=; b=pInQk5rZaLvWQCLm2pbIFU/BhhPuS8v0EYLMAsQtuGPgOud2goGGXkWWQ1YqEPDpBP Ezs3LeIooe10olUUMXcBmIGRnIwIYcakZ6p20540p5YVOSTEeGA88bXz1faEJCRiosm9 q3/8VMwczLAxmZTQ5YzfQQkYOzzcMbY3ZVSmnruC5DKejiuwjIErH/76WgXIlxtEmMYY KiogyLcD/XnYCt1nH/Oi5lOTaY4Or8665V/8Ou1rG6vw+80x9R9PSLoiUe+OAPnDde9w J4mLzNWLN2Xx8rjvJ3jiPvabCod7tes9xijT3mn9qe9eZcJXFkZAmIeSYaUAEAmsHjAw G/GQ== X-Gm-Message-State: APjAAAXS+TExYz7yXfYwz6nOqQUI9sM9n+N47v5xVZ72IjXNT26zz6IM wLKnYL8Iv0W0G7BD98HtssUBbQ== X-Received: by 2002:a50:ad01:: with SMTP id y1mr31465279edc.180.1562772385633; Wed, 10 Jul 2019 08:26:25 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:569e:0:3106:d637:d723:e855]) by smtp.gmail.com with ESMTPSA id o22sm817784edc.37.2019.07.10.08.26.24 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Wed, 10 Jul 2019 08:26:24 -0700 (PDT) Date: Wed, 10 Jul 2019 17:26:22 +0200 From: Daniel Vetter To: Pekka Paalanen Cc: Daniel Vetter , Sam Ravnborg , Maxime Ripard , open list , dri-devel@lists.freedesktop.org, David Airlie , Gerd Hoffmann , tzimmermann@suse.de, Sean Paul Subject: Re: [PATCH 1/2] drm/vram: store dumb bo dimensions. Message-ID: <20190710152622.GQ15868@phenom.ffwll.local> Mail-Followup-To: Pekka Paalanen , Sam Ravnborg , Maxime Ripard , open list , dri-devel@lists.freedesktop.org, David Airlie , Gerd Hoffmann , tzimmermann@suse.de, Sean Paul References: <20190626065551.12956-1-kraxel@redhat.com> <20190626065551.12956-2-kraxel@redhat.com> <20190626144013.GB12510@ravnborg.org> <20190626162754.GV12905@phenom.ffwll.local> <20190708163945.1d3757b3@eldfell.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190708163945.1d3757b3@eldfell.localdomain> X-Operating-System: Linux phenom 4.19.0-5-amd64 User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jul 08, 2019 at 04:39:45PM +0300, Pekka Paalanen wrote: > On Wed, 26 Jun 2019 18:27:54 +0200 > Daniel Vetter wrote: > > > On Wed, Jun 26, 2019 at 04:40:13PM +0200, Sam Ravnborg wrote: > > > Hi Gerd. > > > > > > On Wed, Jun 26, 2019 at 08:55:50AM +0200, Gerd Hoffmann wrote: > > > > Store width and height of the bo. Needed in case userspace > > > > sets up a framebuffer with fb->width != bo->width.. > > > > > > > > Signed-off-by: Gerd Hoffmann > > > > --- > > > > include/drm/drm_gem_vram_helper.h | 1 + > > > > drivers/gpu/drm/drm_gem_vram_helper.c | 2 ++ > > > > 2 files changed, 3 insertions(+) > > > > > > > > diff --git a/include/drm/drm_gem_vram_helper.h b/include/drm/drm_gem_vram_helper.h > > > > index 1a0ea18e7a74..3692dba167df 100644 > > > > --- a/include/drm/drm_gem_vram_helper.h > > > > +++ b/include/drm/drm_gem_vram_helper.h > > > > @@ -39,6 +39,7 @@ struct drm_gem_vram_object { > > > > struct drm_gem_object gem; > > > > struct ttm_buffer_object bo; > > > > struct ttm_bo_kmap_obj kmap; > > > > + unsigned int width, height; > > > > > > > > /* Supported placements are %TTM_PL_VRAM and %TTM_PL_SYSTEM */ > > > > struct ttm_placement placement; > > > > diff --git a/drivers/gpu/drm/drm_gem_vram_helper.c b/drivers/gpu/drm/drm_gem_vram_helper.c > > > > index 4de782ca26b2..c02bf7694117 100644 > > > > --- a/drivers/gpu/drm/drm_gem_vram_helper.c > > > > +++ b/drivers/gpu/drm/drm_gem_vram_helper.c > > > > @@ -377,6 +377,8 @@ int drm_gem_vram_fill_create_dumb(struct drm_file *file, > > > > gbo = drm_gem_vram_create(dev, bdev, size, pg_align, interruptible); > > > > if (IS_ERR(gbo)) > > > > return PTR_ERR(gbo); > > > > + gbo->width = args->width; > > > > + gbo->height = args->height; > > > > > > > > ret = drm_gem_handle_create(file, &gbo->gem, &handle); > > > > if (ret) > > > > > > Be warned, I may have missed something in the bigger picture. > > > > > > Your patch will set width and height only for dumb bo's > > > But we have several users of drm_gem_vram_create() that will > > > not set the width and height. > > > > > > So only in some cases can we rely on them being set. > > > Should this be refactored so we always set width, height. > > > Or maybe say in a small comment that width,height are only > > > set for dumb bo's? > > > > Also for dumb bo allocated buffers if userspace gets the dimensions wrong > > between dumb_create and the addfb, something is wrong. Papering over that > > by remembering the right dimensions doesn't look like a good solution. > > Hi, > > just a note irrelevant to this particular driver: > > I have deliberately allocated a too high dumb buffer in userspace and > created multiple smaller DRM FBs out of it with different offsets > (i * 128 * stride). This has been a very useful hack to see that a > GPU-less driver actually honours fences correctly, because if it > doesn't, the whole image will be off by the offset delta, which is > epileptically easy to see. > > So I'm not getting the height wrong, I am deliberately overallocating > and aliasing. Yeah that's the other reason for why this patch is wrong: It would break things like this trickery here :-) The separation between backing storage and drm_fb is intentional, multiple fb in one overall fb is explicitly ok. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch