All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joanna Rutkowska <joanna@invisiblethingslab.com>
To: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Ian Pratt <Ian.Pratt@eu.citrix.com>,
	"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
	Dan Magenheimer <dan.magenheimer@oracle.com>
Subject: Re: A clocksource question
Date: Fri, 12 Mar 2010 01:27:28 +0100	[thread overview]
Message-ID: <4B998A70.3050500@invisiblethingslab.com> (raw)
In-Reply-To: <4B9877CA.4060204@goop.org>


[-- Attachment #1.1: Type: text/plain, Size: 2918 bytes --]

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...
>>    
> 
> Possibly, but doesn't seem too likely.  Can you tell if your hiccups are
> accompanied by bursts of timer interrupts in /proc/interrupts?
> 
> There is another possibility, which is that the scheduler is getting
> confused by xen's scheduler clock.  Rather than just scheduling based on
> 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.
> 
> Does this help?
> 
> 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();
> 
>      return ret;
> +#endif
>  }
> 
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 = 1;
    dev->min_delta_ns = (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.


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 226 bytes --]

[-- Attachment #2: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

  parent reply	other threads:[~2010-03-12  0:27 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-09 10:47 A clocksource question Joanna Rutkowska
2010-03-09 10:50 ` Keir Fraser
2010-03-09 10:54   ` Joanna Rutkowska
2010-03-09 11:06     ` Joanna Rutkowska
2010-03-09 12:07       ` Pasi Kärkkäinen
2010-03-09 12:10         ` Joanna Rutkowska
2010-03-09 15:42       ` Konrad Rzeszutek Wilk
2010-03-09 23:36 ` Jeremy Fitzhardinge
2010-03-10 22:13   ` Joanna Rutkowska
2010-03-11  0:07     ` Dan Magenheimer
2010-03-11  0:15       ` Joanna Rutkowska
2010-03-11  0:21       ` Ian Pratt
2010-03-11  0:44         ` Dan Magenheimer
2010-03-12  0:34           ` Joanna Rutkowska
2010-03-11  0:52         ` Joanna Rutkowska
2010-03-11  1:06           ` Jeremy Fitzhardinge
2010-03-11  1:19             ` Joanna Rutkowska
2010-03-11  4:55               ` Jeremy Fitzhardinge
2010-03-11 10:49                 ` Joanna Rutkowska
2010-03-12  0:27                 ` Joanna Rutkowska [this message]
2010-03-12  0:49                   ` Jeremy Fitzhardinge
2010-03-12  0:38                     ` Joanna Rutkowska
2010-03-12 19:02                       ` Joanna Rutkowska
2010-03-12 21:24                         ` Jeremy Fitzhardinge
2010-03-12 21:56                           ` Tobias Geiger
2010-03-12 22:02                             ` Jeremy Fitzhardinge
2010-03-12 21:01                               ` Joanna Rutkowska
2010-03-12 21:13                                 ` Joanna Rutkowska
2010-03-12 23:48                                   ` Jeremy Fitzhardinge
2010-03-13  9:58                                     ` Joanna Rutkowska
2010-03-13 19:30                                       ` Jeremy Fitzhardinge
2010-03-15  6:49                                         ` Tobias Geiger
2010-03-16  6:01                                         ` Joanna Rutkowska
2010-03-17 13:35                                           ` Tobias Geiger
2010-03-17 15:21                                             ` Joanna Rutkowska
2010-03-17 16:20                                             ` Jeremy Fitzhardinge
2010-03-17 17:05                                               ` Joanna Rutkowska
2010-03-17 17:21                                                 ` Jeremy Fitzhardinge
2010-03-17 16:26                                             ` Dan Magenheimer
2010-03-12 22:56                               ` Tobias Geiger
2010-03-11  7:47     ` Keir Fraser
  -- strict thread matches above, loose matches on Subject: below --
2010-03-12 11:42 Tobias Geiger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B998A70.3050500@invisiblethingslab.com \
    --to=joanna@invisiblethingslab.com \
    --cc=Ian.Pratt@eu.citrix.com \
    --cc=dan.magenheimer@oracle.com \
    --cc=jeremy@goop.org \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.