All of lore.kernel.org
 help / color / mirror / Atom feed
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 17:12:31 +0100	[thread overview]
Message-ID: <5176B2EF.70803@eu.citrix.com> (raw)
In-Reply-To: <5176CD1002000078000D019D@nat28.tlf.novell.com>

On 23/04/13 17:04, Jan Beulich wrote:
>>>> On 23.04.13 at 17:46, George Dunlap <george.dunlap@eu.citrix.com> wrote:
>> 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.
> To me that contradicts your earlier findings, but the whole story
> shows that I must be missing something.

With that c/s reverted, it still only does the deassert/assert/set 
C.IRQF if !C.PF && B.PIE; so from my previous findings I would have 
expected the test to fail.

>
>> 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?
> Reverting everything, as said a number of times before, is certainly
> not the right thing.

Well we can't release with w2k3 not booting -- that's not the right 
thing either.  :-)

Anyway, if you have patches you want me to try I can give them a spin; 
but other than that I don't think I'm going to spend any more time 
trying to track down this particular problem.

  -George

  reply	other threads:[~2013-04-23 16:12 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
2013-04-23 16:04                                         ` Jan Beulich
2013-04-23 16:12                                           ` George Dunlap [this message]
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=5176B2EF.70803@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.