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

From: Jiri Olsa
Date: Thu Sep 06 2018 - 07:04:04 EST


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?

jirka