drm/panfrost: Add madvise and shrinker support

Add support for madvise and a shrinker similar to other drivers. This
allows userspace to mark BOs which can be freed when there is memory
pressure.

Unlike other implementations, we don't depend on struct_mutex. The
driver maintains a list of BOs which can be freed when the shrinker
is called. Access to the list is serialized with the shrinker_lock.

Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Signed-off-by: Rob Herring <robh@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20190805143358.21245-2-robh@kernel.org
This commit is contained in:
Rob Herring
2019-08-05 08:33:58 -06:00
szülő 17acb9f35e
commit 013b651013
8 fájl változott, egészen pontosan 180 új sor hozzáadva és 2 régi sor törölve

Fájl megtekintése

@@ -85,6 +85,10 @@ struct panfrost_device {
struct mutex sched_lock;
struct mutex reset_lock;
struct mutex shrinker_lock;
struct list_head shrinker_list;
struct shrinker shrinker;
struct {
struct devfreq *devfreq;
struct thermal_cooling_device *cooling;