forked from rubenslte/android_kernel_samsung_msm8226
Merge "gpu: ion: Add Tracepoints to iommu/system heap"
This commit is contained in:
committed by
Gerrit - the friendly Code Review server
commit
04da9554b0
@@ -27,6 +27,7 @@
|
||||
#include <asm/page.h>
|
||||
#include <asm/cacheflush.h>
|
||||
#include <mach/iommu_domains.h>
|
||||
#include <trace/events/kmem.h>
|
||||
|
||||
struct ion_iommu_heap {
|
||||
struct ion_heap heap;
|
||||
@@ -83,9 +84,13 @@ static struct page_info *alloc_largest_available(unsigned long size,
|
||||
} else {
|
||||
gfp |= GFP_KERNEL;
|
||||
}
|
||||
trace_alloc_pages_iommu_start(gfp, orders[i]);
|
||||
page = alloc_pages(gfp, orders[i]);
|
||||
if (!page)
|
||||
trace_alloc_pages_iommu_end(gfp, orders[i]);
|
||||
if (!page) {
|
||||
trace_alloc_pages_iommu_fail(gfp, orders[i]);
|
||||
continue;
|
||||
}
|
||||
|
||||
info = kmalloc(sizeof(struct page_info), GFP_KERNEL);
|
||||
info->page = page;
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
#include <asm/cacheflush.h>
|
||||
#include <linux/msm_ion.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <trace/events/kmem.h>
|
||||
|
||||
static atomic_t system_heap_allocated;
|
||||
static atomic_t system_contig_heap_allocated;
|
||||
@@ -85,9 +86,13 @@ static struct page *alloc_buffer_page(struct ion_system_heap *heap,
|
||||
|
||||
if (order > 4)
|
||||
gfp_flags = high_order_gfp_flags;
|
||||
trace_alloc_pages_sys_start(gfp_flags, order);
|
||||
page = alloc_pages(gfp_flags, order);
|
||||
if (!page)
|
||||
trace_alloc_pages_sys_end(gfp_flags, order);
|
||||
if (!page) {
|
||||
trace_alloc_pages_sys_fail(gfp_flags, order);
|
||||
return 0;
|
||||
}
|
||||
sg_init_table(&sg, 1);
|
||||
sg_set_page(&sg, page, PAGE_SIZE << order, 0);
|
||||
dma_sync_sg_for_device(NULL, &sg, 1, DMA_BIDIRECTIONAL);
|
||||
|
||||
@@ -495,6 +495,70 @@ DEFINE_EVENT(migrate_pages, migrate_pages_end,
|
||||
TP_ARGS(mode)
|
||||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(ion_alloc_pages,
|
||||
|
||||
TP_PROTO(gfp_t gfp_flags,
|
||||
unsigned int order),
|
||||
|
||||
TP_ARGS(gfp_flags, order),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(gfp_t, gfp_flags)
|
||||
__field(unsigned int, order)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->gfp_flags = gfp_flags;
|
||||
__entry->order = order;
|
||||
),
|
||||
|
||||
TP_printk("gfp_flags=%s order=%d",
|
||||
show_gfp_flags(__entry->gfp_flags),
|
||||
__entry->order)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(ion_alloc_pages, alloc_pages_iommu_start,
|
||||
TP_PROTO(gfp_t gfp_flags,
|
||||
unsigned int order),
|
||||
|
||||
TP_ARGS(gfp_flags, order)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(ion_alloc_pages, alloc_pages_iommu_end,
|
||||
TP_PROTO(gfp_t gfp_flags,
|
||||
unsigned int order),
|
||||
|
||||
TP_ARGS(gfp_flags, order)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(ion_alloc_pages, alloc_pages_iommu_fail,
|
||||
TP_PROTO(gfp_t gfp_flags,
|
||||
unsigned int order),
|
||||
|
||||
TP_ARGS(gfp_flags, order)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(ion_alloc_pages, alloc_pages_sys_start,
|
||||
TP_PROTO(gfp_t gfp_flags,
|
||||
unsigned int order),
|
||||
|
||||
TP_ARGS(gfp_flags, order)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(ion_alloc_pages, alloc_pages_sys_end,
|
||||
TP_PROTO(gfp_t gfp_flags,
|
||||
unsigned int order),
|
||||
|
||||
TP_ARGS(gfp_flags, order)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(ion_alloc_pages, alloc_pages_sys_fail,
|
||||
TP_PROTO(gfp_t gfp_flags,
|
||||
unsigned int order),
|
||||
|
||||
TP_ARGS(gfp_flags, order)
|
||||
);
|
||||
|
||||
#endif /* _TRACE_KMEM_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
|
||||
Reference in New Issue
Block a user