trace: Remove %s in grlib trace events
Trace events cannot use %s in their format strings because trace backends vary in how they can deference pointers (if at all). Recording const char * values is not meaningful if their contents are not recorded too. Change grlib trace events that rely on strings so that they communicate similar information without using strings. A follow-up patch explains this limitation and updates docs/tracing.txt. Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
This commit is contained in:
		
							parent
							
								
									1a96dd472c
								
							
						
					
					
						commit
						b4548fcc03
					
				@ -133,7 +133,7 @@ grlib_apbuart_writel(void *opaque, target_phys_addr_t addr, uint32_t value)
 | 
				
			|||||||
        break;
 | 
					        break;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    trace_grlib_apbuart_unknown_register("write", addr);
 | 
					    trace_grlib_apbuart_writel_unknown(addr, value);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static CPUReadMemoryFunc * const grlib_apbuart_read[] = {
 | 
					static CPUReadMemoryFunc * const grlib_apbuart_read[] = {
 | 
				
			||||||
 | 
				
			|||||||
@ -165,15 +165,15 @@ static uint32_t grlib_gptimer_readl(void *opaque, target_phys_addr_t addr)
 | 
				
			|||||||
    /* Unit registers */
 | 
					    /* Unit registers */
 | 
				
			||||||
    switch (addr) {
 | 
					    switch (addr) {
 | 
				
			||||||
    case SCALER_OFFSET:
 | 
					    case SCALER_OFFSET:
 | 
				
			||||||
        trace_grlib_gptimer_readl(-1, "scaler:", unit->scaler);
 | 
					        trace_grlib_gptimer_readl(-1, addr, unit->scaler);
 | 
				
			||||||
        return unit->scaler;
 | 
					        return unit->scaler;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    case SCALER_RELOAD_OFFSET:
 | 
					    case SCALER_RELOAD_OFFSET:
 | 
				
			||||||
        trace_grlib_gptimer_readl(-1, "reload:", unit->reload);
 | 
					        trace_grlib_gptimer_readl(-1, addr, unit->reload);
 | 
				
			||||||
        return unit->reload;
 | 
					        return unit->reload;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    case CONFIG_OFFSET:
 | 
					    case CONFIG_OFFSET:
 | 
				
			||||||
        trace_grlib_gptimer_readl(-1, "config:", unit->config);
 | 
					        trace_grlib_gptimer_readl(-1, addr, unit->config);
 | 
				
			||||||
        return unit->config;
 | 
					        return unit->config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    default:
 | 
					    default:
 | 
				
			||||||
@ -189,17 +189,16 @@ static uint32_t grlib_gptimer_readl(void *opaque, target_phys_addr_t addr)
 | 
				
			|||||||
        switch (timer_addr) {
 | 
					        switch (timer_addr) {
 | 
				
			||||||
        case COUNTER_OFFSET:
 | 
					        case COUNTER_OFFSET:
 | 
				
			||||||
            value = ptimer_get_count(unit->timers[id].ptimer);
 | 
					            value = ptimer_get_count(unit->timers[id].ptimer);
 | 
				
			||||||
            trace_grlib_gptimer_readl(id, "counter value:", value);
 | 
					            trace_grlib_gptimer_readl(id, addr, value);
 | 
				
			||||||
            return value;
 | 
					            return value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        case COUNTER_RELOAD_OFFSET:
 | 
					        case COUNTER_RELOAD_OFFSET:
 | 
				
			||||||
            value = unit->timers[id].reload;
 | 
					            value = unit->timers[id].reload;
 | 
				
			||||||
            trace_grlib_gptimer_readl(id, "reload value:", value);
 | 
					            trace_grlib_gptimer_readl(id, addr, value);
 | 
				
			||||||
            return value;
 | 
					            return value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        case CONFIG_OFFSET:
 | 
					        case CONFIG_OFFSET:
 | 
				
			||||||
            trace_grlib_gptimer_readl(id, "scaler value:",
 | 
					            trace_grlib_gptimer_readl(id, addr, unit->timers[id].config);
 | 
				
			||||||
                                      unit->timers[id].config);
 | 
					 | 
				
			||||||
            return unit->timers[id].config;
 | 
					            return unit->timers[id].config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
@ -208,7 +207,7 @@ static uint32_t grlib_gptimer_readl(void *opaque, target_phys_addr_t addr)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    trace_grlib_gptimer_unknown_register("read", addr);
 | 
					    trace_grlib_gptimer_readl(-1, addr, 0);
 | 
				
			||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -226,19 +225,19 @@ grlib_gptimer_writel(void *opaque, target_phys_addr_t addr, uint32_t value)
 | 
				
			|||||||
    case SCALER_OFFSET:
 | 
					    case SCALER_OFFSET:
 | 
				
			||||||
        value &= 0xFFFF; /* clean up the value */
 | 
					        value &= 0xFFFF; /* clean up the value */
 | 
				
			||||||
        unit->scaler = value;
 | 
					        unit->scaler = value;
 | 
				
			||||||
        trace_grlib_gptimer_writel(-1, "scaler:", unit->scaler);
 | 
					        trace_grlib_gptimer_writel(-1, addr, unit->scaler);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    case SCALER_RELOAD_OFFSET:
 | 
					    case SCALER_RELOAD_OFFSET:
 | 
				
			||||||
        value &= 0xFFFF; /* clean up the value */
 | 
					        value &= 0xFFFF; /* clean up the value */
 | 
				
			||||||
        unit->reload = value;
 | 
					        unit->reload = value;
 | 
				
			||||||
        trace_grlib_gptimer_writel(-1, "reload:", unit->reload);
 | 
					        trace_grlib_gptimer_writel(-1, addr, unit->reload);
 | 
				
			||||||
        grlib_gptimer_set_scaler(unit, value);
 | 
					        grlib_gptimer_set_scaler(unit, value);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    case CONFIG_OFFSET:
 | 
					    case CONFIG_OFFSET:
 | 
				
			||||||
        /* Read Only (disable timer freeze not supported) */
 | 
					        /* Read Only (disable timer freeze not supported) */
 | 
				
			||||||
        trace_grlib_gptimer_writel(-1, "config (Read Only):", 0);
 | 
					        trace_grlib_gptimer_writel(-1, addr, 0);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    default:
 | 
					    default:
 | 
				
			||||||
@ -253,18 +252,18 @@ grlib_gptimer_writel(void *opaque, target_phys_addr_t addr, uint32_t value)
 | 
				
			|||||||
        /* GPTimer registers */
 | 
					        /* GPTimer registers */
 | 
				
			||||||
        switch (timer_addr) {
 | 
					        switch (timer_addr) {
 | 
				
			||||||
        case COUNTER_OFFSET:
 | 
					        case COUNTER_OFFSET:
 | 
				
			||||||
            trace_grlib_gptimer_writel(id, "counter:", value);
 | 
					            trace_grlib_gptimer_writel(id, addr, value);
 | 
				
			||||||
            unit->timers[id].counter = value;
 | 
					            unit->timers[id].counter = value;
 | 
				
			||||||
            grlib_gptimer_enable(&unit->timers[id]);
 | 
					            grlib_gptimer_enable(&unit->timers[id]);
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        case COUNTER_RELOAD_OFFSET:
 | 
					        case COUNTER_RELOAD_OFFSET:
 | 
				
			||||||
            trace_grlib_gptimer_writel(id, "reload:", value);
 | 
					            trace_grlib_gptimer_writel(id, addr, value);
 | 
				
			||||||
            unit->timers[id].reload = value;
 | 
					            unit->timers[id].reload = value;
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        case CONFIG_OFFSET:
 | 
					        case CONFIG_OFFSET:
 | 
				
			||||||
            trace_grlib_gptimer_writel(id, "config:", value);
 | 
					            trace_grlib_gptimer_writel(id, addr, value);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (value & GPTIMER_INT_PENDING) {
 | 
					            if (value & GPTIMER_INT_PENDING) {
 | 
				
			||||||
                /* clear pending bit */
 | 
					                /* clear pending bit */
 | 
				
			||||||
@ -297,7 +296,7 @@ grlib_gptimer_writel(void *opaque, target_phys_addr_t addr, uint32_t value)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    trace_grlib_gptimer_unknown_register("write", addr);
 | 
					    trace_grlib_gptimer_writel(-1, addr, value);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static CPUReadMemoryFunc * const grlib_gptimer_read[] = {
 | 
					static CPUReadMemoryFunc * const grlib_gptimer_read[] = {
 | 
				
			||||||
 | 
				
			|||||||
@ -220,7 +220,7 @@ static uint32_t grlib_irqmp_readl(void *opaque, target_phys_addr_t addr)
 | 
				
			|||||||
        return state->extended[cpu];
 | 
					        return state->extended[cpu];
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    trace_grlib_irqmp_unknown_register("read", addr);
 | 
					    trace_grlib_irqmp_readl_unknown(addr);
 | 
				
			||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -308,7 +308,7 @@ grlib_irqmp_writel(void *opaque, target_phys_addr_t addr, uint32_t value)
 | 
				
			|||||||
        return;
 | 
					        return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    trace_grlib_irqmp_unknown_register("write", addr);
 | 
					    trace_grlib_irqmp_writel_unknown(addr, value);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static CPUReadMemoryFunc * const grlib_irqmp_read[] = {
 | 
					static CPUReadMemoryFunc * const grlib_irqmp_read[] = {
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										10
									
								
								trace-events
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								trace-events
									
									
									
									
									
								
							@ -235,19 +235,19 @@ disable grlib_gptimer_disabled(int id, uint32_t config) "timer:%d Timer disable
 | 
				
			|||||||
disable grlib_gptimer_restart(int id, uint32_t reload) "timer:%d reload val: 0x%x"
 | 
					disable grlib_gptimer_restart(int id, uint32_t reload) "timer:%d reload val: 0x%x"
 | 
				
			||||||
disable grlib_gptimer_set_scaler(uint32_t scaler, uint32_t freq) "scaler:0x%x freq: 0x%x"
 | 
					disable grlib_gptimer_set_scaler(uint32_t scaler, uint32_t freq) "scaler:0x%x freq: 0x%x"
 | 
				
			||||||
disable grlib_gptimer_hit(int id) "timer:%d HIT"
 | 
					disable grlib_gptimer_hit(int id) "timer:%d HIT"
 | 
				
			||||||
disable grlib_gptimer_readl(int id, const char *s, uint32_t val) "timer:%d %s 0x%x"
 | 
					disable grlib_gptimer_readl(int id, uint64_t addr, uint32_t val) "timer:%d addr 0x%"PRIx64" 0x%x"
 | 
				
			||||||
disable grlib_gptimer_writel(int id, const char *s, uint32_t val) "timer:%d %s 0x%x"
 | 
					disable grlib_gptimer_writel(int id, uint64_t addr, uint32_t val) "timer:%d addr 0x%"PRIx64" 0x%x"
 | 
				
			||||||
disable grlib_gptimer_unknown_register(const char *op, uint64_t val) "%s unknown register 0x%"PRIx64""
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# hw/grlib_irqmp.c
 | 
					# hw/grlib_irqmp.c
 | 
				
			||||||
disable grlib_irqmp_check_irqs(uint32_t pend, uint32_t force, uint32_t mask, uint32_t lvl1, uint32_t lvl2) "pend:0x%04x force:0x%04x mask:0x%04x lvl1:0x%04x lvl0:0x%04x\n"
 | 
					disable grlib_irqmp_check_irqs(uint32_t pend, uint32_t force, uint32_t mask, uint32_t lvl1, uint32_t lvl2) "pend:0x%04x force:0x%04x mask:0x%04x lvl1:0x%04x lvl0:0x%04x\n"
 | 
				
			||||||
disable grlib_irqmp_ack(int intno) "interrupt:%d"
 | 
					disable grlib_irqmp_ack(int intno) "interrupt:%d"
 | 
				
			||||||
disable grlib_irqmp_set_irq(int irq) "Raise CPU IRQ %d"
 | 
					disable grlib_irqmp_set_irq(int irq) "Raise CPU IRQ %d"
 | 
				
			||||||
disable grlib_irqmp_unknown_register(const char *op, uint64_t val) "%s unknown register 0x%"PRIx64""
 | 
					disable grlib_irqmp_readl_unknown(uint64_t addr) "addr 0x%"PRIx64""
 | 
				
			||||||
 | 
					disable grlib_irqmp_writel_unknown(uint64_t addr, uint32_t value) "addr 0x%"PRIx64" value 0x%x"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# hw/grlib_apbuart.c
 | 
					# hw/grlib_apbuart.c
 | 
				
			||||||
disable grlib_apbuart_event(int event) "event:%d"
 | 
					disable grlib_apbuart_event(int event) "event:%d"
 | 
				
			||||||
disable grlib_apbuart_unknown_register(const char *op, uint64_t val) "%s unknown register 0x%"PRIx64""
 | 
					disable grlib_apbuart_writel_unknown(uint64_t addr, uint32_t value) "addr 0x%"PRIx64" value 0x%x"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# hw/leon3.c
 | 
					# hw/leon3.c
 | 
				
			||||||
disable leon3_set_irq(int intno) "Set CPU IRQ %d"
 | 
					disable leon3_set_irq(int intno) "Set CPU IRQ %d"
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user