Messages in this thread | | | Date | Mon, 2 Feb 2009 14:06:13 +0300 | From | Evgeniy Polyakov <> | Subject | Re: [PATCH] connector: create connector workqueue only while needed once |
| |
Hi.
On Sun, Feb 01, 2009 at 04:05:01PM -0800, Frederic Weisbecker (fweisbec@gmail.com) wrote: > The netlink connector uses its own workqueue to relay the datas sent from > userspace to the appropriate callback. > If you launch the test from Documentation/connector and change it a bit to send > a high flow of data, you will see thousands of events coming to the "cqueue" workqueue > by looking at the workqueue tracer. > > This flow of events can be sent very quickly. So, to not encumber the kevent workqueue and > delay other jobs, the "cqueue" workqueue should remain. > > But this workqueue is pointless most of the time, it will always be created (assuming you have > built it of course) although only developpers with specific needs will use it. > > So avoid this "most of the time useless task", this patch proposes to create this workqueue only when needed > once. > The first jobs to be sent to connector callbacks will be sent to kevent while the "cqueue" thread creation > will be scheduled to kevent too. > > The following jobs will continue to be scheduled to keventd until the cqueue workqueue is created, and then > the rest of the jobs will continue to perform as usual, through this dedicated workqueue. > > Each time I tested this patch, only the first event was sent to keventd, the rest has been sent to cqueue which > have been created quickly. > > Also, this patch fixes some trailing whitespaces on the connector files. > > Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Looks very good, thanks a lot Frederic. Ack.
-- Evgeniy Polyakov
| |