From: Peter Chen <peter.chen@freescale.com>
To: Krzysztof Opasiak <k.opasiak@samsung.com>
Cc: Robert Baldyga <r.baldyga@samsung.com>, <balbi@ti.com>,
<gregkh@linuxfoundation.org>, <andrzej.p@samsung.com>,
<m.szyprowski@samsung.com>, <b.zolnierkie@samsung.com>,
<linux-usb@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 03/23] usb: gadget: f_sourcesink: free requests in sourcesink_disable()
Date: Tue, 10 Nov 2015 10:02:57 +0800 [thread overview]
Message-ID: <20151110020256.GA7558@shlinux2> (raw)
In-Reply-To: <563C79CF.1090403@samsung.com>
On Fri, Nov 06, 2015 at 10:58:39AM +0100, Krzysztof Opasiak wrote:
>
>
> On 11/06/2015 10:48 AM, Peter Chen wrote:
> >On Fri, Nov 06, 2015 at 09:50:11AM +0100, Robert Baldyga wrote:
> >>On 11/06/2015 09:15 AM, Peter Chen wrote:
> >>>On Tue, Nov 03, 2015 at 01:53:42PM +0100, Robert Baldyga wrote:
> >>>>USB requests in SourceSink function are allocated in sourcesink_get_alt()
> >>>>function, so we prefer to free them rather in sourcesink_disable() than
> >>>>in source_sink_complete() when request is completed with error. It provides
> >>>>better symetry in resource management and improves code readability.
> >>>>
> >>>>Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
> >>>>---
> >>>> drivers/usb/gadget/function/f_sourcesink.c | 33 +++++++++++++++++++++++++++---
> >>>> 1 file changed, 30 insertions(+), 3 deletions(-)
> >>>>
> >>>>diff --git a/drivers/usb/gadget/function/f_sourcesink.c b/drivers/usb/gadget/function/f_sourcesink.c
> >>>>index a8b68c6..d8f5f56 100644
> >>>>--- a/drivers/usb/gadget/function/f_sourcesink.c
> >>>>+++ b/drivers/usb/gadget/function/f_sourcesink.c
> >>>>@@ -22,6 +22,8 @@
> >>>> #include "g_zero.h"
> >>>> #include "u_f.h"
> >>>>
> >>>>+#define REQ_CNT 8
> >>>>+
> >>>
> >>>It would be buffer if we can have module parameter for this like
> >>>qlen at f_loopback.
> >>>>@@ -561,7 +568,6 @@ static void source_sink_complete(struct usb_ep *ep, struct usb_request *req)
> >>>> req->actual, req->length);
> >>>> if (ep == ss->out_ep)
> >>>> check_read_data(ss, req);
> >>>>- free_ep_req(ep, req);
> >>>
> >>>I find the current code may cause memory leak, since above code
> >>>is only called one time.
> >>>
> >>
> >>I don't see what you mean. Can you explain a bit more in which situation
> >>can memory leak take place?
> >
> >Oh, sorry, I have not seen there is a "break;" at the source_sink_start_ep for
> >none-iso endpoint, so, I am wrong, no memory leak here.
> >
> >I have tried changing bulk for 8 requests, the performance improves
> >greatly, but still a little problem for OUT, I will see what's the matter.
> >Besides, it will be better we can have a qlen parameters like f_loopback,
> >in that case, we can improve the performance for gadget, and get the best performance
> >when testing with usbtest, I will do it later.
> >
>
> Moreover, I would suggest to add qlen and iso_qlen params not only
> qlen as even now we are using different qlen for bulk and iso.
>
Krzysztof, would you know why we have different qlen for bulk and iso now?
--
Best Regards,
Peter Chen
next prev parent reply other threads:[~2015-11-10 2:37 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-03 12:53 [PATCH 00/23] usb: gadget: composite: introduce new function API Robert Baldyga
2015-11-03 12:53 ` [PATCH 01/23] usb: gadget: f_sourcesink: make ISO altset user-selectable Robert Baldyga
2015-11-06 3:05 ` Peter Chen
2015-11-06 7:26 ` Robert Baldyga
2015-11-03 12:53 ` [PATCH 02/23] usb: gadget: f_sourcesink: compute req size once Robert Baldyga
2015-11-06 3:07 ` Peter Chen
2015-11-03 12:53 ` [PATCH 03/23] usb: gadget: f_sourcesink: free requests in sourcesink_disable() Robert Baldyga
2015-11-06 8:15 ` Peter Chen
2015-11-06 8:50 ` Robert Baldyga
2015-11-06 9:48 ` Peter Chen
2015-11-06 9:58 ` Krzysztof Opasiak
2015-11-10 2:02 ` Peter Chen [this message]
2015-11-16 16:43 ` Krzysztof Opasiak
2015-11-03 12:53 ` [PATCH 04/23] usb: gadget: f_loopback: free requests in loopback_disable() Robert Baldyga
2015-11-04 10:15 ` Felipe Ferreri Tonello
2015-11-04 11:02 ` Robert Baldyga
2015-11-03 12:53 ` [PATCH 05/23] usb: gadget: configfs: fix error path Robert Baldyga
2015-11-03 13:45 ` Sergei Shtylyov
2015-11-03 12:53 ` [PATCH 06/23] usb: gadget: composite: introduce new descriptors format Robert Baldyga
2015-11-03 12:53 ` [PATCH 07/23] usb: gadget: composite: add functions for descriptors handling Robert Baldyga
2015-11-03 12:53 ` [PATCH 08/23] usb: gadget: composite: introduce new USB function ops Robert Baldyga
2015-11-03 12:53 ` [PATCH 09/23] usb: gadget: composite: handle function bind Robert Baldyga
2015-11-03 12:53 ` [PATCH 10/23] usb: gadget: composite: handle vendor descs Robert Baldyga
2015-11-03 12:53 ` [PATCH 11/23] usb: gadget: composite: generate old descs for compatibility Robert Baldyga
2015-11-03 12:53 ` [PATCH 12/23] usb: gadget: composite: disable eps before calling disable() callback Robert Baldyga
2015-11-03 12:53 ` [PATCH 13/23] usb: gadget: composite: enable eps before calling set_alt() callback Robert Baldyga
2015-11-03 12:53 ` [PATCH 14/23] usb: gadget: composite: introduce clear_alt() operation Robert Baldyga
2015-11-03 12:53 ` [PATCH 15/23] usb: gadget: composite: handle get_alt() automatically Robert Baldyga
2015-11-03 12:53 ` [PATCH 16/23] usb: gadget: composite: add usb_function_get_ep() function Robert Baldyga
2015-11-03 12:53 ` [PATCH 17/23] usb: gadget: composite: add usb_get_interface_id() function Robert Baldyga
2015-11-03 12:53 ` [PATCH 18/23] usb: gadget: composite: enable adding USB functions using new API Robert Baldyga
2015-11-03 12:53 ` [PATCH 19/23] usb: gadget: configfs: add new composite API support Robert Baldyga
2015-11-03 12:53 ` [PATCH 20/23] usb: gadget: f_loopback: convert to new API Robert Baldyga
2015-11-03 12:54 ` [PATCH 21/23] usb: gadget: f_sourcesink: " Robert Baldyga
2015-11-03 12:54 ` [PATCH 22/23] usb: gadget: f_ecm: conversion " Robert Baldyga
2015-11-03 12:54 ` [PATCH 23/23] usb: gadget: f_rndis: " Robert Baldyga
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20151110020256.GA7558@shlinux2 \
--to=peter.chen@freescale.com \
--cc=andrzej.p@samsung.com \
--cc=b.zolnierkie@samsung.com \
--cc=balbi@ti.com \
--cc=gregkh@linuxfoundation.org \
--cc=k.opasiak@samsung.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=r.baldyga@samsung.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.