Loading drivers/gpu/msm/kgsl.c +2 −0 Original line number Diff line number Diff line Loading @@ -4684,6 +4684,8 @@ struct kgsl_driver kgsl_driver = { .stats.secure_max = ATOMIC_LONG_INIT(0), .stats.mapped = ATOMIC_LONG_INIT(0), .stats.mapped_max = ATOMIC_LONG_INIT(0), .stats.page_free_pending = ATOMIC_LONG_INIT(0), .stats.page_alloc_pending = ATOMIC_LONG_INIT(0), }; EXPORT_SYMBOL(kgsl_driver); Loading drivers/gpu/msm/kgsl.h +2 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,8 @@ struct kgsl_driver { atomic_long_t secure_max; atomic_long_t mapped; atomic_long_t mapped_max; atomic_long_t page_free_pending; atomic_long_t page_alloc_pending; } stats; unsigned int full_cache_threshold; struct workqueue_struct *workqueue; Loading drivers/gpu/msm/kgsl_sharedmem.c +12 −1 Original line number Diff line number Diff line Loading @@ -533,7 +533,8 @@ static void kgsl_page_alloc_free(struct kgsl_memdesc *memdesc) atomic_long_sub(memdesc->size, &kgsl_driver.stats.secure); } else { atomic_long_sub(memdesc->size, &kgsl_driver.stats.page_alloc); atomic_long_add(memdesc->size, &kgsl_driver.stats.page_free_pending); } /* Free pages using the pages array for non secure paged memory */ Loading @@ -542,6 +543,11 @@ static void kgsl_page_alloc_free(struct kgsl_memdesc *memdesc) else kgsl_pool_free_sgt(memdesc->sgt); if (!(memdesc->priv & KGSL_MEMDESC_TZ_LOCKED)) { atomic_long_sub(memdesc->size, &kgsl_driver.stats.page_alloc); atomic_long_sub(memdesc->size, &kgsl_driver.stats.page_free_pending); } } /* Loading Loading @@ -886,6 +892,8 @@ kgsl_sharedmem_page_alloc_user(struct kgsl_memdesc *memdesc, * are allocated by kgsl. This helps with improving the vm fault * routine by finding the faulted page in constant time. */ if (!(memdesc->flags & KGSL_MEMFLAGS_SECURE)) atomic_long_add(size, &kgsl_driver.stats.page_alloc_pending); memdesc->pages = kgsl_malloc(len_alloc * sizeof(struct page *)); memdesc->page_count = 0; Loading Loading @@ -980,6 +988,9 @@ kgsl_sharedmem_page_alloc_user(struct kgsl_memdesc *memdesc, &kgsl_driver.stats.page_alloc_max); done: if (!(memdesc->flags & KGSL_MEMFLAGS_SECURE)) atomic_long_sub(size, &kgsl_driver.stats.page_alloc_pending); if (ret) { if (memdesc->pages) { unsigned int count = 1; Loading Loading
drivers/gpu/msm/kgsl.c +2 −0 Original line number Diff line number Diff line Loading @@ -4684,6 +4684,8 @@ struct kgsl_driver kgsl_driver = { .stats.secure_max = ATOMIC_LONG_INIT(0), .stats.mapped = ATOMIC_LONG_INIT(0), .stats.mapped_max = ATOMIC_LONG_INIT(0), .stats.page_free_pending = ATOMIC_LONG_INIT(0), .stats.page_alloc_pending = ATOMIC_LONG_INIT(0), }; EXPORT_SYMBOL(kgsl_driver); Loading
drivers/gpu/msm/kgsl.h +2 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,8 @@ struct kgsl_driver { atomic_long_t secure_max; atomic_long_t mapped; atomic_long_t mapped_max; atomic_long_t page_free_pending; atomic_long_t page_alloc_pending; } stats; unsigned int full_cache_threshold; struct workqueue_struct *workqueue; Loading
drivers/gpu/msm/kgsl_sharedmem.c +12 −1 Original line number Diff line number Diff line Loading @@ -533,7 +533,8 @@ static void kgsl_page_alloc_free(struct kgsl_memdesc *memdesc) atomic_long_sub(memdesc->size, &kgsl_driver.stats.secure); } else { atomic_long_sub(memdesc->size, &kgsl_driver.stats.page_alloc); atomic_long_add(memdesc->size, &kgsl_driver.stats.page_free_pending); } /* Free pages using the pages array for non secure paged memory */ Loading @@ -542,6 +543,11 @@ static void kgsl_page_alloc_free(struct kgsl_memdesc *memdesc) else kgsl_pool_free_sgt(memdesc->sgt); if (!(memdesc->priv & KGSL_MEMDESC_TZ_LOCKED)) { atomic_long_sub(memdesc->size, &kgsl_driver.stats.page_alloc); atomic_long_sub(memdesc->size, &kgsl_driver.stats.page_free_pending); } } /* Loading Loading @@ -886,6 +892,8 @@ kgsl_sharedmem_page_alloc_user(struct kgsl_memdesc *memdesc, * are allocated by kgsl. This helps with improving the vm fault * routine by finding the faulted page in constant time. */ if (!(memdesc->flags & KGSL_MEMFLAGS_SECURE)) atomic_long_add(size, &kgsl_driver.stats.page_alloc_pending); memdesc->pages = kgsl_malloc(len_alloc * sizeof(struct page *)); memdesc->page_count = 0; Loading Loading @@ -980,6 +988,9 @@ kgsl_sharedmem_page_alloc_user(struct kgsl_memdesc *memdesc, &kgsl_driver.stats.page_alloc_max); done: if (!(memdesc->flags & KGSL_MEMFLAGS_SECURE)) atomic_long_sub(size, &kgsl_driver.stats.page_alloc_pending); if (ret) { if (memdesc->pages) { unsigned int count = 1; Loading