mirror of
				https://github.com/ARM-software/devlib.git
				synced 2025-11-04 07:51:21 +00:00 
			
		
		
		
	ftrace: Ensure /proc/kallsyms contains symbol addresses
The content of /proc/kallsyms depends on the value of /proc/sys/kernel/kptr_restrict: * If 0, restriction is lifted and kallsyms contains real addresses * If 1, kallsyms will contain null pointers Since trace-cmd records the content of kallsyms into the trace.dat and uses that to pretty-print function names (function tracer/grapher), ensure that its content is available. Signed-off-by: Douglas RAILLARD <douglas.raillard@arm.com>
This commit is contained in:
		
				
					committed by
					
						
						Marc Bonnici
					
				
			
			
				
	
			
			
			
						parent
						
							2650a534f3
						
					
				
				
					commit
					0e6280ae31
				
			@@ -20,6 +20,7 @@ import time
 | 
				
			|||||||
import re
 | 
					import re
 | 
				
			||||||
import subprocess
 | 
					import subprocess
 | 
				
			||||||
import sys
 | 
					import sys
 | 
				
			||||||
 | 
					import contextlib
 | 
				
			||||||
from pipes import quote
 | 
					from pipes import quote
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from devlib.trace import TraceCollector
 | 
					from devlib.trace import TraceCollector
 | 
				
			||||||
@@ -226,6 +227,11 @@ class FtraceCollector(TraceCollector):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        tracer_string = '-p {}'.format(self.tracer) if self.tracer else ''
 | 
					        tracer_string = '-p {}'.format(self.tracer) if self.tracer else ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Ensure kallsyms contains addresses if possible, so that function the
 | 
				
			||||||
 | 
					        # collected trace contains enough data for pretty printing
 | 
				
			||||||
 | 
					        with contextlib.suppress(TargetStableError):
 | 
				
			||||||
 | 
					            self.target.write_value('/proc/sys/kernel/kptr_restrict', 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.target.write_value(self.trace_clock_file, self.trace_clock, verify=False)
 | 
					        self.target.write_value(self.trace_clock_file, self.trace_clock, verify=False)
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.target.write_value(self.save_cmdlines_size_file, self.saved_cmdlines_nr)
 | 
					            self.target.write_value(self.save_cmdlines_size_file, self.saved_cmdlines_nr)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user