Received: by 2002:a05:7412:b101:b0:e2:908c:2ebd with SMTP id az1csp2825739rdb; Wed, 15 Nov 2023 11:34:47 -0800 (PST) X-Google-Smtp-Source: AGHT+IEcc+hREpnCtj+M2WVYQX2KFYBVNkZqyjJ1UwPAhkq2JyjJErBkMZKiQJ8GwP0fvX/fLo8b X-Received: by 2002:a17:902:a985:b0:1cc:630d:8a5e with SMTP id bh5-20020a170902a98500b001cc630d8a5emr6164325plb.48.1700076886886; Wed, 15 Nov 2023 11:34:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700076886; cv=none; d=google.com; s=arc-20160816; b=NaWgYvVJWy65e4f2FUtk84H4CLm0w1F4sbET1yNNWMFrv1hj1RMYV1QVcyoMzPjkuH SOQM6V0ec8GSsZIyYVwMKAPK6OwSC2MUBH+NU+8U395FXZklU5Qu+7XGRc9ryyq+r1Av 5QCW0WTL2OourlHpkOlV5CzqcPBf9EKZjmRvZTIuyxK2wq4OgTv1d08CFUIxv0C7CB16 GyMaIofZGqv+2w+He5oRdDx3y1VqQWkmUH3EvOJ7kvnwYXF9+gM5zK4BwBVHPWOvTiUj tXqhPEafs0LlIFpA3nm/RiZFn3xnDZ8sPAxWCUd3Zk/r20dLhuVmA0dcB5L1DUV6m7U8 VttQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=/IlDh6BA25cklyVUGxLrq0BMBGhOE7EADMlj8E0gBvo=; fh=9IvgwtGzKgjz+MCgdlaah6wCfNu0g1z+uDGBEI7YUTs=; b=Y7+0IUV9IZcWh+vwzICNmO69E0BfyBAhx8WJoKL3CUPqjtrDSWbNPnN8s8uF4aL+cU Rurp4eD9zjzUBsNNJAEeKwqxxYMI9FX/qVpY4vs6ADQrH7CirCRUJNsMZZ2/9UHkCTcu Wc5EIDoMhiZ32tK3EDcfJha0XpKQMUVvQLvCopq5OfFg9uUP9XmcZfnz8wCq2WONLdY1 /LPLkKrCFxhMsZkcXcD20njCO4HPF9cUECjD2ffkgjEcI6Q90OKz0K+LszOZ6mXO/AgE x+zePE0f4/gBd+xwdbDOU0S9D3pctSzSWjnByU/3ippIF8lAHzOHd41DMgGQFTz0Yvqh KF1A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=kZ3EY8js; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from fry.vger.email (fry.vger.email. [23.128.96.38]) by mx.google.com with ESMTPS id h13-20020a170902f54d00b001b9be3b94dfsi10893398plf.268.2023.11.15.11.34.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Nov 2023 11:34:46 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) client-ip=23.128.96.38; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=kZ3EY8js; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id 45FAC8021C7B; Wed, 15 Nov 2023 11:34:20 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234236AbjKOTdY (ORCPT + 99 others); Wed, 15 Nov 2023 14:33:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41986 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234208AbjKOTdW (ORCPT ); Wed, 15 Nov 2023 14:33:22 -0500 Received: from mail-oi1-x229.google.com (mail-oi1-x229.google.com [IPv6:2607:f8b0:4864:20::229]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 68AAA9E for ; Wed, 15 Nov 2023 11:33:18 -0800 (PST) Received: by mail-oi1-x229.google.com with SMTP id 5614622812f47-3b5aee410f2so13629b6e.1 for ; Wed, 15 Nov 2023 11:33:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1700076797; x=1700681597; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=/IlDh6BA25cklyVUGxLrq0BMBGhOE7EADMlj8E0gBvo=; b=kZ3EY8jsrDs3VdA4M/j3GFUmy8xJRkeuHdi7DUjkNrKtLriwOLwRuTS8ha/HxHz1po 9wCTdUGdEYvQlSNcqfXqllxzDyidnPGZns6l1r1ZBj9dGE35sJGBhQssVRHAOCiFMppX XRi+5XuHXqLlSrnPrFBQ1BSTINjq4HHVNUV3VMnCZJ9gJy/sBAD51fS1AtD/aRRH6L6/ kVO77JoAIH3a+BeitQxzEqKsAhT/EXG9bzjpyLp5cJzV8uQw/1/nI+OwHm7U2cKDG4+i Bzbf6Zs1NDn7gGMNlMUWg3Sp8gIWl3W/wQ4pB5awA6nLH4e86tmdPPfiXsmYV4DdfZTR fnFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700076797; x=1700681597; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/IlDh6BA25cklyVUGxLrq0BMBGhOE7EADMlj8E0gBvo=; b=mC4m3lLOH0kEzmAqlnwB8h1dHg6lnoXT7gUmH6isTE8lmwpB37HUg10E7YEolNtJeE TBgacfvQwPNdcrIr9EaQlEqh/CGhBOOOllBsosbYgT7EWSRlYfL8bYBxriFiItks1naB E2VNSpHAcYy/+epcGEe1HnQaAGMObyQqyc2ngzADmiq5OGJRpJ2qKQ0+/UvZ488DvSpj GEVH07idEsEJN/eklGkOJ9CjjT8fHs1+GebCpFYeyu3dp0qVeVQ6emqIb4o7tKd20sGP 8bpL6FHf/7HAhDEldYj8SK4Iieu1TdnPStMpFXzshxvVCcnd5KvjuMZZBKCW5oFo6BZg qr4w== X-Gm-Message-State: AOJu0YxcEMGmyMRGaybI4doHB7jZXq/4qnJP58/x4GvG01UpIoXUdONG 7zgRD4oBOQKPpGkQXD8xOfiEXCdV7klSpykeGfz25A== X-Received: by 2002:a05:6358:9386:b0:169:9859:ccc3 with SMTP id h6-20020a056358938600b001699859ccc3mr6697212rwb.12.1700076797522; Wed, 15 Nov 2023 11:33:17 -0800 (PST) MIME-Version: 1.0 References: <20231115141928.429688-1-dipamt1729@gmail.com> In-Reply-To: From: Dmitry Baryshkov Date: Wed, 15 Nov 2023 21:33:05 +0200 Message-ID: Subject: Re: [PATCH v2] Remove custom dumb_map_offset implementation in msm driver To: Dipam Turkar Cc: robdclark@gmail.com, quic_abhinavk@quicinc.com, sean@poorly.run, marijn.suijten@somainline.org, airlied@gmail.com, daniel@ffwll.ch, linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Wed, 15 Nov 2023 11:34:20 -0800 (PST) On Wed, 15 Nov 2023 at 20:46, Dipam Turkar wrote: > > They are not outdated, my bad. I went through the locks' code and saw tha= t they have been updated. But they are probably not necessary here as most = of the drivers do not use any form of locking in their implementations. The= generic implementations drm_gem_dumb_map_offset() and drm_gem_ttm_dumb_map= _offset() do not have any locking mechanisms either. Excuse me, but this doesn't sound right to me. There are different drivers with different implementations. So either we'd need a good explanation of why it is not necessary, or this patch is NAKed. > > Thanks and regards > Dipam Turkar > > On Wed, Nov 15, 2023 at 8:37=E2=80=AFPM Dmitry Baryshkov wrote: >> >> On Wed, 15 Nov 2023 at 16:30, Dipam Turkar wrote: >> > >> > Make msm use drm_gem_create_map_offset() instead of its custom >> > implementation for associating GEM object with a fake offset. Since, >> > we already have this generic implementation, we don't need the custom >> > implementation and it is better to standardize the code for GEM based >> > drivers. This also removes the outdated locking leftovers. >> >> Why are they outdated? >> >> > >> > Signed-off-by: Dipam Turkar >> > --- >> > drivers/gpu/drm/msm/msm_drv.c | 2 +- >> > drivers/gpu/drm/msm/msm_gem.c | 21 --------------------- >> > drivers/gpu/drm/msm/msm_gem.h | 2 -- >> > 3 files changed, 1 insertion(+), 24 deletions(-) >> > >> > Changes in v2: >> > Modify commit message to include the absence of internal locking lefto= vers >> > around allocating a fake offset in msm_gem_mmap_offset() in the generi= c >> > implementation drm_gem_create_map_offset(). >> > >> > diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_d= rv.c >> > index a428951ee539..86a15992c717 100644 >> > --- a/drivers/gpu/drm/msm/msm_drv.c >> > +++ b/drivers/gpu/drm/msm/msm_drv.c >> > @@ -1085,7 +1085,7 @@ static const struct drm_driver msm_driver =3D { >> > .open =3D msm_open, >> > .postclose =3D msm_postclose, >> > .dumb_create =3D msm_gem_dumb_create, >> > - .dumb_map_offset =3D msm_gem_dumb_map_offset, >> > + .dumb_map_offset =3D drm_gem_dumb_map_offset, >> > .gem_prime_import_sg_table =3D msm_gem_prime_import_sg_table, >> > #ifdef CONFIG_DEBUG_FS >> > .debugfs_init =3D msm_debugfs_init, >> > diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_g= em.c >> > index db1e748daa75..489694ef79cb 100644 >> > --- a/drivers/gpu/drm/msm/msm_gem.c >> > +++ b/drivers/gpu/drm/msm/msm_gem.c >> > @@ -671,27 +671,6 @@ int msm_gem_dumb_create(struct drm_file *file, st= ruct drm_device *dev, >> > MSM_BO_SCANOUT | MSM_BO_WC, &args->handle, "du= mb"); >> > } >> > >> > -int msm_gem_dumb_map_offset(struct drm_file *file, struct drm_device = *dev, >> > - uint32_t handle, uint64_t *offset) >> > -{ >> > - struct drm_gem_object *obj; >> > - int ret =3D 0; >> > - >> > - /* GEM does all our handle to object mapping */ >> > - obj =3D drm_gem_object_lookup(file, handle); >> > - if (obj =3D=3D NULL) { >> > - ret =3D -ENOENT; >> > - goto fail; >> > - } >> > - >> > - *offset =3D msm_gem_mmap_offset(obj); >> > - >> > - drm_gem_object_put(obj); >> > - >> > -fail: >> > - return ret; >> > -} >> > - >> > static void *get_vaddr(struct drm_gem_object *obj, unsigned madv) >> > { >> > struct msm_gem_object *msm_obj =3D to_msm_bo(obj); >> > diff --git a/drivers/gpu/drm/msm/msm_gem.h b/drivers/gpu/drm/msm/msm_g= em.h >> > index 8ddef5443140..dc74a0ef865d 100644 >> > --- a/drivers/gpu/drm/msm/msm_gem.h >> > +++ b/drivers/gpu/drm/msm/msm_gem.h >> > @@ -139,8 +139,6 @@ struct page **msm_gem_pin_pages(struct drm_gem_obj= ect *obj); >> > void msm_gem_unpin_pages(struct drm_gem_object *obj); >> > int msm_gem_dumb_create(struct drm_file *file, struct drm_device *dev= , >> > struct drm_mode_create_dumb *args); >> > -int msm_gem_dumb_map_offset(struct drm_file *file, struct drm_device = *dev, >> > - uint32_t handle, uint64_t *offset); >> > void *msm_gem_get_vaddr_locked(struct drm_gem_object *obj); >> > void *msm_gem_get_vaddr(struct drm_gem_object *obj); >> > void *msm_gem_get_vaddr_active(struct drm_gem_object *obj); >> > -- >> > 2.34.1 >> > >> >> >> -- >> With best wishes >> Dmitry --=20 With best wishes Dmitry