A couple of questions on this:
1) Sometimes threads are bound to a set of CPUs, such as the CPUs
on a particular node:
drivers/pci/pci-driver.c: set_cpus_allowed_ptr(current, nodecpumask);
net/sunrpc/svc.c: set_cpus_allowed_ptr(current, nodecpumask);
Such cases can't invoke kthread_bind(), as that only binds to a single CPU.
I only see one place in your patch that sets PF_THREAD_BOUND; would it make
sense for such multi-CPU binds as above to be PF_THREAD_BOUND as well?
2) Sometimes calls to kthread_bind are binding to any online cpu, such as in:
drivers/infiniband/hw/ehca/ehca_irq.c: kthread_bind(cct->task, any_online_cpu(cpu_online_map));
In such cases, the PF_THREAD_BOUND seems inappropriate. The caller of
kthread_bind() really doesn't seem to care where that thread is bound;
they just want it on a CPU that is still online.
--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <pj@sgi.com> 1.940.382.4214
--
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Linus Torvalds | Re: init's children list is long and slows reaping children. |
| Kohei KaiGai | [PATCH 0/3] exporting capability name/code pairs (final#2) |
git: | |
| Gerrit Renker | [PATCH 33/37] dccp: Initialisation framework for feature negotiation |
| Jarek Poplawski | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Arjan van de Ven | Re: [GIT]: Networking |
| Mark Ryden | Re: Linux Wireless Mini-Summit -- Ottawa -- July 22, 2008 |
