Date: Thu, 03 Jan 2013 00:06:04 +0200 From: Alexander Motin <mav@FreeBSD.org> To: Adrian Chadd <adrian@freebsd.org> Cc: Davide Italiano <davide@freebsd.org>, Ian Lepore <freebsd@damnhippie.dyndns.org>, Marius Strobl <marius@alchemy.franken.de>, FreeBSD Current <freebsd-current@freebsd.org>, freebsd-arch@freebsd.org, Luigi Rizzo <rizzo@iet.unipi.it> Subject: Re: [RFC/RFT] calloutng Message-ID: <50E4AF4C.2070902@FreeBSD.org> In-Reply-To: <CAJ-Vmo=mmm5zhwHyzKeg1VEL8hSz6_LxJAaLh74ArHF3_9KWaQ@mail.gmail.com> References: <50CCAB99.4040308@FreeBSD.org> <50CE5B54.3050905@FreeBSD.org> <50D03173.9080904@FreeBSD.org> <20121225232126.GA47692@alchemy.franken.de> <50DB4EFE.2020600@FreeBSD.org> <1356909223.54953.74.camel@revolution.hippie.lan> <20121231061735.GA5866@onelab2.iet.unipi.it> <50E16637.9070501@FreeBSD.org> <20130102105730.GA42542@onelab2.iet.unipi.it> <50E418EA.7030801@FreeBSD.org> <20130102122743.GA43241@onelab2.iet.unipi.it> <CAO4K=PUHAH=UNzMde0V2TwkN5vj3gw9hHj5yCQxDvdUn%2Buqv7w@mail.gmail.com> <1357135374.54953.150.camel@revolution.hippie.lan> <CAJ-Vmo=mmm5zhwHyzKeg1VEL8hSz6_LxJAaLh74ArHF3_9KWaQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 02.01.2013 18:08, Adrian Chadd wrote: > .. I'm pretty damned sure we're going to need to enforce a "never > earlier than X" latency. Do you mean here that we should never wake up before specified time (just as specified by the most of existing APIs), or that we should not allow sleep shorter then some value to avoid DoS? At least on x86 nanosleep(0) doesn't allow to block the system. Also there is already present mechanism for specifying minimum timer programming interval in eventtimers(9) KPI. > Is there a more detailed writeup of calloutng somewhere, besides > David's slides? The wiki page is rather empty. There are updated manual pages in the patch. Also Davide written some blog during GSoC. Now we are working on papers for the AsiaBSDCon. > Eg - I think this work does coalesce wakeups, right? Or it can? So > when in low-power scenarios you can end up with lower-resolution > callout periods, but many less CPU wakeups a second? This work does coalesce wakeups out of the box, but also provide ways to improve it further, where possible. With additional tuning of some kernel subsystems and drivers I was able to drop total idle interrupt rate down to 10-15Hz on arm and 20-30Hz on x86. > (Do we actually _expose_ wakeups-per-second somewhere?) On systems with ACPI there are average per-CPU sleep times exposed via sysctls dev.cpu.X.cx_usage. Also cpu_idle() call rate calculated by both schedulers for purposes of idle loop optimizations, but it is not exposed outside now. Also for idle SMP system enabling COUNT_IPIS should give number of interrupts in systat comparable to number of wakeups. I am mostly using the last way. -- Alexander Motin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?50E4AF4C.2070902>