From 612bacfc80a5596a704f5c68f37d7eb94fb54244 Mon Sep 17 00:00:00 2001 From: Jordan Crouse Date: Mon, 14 Oct 2019 10:41:08 -0600 Subject: [PATCH] msm: kgsl: Remove enhanced memory accounting Remove some memory accounting that is unsupported in the upstream kernel. If the feature that used these statistics returns then these can be easily returned to their rightful places. Change-Id: Ic0dedbadf56ab28d6610d52ab6e901dc8f9dadff Signed-off-by: Jordan Crouse --- drivers/gpu/msm/kgsl.c | 16 ++++++++++++++++ drivers/gpu/msm/kgsl_device.h | 33 -------------------------------- drivers/gpu/msm/kgsl_pool.c | 5 ----- drivers/gpu/msm/kgsl_sharedmem.c | 9 +-------- 4 files changed, 17 insertions(+), 46 deletions(-) diff --git a/drivers/gpu/msm/kgsl.c b/drivers/gpu/msm/kgsl.c index befe80600e6a..8a265cc019f1 100644 --- a/drivers/gpu/msm/kgsl.c +++ b/drivers/gpu/msm/kgsl.c @@ -327,6 +327,12 @@ static void kgsl_destroy_ion(struct kgsl_dma_buf_meta *meta) } #endif +static void kgsl_process_sub_stats(struct kgsl_process_private *priv, + unsigned int type, uint64_t size) +{ + priv->stats[type].cur -= size; +} + void kgsl_mem_entry_destroy(struct kref *kref) { @@ -2599,6 +2605,16 @@ static long _gpuobj_map_dma_buf(struct kgsl_device *device, } #endif +static void kgsl_process_add_stats(struct kgsl_process_private *priv, + unsigned int type, uint64_t size) +{ + priv->stats[type].cur += size; + if (priv->stats[type].max < priv->stats[type].cur) + priv->stats[type].max = priv->stats[type].cur; +} + + + long kgsl_ioctl_gpuobj_import(struct kgsl_device_private *dev_priv, unsigned int cmd, void *data) { diff --git a/drivers/gpu/msm/kgsl_device.h b/drivers/gpu/msm/kgsl_device.h index d77ce8893431..6a83c0437ee2 100644 --- a/drivers/gpu/msm/kgsl_device.h +++ b/drivers/gpu/msm/kgsl_device.h @@ -526,39 +526,6 @@ struct kgsl_snapshot_object { struct kgsl_device *kgsl_get_device(int dev_idx); -static inline void kgsl_process_add_stats(struct kgsl_process_private *priv, - unsigned int type, uint64_t size) -{ - priv->stats[type].cur += size; - if (priv->stats[type].max < priv->stats[type].cur) - priv->stats[type].max = priv->stats[type].cur; - add_mm_counter(current->mm, MM_UNRECLAIMABLE, (size >> PAGE_SHIFT)); -} - -static inline void kgsl_process_sub_stats(struct kgsl_process_private *priv, - unsigned int type, uint64_t size) -{ - struct pid *pid_struct; - struct task_struct *task; - struct mm_struct *mm; - - priv->stats[type].cur -= size; - pid_struct = find_get_pid(priv->pid); - if (pid_struct) { - task = get_pid_task(pid_struct, PIDTYPE_PID); - if (task) { - mm = get_task_mm(task); - if (mm) { - add_mm_counter(mm, MM_UNRECLAIMABLE, - -(size >> PAGE_SHIFT)); - mmput(mm); - } - put_task_struct(task); - } - put_pid(pid_struct); - } -} - static inline bool kgsl_is_register_offset(struct kgsl_device *device, unsigned int offsetwords) { diff --git a/drivers/gpu/msm/kgsl_pool.c b/drivers/gpu/msm/kgsl_pool.c index c7b440f0f342..b4f16256efb7 100644 --- a/drivers/gpu/msm/kgsl_pool.c +++ b/drivers/gpu/msm/kgsl_pool.c @@ -421,8 +421,6 @@ done: pcount++; } - mod_node_page_state(page_pgdat(page), NR_UNRECLAIMABLE_PAGES, - (1 << order)); return pcount; eagain: @@ -494,9 +492,6 @@ static void kgsl_pool_free_page(struct page *page) page_order = compound_order(page); - mod_node_page_state(page_pgdat(page), NR_UNRECLAIMABLE_PAGES, - -(1 << page_order)); - if (!kgsl_pool_max_pages || (kgsl_pool_size_total() < kgsl_pool_max_pages)) { pool = _kgsl_get_pool_from_order(page_order); diff --git a/drivers/gpu/msm/kgsl_sharedmem.c b/drivers/gpu/msm/kgsl_sharedmem.c index 6fec82642dcc..ba33934c94d2 100644 --- a/drivers/gpu/msm/kgsl_sharedmem.c +++ b/drivers/gpu/msm/kgsl_sharedmem.c @@ -986,9 +986,6 @@ static void kgsl_contiguous_free(struct kgsl_memdesc *memdesc) atomic_long_sub(memdesc->size, &kgsl_driver.stats.coherent); - mod_node_page_state(page_pgdat(phys_to_page(memdesc->physaddr)), - NR_UNRECLAIMABLE_PAGES, -(memdesc->size >> PAGE_SHIFT)); - _kgsl_contiguous_free(memdesc); } @@ -1186,14 +1183,10 @@ static int kgsl_alloc_contiguous(struct kgsl_device *device, memdesc->ops = &kgsl_contiguous_ops; ret = _kgsl_alloc_contiguous(device->dev->parent, memdesc, size, 0); - if (!ret) { + if (!ret) KGSL_STATS_ADD(size, &kgsl_driver.stats.coherent, &kgsl_driver.stats.coherent_max); - mod_node_page_state(page_pgdat(phys_to_page(memdesc->physaddr)), - NR_UNRECLAIMABLE_PAGES, (size >> PAGE_SHIFT)); - } - return ret; }