Received: by 2002:aa6:c3ca:0:b029:c8:4414:5686 with SMTP id b10csp1815015lkq; Fri, 19 Mar 2021 12:33:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyngci7LxkwupHiCOo3PFcf3U1pjs56C14A0lWBG0jX8nEE6wDFUZzHNfaDGvbAG8yamBWG X-Received: by 2002:a17:906:9442:: with SMTP id z2mr6480096ejx.79.1616182412274; Fri, 19 Mar 2021 12:33:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616182412; cv=none; d=google.com; s=arc-20160816; b=P3xDPvO0bBLSOfl6xpZGMYixQoQRlVbKE2O3C6pDEZQPgcJWHghm7INrJiX70dxIkv GLdsFukWI87qz35rhs/4dmC3oABULPavYch522/+e4zKHH1D36YDodA99+oGnMUyskNt q4214ieaDfUbQ/LYbihXozHiTgabVFbblElz4xE2MJDwabuJ4hl+txksp8ZNjQ2wDm2y Ojj7QgbvsaPzmn4Ki5zPD2UTokjQ+hXrKW3fxA1G0GG+1X13ZAnfTfc9hYW8z7Lpg6I+ HbI1n0SKQVs80bnwpirb5vulDjfdR62A4xbFV0nzE8klorxm+sPTbRFiCJiI9L+WQUIW fG/w== 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=kw4RJHeomF/coZU+kZgPBn3/me96DQ9uAU6/T2CZfqA=; b=UAaAHxzjVXenFTsHm7VbSJNhorNJV2EYRIXuDo4lRr1rdmcbQexBtmMKLklj5zPlIH qc6fJA/VBi8NJfcIskiWFxH16QV8wcW630SH5r/Z3GRCFkCU5u/e8Nj7Ve4UM88/LKux PLNLkG3Q06SrBsDfMLBEYJoCcXgfP90A1KiSQBgqUy87jQ+Y6ODp9jMKW1tNrtRw7RKA T2B2l04S5J7VdMhOmXy3DvaAjt/uiRx8PxB9aV+61aOeyHtPLySTrYBiGDekpr8oIEp1 KLkLJH/0IF4TJFBVC7KDv/Ybwz4McGSB9Z5jfKgnybLsDA4yB8cFXUOyHFjYPk0i3sr2 r4Cw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=CPVznYpS; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k16si4928341ejb.318.2021.03.19.12.33.09; Fri, 19 Mar 2021 12:33:32 -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; dkim=pass header.i=@gmail.com header.s=20161025 header.b=CPVznYpS; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230226AbhCSTcI (ORCPT + 99 others); Fri, 19 Mar 2021 15:32:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36126 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230092AbhCSTbw (ORCPT ); Fri, 19 Mar 2021 15:31:52 -0400 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 13D5BC06174A for ; Fri, 19 Mar 2021 12:31:41 -0700 (PDT) Received: by mail-oi1-x229.google.com with SMTP id n8so5937007oie.10 for ; Fri, 19 Mar 2021 12:31:41 -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:content-transfer-encoding; bh=kw4RJHeomF/coZU+kZgPBn3/me96DQ9uAU6/T2CZfqA=; b=CPVznYpSa5ZclOyAwizrndMBxwkISoeL9kdNAxhrMMW23Q5r41WZI8VmpNkqSyjEW9 /X86bLXU6dh6xqitsolWKseAFPpEvw1t46XfUHaO+NuN98n0cYAG6OWyNb79lJmwaWh4 D8OAdnaYQv46jyIJI92CYcvLj/3V7+zcUrfQ6NtwyXsZd1JAu+sYDQ+ftTXpkKxlLr6d gt/Y5ntmaVHpe3CSMbCmKtxU0RUl/+sh1LjZI1Rfz16NaL71EFhcoeGh5ZZwpuDNarPJ pNZeT39TA/CATe7rApwgjoQP1yQmAsnqjTsx5U0cC1ffEoYphQhpFySJHE3b9e+0ZDDH eIog== 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:content-transfer-encoding; bh=kw4RJHeomF/coZU+kZgPBn3/me96DQ9uAU6/T2CZfqA=; b=tnLupkgPYtY7mwZuUQL4xKBXF71Q6dNdm2mjhcC7tJAlZFwHO2Qr17NsrknIt7BVT5 sp0Cr7jk5qEEnJB+bViZEkt637EB0owwdTQuLWFts7dIlA4QSfL/U5dQiQNkMCpG3vlY JvSq8vvRmIQe5TFPkp8UV0nWMID0n9Jv9MyS/kR4kgLowTMLO/cmKTjPmrVifR8ySLAf 96NcLrUQtAkh/XhQGzqKTTXIGIDTka4cFLYLCWEVh1jrDphwTE+tGudgcc6IAS94DIne rdp2vk5UgoMk+TbmBZWjvmeoa+XYCr/jt6sXWYObqdse9jESV8p+wrbPsCaEywPESPT0 dCuA== X-Gm-Message-State: AOAM531yOiDbWUbuTFcOkzfNqItYEeh7YpEBWSm/gSnbcJdMxRhIv8no k94eRd5luI8b3fe45786CXFW2EGK9LoHaDd9hC8= X-Received: by 2002:aca:4748:: with SMTP id u69mr1979504oia.5.1616182300436; Fri, 19 Mar 2021 12:31:40 -0700 (PDT) MIME-Version: 1.0 References: <20210319082428.3294591-1-lee.jones@linaro.org> <20210319082428.3294591-7-lee.jones@linaro.org> <2ec1225f-4bf1-41b7-0d00-2b11eab90c94@amd.com> In-Reply-To: From: Alex Deucher Date: Fri, 19 Mar 2021 15:31:29 -0400 Message-ID: Subject: Re: [PATCH 06/19] drm/amd/display/dc/calcs/dce_calcs: Move some large variables from the stack to the heap To: =?UTF-8?Q?Christian_K=C3=B6nig?= Cc: Harry Wentland , Lee Jones , Leo Li , LKML , amd-gfx list , David Airlie , Maling list - DRI developers , Alex Deucher , Colin Ian King , Harry Wentland , "Kazlauskas, Nicholas" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Mar 19, 2021 at 2:47 PM Christian K=C3=B6nig wrote: > > > > Am 19.03.21 um 19:26 schrieb Harry Wentland: > > On 2021-03-19 2:13 p.m., Alex Deucher wrote: > >> + Harry, Nick > >> > >> On Fri, Mar 19, 2021 at 4:24 AM Lee Jones wrote= : > >>> > >>> Fixes the following W=3D1 kernel build warning(s): > >>> > >>> drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dce_calcs.c: In > >>> function =E2=80=98calculate_bandwidth=E2=80=99: > >>> drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dce_calcs.c:2016:1: > >>> warning: the frame size of 1216 bytes is larger than 1024 bytes > >>> [-Wframe-larger-than=3D] > >>> > >>> Cc: Harry Wentland > >>> Cc: Leo Li > >>> Cc: Alex Deucher > >>> Cc: "Christian K=C3=B6nig" > >>> Cc: David Airlie > >>> Cc: Daniel Vetter > >>> Cc: Colin Ian King > >>> Cc: amd-gfx@lists.freedesktop.org > >>> Cc: dri-devel@lists.freedesktop.org > >>> Signed-off-by: Lee Jones > >>> --- > >>> .../gpu/drm/amd/display/dc/calcs/dce_calcs.c | 32 > >>> ++++++++++++++++--- > >>> 1 file changed, 28 insertions(+), 4 deletions(-) > >>> > >>> diff --git a/drivers/gpu/drm/amd/display/dc/calcs/dce_calcs.c > >>> b/drivers/gpu/drm/amd/display/dc/calcs/dce_calcs.c > >>> index e633f8a51edb6..9d8f2505a61c2 100644 > >>> --- a/drivers/gpu/drm/amd/display/dc/calcs/dce_calcs.c > >>> +++ b/drivers/gpu/drm/amd/display/dc/calcs/dce_calcs.c > >>> @@ -98,16 +98,16 @@ static void calculate_bandwidth( > >>> int32_t num_cursor_lines; > >>> > >>> int32_t i, j, k; > >>> - struct bw_fixed yclk[3]; > >>> - struct bw_fixed sclk[8]; > >>> + struct bw_fixed *yclk; > >>> + struct bw_fixed *sclk; > >>> bool d0_underlay_enable; > >>> bool d1_underlay_enable; > >>> bool fbc_enabled; > >>> bool lpt_enabled; > >>> enum bw_defines sclk_message; > >>> enum bw_defines yclk_message; > >>> - enum bw_defines tiling_mode[maximum_number_of_surfaces]; > >>> - enum bw_defines surface_type[maximum_number_of_surfaces]; > >>> + enum bw_defines *tiling_mode; > >>> + enum bw_defines *surface_type; > >>> enum bw_defines voltage; > >>> enum bw_defines pipe_check; > >>> enum bw_defines hsr_check; > >>> @@ -122,6 +122,22 @@ static void calculate_bandwidth( > >>> int32_t number_of_displays_enabled_with_margin =3D 0; > >>> int32_t number_of_aligned_displays_with_no_margin =3D 0; > >>> > >>> + yclk =3D kcalloc(3, sizeof(*yclk), GFP_KERNEL); > >>> + if (!yclk) > >>> + return; > >>> + > >>> + sclk =3D kcalloc(8, sizeof(*sclk), GFP_KERNEL); > >>> + if (!sclk) > >>> + goto free_yclk; > >>> + > >>> + tiling_mode =3D kcalloc(maximum_number_of_surfaces, > >>> sizeof(*tiling_mode), GFP_KERNEL); > >>> + if (!tiling_mode) > >>> + goto free_sclk; > >>> + > >>> + surface_type =3D kcalloc(maximum_number_of_surfaces, > >>> sizeof(*surface_type), GFP_KERNEL); > >>> + if (!surface_type) > >>> + goto free_tiling_mode; > >>> + > >> > >> > >> Harry or Nick can correct me if I'm wrong, but for this patch and the > >> next one, I think this can be called from an atomic context. > >> > > > > From what I can see this doesn't seem the case. If I'm missing > > something someone please correct me. > > Have you taken into account that using FP functions require atomic > context as well? > > We had quite a bunch of problems with that and had to replace some > GFP_KERNEL with GFP_ATOMIC in the DC code because of this. > > Could of course be that this code here isn't affected by that, but > better save than sorry. DCE hardware uses fixed point math so that should be ok. It's just the newer DCN hardware that requires FP. Alex > > Christian. > > > > > This and the next (06/19) patch are both > > Reviewed-by: Harry Wentland > > > > Harry > > > >> Alex > >> > >>> yclk[low] =3D vbios->low_yclk; > >>> yclk[mid] =3D vbios->mid_yclk; > >>> yclk[high] =3D vbios->high_yclk; > >>> @@ -2013,6 +2029,14 @@ static void calculate_bandwidth( > >>> } > >>> } > >>> } > >>> + > >>> + kfree(surface_type); > >>> +free_tiling_mode: > >>> + kfree(tiling_mode); > >>> +free_yclk: > >>> + kfree(yclk); > >>> +free_sclk: > >>> + kfree(sclk); > >>> } > >>> > >>> /********************************************************************= *********** > >>> -- > >>> 2.27.0 > >>> > >>> _______________________________________________ > >>> dri-devel mailing list > >>> dri-devel@lists.freedesktop.org > >>> https://lists.freedesktop.org/mailman/listinfo/dri-devel> >