Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Sun, 29 Sep 2002 15:12:27 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Sun, 29 Sep 2002 15:12:26 -0400 Received: from mx1.elte.hu ([157.181.1.137]:13283 "HELO mx1.elte.hu") by vger.kernel.org with SMTP id ; Sun, 29 Sep 2002 15:12:25 -0400 Date: Sun, 29 Sep 2002 21:27:19 +0200 (CEST) From: Ingo Molnar Reply-To: Ingo Molnar To: Jeff Garzik Cc: Linus Torvalds , , William Lee Irwin III , Dipankar Sarma , Alexey Kuznetsov , "David S. Miller" , Andrew Morton Subject: Re: [patch] smptimers, old BH removal, tq-cleanup, 2.5.39 In-Reply-To: <3D9748BA.5010704@pobox.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1388 Lines: 41 yes, wrt. keventd i was thinking along the same line - but in a different, perhaps cleaner and simpler direction. i'd like to introduce the following interfaces: - create_work_queue(wq, handler_fn) - destroy_work_queue(wq) - queue_work(wq, work_fn, work_data) - flush_work_queue(wq) this is an extension of the keventd concept. A work queue is a simplified interface to create a kernel thread that gets work queued from IRQ and process contexts. No more, no less. there would be a number of 'default' work-queues that would be created upon bootup: - &irq_workqueue - &io_workqueue each work queue would get its own separate kernel thread. schedule_task() would simply queue to the irq_workqueue. We could make the irq_workqueue's kernel thread a highprio RT thread, to make it really softirq-alike. (Or for the very specific case of BH_IMMEDIATE type of stricly IRQ-safe work, we could add a tasklet that works down this queue.) There's tons of code within the kernel that can be streamlined this way, most of the helper threads do this kind of functionality. (I'll post a patch soon to show how it would look like.) Ingo - 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/