From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joanna Rutkowska Subject: Re: A clocksource question Date: Fri, 12 Mar 2010 01:27:28 +0100 Message-ID: <4B998A70.3050500@invisiblethingslab.com> References: <4B962748.90609@invisiblethingslab.com> <4B96DB69.10101@goop.org 4B981997.4030605@invisiblethingslab.com> <56cc3abf-21f6-4178-b00e-0331538080d9@default> <4FA716B1526C7C4DB0375C6DADBC4EA3554D53F1B0@LONPMAILBOX01.citrite.net> <4B983EC9.2030105@invisiblethingslab.com> <4B98421F.7040102@goop.org> <4B984533.9030402@invisiblethingslab.com> <4B9877CA.4060204@goop.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0789036137==" Return-path: In-Reply-To: <4B9877CA.4060204@goop.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Jeremy Fitzhardinge Cc: Ian Pratt , "xen-devel@lists.xensource.com" , Dan Magenheimer List-Id: xen-devel@lists.xenproject.org This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --===============0789036137== Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig56A40939C739CDE0E027CA5D" This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig56A40939C739CDE0E027CA5D Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 03/11/2010 05:55 AM, Jeremy Fitzhardinge wrote: >> and so, maybe my kbd hiccups are caused by some code executed by >> the timer interrupt too frequently (maybe too much code executes per >> each timer interrupt, because of some other bug)? Just a though... >> =20 >=20 > Possibly, but doesn't seem too likely. Can you tell if your hiccups ar= e > accompanied by bursts of timer interrupts in /proc/interrupts? >=20 > There is another possibility, which is that the scheduler is getting > confused by xen's scheduler clock. Rather than just scheduling based o= n > real time, we try to take into account time stolen from a vcpu so that > it isn't credited against the process (which may have had all its time > stolen by another domain). But that could just be confusing things. >=20 > Does this help? >=20 > diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c > index 0d3f07c..9029885 100644 > --- a/arch/x86/xen/time.c > +++ b/arch/x86/xen/time.c > @@ -161,6 +161,9 @@ static void do_stolen_accounting(void) > */ > unsigned long long xen_sched_clock(void) > { > +#if 1 > + return xen_clocksource_read(); > +#else > struct vcpu_runstate_info state; > cycle_t now; > u64 ret; > @@ -190,6 +193,7 @@ unsigned long long xen_sched_clock(void) > preempt_enable(); >=20 > return ret; > +#endif > } >=20 Nope, it didn't. I think that the important clue is this message appearing in my dmesg (in Dom0 and also in DomUs): hrtimer: interrupt too slow, forcing clock min delta to 540150561 ns This is almost 0.5s (!) and I think this might explain my kbd hiccup. I wrote that I feel it every 10s or so, but when I was playing on my system without jiffies setting today, I saw this hiccup occurring much more often; in fact it was more of a "slow keyboard/system" feeling than a hiccup". Anyway, this is a comment from the function that displays this warning (kernel/hrtimer.c): /* * After 5 iteration's attempts, we consider that hrtimer_interrupt() * is hanging, which could happen with something that slows the interrupt= * such as the tracing. Then we force the clock reprogramming for each future * hrtimer interrupts to avoid infinite loops and use the min_delta_ns * threshold that we will overwrite. * The next tick event will be scheduled to 3 times we currently spend on= * hrtimer_interrupt(). This gives a good compromise, the cpus will spend= * 1/4 of their time to process the hrtimer interrupts. This is enough to= * let it running without serious starvation. */ static inline void hrtimer_interrupt_hanging(struct clock_event_device *dev, ktime_t try_time) { force_clock_reprogram =3D 1; dev->min_delta_ns =3D (unsigned long)try_time.tv64 * 3; printk(KERN_WARNING "hrtimer: interrupt too slow, " "forcing clock min delta to %lu ns\n", dev->min_delta_ns); } joanna. --------------enig56A40939C739CDE0E027CA5D Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/ iEYEARECAAYFAkuZinAACgkQORdkotfEW86M1QCg9c134rTgeojgY0YrUFXgPFBQ AWsAmQGCHKIZgR+TLeHrs7/Ca7atagju =ygNJ -----END PGP SIGNATURE----- --------------enig56A40939C739CDE0E027CA5D-- --===============0789036137== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --===============0789036137==--