All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Riffard <laurent.riffard@free.fr>
To: "Siddha, Suresh B" <suresh.b.siddha@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org, Nick Piggin <npiggin@suse.de>
Subject: Re: 2.6.21-rc2-mm1: what about CONFIG_NO_HZ and !CONFIG_SMP ?
Date: Fri, 02 Mar 2007 23:09:58 +0100	[thread overview]
Message-ID: <45E8A0B6.4050900@free.fr> (raw)
In-Reply-To: <20070302125729.A27368@unix-os.sc.intel.com>

Le 02.03.2007 21:57, Siddha, Suresh B a écrit :
> On Fri, Mar 02, 2007 at 10:12:25PM +0100, Laurent Riffard wrote:
>> Le 02.03.2007 12:00, Andrew Morton a écrit :
>>> Temporarily at
>>>
>>>   http://userweb.kernel.org/~akpm/2.6.21-rc2-mm1/
>>>
>>> Will appear later at
>>>
>>>   ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.21-rc2/2.6.21-rc2-mm1/
>> Got this when CONFIG_NO_HZ=y and CONFIG_SMP=n:
>>
>>   CC      kernel/sched.o
>> kernel/sched.c: In function 'trigger_load_balance':
>> kernel/sched.c:3384: error: 'struct rq' has no member named 'in_nohz_recently'
>> kernel/sched.c:3384: error: 'struct rq' has no member named 'idle_at_tick'
>> kernel/sched.c:3385: error: 'struct rq' has no member named 'in_nohz_recently'
>> kernel/sched.c:3387: error: 'nohz' undeclared (first use in this function)
>> kernel/sched.c:3387: error: (Each undeclared identifier is reported only once
>> kernel/sched.c:3387: error: for each function it appears in.)
>> kernel/sched.c:3404: warning: implicit declaration of function 'resched_cpu'
>> kernel/sched.c:3412: error: 'struct rq' has no member named 'idle_at_tick'
>> kernel/sched.c:3422: error: 'struct rq' has no member named 'idle_at_tick'
>> make[1]: *** [kernel/sched.o] Error 1
>> make: *** [kernel] Error 2
>>
>> Looking at kernel/sched.c, it seems CONFIG_NO_HZ should depend on CONFIG_SMP...
> 
> No. There is no such dependency. Can you please check if the below patch fixes
> the compilation issue. Thanks.

Yes, it does fix the compilation issue.

thanks
~~
laurent


