top(1) stopped working on -current

Giorgos Keramidas keramida at FreeBSD.org
Thu Apr 27 14:13:31 UTC 2006


On 2006-04-27 14:42, Jiawei Ye <leafy7382 at gmail.com> wrote:
> leafy at chihiro:~$ top
> top: sysctl(kern.ccpu...) failed: No such file or directory
>
> -current as of 4 hrs ago.

The following change renames `kern.ccpu' to `kern.sched.ccpu', but it is
kind of incomplete, IMHO.

# Index: src/sys/kern/sched_4bsd.c
# ===================================================================
# --- src/sys/kern/sched_4bsd.c   (revision 19)
# +++ src/sys/kern/sched_4bsd.c   (working copy)
# @@ -31,11 +31,11 @@
#   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
#   * SUCH DAMAGE.
#   */
#
#  #include <sys/cdefs.h>
# -__FBSDID("$FreeBSD: src/sys/kern/sched_4bsd.c,v 1.78 2006/04/17 18:20:37 jhb Exp $");
# +__FBSDID("$FreeBSD: src/sys/kern/sched_4bsd.c,v 1.79 2006/04/26 19:42:38 jmg Exp $");
#
#  #include "opt_hwpmc_hooks.h"
#
#  #define kse td_sched
#
# @@ -404,11 +404,11 @@
#  #define        loadfactor(loadav)      (2 * (loadav))
#  #define        decay_cpu(loadfac, cpu) (((loadfac) * (cpu)) / ((loadfac) + FSCALE))
#
#  /* decay 95% of `ke_pctcpu' in 60 seconds; see CCPU_SHIFT before changing */
#  static fixpt_t ccpu = 0.95122942450071400909 * FSCALE; /* exp(-1/20) */
# -SYSCTL_INT(_kern, OID_AUTO, ccpu, CTLFLAG_RD, &ccpu, 0, "");
# +SYSCTL_INT(_kern_sched, OID_AUTO, ccpu, CTLFLAG_RD, &ccpu, 0, "");
#
#  /*
#   * If `ccpu' is not equal to `exp(-1/20)' and you still want to use the
#   * faster/more-accurate formula, you'll have to estimate CCPU_SHIFT below
#   * and possibly adjust FSHIFT in "param.h" so that (FSHIFT >= CCPU_SHIFT).

The main problems with this change are:

    1) It doesn't update consumers of the kern.ccpu sysctl that we
       already have in the tree (i.e. top(1) which you saw breaking).

    2) It doesn't update the `kern.ccpu' sysctl in the sched_ule.c
       scheduler, so it creates an inconsistency between different
       FreeBSD scheduling systems.

I believe John-Mark can fix this easily, so I've copied him in this
message.  In the mean time, you can revert sched_4bsd.c to revision 1.78
and try to see if this fixes the problems top(1) is having.

- Giorgos

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20060427/c744db42/attachment.pgp


More information about the freebsd-current mailing list