Hi,

testing powertop (timer wakeup tracing) on my mother's 2.6.22-ck1 system,
I found the following "fully idle" output:

Wakeups-from-idle per second : 220,6
no ACPI power usage estimate available

Top causes for wakeups:
  38,9% ( 60,1)       <interrupt> : ohci_hcd:usb2, [EMAIL 
PROTECTED]:0000:01:00.0
  13,2% ( 20,4)           knotify : schedule_timeout (process_timeout)
  11,5% ( 17,7)     <kernel core> : neigh_table_init_no_netlink 
(neigh_periodic_timer)
  10,4% ( 16,0)       <interrupt> : ide1
   7,8% ( 12,0)            kicker : schedule_timeout (process_timeout)
   7,1% ( 11,0)              Xorg : do_setitimer (it_real_fn)
   4,3% (  6,6)             artsd : schedule_timeout (process_timeout)
   1,3% (  2,0)     <kernel core> : clocksource_register
(clocksource_watchdog)
   0,6% (  1,0)             artsd : do_setitimer (it_real_fn)
   0,6% (  1,0)          kwrapper : do_nanosleep (hrtimer_wakeup)
   0,4% (  0,6)       <interrupt> : eth0


Everything here is pretty much ok, except for the neigh_periodic_timer
thing, which is sharply increased when compared to all usual internet reports
concerning powertop neigh_periodic_timer. Those reports *always* have it at
0.2 wakeups / second, whereas for me it's *always* almost factor 100 -
17.7 wakeups / second.

config is AMD Duron (modded to mobile CPU)
2.6.22-ck1 with HZ=300, dynticks, highres timers,
voluntary kernel preemption (desktop), normal IPv4 setup
with 3c905B card (3c59x) (BNC connection, though!!).

I'm not quite sure what this neighbour table stuff is about and how to
diagnose it, thus only a small

# ip -statistics neigh show
192.168.168.10 dev eth0 lladdr 00:a0:c9:0d:92:3f ref 2 used 0/0/0
REACHABLE

and

# rtstat
rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|
 entries|  in_hit|in_slow_|in_slow_|in_no_ro|  in_brd|in_marti|in_marti| 
out_hit|out_slow|out_slow|gc_total|gc_ignor|gc_goal_|gc_dst_o|in_hlist|out_hlis|
        |        |     tot|      mc|     ute|        |  an_dst|  an_src|        
|    _tot|     _mc|        |      ed|    miss| verflow| _search|t_search|
       6|   14955|     139|       0|       0|       9|       0|       0|    
2185|    1392|      23|       0|       0|       0|       0|      27|      38|

and

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:01:02:F1:73:DF
          inet addr:192.168.168.2  Bcast:192.168.168.255
Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:28190 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29471 errors:0 dropped:0 overruns:0 carrier:0
          collisions:108 txqueuelen:1000
          RX bytes:8165206 (7.7 MiB)  TX bytes:3357919 (3.2 MiB)
          Interrupt:3 Base address:0xef80

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1301 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1301 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:73550 (71.8 KiB)  TX bytes:73550 (71.8 KiB)

for now.

I want to stress that this is a small desktop-only system without any complex 
routing setup,
thus 20 wakeups / seconds seems extreme overkill / bug.

Thus it seems that
neigh_periodic_timer():

        /* Cycle through all hash buckets every base_reachable_time/2 ticks.
         * ARP entry timeouts range from 1/2 base_reachable_time to 3/2
         * base_reachable_time.
         */
        expire = tbl->parms.base_reachable_time >> 1;
        expire /= (tbl->hash_mask + 1);
        if (!expire)
                expire = 1;

        if (expire>HZ)
                mod_timer(&tbl->gc_timer, round_jiffies(now + expire));
        else
                mod_timer(&tbl->gc_timer, now + expire);

is problematic somehow, at least in my case.

Any ideas?
And how to provide further relevant debug output?

Thanks,

Andreas Mohr
_______________________________________________
Power mailing list
[email protected]
http://www.bughost.org/mailman/listinfo/power

Reply via email to