Re: load average is 1 when no processes active; etc.

2000-09-11 Thread Hellmuth Michaelis

Just for the record, i here have a system cvsupped and built

FreeBSD 5.0-CURRENT #0: Sat Sep  9 13:46:17 CEST 2000

which has a constant load average of 1.00 and higher in uptime, top, and
systat.

The load is already 1.00 or above when the first shell prompt after a boot
appears. I've already tried to kill all processes in reach but the load
never drops below 1.00 - even in single user mode.

Other than this the machine is running fine.

hellmuth
-- 
Hellmuth MichaelisTel   +49 40 55 97 47-70
HCS Hanseatischer Computerservice GmbHFax   +49 40 55 97 47-77
Oldesloer Strasse 97-99   Mail  hm [at] hcs.de
D-22457 Hamburg   WWW   http://www.hcs.de


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: load average is 1 when no processes active; etc.

2000-09-11 Thread Bruce Evans

On Mon, 11 Sep 2000, Valentin Nechayev wrote:

   `top -I' output:
   
   ==={
   last pid:   811;  load averages:  1.01,  0.97,  0.67up 0+00:16:12  23:26:26
  
  This is because the idle process is always running (see "ps lax" outout).
  Perhaps the bug is that top doesn't show the idle process or other interesting
  kernel processes like the new interrupt processes.
 
 top does nothing to determine LA except getting sysctl "vm.loadavg", isn't it?
 ("uptime" and "w" says the same avenrun/LA values.)
 Imho, idle process should not be determined as always running,
 and idle process state should be fixed.

Well, the kernel just doesn't treat it specially, so it gets counted in the
load average.  I'm not sure if the interrupt and other kernel processes
are counted.  Since they do useful work, they should be.  The idle process
does the not so useful work of heating the cpu, since it no longer halts
or runs vm_page_zero_idle().

   IP Filter: v3.4.9 initialized.  Default = pass all, Logging = enabled
   microuptime() went backwards (1.3891137 - 0.596214)
   microuptime() went backwards (1.3891137 - 0.596655)
   ...
  
  I get these at boot time on one machine but not on another very similar
  machine, and often after messing around with ddb.  TSC timecounter in
  all cases.  I think they are not a serious problem or related to old
  timecounter bugs, but they may be related to old bugs setting `switchtime'.
 
 What information of my hardware should be reported additionally?

None for this problem.  It's a general problem.

Bruce



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: load average is 1 when no processes active; etc.

2000-09-11 Thread Maxim Sobolev

Bruce Evans wrote:

 On Mon, 11 Sep 2000, Valentin Nechayev wrote:

