[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200612111450.07722.dada1@cosmosbay.com>
Date: Mon, 11 Dec 2006 14:50:07 +0100
From: Eric Dumazet <dada1@...mosbay.com>
To: Andrew Morton <akpm@...l.org>
Cc: linux-kernel <linux-kernel@...r.kernel.org>
Subject: [PATCH] Optimize calc_load()
calc_load() is called by timer interrupt to update avenrun[].
It currently calls nr_active() at each timer tick (HZ per second), while the
update of avenrun[] is done only once every 5 seconds. (LOAD_FREQ=5 Hz)
nr_active() is quite expensive on SMP machines, since it has to sum up
nr_running and nr_uninterruptible of all online CPUS, bringing foreign dirty
cache lines.
This patch is an optimization of calc_load() so that nr_active() is called
only if we need it.
The use of unlikely() is welcome since the condition is true only once every
5*HZ time.
Signed-off-by: Eric Dumazet <dada1@...mosbay.com>
View attachment "calc_load.patch" of type "text/plain" (821 bytes)
Powered by blists - more mailing lists