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

[Xen-devel] RE: Changeset 15943 broke Linux 2.6.23-rc4?

To: "Tim Deegan" <Tim.Deegan@xxxxxxxxxxxxx>
Subject: [Xen-devel] RE: Changeset 15943 broke Linux 2.6.23-rc4?
From: "Cui, Dexuan" <dexuan.cui@xxxxxxxxx>
Date: Wed, 17 Oct 2007 22:55:37 +0800
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx, "Li, Xin B" <xin.b.li@xxxxxxxxx>, "Liu, Eric E" <eric.e.liu@xxxxxxxxx>
Delivery-date: Wed, 17 Oct 2007 08:11:46 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <20071017120727.GB23658@xxxxxxxxxxxxxxxxxxxxx>
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/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <FE7BBCFBB500984A9A7922EBC95F516E70F4AC@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <FE7BBCFBB500984A9A7922EBC95F516E70F4AD@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <20071017120727.GB23658@xxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcgQtpKQPXXJVr5ESvWoSUsA5vthcAAFuLMA
Thread-topic: Changeset 15943 broke Linux 2.6.23-rc4?
Yes, the newly-checked-in patch fixes the 2.6.23 issue.

Thanks!
-- Dexuan

Tim Deegan wrote:
> Hi,
> 
> At 18:53 +0800 on 17 Oct (1192647209), Cui, Dexuan wrote:
>> What's the meaning of "division by zero" in the change log of
>> changeset 15943 : c0d1825f5189 (Don't count "missed ticks" on
>> one-shot timers.)? 
> 
> An OS that set up a one-shot ACPI timer could cause the timer to fire
> with pt->period set to zero, which crashes Xen in the missed_ticks
> calculation. (vpt.c:56  missed_ticks = missed_ticks / (s_time_t)
> pt->period + 1;) Also, it's surely wrong to calculate "missed" ticks
> on a non-repeating timer.
> 
>> I found the c/s breaks Linux 2.6.23-rc4 when ACPI=1 in HVM config
>> file. 
>> 
>> I don't think the 2 lines below are correct for one_shot vpt:       
>>          pt->enabled = 0; list_del(&pt->list);
>> because i.e., it may drop one-shot local timer interrupt wrongly
>> (this breaks ACPI Linux 2.6.23-rc4...):
>> 1)   an one-shot timer interrupt is triggered in pt_timer_fn(), then
>> c/s 15943
>> sets pt->enabled to 0, and removes the vpt from the tm_list;
>> 2)   in vmx_intr_assit() - > pt_update_irq(), we can't find the pt in
>> the tm_list, so the timer interrupt is dropped...
> 
> Ah, I see.  Yes, those lines need to move to after the interrupt is
> delivered. :)
> 
>> Actually we don't need to remove an one_shot vpt from tm_list, since
>> pt_update_irq() ignores a vpt if pt->pending_intr_nr == 0.
> 
> We should do it, though, because otherwise we're just making
> pt_update_irq's list walk more expensive for no benefit.
> 
> Cheers,
> 
> Tim.

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

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