lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20100617161539.d4ea62c0.akpm@linux-foundation.org>
Date:	Thu, 17 Jun 2010 16:15:39 -0700
From:	Andrew Morton <akpm@...ux-foundation.org>
To:	Tejun Heo <tj@...nel.org>
Cc:	Daniel Walker <dwalker@...eaurora.org>, mingo@...e.hu,
	awalls@...ix.net, linux-kernel@...r.kernel.org, jeff@...zik.org,
	rusty@...tcorp.com.au, cl@...ux-foundation.org,
	dhowells@...hat.com, arjan@...ux.intel.com,
	johannes@...solutions.net, oleg@...hat.com, axboe@...nel.dk
Subject: Re: Overview of concurrency managed workqueue

On Wed, 16 Jun 2010 18:55:05 +0200
Tejun Heo <tj@...nel.org> wrote:

> It was about using wq for cpu intensive / RT stuff.  Linus said,
> 
>   So stop arguing about irrelevancies. Nobody uses workqueues for RT
>   or for CPU-intensive crap. It's not what they were designed for, or
>   used for.

kernel/padata.c uses workqueues for cpu-intensive work, as I understand
it.

I share Daniel's concerns here.  Being able to set a worker thread's
priority or policy isn't a crazy thing.  Also one might want to specify
that a work item be executed on one of a node's CPUs, or within a
cpuset's CPUs, maybe other stuff.  I have vague feelings that there's
already code in the kernel somewhere which does some of these things.

(Please remind me what your patches did about create_rt_workqueue and
stop_machine?)

(Please note that drivers/media/video/ivtv/ivtv-irq.c is currently
running sched_setscheduler() against a workqueue thread of its own
creation, so we have precedent).

If someone wants realtime service for a work item then at present, the
way to do that is to create your own kernel threads, set their policy
and start feeding them work items.  That sounds like a sensible
requirement and implementation to me.  But how does it translate into
the new implementation?

The priority/policy logically attaches to the work itself, not to the
thread which serves it.  So one would want to be able to provide that
info at queue_work()-time.  Could the workqueue core then find a thread,
set its policy/priority, schedule it and then let the CPU scheduler do
its usual thing with it?

That doesn't sound too bad?  Add policy/priority/etc fields to the
work_struct?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