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:
@@ -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;
|
||||
|
Reference in New Issue
Block a user