Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3803941pxf; Tue, 6 Apr 2021 00:08:10 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx2A5pNzJ/fj4mHkFBL7OYFwnrhWTd6KiYkb14U9BW9kCYLtDqLJa0RVM4s+gV+vzsuP0uA X-Received: by 2002:a92:c203:: with SMTP id j3mr11811966ilo.224.1617692890184; Tue, 06 Apr 2021 00:08:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617692890; cv=none; d=google.com; s=arc-20160816; b=i2C6lc5XsV4Xt41wMyqMCIzX11z43DY1vDF1Tpkb+1PwZTSTVP1yhkJYXZgeljeQW6 iGByC8r0YL+4qCy5urgGH7hncSjJLwJc7YC5m8pImL7r9EE4CaRoSx0KbuEGJTo5TM+w fN9mJMuKeF6X7igadEuX9QFGtuAaqKFulZM0qDQoot11HLWfauGwsELqRfyGwx729SmW ovASvIvY9kuizkmMOrytW5XQIsrAUM/Nx5t5nErn4XhpjlKm2uC47fabkPHIjb7+Q4PW V2RpVhL+TAqscJejRA1Xy6NgWSsUdMymVS9VLAafUdfJsnQ5+X0J6t6lN0bvvjr/p2Px E1gw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=XHO0wyjY+FEn213Oc9Rxdq+fE2tksXvgBm7Zhcmxqbc=; b=SdR4SvHH0VdvFXXRKvkBhL5jT1FeVcwqPmBFCPGwh7oI5cKaqFQNRMdu4tr72/pjJv we8cIy50/J/kY5glpc5b4bHZeRtCZOgOYhEevS7cCxNXqswmFsSOBrUqNwrLGoDNIcOq UmARTr1b7Q1PWDO9ndlxkvNlfBX/Jz/SyQ12sChKas4U2tePPEcHQ4bmZIkCE4VGyte+ 1OE8bmssecPouBJ8l6RLhnnLhrwsM4Eg48pZvrTIE7tVFA9RLZttPa9B7RGS0QhTnes+ 3QdR+n6ejAzt6c070p6AgOqjcTBks89eWJiAXrLkZHaFHNrPsEIfz2w2kmSAWvtio4qp 5P1w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=cHsdt3+3; 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 l6si11393151iow.44.2021.04.06.00.07.58; Tue, 06 Apr 2021 00:08:10 -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=cHsdt3+3; 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 S238940AbhDERmK (ORCPT + 99 others); Mon, 5 Apr 2021 13:42:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54514 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234136AbhDERmK (ORCPT ); Mon, 5 Apr 2021 13:42:10 -0400 Received: from mail-pg1-x52d.google.com (mail-pg1-x52d.google.com [IPv6:2607:f8b0:4864:20::52d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C191BC061756; Mon, 5 Apr 2021 10:42:03 -0700 (PDT) Received: by mail-pg1-x52d.google.com with SMTP id y32so5382229pga.11; Mon, 05 Apr 2021 10:42:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=XHO0wyjY+FEn213Oc9Rxdq+fE2tksXvgBm7Zhcmxqbc=; b=cHsdt3+3qTwnn66SUZ4zRx2PP97lFo9OEygRMaGT/sQhOjxfKSgBK+2B0VMAF1K1gM CrjdyzcL+ZUu8sZf9npZmVmrhodCJCvf46eBhg6S6FJ4QEMgzr0o51IrApqdkaZwMdMl 5rcwyszN5+TyTDxRHDRRxVpzS5HjtlZYaxalyIQvIDk+JT2Rz7igDO60Furec1gQ6dzU be0G2yu+6xrnn94cZ0KsPyL2DV4DfILcKIeb+B/W0YM2qlCX1N99yS4kdaKZf0vck0+h 8SQB1kK+KGoOnsY4w8VPZ04cOAKfQi/XZOONUjoLMNizau7QfcoSY76E5r1RGcrSNHSo hiWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=XHO0wyjY+FEn213Oc9Rxdq+fE2tksXvgBm7Zhcmxqbc=; b=s2fcak9JejQv5rI7yHcTqXaYuzhcdqXXXuVFdUQ3pVRJzsdnwljPzzwpSF+gtM/PUX BxPPD19bBsyfxVXXKazKdTvvbdIEi3BYIsBYY8Bedc+zpjtAF3w3GOIiXUgTEM0qkUXx llOSrJxz8DT479JYqLZFnIN3TpgEXBwAuE6SH1S+sL4P6Ny13asEQYscs6RZP+H3bTsT mKnqAmGUCJF4wVFR+SrqDV1ePbTYRXPJREBnfWSeffIFoL7BQTcGHrwj5FrpMU8VTFut Vsq+ukyDQHtv7Bfd2lMQ4hNi4hHg9OnGQFDEAdNYIldr++I+gwQCAdmUhQl1ki6J3lIm ElEA== X-Gm-Message-State: AOAM532GUt4blRysh5bbg8PQvNiDaSW82V8GFUWcCBvktAdsGuTAFzLo tJ1ggsIU78V4bg/t0WsQEgg= X-Received: by 2002:a63:1316:: with SMTP id i22mr23372774pgl.419.1617644523140; Mon, 05 Apr 2021 10:42:03 -0700 (PDT) Received: from localhost (c-73-25-156-94.hsd1.or.comcast.net. [73.25.156.94]) by smtp.gmail.com with ESMTPSA id h68sm16859533pfe.111.2021.04.05.10.42.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Apr 2021 10:42:01 -0700 (PDT) From: Rob Clark To: dri-devel@lists.freedesktop.org Cc: Jordan Crouse , Rob Clark , freedreno@lists.freedesktop.org (open list:DRM DRIVER FOR MSM ADRENO GPU), linux-arm-msm@vger.kernel.org (open list:DRM DRIVER FOR MSM ADRENO GPU), linux-kernel@vger.kernel.org (open list), Rob Clark Subject: [PATCH 0/8] drm/msm: Swappable GEM objects Date: Mon, 5 Apr 2021 10:45:23 -0700 Message-Id: <20210405174532.1441497-1-robdclark@gmail.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Rob Clark One would normally hope not to be under enough memory pressure to need to swap GEM objects to disk backed swap. But memory backed zram swap (as enabled on chromebooks, for example) can actually be quite fast and useful on devices with less RAM. On a 4GB device, opening up ~4 memory intensive web pages (in separate windows rather than tabs, to try and prevent tab discard), I see ~500MB worth of GEM objects, of which maybe only 10% are active at any time, and with unpin/evict enabled, only about half resident (which is a number that gets much lower if you simulate extreme memory pressure). Assuming a 2:1 compression ratio (I see a bit higher in practice, but cannot isolate swapped out GEM pages vs other), that is like having an extra 100+MB of RAM, or more under higher memory pressure. Rob Clark (8): drm/msm: ratelimit GEM related WARN_ON()s drm/msm: Reorganize msm_gem_shrinker_scan() drm/msm: Clear msm_obj->sgt in put_pages() drm/msm: Split iova purge and close drm/msm: Add $debugfs/gem stats on resident objects drm/msm: Track potentially evictable objects drm/msm: Small msm_gem_purge() fix drm/msm: Support evicting GEM objects to swap drivers/gpu/drm/msm/msm_drv.c | 2 +- drivers/gpu/drm/msm/msm_drv.h | 13 ++- drivers/gpu/drm/msm/msm_gem.c | 155 +++++++++++++++++-------- drivers/gpu/drm/msm/msm_gem.h | 68 +++++++++-- drivers/gpu/drm/msm/msm_gem_shrinker.c | 129 ++++++++++++-------- drivers/gpu/drm/msm/msm_gpu_trace.h | 13 +++ 6 files changed, 272 insertions(+), 108 deletions(-) -- 2.30.2