WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [timer/ticks related] dom0 hang during boot on large 1TB

To: Mukesh Rathor <mukesh.rathor@xxxxxxxxxx>
Subject: Re: [Xen-devel] [timer/ticks related] dom0 hang during boot on large 1TB system
From: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Date: Mon, 21 Dec 2009 15:13:36 -0800
Cc: "kurt.hackel@xxxxxxxxxx" <kurt.hackel@xxxxxxxxxx>, Dan Magenheimer <dan.magenheimer@xxxxxxxxxx>, "Xen-devel@xxxxxxxxxxxxxxxxxxx" <Xen-devel@xxxxxxxxxxxxxxxxxxx>, Keir Fraser <keir.fraser@xxxxxxxxxxxxx>, Jan Beulich <JBeulich@xxxxxxxxxx>
Delivery-date: Mon, 21 Dec 2009 15:13:58 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20091221144757.1e0f0930@xxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <b014278a-1553-4cab-b8b5-9c63c1caeaab@default> <C75577FB.4E62%keir.fraser@xxxxxxxxxxxxx> <20091221115252.2c3a64ea@xxxxxxxxxxxxxxxxxxxx> <4B2FD29D.1010807@xxxxxxxx> <20091221144757.1e0f0930@xxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091209 Fedora/3.0-4.fc12 Thunderbird/3.0
On 12/21/2009 02:47 PM, Mukesh Rathor wrote:
delta comes from:

timer_inetrrupt() in time-xen.c :
...
         do {
                 get_time_values_from_xen(cpu);

                 /* Obtain a consistent snapshot of elapsed wallclock cycles. */
       --->       delta = delta_cpu =
                         shadow->system_timestamp + get_nsec_offset(shadow);
       --->       delta     -= processed_system_time;
                 delta_cpu -= per_cpu(processed_system_time, cpu);

                 /*
                  * Obtain a consistent snapshot of stolen/blocked cycles. We
                  * can use state_entry_time to detect if we get preempted here.
                  */
                 do {
                         sched_time = runstate->state_entry_time;
                         barrier();
                         stolen = runstate->time[RUNSTATE_runnable] +
                                 runstate->time[RUNSTATE_offline] -
                                 per_cpu(processed_stolen_time, cpu);
                         blocked = runstate->time[RUNSTATE_blocked] -
                                 per_cpu(processed_blocked_time, cpu);
                         barrier();
                 } while (sched_time != runstate->state_entry_time);
         } while (!time_values_up_to_date(cpu));
...


At first glance, i don't understand the above algorithm. Since you've
the same code, I assumed you could also compute delta to be a large
value when dom0 starts, in which case you may observe dom0 hang.

There's some code in the pvops kernel which looks vaguely like that, but it has nothing to do with timer interrupts. Could you be more specific about what you're referring to?

    J

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

<Prev in Thread] Current Thread [Next in Thread>