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=-10.5 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 2AE49C12002 for ; Fri, 16 Jul 2021 11:21:23 +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 C4258613ED for ; Fri, 16 Jul 2021 11:21:22 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C4258613ED Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.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 0A6586E972; Fri, 16 Jul 2021 11:21:18 +0000 (UTC) Received: from mail-qt1-x832.google.com (mail-qt1-x832.google.com [IPv6:2607:f8b0:4864:20::832]) by gabe.freedesktop.org (Postfix) with ESMTPS id C96DB6E96F; Fri, 16 Jul 2021 11:21:16 +0000 (UTC) Received: by mail-qt1-x832.google.com with SMTP id v14so6809050qtc.8; Fri, 16 Jul 2021 04:21:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=UwXIuhb0zv973Vcg7X+3l/bLAP0Swe7e5GwE4NuxqPE=; b=kt+YI6Rb0DrHPmOjh6BdzuA7oW/9VxR2Ypy//rdH4Usl3aYMcZ8Mx0e6V+1WXjK57s iE37w3XwB5GpqovjZUxhKd81YTuxUfg6cxb69a10bennbzbf8pzWRrBgrq8tih0XpWB1 2TUTg1Zcox9yP1MsadpYUHaqmH7EaqJr0kGfDNy+aQU1nc7h/woyOlupJlnJ9UHPXLmk 3XQ7ZpdOq5zbP+sZqBJZtQowkTRG0emivlykC90DOtQjRk0tNhLKVEX37J4XxeCcjS0q awP0Pk3+l49571fjnv7WpitEvaw6AQ3COHtXx/roP6wuCzePaXnKxvf6FJwxTree70kB +0OA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=UwXIuhb0zv973Vcg7X+3l/bLAP0Swe7e5GwE4NuxqPE=; b=e8eZkH+chHhp10vBYsUz4N8Rq/341XkfPqTxGCQTRK8NXPXJFPDPw5tCI1SDXtLFiB Jyyaap2D3bFyUmoYI44ors7+LQuj9GaetVZPySaOjlk8s6tcXSXc555BgbQoZZ97pH9w lI9ecZoSGKgqe55dVC0A9jjLVC2hYmcv7YR/kS/1kvvaT7BbJoYd+XHr3ir/AUo0eOiQ XTswKeg9Lr5OagdDZAVTh9Y48n6IUbu8G4L8ThFYkHXjBeZzrV9FkMi8s7h01CS+P7ZB RDt4Tifu0kGFYohj2M3AZ1Z+jbrhB+8vLGX3NI6jmCtD/il520XoEOSKYAxNlLqjnvK6 paVQ== X-Gm-Message-State: AOAM533FR6MKzGCE8PQfnQDwHYoXF8qLZbwCbJ5ugBc/hlbwL32j5ss8 H1GHxp9t9VUctnJzNx7GvyHshw+XswySLD6HN/I= X-Google-Smtp-Source: ABdhPJwCawCptYIa1ofUVsZMR902SVH1ZTA1GVE9MVWkHKave+3ZPkXnPEw9vh7fggLbwFMyfVu10N9IiRmSb77LZAM= X-Received: by 2002:a05:622a:89:: with SMTP id o9mr8539142qtw.339.1626434475830; Fri, 16 Jul 2021 04:21:15 -0700 (PDT) MIME-Version: 1.0 References: <20210715223900.1840576-1-jason@jlekstrand.net> <20210715223900.1840576-4-jason@jlekstrand.net> In-Reply-To: <20210715223900.1840576-4-jason@jlekstrand.net> From: Matthew Auld Date: Fri, 16 Jul 2021 12:20:47 +0100 Message-ID: To: Jason Ekstrand Subject: Re: [Intel-gfx] [PATCH 3/7] drm/i915/gem: Unify user object creation 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: Intel Graphics Development , ML dri-devel Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" On Thu, 15 Jul 2021 at 23:39, Jason Ekstrand wrote: > > Instead of hand-rolling the same three calls in each function, pull them > into an i915_gem_object_create_user helper. Apart from re-ordering of > the placements array ENOMEM check, the only functional change here > should be that i915_gem_dumb_create now calls i915_gem_flush_free_objects > which it probably should have been calling all along. > > Signed-off-by: Jason Ekstrand > --- > drivers/gpu/drm/i915/gem/i915_gem_create.c | 106 +++++++++------------ > 1 file changed, 43 insertions(+), 63 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_create.c b/drivers/gpu/drm/i915/gem/i915_gem_create.c > index 391c8c4a12172..69bf9ec777642 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_create.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_create.c > @@ -11,13 +11,14 @@ > #include "i915_trace.h" > #include "i915_user_extensions.h" > > -static u32 object_max_page_size(struct drm_i915_gem_object *obj) > +static u32 object_max_page_size(struct intel_memory_region **placements, > + unsigned int n_placements) > { > u32 max_page_size = 0; > int i; > > - for (i = 0; i < obj->mm.n_placements; i++) { > - struct intel_memory_region *mr = obj->mm.placements[i]; > + for (i = 0; i < n_placements; i++) { > + struct intel_memory_region *mr = placements[i]; > > GEM_BUG_ON(!is_power_of_2(mr->min_page_size)); > max_page_size = max_t(u32, max_page_size, mr->min_page_size); > @@ -81,22 +82,35 @@ static int i915_gem_publish(struct drm_i915_gem_object *obj, > return 0; > } > > -static int > -i915_gem_setup(struct drm_i915_gem_object *obj, u64 size) > +static struct drm_i915_gem_object * > +i915_gem_object_create_user(struct drm_i915_private *i915, u64 size, create_user sounds nice. > + struct intel_memory_region **placements, > + unsigned int n_placements) > { > - struct intel_memory_region *mr = obj->mm.placements[0]; > + struct intel_memory_region *mr = placements[0]; > + struct drm_i915_gem_object *obj; > unsigned int flags; > int ret; > > - size = round_up(size, object_max_page_size(obj)); > + i915_gem_flush_free_objects(i915); Needs to be a separate patch. > + > + obj = i915_gem_object_alloc(); > + if (!obj) > + return ERR_PTR(-ENOMEM); Should move this way down, so we don't accidently leak it. _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx