public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@linux-foundation.org>
To: Anton Vorontsov <avorontsov@ru.mvista.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	a.p.zijlstra@chello.nl, oleg@redhat.com, mingo@elte.hu,
	linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: [PATCH] netpoll: Fix carrier detection for drivers that are using phylib
Date: Wed, 8 Jul 2009 17:01:14 -0700 (PDT)	[thread overview]
Message-ID: <alpine.LFD.2.01.0907081701050.3352@localhost.localdomain> (raw)
In-Reply-To: <20090708222003.GA12318@oksana.dev.rtsoft.ru>



On Thu, 9 Jul 2009, Anton Vorontsov wrote:
> 
> The netpoll code is using msleep() just a few lines below cond_resched(),
> so we won't make things worse. ;-)

Yeah. That function is definitely sleeping. It does things like 
kmalloc(GFP_KERNEL), rtnl_lock() and synchronize_rcu() etc too, so an 
added msleep() is the least of our problems.

Afaik, it's called from a bog-standard "module_init()", which happens late 
enough that everything works.

In fact, I wonder if we should set SYSTEM_RUNNING much earlier - _before_ 
doing the whole "do_initcalls()". By then we've set up all the core stuff 
and enabled interrupts, so we really _are_ running. We just don't 
necessarily have drivers, filesystems etc loaded yet. But anything that 
happens late enough to be an initcall should be largely considered to 
be during "normal code".

(The "early_initcall" cases are special - those really do happen pretty 
early).

So ACK on Anton's patch, but I wonder if we _also_ should do the 
following?

Looking at the people looking at SYSTEM_RUNNING, I do note some odd cases. 
Why the heck does kernel/perf_counter.c do it, for example?

		Linus

---
 init/main.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/init/main.c b/init/main.c
index 2c5ade7..f10d9cd 100644
--- a/init/main.c
+++ b/init/main.c
@@ -788,6 +788,7 @@ static void __init do_initcalls(void)
 {
 	initcall_t *call;
 
+	system_state = SYSTEM_RUNNING;
 	for (call = __early_initcall_end; call < __initcall_end; call++)
 		do_one_initcall(*call);
 
@@ -839,7 +840,6 @@ static noinline int init_post(void)
 	free_initmem();
 	unlock_kernel();
 	mark_rodata_ro();
-	system_state = SYSTEM_RUNNING;
 	numa_default_policy();
 
 	if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)

  reply	other threads:[~2009-07-09  0:03 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20090707235812.GA12824@oksana.dev.rtsoft.ru>
     [not found] ` <20090708005000.GA12380@redhat.com>
     [not found]   ` <1247034263.9777.24.camel@twins>
     [not found]     ` <alpine.LFD.2.01.0907080907210.3210@localhost.localdomain>
     [not found]       ` <20090708141024.f8b581c5.akpm@linux-foundation.org>
     [not found]         ` <20090708213331.GA9346@oksana.dev.rtsoft.ru>
2009-07-08 21:47           ` [PATCH/RFC] sched: Remove SYSTEM_RUNNING checks from cond_resched*() Andrew Morton
2009-07-08 22:20             ` [PATCH] netpoll: Fix carrier detection for drivers that are using phylib Anton Vorontsov
2009-07-09  0:01               ` Linus Torvalds [this message]
2009-07-09  3:08                 ` David Miller
2009-07-09  7:56                 ` Peter Zijlstra
2009-07-09 12:56                   ` Matt Mackall
2009-07-09 13:26                 ` Matt Mackall
2009-07-09 13:46                   ` Peter Zijlstra
2009-07-09 14:18                     ` Matt Mackall
2009-07-09 14:31                       ` Peter Zijlstra
2009-07-09 14:43                         ` Matt Mackall
2009-07-09 14:51                           ` Peter Zijlstra
2009-07-09 15:06                             ` Matt Mackall
2009-07-09 17:29                         ` Linus Torvalds
2009-07-09 12:52               ` Matt Mackall

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=alpine.LFD.2.01.0907081701050.3352@localhost.localdomain \
    --to=torvalds@linux-foundation.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=akpm@linux-foundation.org \
    --cc=avorontsov@ru.mvista.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=netdev@vger.kernel.org \
    --cc=oleg@redhat.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox