Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp1961171rwl; Sat, 8 Apr 2023 05:26:54 -0700 (PDT) X-Google-Smtp-Source: AKy350a+Scy/oETlTjAoUjyIrVbt4BEgrA692lGtTfAZFr8JZvO9dd+e03p7EYrx6CwuW5/Zj10L X-Received: by 2002:aa7:ce04:0:b0:504:7f90:8da3 with SMTP id d4-20020aa7ce04000000b005047f908da3mr2586228edv.40.1680956814662; Sat, 08 Apr 2023 05:26:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680956814; cv=none; d=google.com; s=arc-20160816; b=r6FCl4ApuncB2S1TiIW5Zi4u8q4naMoUSWuNTOWrEGrK/pXhekXtn24a9mm5r3rxsI iIvpbk4W7qt/vSmU3hy8MLtBmESu8uYD+OALnPVjA/0D8xXpGtKOjSYrndNuLngxUplM IWmKp1RPVWR1XlPPAScItC1OJNRbvgJDLu6biMTZQX5h8FT1vjZK+tf69lMeE1tSUJvS zjB549OIi1dWF0eNGnmxOYu89Q5VNM46kwDEq8A7oAYg1/2ijUMl3ZWFE9DpkzAs1lhc dW2VRjK2Uf21cN3Mnb2WvRA5bu7AJTrF9qlRnngX1bJJiIAGyO/eRO9YaKiuGK8GxJVy 0FDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=qhbv7Y5Jgs9ftPKleaknEhF4CyhB+GwqEo6U+Rr9mIc=; b=k3KIEYWMbchbJQjubzXxVTTKFn5JcB2UEj1KIZ5jH5ZflopKk+4dhA/t97ey9vPZCH gvGNKj+i4EASOAjlXX2Jow9HPFGR8Pq2Ve+YV+Q960b/g81SIszv1ExuErsYDOHSmTT9 jmcsnPcsqVffas5KZHqYlLPjpZoKFzgai4lPjVEEB50PuzH76GcCg0TlB4falh0vBtDu 9zN8tcToC00vE75sCfGTot6PIjEXEpnOVEsAoqQaxA6aPWGlAWS7W+55AtzDS9MWh3JL P6iYCH8hcLX0BmxZwxxG1w9xct1mXoamJOT80M1VF+iSKE3NhhHUZvFt5U8yq1F5XMT/ 7ufA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=kewdyz87; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t19-20020aa7d713000000b00501d3982cd2si5433545edq.517.2023.04.08.05.26.30; Sat, 08 Apr 2023 05:26:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=kewdyz87; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 S230030AbjDHMUS (ORCPT + 99 others); Sat, 8 Apr 2023 08:20:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57442 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229756AbjDHMUQ (ORCPT ); Sat, 8 Apr 2023 08:20:16 -0400 Received: from mail-yb1-xb2b.google.com (mail-yb1-xb2b.google.com [IPv6:2607:f8b0:4864:20::b2b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2926F5B9B; Sat, 8 Apr 2023 05:20:15 -0700 (PDT) Received: by mail-yb1-xb2b.google.com with SMTP id h198so7325972ybg.12; Sat, 08 Apr 2023 05:20:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680956414; x=1683548414; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=qhbv7Y5Jgs9ftPKleaknEhF4CyhB+GwqEo6U+Rr9mIc=; b=kewdyz87bq2iHid5EObeNKszKFtBaD+7IqwhaAlfkh4BXU43XHG0n2XFhE+8I64XoZ 5vf/WXHewQ2r1JosqkV7cmmaF7Xo3YvF0R2w4N6H6HLcWl1GoA2FLD4ofgwx0JxaTTrq CSipUN6RQEUZwSJzL3lwv1Zny4ZWY4oDtBZPqBNHgqwrrBaVhKwRgM/zpeASYlW2SZhI 71EqJEbs7Yhe+LjUaohEKTrE1vaWHdE4ojLs8Vewlr/uKsjzGq2f9FzNuRbS0G7zV1WF 3SXZPxBoJCq5Ci9ZklpxYDXRQs/JwtNjqxDNdLTG9w7dTOcoV2GFEBeH5krYm5I5IZ02 8ApA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680956414; x=1683548414; h=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=qhbv7Y5Jgs9ftPKleaknEhF4CyhB+GwqEo6U+Rr9mIc=; b=pumuHHWSGmqMJKFRATlfHF/uMsquMuoGpGwUW0vTbwRJAWkBY/QIienUhMI9SPpRDh 74sBcE+MsGXV7Bncwdfia8gsUQ7PTzG9fzXG55ZxwYVFQUFdd1EepmihLu3yjpFBO9ts J/au2EmGKo3lc5RB5mQFWtFdyOJJHbiMDV0zfPupkEqs6iE5FEISmhTOLvy6n30bTuq2 QsqI4FNOQ/IGt0YxCuHHfsi8o7kFvTg41FeoFVbjADeaIi0UdT+xOJB0j6O8m1L+Kifb HKFPVkZ6FuagEKDNAgYJ1qg2rB12xt141O17lNpvFk34rg7rGXlQdZKMfUWrBbE8RMPz VuOg== X-Gm-Message-State: AAQBX9e2Hw99HCQMPZb9YYPN00EfRbTaBATVkl/uk/TfPg7NqGFibxHe TbF3bdbJShH3IkYxEGtccWDFThNPuJTAW6hdhJI= X-Received: by 2002:a25:be11:0:b0:b7d:4c96:de0 with SMTP id h17-20020a25be11000000b00b7d4c960de0mr993477ybk.5.1680956414354; Sat, 08 Apr 2023 05:20:14 -0700 (PDT) MIME-Version: 1.0 References: <20230406215917.1475704-1-robdclark@gmail.com> <20230406215917.1475704-2-robdclark@gmail.com> In-Reply-To: <20230406215917.1475704-2-robdclark@gmail.com> From: Emil Velikov Date: Sat, 8 Apr 2023 13:20:03 +0100 Message-ID: Subject: Re: [RFC 1/2] drm: Add fdinfo memory stats To: Rob Clark Cc: dri-devel@lists.freedesktop.org, Rob Clark , Tvrtko Ursulin , Jonathan Corbet , linux-arm-msm@vger.kernel.org, "open list:DOCUMENTATION" , Christopher Healy , open list , Boris Brezillon , Thomas Zimmermann , freedreno@lists.freedesktop.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-0.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hey Rob, On Thu, 6 Apr 2023 at 22:59, Rob Clark wrote: > +- drm-purgeable-memory: [KiB|MiB] > + > +The total size of buffers that are purgable. s/purgable/purgeable/ > +static void print_size(struct drm_printer *p, const char *stat, size_t sz) > +{ > + const char *units[] = {"B", "KiB", "MiB", "GiB"}; The documentation says: > Default unit shall be bytes with optional unit specifiers of 'KiB' or 'MiB' > indicating kibi- or mebi-bytes. So I would drop the B and/or update the documentation to mention B && GiB. > + unsigned u; > + > + for (u = 0; u < ARRAY_SIZE(units) - 1; u++) { > + if (sz < SZ_1K) > + break; > + sz /= SZ_1K; IIRC size_t can be 64bit, so we should probably use do_div() here. > + } > + > + drm_printf(p, "%s:\t%lu %s\n", stat, sz, units[u]); > +} > + > +/** > + * drm_print_memory_stats - Helper to print standard fdinfo memory stats > + * @file: the DRM file > + * @p: the printer to print output to > + * @status: callback to get driver tracked object status > + * > + * Helper to iterate over GEM objects with a handle allocated in the specified > + * file. The optional status callback can return additional object state which s/return additional/return an additional/ > + * determines which stats the object is counted against. The callback is called > + * under table_lock. Racing against object status change is "harmless", and the > + * callback can expect to not race against object destroy. s/destroy/destruction/ > + */ > +void drm_print_memory_stats(struct drm_file *file, struct drm_printer *p, > + enum drm_gem_object_status (*status)(struct drm_gem_object *)) > +{ > + if (s & DRM_GEM_OBJECT_RESIDENT) { > + size.resident += obj->size; > + s &= ~DRM_GEM_OBJECT_PURGEABLE; Is MSM capable of marking the object as both purgeable and resident or is this to catch other drivers? Should we add a note to the documentation above - resident memory cannot be purgeable > + } > + > + if (s & DRM_GEM_OBJECT_ACTIVE) { > + size.active += obj->size; > + s &= ~DRM_GEM_OBJECT_PURGEABLE; Ditto. With the above nits, the patch is: Reviewed-by: Emil Velikov HTH Emil