> Move trigger_load_balance() under ifdef CONFIG_SMP.
> 
> Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
> ---
> 
> diff -pNru linux-2.6.21-rc2/kernel/sched.c linux-mm/kernel/sched.c
> --- linux-2.6.21-rc2/kernel/sched.c	2007-03-02 13:23:46.000000000 -0800
> +++ linux-mm/kernel/sched.c	2007-03-02 13:26:38.000000000 -0800
> @@ -3156,6 +3156,68 @@ static void run_rebalance_domains(struct
>  	}
>  #endif
>  }
> +
> +/*
> + * Trigger the SCHED_SOFTIRQ if it is time to do periodic load balancing.
> + *
> + * In case of CONFIG_NO_HZ, this is the place where we nominate a new
> + * idle load balancing owner or decide to stop the periodic load balancing,
> + * if the whole system is idle.
> + */
> +static inline void trigger_load_balance(int cpu)
> +{
> +	struct rq *rq = cpu_rq(cpu);
> +#ifdef CONFIG_NO_HZ
> +	/*
> +	 * If we were in the nohz mode recently and busy at the current
> +	 * scheduler tick, then check if we need to nominate new idle
> +	 * load balancer.
> +	 */
> +	if (rq->in_nohz_recently && !rq->idle_at_tick) {
> +		rq->in_nohz_recently = 0;
> +
> +		if (atomic_read(&nohz.load_balancer) == cpu) {
> +			cpu_clear(cpu, nohz.cpu_mask);
> +			atomic_set(&nohz.load_balancer, -1);
> +		}
> +
> +		if (atomic_read(&nohz.load_balancer) == -1) {
> +			/*
> +			 * simple selection for now: Nominate the
> +			 * first cpu in the nohz list to be the next
> +			 * ilb owner.
> +			 *
> +			 * TBD: Traverse the sched domains and nominate
> +			 * the nearest cpu in the nohz.cpu_mask.
> +			 */
> +			int ilb = first_cpu(nohz.cpu_mask);
> +
> +			if (ilb != NR_CPUS)
> +				resched_cpu(ilb);
> +		}
> +	}
> +
> +	/*
> +	 * If this cpu is idle and doing idle load balancing for all the
> +	 * cpus with ticks stopped, is it time for that to stop?
> +	 */
> +	if (rq->idle_at_tick && atomic_read(&nohz.load_balancer) == cpu &&
> +	    cpus_weight(nohz.cpu_mask) == num_online_cpus()) {
> +		resched_cpu(cpu);
> +		return;
> +	}
> +
> +	/*
> +	 * If this cpu is idle and the idle load balancing is done by
> +	 * someone else, then no need raise the SCHED_SOFTIRQ
> +	 */
> +	if (rq->idle_at_tick && atomic_read(&nohz.load_balancer) != cpu &&
> +	    cpu_isset(cpu, nohz.cpu_mask))
> +		return;
> +#endif
> +	if (time_after_eq(jiffies, rq->next_balance))
> +		raise_softirq(SCHED_SOFTIRQ);
> +}
>  #else
>  /*
>   * on UP we do not need to balance between CPUs:
> @@ -3366,68 +3428,6 @@ out_unlock:
>  }
>  
>  /*
> - * Trigger the SCHED_SOFTIRQ if it is time to do periodic load balancing.
> - *
> - * In case of CONFIG_NO_HZ, this is the place where we nominate a new
> - * idle load balancing owner or decide to stop the periodic load balancing,
> - * if the whole system is idle.
> - */
> -static inline void trigger_load_balance(int cpu)
> -{
> -	struct rq *rq = cpu_rq(cpu);
> -#ifdef CONFIG_NO_HZ
> -	/*
> -	 * If we were in the nohz mode recently and busy at the current
> -	 * scheduler tick, then check if we need to nominate new idle
> -	 * load balancer.
> -	 */
> -	if (rq->in_nohz_recently && !rq->idle_at_tick) {
> -		rq->in_nohz_recently = 0;
> -
> -		if (atomic_read(&nohz.load_balancer) == cpu) {
> -			cpu_clear(cpu, nohz.cpu_mask);
> -			atomic_set(&nohz.load_balancer, -1);
> -		}
> -
> -		if (atomic_read(&nohz.load_balancer) == -1) {
> -			/*
> -			 * simple selection for now: Nominate the
> -			 * first cpu in the nohz list to be the next
> -			 * ilb owner.
> -			 *
> -			 * TBD: Traverse the sched domains and nominate
> -			 * the nearest cpu in the nohz.cpu_mask.
> -			 */
> -			int ilb = first_cpu(nohz.cpu_mask);
> -
> -			if (ilb != NR_CPUS)
> -				resched_cpu(ilb);
> -		}
> -	}
> -
> -	/*
> -	 * If this cpu is idle and doing idle load balancing for all the
> -	 * cpus with ticks stopped, is it time for that to stop?
> -	 */
> -	if (rq->idle_at_tick && atomic_read(&nohz.load_balancer) == cpu &&
> -	    cpus_weight(nohz.cpu_mask) == num_online_cpus()) {
> -		resched_cpu(cpu);
> -		return;
> -	}
> -
> -	/*
> -	 * If this cpu is idle and the idle load balancing is done by
> -	 * someone else, then no need raise the SCHED_SOFTIRQ
> -	 */
> -	if (rq->idle_at_tick && atomic_read(&nohz.load_balancer) != cpu &&
> -	    cpu_isset(cpu, nohz.cpu_mask))
> -		return;
> -#endif
> -	if (time_after_eq(jiffies, rq->next_balance))
> -		raise_softirq(SCHED_SOFTIRQ);
> -}
> -
> -/*
>   * This function gets called by the timer code, with HZ frequency.
>   * We call it with interrupts disabled.
>   *


  reply	other threads:[~2007-03-02 22:10 UTC|newest]

Thread overview: 129+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-02 11:00 2.6.21-rc2-mm1 Andrew Morton
2007-03-02 11:04 ` 2.6.21-rc2-mm1 Andrew Morton
2007-03-02 17:30   ` 2.6.21-rc2-mm1 Randy Dunlap
2007-03-04 11:58   ` [Re: 2.6.21-rc2-mm1] #error no ROMFS backing store interface configured Maciej Rutecki
2007-03-04 12:11     ` Andrew Morton
2007-03-04 15:11       ` David Howells
2007-03-04 15:25         ` Adrian Bunk
2007-03-04 15:35           ` David Howells
2007-03-05  1:49             ` [-mm patch] fix the ROMFS_* dependencies Adrian Bunk
2007-03-05 13:36               ` David Howells
2007-03-06 23:43                 ` Adrian Bunk
2007-03-04 15:11       ` [Re: 2.6.21-rc2-mm1] #error no ROMFS backing store interface configured Maciej Rutecki
2007-03-02 11:04 ` 2.6.21-rc2-mm1 Russell King
2007-03-02 11:08   ` 2.6.21-rc2-mm1 Andrew Morton
2007-03-02 11:10     ` 2.6.21-rc2-mm1 Russell King
2007-03-02 11:15       ` 2.6.21-rc2-mm1 Andrew Morton
2007-03-03 18:03         ` 2.6.21-rc2-mm1 Russell King
2007-03-05 10:41           ` arm utrace Roland McGrath
2007-03-02 14:05 ` 2.6.21-rc2-mm1: EIP is at ext2_discard_reservation+0x1c/0x52 Alexey Dobriyan
2007-03-02 14:24 ` 2.6.21-rc2-mm1 Bryan Wu
2007-03-02 14:40 ` [-mm patch] cpu_idle: fix build break Frederik Deweerdt
2007-03-02 15:24   ` Venkatesh Pallipadi
2007-03-02 16:24     ` Frederik Deweerdt
2007-03-02 15:42 ` 2.6.21-rc2-mm1 - build error with HOTPLUG_CPU=N, CPU_IDLE=Y Valdis.Kletnieks
2007-03-02 15:56 ` 2.6.21-rc2-mm1 Michal Piotrowski
2007-03-05 10:14   ` 2.6.21-rc2-mm1 Andrew Morton
2007-03-05 10:30     ` 2.6.21-rc2-mm1 Antonino A. Daplas
2007-03-02 16:03 ` 2.6.21-rc2-mm1 - fb_ddc_read() not defined Valdis.Kletnieks
2007-03-02 16:31   ` James Simmons
2007-03-02 16:51     ` Valdis.Kletnieks
2007-03-02 16:19 ` [PATCH] longhaul pci_find_device -> pci_get_device conversion (was: Re: 2.6.21-rc2-mm1) Michal Piotrowski
     [not found]   ` <3888a5cd0703020945r4ca51f3dxe981050b817e7594@mail.gmail.com>
2007-03-02 18:10     ` Michal Piotrowski
2007-03-02 16:32 ` 2.6.21-rc2-mm1 Badari Pulavarty
2007-03-02 17:03   ` [patch -mm] x86_64: fake numa cmdline flag fix David Rientjes
2007-03-02 17:21     ` Badari Pulavarty
2007-03-02 17:10   ` 2.6.21-rc2-mm1 Andrew Morton
2007-03-02 17:15     ` 2.6.21-rc2-mm1 Badari Pulavarty
2007-03-02 21:12 ` 2.6.21-rc2-mm1: what about CONFIG_NO_HZ and !CONFIG_SMP ? Laurent Riffard
2007-03-02 20:57   ` Siddha, Suresh B
2007-03-02 22:09     ` Laurent Riffard [this message]
2007-03-02 22:52 ` 2.6.21-rc2-mm1: pata_via: wrong cable detection Laurent Riffard
2007-03-02 23:05 ` [PATCH -mm] char/epca.c remove unused function (was: Re: 2.6.21-rc2-mm1) Michal Piotrowski
2007-03-03  0:48   ` Alan Cox
2007-03-02 23:42 ` 2.6.21-rc2-mm1 Michal Piotrowski
2007-03-03  0:40   ` 2.6.21-rc2-mm1 Andrew Morton
2007-03-03  1:22     ` 2.6.21-rc2-mm1 Michal Piotrowski
2007-03-03  1:41       ` 2.6.21-rc2-mm1 Andrew Morton
2007-03-03 10:08         ` 2.6.21-rc2-mm1 Michal Piotrowski
2007-03-03 12:06           ` 2.6.21-rc2-mm1 Andrew Morton
2007-03-03  7:45 ` 2.6.21-rc2-mm1 - build error with CONFIG_NO_HZ=y and CONFIG_SMP=n Antonino A. Daplas
2007-03-03  7:59   ` Andrew Morton
2007-03-03 15:39 ` Keyboard stops working after *lock [Was: 2.6.21-rc2-mm1] Jiri Slaby
2007-03-03 15:54   ` Jiri Slaby
2007-03-03 17:41     ` Andrew Morton
2007-03-09 10:31       ` Jiri Slaby
2007-03-09 14:13         ` Dmitry Torokhov
2007-03-09 14:40           ` Jiri Kosina
2007-03-09 16:01             ` Jiri Kosina
2007-03-09 16:48               ` Jiri Slaby
2007-03-09 17:10                 ` Jiri Slaby
2007-03-11 21:39               ` Jiri Slaby
2007-03-11 21:47                 ` Jiri Kosina
2007-03-11 21:53                   ` Jiri Slaby
2007-03-11 22:11                     ` Jiri Slaby
2007-03-12  9:08                   ` Jiri Slaby
2007-03-12 15:09                     ` Alan Stern
2007-03-12 16:28                       ` Jiri Slaby
2007-03-12 19:56                         ` Alan Stern
2007-03-12 21:00                         ` Jiri Kosina
2007-03-12 22:32                           ` Jiri Slaby
2007-03-13 16:01                             ` Alan Stern
2007-03-13 16:13                               ` Jiri Slaby
2007-03-13 16:30                                 ` Alan Stern
2007-03-15 20:00                                 ` Alan Stern
2007-03-16 10:52                                   ` Jiri Slaby
2007-03-17 22:50                                   ` Jiri Slaby
2007-03-18  2:39                                     ` Alan Stern
2007-03-18  8:46                                       ` Jiri Slaby
2007-03-18 14:26                                         ` Alan Stern
2007-03-18 14:36                                           ` Jiri Slaby
2007-03-18 15:39                                             ` Alan Stern
2007-03-18 15:45                                               ` Jiri Slaby
2007-03-18 16:11                                                 ` Alan Stern
2007-03-04  9:07 ` 2.6.21-rc2-mm1 Mariusz Kozlowski
2007-03-04  9:48   ` 2.6.21-rc2-mm1 Mariusz Kozlowski
2007-03-04 11:34   ` 2.6.21-rc2-mm1 Andrew Morton
2007-03-04 12:01     ` 2.6.21-rc2-mm1 Mariusz Kozlowski
2007-03-04 17:06       ` 2.6.21-rc2-mm1 Mariusz Kozlowski
2007-03-04 17:13         ` 2.6.21-rc2-mm1 Michal Piotrowski
2007-03-04 17:20           ` 2.6.21-rc2-mm1 Michal Piotrowski
2007-03-05 16:34   ` 2.6.21-rc2-mm1 Zan Lynx
2007-03-05  0:11 ` 2.6.21-rc2-mm1 J.A. Magallón
2007-03-05  0:29   ` 2.6.21-rc2-mm1 Andrew Morton
2007-03-05  1:17   ` 2.6.21-rc2-mm1 Andrew Morton
2007-03-05  2:25     ` 2.6.21-rc2-mm1 Neil Brown
2007-03-05 15:42       ` 2.6.21-rc2-mm1 Bill Davidsen
2007-03-05  1:47 ` [-mm patch] saa7134: fix MODULES=n compilation Adrian Bunk
2007-03-05  1:47 ` 2.6.21-rc2-mm1: drivers/net/wireless/ compile error Adrian Bunk
2007-03-05 10:41   ` Michael Buesch
2007-03-05  1:47 ` 2.6.21-rc2-mm1: drivers/usb/host/ohci-ssb.c doesn't compile Adrian Bunk
2007-03-05 10:49   ` Michael Buesch
2007-03-05 10:57     ` Michael Buesch
2007-03-05 11:26       ` Michael Buesch
2007-03-05 18:26         ` Greg KH
2007-03-05 18:37           ` Adrian Bunk
2007-03-05 18:42         ` David Brownell
2007-03-05 19:09           ` Michael Buesch
2007-03-05  1:47 ` [-mm patch] arch/i386/kernel/vmi.c must #include <asm/kmap_types.h> Adrian Bunk
2007-03-05  2:57   ` Zachary Amsden
2007-03-05  1:47 ` [-mm patch] remove arch/i386/kernel/tsc.c:custom_sched_clock Adrian Bunk
2007-03-05  2:57   ` Zachary Amsden
2007-03-05  1:47 ` [-mm patch] make drivers/char/drm/drm_vm.c:drm_io_prot() static Adrian Bunk
2007-03-05  1:47 ` [-mm patch] drivers/cpuidle/: make code static Adrian Bunk
2007-03-05  1:49 ` [-mm patch] drivers/media/video/ivtv/: possible cleanups Adrian Bunk
2007-03-05  6:53   ` [v4l-dvb-maintainer] " Hans Verkuil
2007-03-05  1:49 ` [-mm patch] drivers/net/bonding/bond_main.c:make 3 functions static Adrian Bunk
2007-03-05  1:49 ` [-mm patch] make drivers/video/display/display-sysfs.c:display_class static Adrian Bunk
2007-03-05  1:49 ` [-mm patch] make fb_deferred_io_mkwrite() static Adrian Bunk
2007-03-05  1:49 ` [-mm patch] drivers/video/hecubafb.c: make 4 functions static Adrian Bunk
2007-03-05 22:20 ` 2.6.21-rc2-mm1 J.A. Magallón
2007-03-05 23:11   ` 2.6.21-rc2-mm1 Andrew Morton
2007-03-06  6:25     ` [PATCH] sched: fix idle at tick Con Kolivas
     [not found]       ` <20070305230240.9c2741d1.akpm@linux-foundation.org>
2007-03-06  7:41         ` Con Kolivas
2007-03-06  8:38           ` J.A. Magallón
2007-03-06  0:16 ` i2c vs nVidia [Re: 2.6.21-rc2-mm1] J.A. Magallón
2007-03-06  0:33   ` Andrew Morton
2007-03-06  0:44     ` Greg KH
2007-03-06  8:45       ` Jean Delvare
2007-03-06 10:56         ` Jean Delvare

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=45E8A0B6.4050900@free.fr \
    --to=laurent.riffard@free.fr \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=npiggin@suse.de \
    --cc=suresh.b.siddha@intel.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 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.