All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Clark <robdclark@gmail.com>
To: dri-devel@lists.freedesktop.org
Cc: Rob Clark <robdclark@chromium.org>,
	freedreno@lists.freedesktop.org (open list:DRM DRIVER FOR MSM
	ADRENO GPU), Jordan Crouse <jordan@cosmicpenguin.net>,
	"Kristian H. Kristensen" <hoegsberg@google.com>,
	linux-arm-msm@vger.kernel.org (open list:DRM DRIVER FOR MSM
	ADRENO GPU), linux-kernel@vger.kernel.org (open list)
Subject: [PATCH 0/4] drm/msm: Shrinker (and related) fixes
Date: Wed, 31 Mar 2021 15:16:25 -0700	[thread overview]
Message-ID: <20210331221630.488498-1-robdclark@gmail.com> (raw)

From: Rob Clark <robdclark@chromium.org>

I've been spending some time looking into how things behave under high
memory pressure.  The first patch is a random cleanup I noticed along
the way.  The second improves the situation significantly when we are
getting shrinker called from many threads in parallel.  And the last
two are $debugfs/gem fixes I needed so I could monitor the state of GEM
objects (ie. how many are active/purgable/purged) while triggering high
memory pressure.

We could probably go a bit further with dropping the mm_lock in the
shrinker->scan() loop, but this is already a pretty big improvement.
The next step is probably actually to add support to unpin/evict
inactive objects.  (We are part way there since we have already de-
coupled the iova lifetime from the pages lifetime, but there are a
few sharp corners to work through.)

Rob Clark (4):
  drm/msm: Remove unused freed llist node
  drm/msm: Avoid mutex in shrinker_count()
  drm/msm: Fix debugfs deadlock
  drm/msm: Improved debugfs gem stats

 drivers/gpu/drm/msm/msm_debugfs.c      | 14 ++----
 drivers/gpu/drm/msm/msm_drv.c          |  4 ++
 drivers/gpu/drm/msm/msm_drv.h          | 10 ++++-
 drivers/gpu/drm/msm/msm_fb.c           |  3 +-
 drivers/gpu/drm/msm/msm_gem.c          | 61 +++++++++++++++++++++-----
 drivers/gpu/drm/msm/msm_gem.h          | 58 +++++++++++++++++++++---
 drivers/gpu/drm/msm/msm_gem_shrinker.c | 17 +------
 7 files changed, 122 insertions(+), 45 deletions(-)

-- 
2.30.2


WARNING: multiple messages have this Message-ID (diff)
From: Rob Clark <robdclark@gmail.com>
To: dri-devel@lists.freedesktop.org
Cc: Rob Clark <robdclark@chromium.org>,
	"open list:DRM DRIVER FOR MSM ADRENO GPU"
	<linux-arm-msm@vger.kernel.org>,
	open list <linux-kernel@vger.kernel.org>,
	Jordan Crouse <jordan@cosmicpenguin.net>,
	"Kristian H. Kristensen" <hoegsberg@google.com>,
	"open list:DRM DRIVER FOR MSM ADRENO GPU"
	<freedreno@lists.freedesktop.org>
Subject: [PATCH 0/4] drm/msm: Shrinker (and related) fixes
Date: Wed, 31 Mar 2021 15:16:25 -0700	[thread overview]
Message-ID: <20210331221630.488498-1-robdclark@gmail.com> (raw)

From: Rob Clark <robdclark@chromium.org>

I've been spending some time looking into how things behave under high
memory pressure.  The first patch is a random cleanup I noticed along
the way.  The second improves the situation significantly when we are
getting shrinker called from many threads in parallel.  And the last
two are $debugfs/gem fixes I needed so I could monitor the state of GEM
objects (ie. how many are active/purgable/purged) while triggering high
memory pressure.

We could probably go a bit further with dropping the mm_lock in the
shrinker->scan() loop, but this is already a pretty big improvement.
The next step is probably actually to add support to unpin/evict
inactive objects.  (We are part way there since we have already de-
coupled the iova lifetime from the pages lifetime, but there are a
few sharp corners to work through.)

