Re: [PATCH v7 2/2]: perf record: enable asynchronous trace writing

From: Alexey Budankov
Date: Thu Sep 06 2018 - 07:57:22 EST




On 06.09.2018 14:04, Jiri Olsa wrote:
> On Wed, Sep 05, 2018 at 10:39:25AM +0300, Alexey Budankov wrote:
>
> SNIP
>
>> -static int record__pushfn(void *to, void *bf, size_t size)
>> +static int record__pushfn(void *to, struct aiocb *cblock, void *data, size_t size)
>> {
>> + off_t off;
>> struct record *rec = to;
>> + int ret, trace_fd = rec->session->data->file.fd;
>>
>> rec->samples++;
>> - return record__write(rec, bf, size);
>> +
>> + off =
>> + lseek(trace_fd, 0, SEEK_CUR);
>> + lseek(trace_fd, off + size, SEEK_SET);
>> +
>> + ret = record__aio_write(cblock, trace_fd, data, size, off);
>> + if (!ret) {
>> + rec->bytes_written += size;
>> + if (switch_output_size(rec))
>> + trigger_hit(&switch_output_trigger);
>
> why do you need to call switch output from here?

Just preserved this logic from the serial implementation.

>
> jirka
>