Re: [PATCH v3] tools lib traceevent: str addresses in heterogeneous arch environments

From: Kapileshwar Singh
Date: Mon Sep 21 2015 - 10:21:43 EST


Hi Steve!

Thanks again for reviewing.

On 21/09/15 14:56, Steven Rostedt wrote:
> On Mon, 21 Sep 2015 14:24:13 +0100
> Kapileshwar Singh <kapileshwar.singh@xxxxxxx> wrote:
>
> Thanks, this is better but one nit (below).
>
>> @@ -3754,13 +3754,31 @@ static void print_str_arg(struct trace_seq *s, void *data, int size,
>> */
>> if (!(field->flags & FIELD_IS_ARRAY) &&
>> field->size == pevent->long_size) {
>> - addr = *(unsigned long *)(data + field->offset);
>> +
>> + /* Handle heterogeneous recording and processing
>> + * architectures
>> + *
>> + * CASE I:
>> + * Traces recorded on 32-bit devices (32-bit
>> + * addressing) and processed on 64-bit devices:
>> + * In this case, the higher 32-bits of the address
>> + * need to be ignored.
>> + *
>> + * CASE II:
>> + * Traces recorded on 64 bit devices and processed
>> + * on 32-bit devices. In this case 64 bits must be
>> + * read.
>> + */
>> + addr = (pevent->long_size == 8) ?
>> + *(unsigned long long *)(data + field->offset) :
>> + (unsigned long long)*(unsigned int *)(data + field->offset);
>
> Please indent the above lines such that it's not at the same level as
> the start. It is a single C command, and needs to be reflected as such.
> If it goes more than 80 characters, so be it. The above is worse than a
> line a little longer than 80.
>

Makes sense. Will send an updated version.

Regards,
KP

> -- Steve
>
>> +
>> /* Check if it matches a print format */
>> printk = find_printk(pevent, addr);
>> if (printk)
>> trace_seq_puts(s, printk->printk);
>> else
>> - trace_seq_printf(s, "%lx", addr);
>> + trace_seq_printf(s, "%llx", addr);
>> break;
>> }
>> str = malloc(len + 1);
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/