Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1687071
| From | Pratyush Anand <panand@redhat.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH] usb: gadget: functions: add ftrace export over USB |
| Date | 2017-07-14 07:40 +0200 |
| Message-ID | <u31ux-7nE-3@gated-at.bofh.it> (permalink) |
| References | <tQlr3-6oe-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Hi Felipe,
On Friday 09 June 2017 11:43 AM, Felipe Balbi wrote:
> +static void notrace ftrace_write(struct trace_export *ftrace, const void *buf,
> + unsigned int len)
> +{
> + struct usb_ftrace *trace = ftrace_to_trace(ftrace);
> + struct usb_request *req = next_request(&trace->list);
> +
> + if (!req)
> + return;
> +
> + if (!trace->in->enabled)
> + return;
> +
> + req->buf = kmemdup(buf, len, GFP_ATOMIC);
Probably we can avoid the copy of trace data.
We can make write() call of "struct trace_export" as posted. Can have a
write_complete() callback function implemented in struct trace_export,which
can be called from your ftrace_complete().
We need to execute __buffer_unlock_commit() only in write_complete() in case
of ftrace_export is enabled.
> + req->length = len;
> + req->context = trace;
> + req->complete = ftrace_complete;
> + list_move_tail(&req->list, &trace->pending);
> +
> + schedule_work(&trace->queue_work);
> +}
> +
--
Pratyush
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
Re: [PATCH] usb: gadget: functions: add ftrace export over USB Pratyush Anand <panand@redhat.com> - 2017-07-14 07:40 +0200 Re: [PATCH] usb: gadget: functions: add ftrace export over USB Felipe Balbi <felipe.balbi@linux.intel.com> - 2017-07-14 09:00 +0200
csiph-web