`top -I' output:
   
==={
last pid:   811;  load averages:  1.01,  0.97,  0.67up 0+00:16:12  23:26:26
  
   This is because the idle process is always running (see "ps lax" outout).
   Perhaps the bug is that top doesn't show the idle process or other interesting
   kernel processes like the new interrupt processes.
 
  top does nothing to determine LA except getting sysctl "vm.loadavg", isn't it?
  ("uptime" and "w" says the same avenrun/LA values.)
  Imho, idle process should not be determined as always running,
  and idle process state should be fixed.

 Well, the kernel just doesn't treat it specially, so it gets counted in the
 load average.  I'm not sure if the interrupt and other kernel processes
 are counted.  Since they do useful work, they should be.  The idle process
 does the not so useful work of heating the cpu, since it no longer halts
 or runs vm_page_zero_idle().

BTW, will it be fixed any time soon? Mobile users will certainly like to see idle 
process
halting CPU as it was before.

-Maxim



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: load average is 1 when no processes active; etc.

2000-09-11 Thread Bruce Evans

On Mon, 11 Sep 2000, Maxim Sobolev wrote:

 Bruce Evans wrote:
  Well, the kernel just doesn't treat it specially, so it gets counted in the
  load average.  I'm not sure if the interrupt and other kernel processes
  are counted.  Since they do useful work, they should be.  The idle process
  does the not so useful work of heating the cpu, since it no longer halts
  or runs vm_page_zero_idle().
 
 BTW, will it be fixed any time soon? Mobile users will certainly like to see idle 
process
 halting CPU as it was before.

Not sure.  I use this quick fix:

---
diff -c2 kern_idle.c~ kern_idle.c
*** kern_idle.c~Thu Sep  7 12:32:51 2000
--- kern_idle.c Sun Sep 10 18:06:39 2000
***
*** 40,43 
--- 50,55 
  #endif
  
+ extern void (*_hlt_vector)(void);
+ 
  static void idle_setup(void *dummy);
  SYSINIT(idle_setup, SI_SUB_SCHED_IDLE, SI_ORDER_FIRST, idle_setup, NULL)
***
*** 90,94 
--- 102,116 
count = 0;
  
+ #ifdef __i386__
+   disable_intr();
+ #endif
while (count = 0  procrunnable() == 0) {
+ #ifdef __i386__
+   if (vm_page_zero_idle() != 0)
+   continue;
+   (*_hlt_vector)();
+   disable_intr();
+   continue;
+ #endif
/*
 * This is a good place to put things to be done in
***
*** 99,102 
--- 121,127 
" for a process");
}
+ #ifdef __i386__
+   enable_intr();
+ #endif
  
mtx_enter(sched_lock, MTX_SPIN);
---

Add a bogus #include of machine/md_var.h to fix a warning.

Bruce



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



load average is 1 when no processes active; etc.

2000-09-10 Thread Valentin Nechayev

System in question is:

root@nn:~##uname -mrs
FreeBSD 5.0-CURRENT i386
root@nn:~##grep FreeBSD_version /usr/include/sys/param.h
#undef __FreeBSD_version
#define __FreeBSD_version 500012/* Master, propagated to newvers */
root@nn:~##

cvsup was Sep 8, approximately at 18:00 GMT.

`top -I' output:

==={
last pid:   811;  load averages:  1.01,  0.97,  0.67up 0+00:16:12  23:26:26
24 processes:  1 running, 21 sleeping, 2 stopped
CPU states:  0.0% user,  0.0% nice,  0.0% system,  7.9% interrupt, 92.1% idle
Mem: 7524K Active, 9788K Inact, 5812K Wired, 8K Cache, 6336K Buf, 5300K Free
Swap: 300M Total, 300M Free
  PID USERNAME PRI NICE  SIZERES STATETIME   WCPUCPU COMMAND
  811 root  46   0  1916K  1176K RUN  0:00  0.00%  0.00% top

===}

A few seconds after starting:

root@nn:~##uptime
11:30PM  up 50 secs, 1 user, load averages: 0.88, 0.22, 0.08

Of course, real LA is less than 0.1.

