Messages in this thread | | | Date | Mon, 21 Sep 2015 15:21:37 +0100 | From | Kapileshwar Singh <> | Subject | Re: [PATCH v3] tools lib traceevent: str addresses in heterogeneous arch environments |
| |
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@arm.com> 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); >
| |