All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Garzik <jeff@garzik.org>
To: Arjan van de Ven <arjan@infradead.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: [PATCH] Re: How to completely disable async fastboot?
Date: Wed, 15 Apr 2009 21:48:19 -0400	[thread overview]
Message-ID: <49E68E63.6080202@garzik.org> (raw)
In-Reply-To: <20090415183137.4d19a7c8@infradead.org>

[-- Attachment #1: Type: text/plain, Size: 1355 bytes --]

Arjan van de Ven wrote:
> On Wed, 15 Apr 2009 20:20:32 -0400
> Jeff Garzik <jeff@garzik.org> wrote:
> 
>> The following commit
>>
>>> commit 9710794383ee5008d67f1a6613a4717bf6de47bc
>>> Author: Arjan van de Ven <arjan@linux.intel.com>
>>> Date:   Sun Mar 15 11:11:44 2009 -0700
>>>
>>>     async: remove the temporary (2.6.29) "async is off by default"
>>> code
>> not only changes a default, it completely removes the ability to turn 
>> off async AFAICS.
> 
> this is on the request of Andrew and others who want to be able to use
> these API's (soon) in an "forced offload" scenario. 
> 
>> At present, I need to turn this off to debug boot-time operation.
> 
> can you give some details? Maybe I can help suggest things...

Too much shit is occurring in parallel, which completely obscures the 
operation of the driver I am currently debugging.  A new and unwelcome 
behavior, as it is directly impacting workflow.

Commit 9710794383ee5008d67f1a6613a4717bf6de47bc was fine for the normal 
case, but please have pity on developers!  Just like many multi-threaded 
userland programs have an option to run single-threaded (usually for 
debug purposes), the kernel should have this too.

I need a slowboot option, like the attached patch.

The patch is basically the reverse of your 
9710794383ee5008d67f1a6613a4717bf6de47bc in a different way.

	Jeff




[-- Attachment #2: patch --]
[-- Type: text/plain, Size: 796 bytes --]

diff --git a/kernel/async.c b/kernel/async.c
index 968ef94..8c553ce 100644
--- a/kernel/async.c
+++ b/kernel/async.c
@@ -68,6 +68,7 @@ static LIST_HEAD(async_running);
 static DEFINE_SPINLOCK(async_lock);
 
 static int async_enabled = 0;
+static int async_disabled;
 
 struct async_entry {
 	struct list_head list;
@@ -388,6 +389,11 @@ static int async_manager_thread(void *unused)
 
 static int __init async_init(void)
 {
+	if (async_disabled) {
+		async_enabled = 0;
+		return 0;
+	}
+
 	async_enabled =
 		!IS_ERR(kthread_run(async_manager_thread, NULL, "async/mgr"));
 
@@ -395,4 +401,12 @@ static int __init async_init(void)
 	return 0;
 }
 
+static int __init setup_async(char *str)
+{
+	async_disabled = 1;
+	return 1;
+}
+
+__setup("slowboot", setup_async);
+
 core_initcall(async_init);

  reply	other threads:[~2009-04-16  1:48 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-16  0:20 How to completely disable async fastboot? Jeff Garzik
2009-04-16  1:31 ` Arjan van de Ven
2009-04-16  1:48   ` Jeff Garzik [this message]
2009-04-17 18:45   ` Stefan Richter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49E68E63.6080202@garzik.org \
    --to=jeff@garzik.org \
    --cc=akpm@linux-foundation.org \
    --cc=arjan@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.