The same system has another strangeness - `microuptime() went backwards':

==={ /var/run/dmesg.boot
Copyright (c) 1992-2000 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 5.0-CURRENT #0: Sat Sep  9 08:19:58 EEST 2000
[EMAIL PROTECTED]:/usr/src.cr/sys/compile/nn10
Timecounter "i8254"  frequency 1193182 Hz
Timecounter "TSC"  frequency 334092166 Hz
CPU: AMD-K6(tm) 3D processor (334.09-MHz 586-class CPU)
  Origin = "AuthenticAMD"  Id = 0x58c  Stepping = 12
  Features=0x8021bfFPU,VME,DE,PSE,TSC,MSR,MCE,CX8,PGE,MMX
  AMD Features=0x8800SYSCALL,3DNow!
real memory  = 33554432 (32768K bytes)
avail memory = 28540928 (27872K bytes)
Preloaded elf kernel "kernel.ko" at 0xc0426000.
Preloaded userconfig_script "/boot/kernel.conf" at 0xc04260a0.
K6-family MTRR support enabled (2 registers)
md0: Malloc disk
npx0: math processor on motherboard
npx0: INT 16 interface
pcib0: Host to PCI bridge on motherboard
pci0: PCI bus on pcib0
isab0: Intel 82371AB PCI to ISA bridge at device 7.0 on pci0
isa0: ISA bus on isab0
atapci0: Intel PIIX4 ATA33 controller port 0xf000-0xf00f at device 7.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
pci0: Intel 82371AB/EB (PIIX4) USB controller at 7.2
pci0: Intel 82371AB Power management controller at 7.3
pci0: S3 ViRGE DX/GX graphics accelerator at 17.0 irq 11
fdc0: NEC 72065B or clone at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: 1440-KB 3.5" drive on fdc0 drive 0
atkbdc0: Keyboard controller (i8042) at port 0x60,0x64 on isa0
atkbd0: AT Keyboard flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
vga0: Generic ISA VGA at port 0x3c0-0x3df iomem 0xa-0xb on isa0
sc0: System console at flags 0x100 on isa0
sc0: VGA 16 virtual consoles, flags=0x300
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
ppc0: Parallel port at port 0x378-0x37f irq 7 on isa0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/16 bytes threshold
lpt0: Printer on ppbus0
lpt0: Interrupt-driven port
plip0: PLIP network interface on ppbus0
ppi0: Parallel I/O on ppbus0
sbc0: ESS ES1868 at port 0x220-0x22f,0x388-0x38b,0x330-0x331 irq 5 drq 1,0 on isa0
pcm0: ESS 18xx DSP on sbc0
unknown: PNP0303 can't assign resources
pca0: AT-style speaker sound at port 0x61 on isa0
unknown: PNP0501 can't assign resources
unknown: PNP0700 can't assign resources
unknown: PNP0401 can't assign resources
unknown: PNP0501 can't assign resources
IP packet filtering initialized, divert enabled, rule-based forwarding disabled, 
default to accept, logging limited to 100 packets/entry by default
DUMMYNET initialized (000608)
IPv6 packet filtering initialized, default to accept, logging limited to 100 
packets/entry
IPsec: Initialized Security Association Processing.
ncp_load: [210-213]
IP Filter: v3.4.9 initialized.  Default = pass all, Logging = enabled
microuptime() went backwards (1.3891137 - 0.596214)
microuptime() went backwards (1.3891137 - 0.596655)
microuptime() went backwards (1.3891137 - 0.597078)
microuptime() went backwards (1.3891137 - 0.597480)
microuptime() went backwards (1.3891137 - 0.597795)
microuptime() went backwards (1.3891137 - 0.598094)
microuptime() went backwards (1.3891137 - 0.598412)
microuptime() went backwards (1.3891137 - 0.598708)
microuptime() went backwards (1.3891137 - 0.599019)
microuptime() went backwards (1.3891137 - 0.599489)
microuptime() went backwards (1.3891137 - 0.600060)
microuptime() went backwards (1.3891137 - 0.600484)
microuptime() went backwards (1.3891137 - 0.600921)
microuptime() went backwards (1.3891137 - 0.601532)
microuptime() went backwards (1.3891137 - 0.601965)
microuptime() went backwards (1.3891137 - 0.602373)
microuptime() went backwards (1.3891137 - 0.602789)
microuptime() went backwards (1.3891137 - 0.603218)
microuptime() went backwards (1.3891137 - 0.603658)
microuptime() went 

Re: load average is 1 when no processes active; etc.

2000-09-10 Thread Bruce Evans

On Sun, 10 Sep 2000, Valentin Nechayev wrote:

 `top -I' output:
 
 ==={
 last pid:   811;  load averages:  1.01,  0.97,  0.67up 0+00:16:12  23:26:26

This is because the idle process is always running (see "ps lax" outout).
Perhaps the bug is that top doesn't show the idle process or other interesting
kernel processes like the new interrupt processes.

 The same system has another strangeness - `microuptime() went backwards':
 
 ==={ /var/run/dmesg.boot
...
 IPv6 packet filtering initialized, default to accept, logging limited to 100 
packets/entry
 IPsec: Initialized Security Association Processing.
 ncp_load: [210-213]
 IP Filter: v3.4.9 initialized.  Default = pass all, Logging = enabled
 microuptime() went backwards (1.3891137 - 0.596214)
 microuptime() went backwards (1.3891137 - 0.596655)
 ...

I get these at boot time on one machine but not on another very similar
machine, and often after messing around with ddb.  TSC timecounter in
all cases.  I think they are not a serious problem or related to old
timecounter bugs, but they may be related to old bugs setting `switchtime'.

Bruce



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message