Re: [PATCH 01/32] arm/omap: use system_wq in mailbox
On Tue, Jan 04, 2011 at 06:24:21AM +0100, Tejun Heo wrote: Using dedicated workqueue or system_wq doesn't make any difference in terms of execution latency anymore. Sleeping work items no longer delay execution of other work items. If mailbox is very latency sensitive, it might make sense to create a HIGHPRI workqueue but that usually isn't necessary. Ping. Shall I apply the patch? Thanks. -- tejun -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 01/32] arm/omap: use system_wq in mailbox
Tejun, On Tue, Jan 25, 2011 at 5:47 AM, Tejun Heo t...@kernel.org wrote: On Tue, Jan 04, 2011 at 06:24:21AM +0100, Tejun Heo wrote: Using dedicated workqueue or system_wq doesn't make any difference in terms of execution latency anymore. Sleeping work items no longer delay execution of other work items. If mailbox is very latency sensitive, it might make sense to create a HIGHPRI workqueue but that usually isn't necessary. Ping. Shall I apply the patch? I am sorry for the delay in acking your response. Your patch looks good to me. thank you, best regards, Hari -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 01/32] arm/omap: use system_wq in mailbox
On Tue, Jan 25, 2011 at 07:34:08AM -0800, Hari Kanigeri wrote: Tejun, On Tue, Jan 25, 2011 at 5:47 AM, Tejun Heo t...@kernel.org wrote: On Tue, Jan 04, 2011 at 06:24:21AM +0100, Tejun Heo wrote: Using dedicated workqueue or system_wq doesn't make any difference in terms of execution latency anymore. Sleeping work items no longer delay execution of other work items. If mailbox is very latency sensitive, it might make sense to create a HIGHPRI workqueue but that usually isn't necessary. Ping. Shall I apply the patch? I am sorry for the delay in acking your response. Your patch looks good to me. Thanks. Acked-by added. -- tejun -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 01/32] arm/omap: use system_wq in mailbox
With cmwq, there's no reason to use a separate workqueue for mailbox. Use the system_wq instead. mbox-rxq-work is sync flushed in omap_mbox_fini() to make sure it's not running on any cpu, which makes sure that no mbox work is running when omap_mbox_exit() is entered. Signed-off-by: Tejun Heo t...@kernel.org Cc: Tony Lindgren t...@atomide.com Cc: linux-omap@vger.kernel.org --- Only compile tested. Please feel free to take it into the subsystem tree or simply ack - I'll route it through the wq tree. Thanks. arch/arm/plat-omap/mailbox.c | 10 ++ 1 files changed, 2 insertions(+), 8 deletions(-) diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c index d2fafb8..5bc4d7b 100644 --- a/arch/arm/plat-omap/mailbox.c +++ b/arch/arm/plat-omap/mailbox.c @@ -31,7 +31,6 @@ #include plat/mailbox.h -static struct workqueue_struct *mboxd; static struct omap_mbox **mboxes; static bool rq_full; @@ -186,7 +185,7 @@ static void __mbox_rx_interrupt(struct omap_mbox *mbox) /* no more messages in the fifo. clear IRQ source. */ ack_mbox_irq(mbox, IRQ_RX); nomem: - queue_work(mboxd, mbox-rxq-work); + schedule_work(mbox-rxq-work); } static irqreturn_t mbox_interrupt(int irq, void *p) @@ -291,7 +290,7 @@ static void omap_mbox_fini(struct omap_mbox *mbox) { free_irq(mbox-irq, mbox); tasklet_kill(mbox-txq-tasklet); - flush_work(mbox-rxq-work); + flush_work_sync(mbox-rxq-work); mbox_queue_free(mbox-txq); mbox_queue_free(mbox-rxq); @@ -385,10 +384,6 @@ static int __init omap_mbox_init(void) if (err) return err; - mboxd = create_workqueue(mboxd); - if (!mboxd) - return -ENOMEM; - /* kfifo size sanity check: alignment and minimal size */ mbox_kfifo_size = ALIGN(mbox_kfifo_size, sizeof(mbox_msg_t)); mbox_kfifo_size = max_t(unsigned int, mbox_kfifo_size, sizeof(mbox_msg_t)); @@ -399,7 +394,6 @@ subsys_initcall(omap_mbox_init); static void __exit omap_mbox_exit(void) { - destroy_workqueue(mboxd); class_unregister(omap_mbox_class); } module_exit(omap_mbox_exit); -- 1.7.1 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 01/32] arm/omap: use system_wq in mailbox
Tejun, On Mon, Jan 3, 2011 at 7:49 AM, Tejun Heo t...@kernel.org wrote: With cmwq, there's no reason to use a separate workqueue for mailbox. Use the system_wq instead. mbox-rxq-work is sync flushed in omap_mbox_fini() to make sure it's not running on any cpu, which makes sure that no mbox work is running when omap_mbox_exit() is entered. Signed-off-by: Tejun Heo t...@kernel.org Cc: Tony Lindgren t...@atomide.com Cc: linux-omap@vger.kernel.org --- Only compile tested. Please feel free to take it into the subsystem tree or simply ack - I'll route it through the wq tree. This was changed to dedicated work queue because of performance issues when there is heavy mailbox traffic between the cores. Reference: http://www.mail-archive.com/linux-omap@vger.kernel.org/msg24240.html Thanks. arch/arm/plat-omap/mailbox.c | 10 ++ 1 files changed, 2 insertions(+), 8 deletions(-) diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c index d2fafb8..5bc4d7b 100644 --- a/arch/arm/plat-omap/mailbox.c +++ b/arch/arm/plat-omap/mailbox.c @@ -31,7 +31,6 @@ #include plat/mailbox.h -static struct workqueue_struct *mboxd; static struct omap_mbox **mboxes; static bool rq_full; @@ -186,7 +185,7 @@ static void __mbox_rx_interrupt(struct omap_mbox *mbox) /* no more messages in the fifo. clear IRQ source. */ ack_mbox_irq(mbox, IRQ_RX); nomem: - queue_work(mboxd, mbox-rxq-work); + schedule_work(mbox-rxq-work); } static irqreturn_t mbox_interrupt(int irq, void *p) @@ -291,7 +290,7 @@ static void omap_mbox_fini(struct omap_mbox *mbox) { free_irq(mbox-irq, mbox); tasklet_kill(mbox-txq-tasklet); - flush_work(mbox-rxq-work); + flush_work_sync(mbox-rxq-work); mbox_queue_free(mbox-txq); mbox_queue_free(mbox-rxq); @@ -385,10 +384,6 @@ static int __init omap_mbox_init(void) if (err) return err; - mboxd = create_workqueue(mboxd); - if (!mboxd) - return -ENOMEM; - /* kfifo size sanity check: alignment and minimal size */ mbox_kfifo_size = ALIGN(mbox_kfifo_size, sizeof(mbox_msg_t)); mbox_kfifo_size = max_t(unsigned int, mbox_kfifo_size, sizeof(mbox_msg_t)); @@ -399,7 +394,6 @@ subsys_initcall(omap_mbox_init); static void __exit omap_mbox_exit(void) { - destroy_workqueue(mboxd); class_unregister(omap_mbox_class); } module_exit(omap_mbox_exit); -- 1.7.1 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- Thank you, Best regards, Hari Kanigeri -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 01/32] arm/omap: use system_wq in mailbox
Hello, On Mon, Jan 03, 2011 at 03:35:45PM -0600, Kanigeri, Hari wrote: This was changed to dedicated work queue because of performance issues when there is heavy mailbox traffic between the cores. Reference: http://www.mail-archive.com/linux-omap@vger.kernel.org/msg24240.html Using dedicated workqueue or system_wq doesn't make any difference in terms of execution latency anymore. Sleeping work items no longer delay execution of other work items. If mailbox is very latency sensitive, it might make sense to create a HIGHPRI workqueue but that usually isn't necessary. Thank you. -- tejun -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html