mirror of
				https://github.com/qemu/qemu.git
				synced 2025-10-31 04:06:46 +00:00 
			
		
		
		
	 126d4123c5
			
		
	
	
		126d4123c5
		
	
	
	
	
		
			
			Now we have no TCG trace events and no longer handle them in the code we can remove the handling from the tracetool to generate them. vcpu tracing is still available although the existing syscall event is an exercise in redundancy (plugins and -strace can also get the information). Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Cc: Luis Vilanova <vilanova@imperial.ac.uk> Cc: Stefan Hajnoczi <stefanha@redhat.com> Message-Id: <20220204204335.1689602-21-alex.bennee@linaro.org>
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # -*- coding: utf-8 -*-
 | |
| 
 | |
| """
 | |
| Generic management for the 'vcpu' property.
 | |
| 
 | |
| """
 | |
| 
 | |
| __author__     = "Lluís Vilanova <vilanova@ac.upc.edu>"
 | |
| __copyright__  = "Copyright 2016, Lluís Vilanova <vilanova@ac.upc.edu>"
 | |
| __license__    = "GPL version 2 or (at your option) any later version"
 | |
| 
 | |
| __maintainer__ = "Stefan Hajnoczi"
 | |
| __email__      = "stefanha@redhat.com"
 | |
| 
 | |
| 
 | |
| from tracetool import Arguments, try_import
 | |
| 
 | |
| 
 | |
| def transform_event(event):
 | |
|     """Transform event to comply with the 'vcpu' property (if present)."""
 | |
|     if "vcpu" in event.properties:
 | |
|         event.args = Arguments([("void *", "__cpu"), event.args])
 | |
|         fmt = "\"cpu=%p \""
 | |
|         event.fmt = fmt + event.fmt
 | |
|     return event
 | |
| 
 | |
| 
 | |
| def transform_args(format, event, *args, **kwargs):
 | |
|     """Transforms the arguments to suit the specified format.
 | |
| 
 | |
|     The format module must implement function 'vcpu_args', which receives the
 | |
|     implicit arguments added by the 'vcpu' property, and must return suitable
 | |
|     arguments for the given format.
 | |
| 
 | |
|     The function is only called for events with the 'vcpu' property.
 | |
| 
 | |
|     Parameters
 | |
|     ==========
 | |
|     format : str
 | |
|         Format module name.
 | |
|     event : Event
 | |
|     args, kwargs
 | |
|         Passed to 'vcpu_transform_args'.
 | |
| 
 | |
|     Returns
 | |
|     =======
 | |
|     Arguments
 | |
|         The transformed arguments, including the non-implicit ones.
 | |
| 
 | |
|     """
 | |
|     if "vcpu" in event.properties:
 | |
|         ok, func = try_import("tracetool.format." + format,
 | |
|                               "vcpu_transform_args")
 | |
|         assert ok
 | |
|         assert func
 | |
|         return Arguments([func(event.args[:1], *args, **kwargs),
 | |
|                           event.args[1:]])
 | |
|     else:
 | |
|         return event.args
 |