lkml.org 
[lkml]   [2014]   [Jul]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v2 1/5] perf: add ability to sample machine state on interrupt
From
On Tue, Jul 15, 2014 at 4:25 PM, Peter Zijlstra <peterz@infradead.org> wrote:
> On Tue, Jul 15, 2014 at 02:31:40AM +0200, Stephane Eranian wrote:
>> @@ -618,6 +619,8 @@ static inline void perf_sample_data_init(struct perf_sample_data *data,
>> data->weight = 0;
>> data->data_src.val = 0;
>> data->txn = 0;
>> + data->regs_intr.abi = PERF_SAMPLE_REGS_ABI_NONE;
>> + data->regs_intr.regs = NULL;
>> }
>
>> +static void perf_sample_regs_intr(struct perf_regs *regs_intr,
>> + struct pt_regs *regs)
>> +{
>> + regs_intr->regs = regs;
>> + regs_intr->abi = perf_reg_abi(current);
>> +}
>
>> @@ -4800,6 +4824,20 @@ void perf_prepare_sample(struct perf_event_header *header,
>> data->stack_user_size = stack_size;
>> header->size += size;
>> }
>> +
>> + if (sample_type & PERF_SAMPLE_REGS_INTR) {
>> + /* regs dump ABI info */
>> + int size = sizeof(u64);
>> +
>> + perf_sample_regs_intr(&data->regs_intr, regs);
>> +
>> + if (data->regs_intr.regs) {
>> + u64 mask = event->attr.sample_regs_intr;
>> + size += hweight64(mask) * sizeof(u64);
>> + }
>> +
>> + header->size += size;
>> + }
>
> Given that the prepare_sample hunk sets both regs_intr fields, the
> addition to perf_sample_data_init() is entirely superfluous, no?

Yes, looks like it, though having an initialization there prevents
any random values for the two fields, in case code tries to check
without first testing the sample_format bitmask. So yes, it is redundant
but may prevent future errors.


\
 
 \ /
  Last update: 2014-07-16 02:41    [W:1.293 / U:0.372 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site