Merge "gpu: ion: Add Tracepoints to iommu/system heap"

This commit is contained in:
Linux Build Service Account
2013-04-24 18:05:27 -07:00
committed by Gerrit - the friendly Code Review server
3 changed files with 76 additions and 2 deletions
+6 -1
View File
@@ -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;
+6 -1
View File
@@ -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);
+64
View File
@@ -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 */