From mboxrd@z Thu Jan 1 00:00:00 1970 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 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