From: George Dunlap <george.dunlap@eu.citrix.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: "Tim (Xen.org)" <tim@xen.org>,
"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
Eddie Dong <eddie.dong@intel.com>,
Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>,
Roger Pau Monne <roger.pau@citrix.com>
Subject: Re: Bug: Windows 2003 fails to install on xen-unstable tip
Date: Tue, 23 Apr 2013 16:46:50 +0100 [thread overview]
Message-ID: <5176ACEA.1040607@eu.citrix.com> (raw)
In-Reply-To: <5176BEC202000078000D012D@nat28.tlf.novell.com>
On 23/04/13 16:02, Jan Beulich wrote:
>>>> On 23.04.13 at 16:57, George Dunlap <george.dunlap@eu.citrix.com> wrote:
>> On 23/04/13 15:55, Jan Beulich wrote:
>>>>>> On 23.04.13 at 16:21, George Dunlap <george.dunlap@eu.citrix.com> wrote:
>>>> On 23/04/13 14:00, Jan Beulich wrote:
>>>>>>>> On 23.04.13 at 13:52, George Dunlap <george.dunlap@eu.citrix.com> wrote:
>>>>>> On 23/04/13 12:33, Jan Beulich wrote:
>>>>> Just went through that change again: The only thing that changes
>>>>> is that while rtc_periodic_cb() (simply setting REG_C flags) got
>>>>> called at the end of pt_intr_post(), rtc_periodic_interrupt() now
>>>>> gets called from pt_update_irq(), and therefore takes care of
>>>>> asserting the IRQ itself (which originally happened inside
>>>>> pt_update_irq()) along with setting REG_C flags. Bottom line -
>>>>> all the patch changes is when exactly REG_PF (and possibly
>>>>> REG_IRQF) get set, and whether the IRQ actually gets asserted.
>>>> So that last bit seems to do these things:
>>>> a. Changes when the handling happens in the Xen interrupt handler
>>>> b. Causes assert/deassert to only happen if !(C.PF) && (B.PIE)
>>>> (Before it happened unconditionally)
>>>> c. Causes C.IRQF=1 only if (same condition above)
>>>> (Before it happened unconditionally)
>>>> d. Runs destroy_periodic_timer() if C.PF already
>>>>
>>>> So just to figure out what it was that w2k3 wanted, I tried a bunch of
>>>> variations:
>>>>
>>>> * All of above
>>>> BAD
>>>> * a only; always assert/deassert + set C.IRQF
>>>> GOOD
>>>> * always assert/deassert, but leave destroy_periodic_timer and IRQF
>>>> setting alone
>>>> FAIL
>>>> * destroy if C.PF, assert/deassert, set IRQF if setting C.PF (don't
>>>> check B.PIE)
>>>> FAIL
>>>> * destroy if C.PF, always assert/deassert + set C.IRQF
>>>> FAIL
>>>> * never destroy, assert/deassert + set C.IRQF if setting C.PF
>>>> FAIL
>>>> * never destroy, assert/deassert + set C.IRQF if !C.IRQF
>>>> FAIL
>>>>
>>>> In short, it seems that w2k3 basically expects an unlimited number of
>>>> attempts to actually deliver the interrupt.
>>> Not always doing the deassert/assert pair was actually part of Tim's
>>> subsequent changes - before that it got called conditionally upon
>>> B.PIE, but always set C.IRQF and always deasserted and asserted.
>>> Since we know from the debug log that B.PIE is set, I fail to see how
>>> the code prior to "x86/hvm: Centralize and simplify the RTC IRQ logic"
>>> would have not worked, but the above case turned out GOOD.
>>>
>>> So did his earlier 3 changes perhaps fix the issue, and the fourth re-
>>> introduced it?
>> If you've got a git hash I can try to revert it.
> 527824f41f5fac9cba3d4441b2e73d3118d98837
Reverting that c/s has no effect.
And if I then make the change that made it work before -- namely,
unconditionally calling rtc_toggle_irq in rtc_periodic_interrupt() --
then the w2k3 installer just spins instead of hangs.
At this point I think it's worth asking: is raising needless IRQs and
running non-used pmtimers really causing that big of an issue? Given
that I've just spent a whole day trying to debug this, wouldn't it be
better just to revert all the rtc-related changesets from 620d5da?
-George
next prev parent reply other threads:[~2013-04-23 15:46 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-16 14:22 Bug: Windows 2003 fails to install on xen-unstable tip George Dunlap
2013-04-16 14:34 ` Jan Beulich
2013-04-16 14:35 ` George Dunlap
2013-04-17 8:27 ` Jan Beulich
2013-04-17 18:13 ` George Dunlap
2013-04-18 8:13 ` Jan Beulich
2013-04-18 9:03 ` George Dunlap
2013-04-19 10:05 ` Jan Beulich
2013-04-19 10:44 ` Roger Pau Monné
2013-04-19 12:47 ` Jan Beulich
2013-04-19 13:28 ` Roger Pau Monné
2013-04-19 14:33 ` Jan Beulich
2013-04-19 14:41 ` Roger Pau Monné
2013-04-19 13:51 ` George Dunlap
2013-04-22 11:05 ` Jan Beulich
2013-04-22 15:32 ` George Dunlap
2013-04-23 10:25 ` Jan Beulich
2013-04-23 10:38 ` George Dunlap
2013-04-23 11:33 ` Jan Beulich
2013-04-23 11:52 ` George Dunlap
2013-04-23 11:57 ` George Dunlap
2013-04-23 12:45 ` Jan Beulich
2013-04-23 12:25 ` Jan Beulich
2013-04-23 13:00 ` Jan Beulich
2013-04-23 14:21 ` George Dunlap
2013-04-23 14:43 ` jacek burghardt
2013-04-23 14:47 ` George Dunlap
2013-04-23 14:55 ` Jan Beulich
2013-04-23 14:57 ` George Dunlap
2013-04-23 15:02 ` Jan Beulich
2013-04-23 15:46 ` George Dunlap [this message]
2013-04-23 16:04 ` Jan Beulich
2013-04-23 16:12 ` George Dunlap
2013-04-23 16:30 ` Tim Deegan
2013-04-24 16:09 ` Jan Beulich
2013-04-25 16:02 ` Jan Beulich
2013-04-25 16:34 ` Tim Deegan
2013-04-25 16:40 ` George Dunlap
2013-04-26 6:43 ` Jan Beulich
2013-04-26 16:10 ` Jan Beulich
2013-04-26 16:56 ` Ian Campbell
2013-04-29 6:53 ` Jan Beulich
2013-04-29 8:20 ` Ian Campbell
2013-04-29 8:37 ` Jan Beulich
2013-04-29 8:40 ` Paul Durrant
2013-04-29 8:47 ` Jan Beulich
2013-04-29 9:15 ` Paul Durrant
2013-04-29 9:53 ` Paul Durrant
2013-04-29 10:43 ` Jan Beulich
2013-05-01 14:49 ` Paul Durrant
2013-05-02 6:32 ` Jan Beulich
2013-05-02 8:23 ` Paul Durrant
2013-04-29 8:37 ` Paul Durrant
2013-04-29 10:29 ` Tim Deegan
2013-04-29 11:07 ` Ian Campbell
2013-04-29 11:27 ` Jan Beulich
2013-04-29 11:40 ` Ian Campbell
2013-04-29 11:35 ` Tim Deegan
2013-04-29 11:42 ` Jan Beulich
2013-04-29 11:44 ` Ian Campbell
2013-04-29 11:49 ` Tim Deegan
2013-04-29 11:57 ` Ian Campbell
2013-04-29 12:01 ` Jan Beulich
2013-04-29 8:35 ` Paul Durrant
2013-04-23 10:55 ` Tim Deegan
2013-04-16 15:24 ` Ren, Yongjie
2013-04-16 15:32 ` George Dunlap
2013-04-16 15:37 ` Tim Deegan
2013-04-16 15:56 ` George Dunlap
2013-04-18 2:21 ` Ren, Yongjie
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=5176ACEA.1040607@eu.citrix.com \
--to=george.dunlap@eu.citrix.com \
--cc=JBeulich@suse.com \
--cc=eddie.dong@intel.com \
--cc=roger.pau@citrix.com \
--cc=suravee.suthikulpanit@amd.com \
--cc=tim@xen.org \
--cc=xen-devel@lists.xen.org \
/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.