Rob Clark (4):
  drm/msm: Remove unused freed llist node
  drm/msm: Avoid mutex in shrinker_count()
  drm/msm: Fix debugfs deadlock
  drm/msm: Improved debugfs gem stats

 drivers/gpu/drm/msm/msm_debugfs.c      | 14 ++----
 drivers/gpu/drm/msm/msm_drv.c          |  4 ++
 drivers/gpu/drm/msm/msm_drv.h          | 10 ++++-
 drivers/gpu/drm/msm/msm_fb.c           |  3 +-
 drivers/gpu/drm/msm/msm_gem.c          | 61 +++++++++++++++++++++-----
 drivers/gpu/drm/msm/msm_gem.h          | 58 +++++++++++++++++++++---
 drivers/gpu/drm/msm/msm_gem_shrinker.c | 17 +------
 7 files changed, 122 insertions(+), 45 deletions(-)

-- 
2.30.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

             reply	other threads:[~2021-03-31 22:14 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-31 22:16 Rob Clark [this message]
2021-03-31 22:16 ` [PATCH 0/4] drm/msm: Shrinker (and related) fixes Rob Clark
2021-03-31 22:16 ` [PATCH 1/4] drm/msm: Remove unused freed llist node Rob Clark
2021-03-31 22:16   ` Rob Clark
2021-03-31 23:46   ` Doug Anderson
2021-03-31 23:46     ` Doug Anderson
2021-03-31 22:16 ` [PATCH 2/4] drm/msm: Avoid mutex in shrinker_count() Rob Clark
2021-03-31 22:16   ` Rob Clark
2021-03-31 22:44   ` Doug Anderson
2021-03-31 22:44     ` Doug Anderson
2021-03-31 23:26     ` Rob Clark
2021-03-31 23:26       ` Rob Clark
2021-03-31 23:39       ` Doug Anderson
2021-03-31 23:39         ` Doug Anderson
2021-04-01  0:17         ` Rob Clark
2021-04-01  0:17           ` Rob Clark
2021-03-31 22:16 ` [PATCH 3/4] drm/msm: Fix debugfs deadlock Rob Clark
2021-03-31 22:16   ` Rob Clark
2021-03-31 23:13   ` Doug Anderson
2021-03-31 23:13     ` Doug Anderson
2021-03-31 23:31     ` Rob Clark
2021-03-31 23:31       ` Rob Clark
2021-03-31 22:16 ` [PATCH 4/4] drm/msm: Improved debugfs gem stats Rob Clark
2021-03-31 22:16   ` Rob Clark
2021-03-31 23:33   ` Doug Anderson
2021-03-31 23:33     ` Doug Anderson
2021-03-31 23:46 ` [PATCH 0/4] drm/msm: Shrinker (and related) fixes Doug Anderson
2021-03-31 23:46   ` Doug Anderson
2021-04-01  1:27 ` [PATCH v2 " Rob Clark
2021-04-01  1:27   ` Rob Clark
2021-04-01  1:27   ` [PATCH v2 1/4] drm/msm: Remove unused freed llist node Rob Clark
2021-04-01  1:27     ` Rob Clark
2021-04-01 15:34     ` Doug Anderson
2021-04-01 15:34       ` Doug Anderson
2021-05-26 19:03     ` patchwork-bot+linux-arm-msm
2021-04-01  1:27   ` [PATCH v2 2/4] drm/msm: Avoid mutex in shrinker_count() Rob Clark
2021-04-01  1:27     ` Rob Clark
2021-04-01 15:34     ` Doug Anderson
2021-04-01 15:34       ` Doug Anderson
2021-04-01 17:37       ` Rob Clark
2021-04-01 17:37         ` Rob Clark
2021-04-01  1:27   ` [PATCH v2 3/4] drm/msm: Fix debugfs deadlock Rob Clark
2021-04-01  1:27     ` Rob Clark
2021-04-01 15:34     ` Doug Anderson
2021-04-01 15:34       ` Doug Anderson
2021-04-01  1:27   ` [PATCH v2 4/4] drm/msm: Improved debugfs gem stats Rob Clark
2021-04-01  1:27     ` Rob Clark

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210331221630.488498-1-robdclark@gmail.com \
    --to=robdclark@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=freedreno@lists.freedesktop.org \
    --cc=hoegsberg@google.com \
    --cc=jordan@cosmicpenguin.net \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robdclark@chromium.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.