Date: Thu, 02 Sep 2010 13:08:25 +0200 From: Ian FREISLICH <ianf@clue.co.za> To: Alexander Motin <mav@FreeBSD.org> Cc: FreeBSD-Current <freebsd-current@freebsd.org> Subject: Re: One-shot-oriented event timers management Message-ID: <E1Or7eb-0000NW-Fg@clue.co.za> In-Reply-To: <4C7F7A6D.4070207@FreeBSD.org> References: <4C7F7A6D.4070207@FreeBSD.org> <AANLkTikL8Bwg=eX-eUX50VThVkYJ-H_Bz1dB6geKHPYy@mail.gmail.com> <4C7A5C28.1090904@FreeBSD.org> <20100830110932.23425932@ernst.jennejohn.org> <4C7B82EA.2040104@FreeBSD.org> <20100830121148.11926306@ernst.jennejohn.org> <20100831102918.4f5404cc@ernst.jennejohn.org> <4C7CC1DE.1080907@FreeBSD.org> <4C7E2E8A.3030709@FreeBSD.org> <AANLkTikcHn-SXk7Rx6NcSQKtBh-Df-g2pzeU%2BzHor9Vy@mail.gmail.com> <4C7EA696.3030901@FreeBSD.org> <E1Or5xj-0000Oo-Nh@clue.co.za>
next in thread | previous in thread | raw e-mail | index | archive | help
Alexander Motin wrote: > Ian FREISLICH wrote: > > On Wed, Sep 1, 2010 at 2:16 PM, Alexander Motin <mav@freebsd.org> wrote: > >> Brandon Gooch wrote: > >>> This latest patch causes an interrupt storm with the HPET timer on my > >>> system. The machine took about 8 minutes to boot and bring me to a > >>> login prompt. System interactivity (i.e. input from keyboard, output > >>> on console) was fine, but after checking the output of `systat vmstat > >>> -1`, I saw the interrupt rate on each HPET entry was over 120k! > >>> > >>> Can I provide any useful detail? Of course, test patches are always welco m > > e :) > >> I was able to reproduce alike storm in some situations. > >> > >> Try new version: http://people.freebsd.org/~mav/timers_oneshot7.patch > > > > Interrupt rates are definitely reduced. > > > > [mini] /usr/home/ianf $ vmstat -i > > interrupt total rate > > irq1: atkbd0 1154 1 > > irq9: acpi0 10829 15 > > irq16: ath0 uhci3+ 16226 23 > > irq18: uhci2 16 0 > > irq19: uhci1+ 7090 10 > > irq20: hpet0 169288 240 > > irq23: uhci0 ehci0 64 0 > > irq256: hdac0 187 0 > > Total 204854 291 > > Nice. But 240 still quite a lot. Have you applied tm6292_idle.patch and > was this system idle at the moment? No, I didn't. It was reasonably idle. I missed that in the first post - because I became interested in this when Brandon Gooch reported lower power consumption. I've compiled now with this patch as well. There was one rejection: --- 2182,2189 ---- * Ticks is updated asynchronously on a single cpu. Check here to * avoid incrementing ts_ticks multiple times in a single tick. */ + // if (ts->ts_incrtick == ticks) + // return; /* Adjust ticks for pctcpu */ ts->ts_ticks += 1 << SCHED_TICK_SHIFT; ts->ts_ltick = ticks; But, it appears to have already been applied by timers_oneshot7.patch. The vmstat -i output is the rate since boot. Currently at 240/s since boot, the instantaneous rate when idle is about 60. > > [mini] /usr/home/ianf $ sysctl dev.cpu |grep usage > > dev.cpu.0.cx_usage: 0.00% 0.04% 0.80% 99.15% last 1601us > > dev.cpu.1.cx_usage: 0.00% 0.00% 0.65% 99.34% last 2078us > > It is the first time I see in practice system reporting 4 different ACPI > C-states. What is this system? What CPU is there? Could you show me full > `sysctl dev.cpu` output? It's a compaq mini-110: CPU: Intel(R) Atom(TM) CPU N270 @ 1.60GHz (1596.22-MHz 686-class CPU) dev.cpu.0.%desc: ACPI CPU dev.cpu.0.%driver: cpu dev.cpu.0.%location: handle=\_PR_.P001 dev.cpu.0.%pnpinfo: _HID=none _UID=0 dev.cpu.0.%parent: acpi0 dev.cpu.0.freq: 1600 dev.cpu.0.freq_levels: 1600/25000 1400/21875 1333/18000 1166/15750 1067/11000 933/9625 800/5000 700/4375 600/3750 500/3125 400/2500 300/1875 200/1250 100/625 dev.cpu.0.cx_supported: C1/1 C2/1 C3/17 C4/57 dev.cpu.0.cx_lowest: C1 dev.cpu.0.cx_usage: 100.00% 0.00% 0.00% 0.00% last 379us dev.cpu.1.%desc: ACPI CPU dev.cpu.1.%driver: cpu dev.cpu.1.%location: handle=\_PR_.P002 dev.cpu.1.%pnpinfo: _HID=none _UID=0 dev.cpu.1.%parent: acpi0 dev.cpu.1.cx_supported: C1/1 C2/1 C3/17 C4/57 dev.cpu.1.cx_lowest: C1 dev.cpu.1.cx_usage: 100.00% 0.00% 0.00% 0.00% last 4335us Ian -- Ian Freislich
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E1Or7eb-0000NW-Fg>