diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | 56 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 21 |
2 files changed, 3 insertions, 74 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h index 1c88bd5e29ad..b1f97417241d 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | |||
@@ -14,62 +14,6 @@ | |||
14 | #define AMDGPU_JOB_GET_TIMELINE_NAME(job) \ | 14 | #define AMDGPU_JOB_GET_TIMELINE_NAME(job) \ |
15 | job->base.s_fence->finished.ops->get_timeline_name(&job->base.s_fence->finished) | 15 | job->base.s_fence->finished.ops->get_timeline_name(&job->base.s_fence->finished) |
16 | 16 | ||
17 | TRACE_EVENT(amdgpu_ttm_tt_populate, | ||
18 | TP_PROTO(struct amdgpu_device *adev, uint64_t dma_address, uint64_t phys_address), | ||
19 | TP_ARGS(adev, dma_address, phys_address), | ||
20 | TP_STRUCT__entry( | ||
21 | __field(uint16_t, domain) | ||
22 | __field(uint8_t, bus) | ||
23 | __field(uint8_t, slot) | ||
24 | __field(uint8_t, func) | ||
25 | __field(uint64_t, dma) | ||
26 | __field(uint64_t, phys) | ||
27 | ), | ||
28 | TP_fast_assign( | ||
29 | __entry->domain = pci_domain_nr(adev->pdev->bus); | ||
30 | __entry->bus = adev->pdev->bus->number; | ||
31 | __entry->slot = PCI_SLOT(adev->pdev->devfn); | ||
32 | __entry->func = PCI_FUNC(adev->pdev->devfn); | ||
33 | __entry->dma = dma_address; | ||
34 | __entry->phys = phys_address; | ||
35 | ), | ||
36 | TP_printk("%04x:%02x:%02x.%x: 0x%llx => 0x%llx", | ||
37 | (unsigned)__entry->domain, | ||
38 | (unsigned)__entry->bus, | ||
39 | (unsigned)__entry->slot, | ||
40 | (unsigned)__entry->func, | ||
41 | (unsigned long long)__entry->dma, | ||
42 | (unsigned long long)__entry->phys) | ||
43 | ); | ||
44 | |||
45 | TRACE_EVENT(amdgpu_ttm_tt_unpopulate, | ||
46 | TP_PROTO(struct amdgpu_device *adev, uint64_t dma_address, uint64_t phys_address), | ||
47 | TP_ARGS(adev, dma_address, phys_address), | ||
48 | TP_STRUCT__entry( | ||
49 | __field(uint16_t, domain) | ||
50 | __field(uint8_t, bus) | ||
51 | __field(uint8_t, slot) | ||
52 | __field(uint8_t, func) | ||
53 | __field(uint64_t, dma) | ||
54 | __field(uint64_t, phys) | ||
55 | ), | ||
56 | TP_fast_assign( | ||
57 | __entry->domain = pci_domain_nr(adev->pdev->bus); | ||
58 | __entry->bus = adev->pdev->bus->number; | ||
59 | __entry->slot = PCI_SLOT(adev->pdev->devfn); | ||
60 | __entry->func = PCI_FUNC(adev->pdev->devfn); | ||
61 | __entry->dma = dma_address; | ||
62 | __entry->phys = phys_address; | ||
63 | ), | ||
64 | TP_printk("%04x:%02x:%02x.%x: 0x%llx => 0x%llx", | ||
65 | (unsigned)__entry->domain, | ||
66 | (unsigned)__entry->bus, | ||
67 | (unsigned)__entry->slot, | ||
68 | (unsigned)__entry->func, | ||
69 | (unsigned long long)__entry->dma, | ||
70 | (unsigned long long)__entry->phys) | ||
71 | ); | ||
72 | |||
73 | TRACE_EVENT(amdgpu_mm_rreg, | 17 | TRACE_EVENT(amdgpu_mm_rreg, |
74 | TP_PROTO(unsigned did, uint32_t reg, uint32_t value), | 18 | TP_PROTO(unsigned did, uint32_t reg, uint32_t value), |
75 | TP_ARGS(did, reg, value), | 19 | TP_ARGS(did, reg, value), |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index 7ef6c28a34d9..d1d94a14b089 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | |||
@@ -34,6 +34,7 @@ | |||
34 | #include <drm/ttm/ttm_placement.h> | 34 | #include <drm/ttm/ttm_placement.h> |
35 | #include <drm/ttm/ttm_module.h> | 35 | #include <drm/ttm/ttm_module.h> |
36 | #include <drm/ttm/ttm_page_alloc.h> | 36 | #include <drm/ttm/ttm_page_alloc.h> |
37 | #include <drm/ttm/ttm_debug.h> | ||
37 | #include <drm/drmP.h> | 38 | #include <drm/drmP.h> |
38 | #include <drm/amdgpu_drm.h> | 39 | #include <drm/amdgpu_drm.h> |
39 | #include <linux/seq_file.h> | 40 | #include <linux/seq_file.h> |
@@ -667,32 +668,16 @@ static void amdgpu_trace_dma_map(struct ttm_tt *ttm) | |||
667 | { | 668 | { |
668 | struct amdgpu_device *adev = amdgpu_ttm_adev(ttm->bdev); | 669 | struct amdgpu_device *adev = amdgpu_ttm_adev(ttm->bdev); |
669 | struct amdgpu_ttm_tt *gtt = (void *)ttm; | 670 | struct amdgpu_ttm_tt *gtt = (void *)ttm; |
670 | unsigned i; | ||
671 | 671 | ||
672 | if (unlikely(trace_amdgpu_ttm_tt_populate_enabled())) { | 672 | ttm_trace_dma_map(adev->dev, >t->ttm); |
673 | for (i = 0; i < ttm->num_pages; i++) { | ||
674 | trace_amdgpu_ttm_tt_populate( | ||
675 | adev, | ||
676 | gtt->ttm.dma_address[i], | ||
677 | page_to_phys(ttm->pages[i])); | ||
678 | } | ||
679 | } | ||
680 | } | 673 | } |
681 | 674 | ||
682 | static void amdgpu_trace_dma_unmap(struct ttm_tt *ttm) | 675 | static void amdgpu_trace_dma_unmap(struct ttm_tt *ttm) |
683 | { | 676 | { |
684 | struct amdgpu_device *adev = amdgpu_ttm_adev(ttm->bdev); | 677 | struct amdgpu_device *adev = amdgpu_ttm_adev(ttm->bdev); |
685 | struct amdgpu_ttm_tt *gtt = (void *)ttm; | 678 | struct amdgpu_ttm_tt *gtt = (void *)ttm; |
686 | unsigned i; | ||
687 | 679 | ||
688 | if (unlikely(trace_amdgpu_ttm_tt_unpopulate_enabled())) { | 680 | ttm_trace_dma_unmap(adev->dev, >t->ttm); |
689 | for (i = 0; i < ttm->num_pages; i++) { | ||
690 | trace_amdgpu_ttm_tt_unpopulate( | ||
691 | adev, | ||
692 | gtt->ttm.dma_address[i], | ||
693 | page_to_phys(ttm->pages[i])); | ||
694 | } | ||
695 | } | ||
696 | } | 681 | } |
697 | 682 | ||
698 | /* prepare the sg table with the user pages */ | 683 | /* prepare the sg table with the user pages */ |