Messages in this thread | | | Date | Thu, 28 Jun 2007 08:37:23 -0400 (EDT) | From | Steven Rostedt <> | Subject | Re: [RFC PATCH 0/6] Convert all tasklets to workqueues |
| |
Hi Dan,
On Mon, 25 Jun 2007, Dan Williams wrote:
> Yes you are right, ARM does not flush L1 when prev==next in switch_mm. > > > Perhaps something else is at fault here. > > > I'll try and dig a bit deeper...
BTW:
static int __init iop_adma_init (void) { + iop_adma_workqueue = create_workqueue("iop-adma"); + if (!iop_adma_workqueue) + return -ENODEV; +
Could you also try upping the prio of all the "iop-adma" threads?
You should see thread names such as (on SMP) "iop-adma/0", "iop-adma/1" ... "iop-adma/N" where N = # of CPUs - 1.
do a "chrt -p -f 98 <pid>" once for each of the thread's PIDs. The chrt can be found in the package "util-linux" on Red Hat / Fedora, and in schedutils on Debian.
It just dawned on me that workqueues don't run at a high priority by default. So it's funny that I'm running all my current tasklets as a low priority work queues :-)
But that can certainly be a cause of high latency. I need to update my patches to make the workqueue thread a higher priority. All benchmarks on this patch have been using a low priority work queue.
I also don't see any nice API to have the priority set for a workqueue thread from within the kernel. Looks like one needs to be added, otherwise, I need to have the wrapper dig into the workqueue structs to find the thread that handles the workqueue.
Thanks,
-- Steve - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |