From: "Steven Rostedt (Google)" <rost...@goodmis.org>

Do not submit!

This is for testing purposes only. It hard codes an address that I was
using to store the ring buffer range. How the memory actually gets mapped
will be another project.

Signed-off-by: Steven Rostedt (Google) <rost...@goodmis.org>
---
 arch/x86/kernel/setup.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 84201071dfac..dcba729349d3 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -26,6 +26,8 @@
 #include <linux/swiotlb.h>
 #include <linux/random.h>
 
+#include <linux/trace.h>
+
 #include <uapi/linux/mount.h>
 
 #include <xen/xen.h>
@@ -1106,6 +1108,24 @@ void __init setup_arch(char **cmdline_p)
         */
        arch_reserve_crashkernel();
 
+       trace_buffer_size = 12582912;
+       {
+               phys_addr_t ftrace_addr;
+               unsigned long phys_start = 0x285400000;
+               unsigned long phys_end = phys_start + trace_buffer_size + 
1024*1024;
+
+               ftrace_addr = memblock_phys_alloc_range(trace_buffer_size, 4096,
+                                                       phys_start, phys_end);
+               if (ftrace_addr) {
+                       printk("MEMORY ALLOC %lx-%lx\n", (long)ftrace_addr,
+                              (long)ftrace_addr + trace_buffer_size);
+                       trace_buffer_start = (unsigned long)__va(ftrace_addr);
+                       printk("MEMORY ADDR %lx-%lx\n", trace_buffer_start,
+                              trace_buffer_start + trace_buffer_size);
+               } else
+                       printk("MEMORY FAILED\n");
+       }
+
        memblock_find_dma_reserve();
 
        if (!early_xdbc_setup_hardware())
-- 
2.43.0



Reply via email to