All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	Keir Fraser <keir@xen.org>, Tim Deegan <tim@xen.org>
Subject: Re: Hpet interrupt overflow
Date: Tue, 13 Aug 2013 10:03:46 +0100	[thread overview]
Message-ID: <5209F672.7070107@citrix.com> (raw)
In-Reply-To: <52011D0302000078000E9AA8@nat28.tlf.novell.com>

[-- Attachment #1: Type: text/plain, Size: 1204 bytes --]

On 06/08/13 14:57, Jan Beulich wrote:
>>> Right. And with fewer CPUs than HPET channels, you could get
>>> the system into a mode where each CPU uses a dedicated channel
>>> ("maxcpus=4", suppressing registration of all the disabled ones).
>> Does this setup actually mean that there are 8 hpets which are all
>> broadcasting to every pcpu?  The affinities listed in debug-keys 'i'
>> seem to be towards single pcpus, but the order looks peculiar to say the
>> least.
> No, each channel will be used for just one CPU when there are at
> least as many channels as CPUs. The difference between not using
> said command line option and using it is that in the former case a
> new channel would get assigned to a CPU each time it needs one,
> while in the latter case a static (pre-)assignment is used, i.e. each
> CPU will use always the same single channel.
>
> Jan
>

We had another crash, this time with a proper stack trace.  (This was
using an early version stack trace improvements series)

>From the stack trace (now correctly with frame pointers), we see 9 calls
to handle_hpet_broadcast().

This indicates that the current logic does not correctly prevent
repeated delivery of interrupts.

~Andrew

[-- Attachment #2: stack-trace.log --]
[-- Type: text/x-log, Size: 11436 bytes --]

(XEN) [2013-08-12 22:57:42] *** DOUBLE FAULT ***
(XEN) [2013-08-12 22:57:42] ----[ Xen-4.3.0  x86_64  debug=y  Not tainted ]----
(XEN) [2013-08-12 22:57:42] CPU:    2
(XEN) [2013-08-12 22:57:42] RIP:    e008:[<ffff82c4c012a578>] _spin_lock_irqsave+0/0x5e
(XEN) [2013-08-12 22:57:42] RFLAGS: 0000000000010292   CONTEXT: hypervisor
(XEN) [2013-08-12 22:57:42] rax: ffff82c4c01a7b39   rbx: ffff83043f2d6168   rcx: ffff83043f2bab30
(XEN) [2013-08-12 22:57:42] rdx: ffff83043f2dac88   rsi: ffff83043f2ba300   rdi: ffff83043f2ba320
(XEN) [2013-08-12 22:57:42] rbp: ffff83043f2d6068   rsp: ffff83043f2d6000   r8:  0000000000000000
(XEN) [2013-08-12 22:57:42] r9:  0000000000000000   r10: ffff83043f2d76f0   r11: 0000000000000000
(XEN) [2013-08-12 22:57:42] r12: ffff83043f2ba300   r13: 0000000000000073   r14: ffff83043f281e24
(XEN) [2013-08-12 22:57:42] r15: ffff83043f281e00   cr0: 000000008005003b   cr4: 00000000000026f0
(XEN) [2013-08-12 22:57:42] cr3: 000000041e04e000   cr2: ffff83043f2d5ff8
(XEN) [2013-08-12 22:57:42] ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: 0000   cs: e008
(XEN) [2013-08-12 22:57:42] Valid stack range: ffff83043f2d6000-ffff83043f2d8000, sp=ffff83043f2d6000, tss.esp0=ffff83043f2d7fc0
(XEN) [2013-08-12 22:57:42] Xen stack overflow (dumping trace ffff83043f2d6000-ffff83043f2d8000):
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6008: [<ffff82c4c01a7b56>] handle_hpet_broadcast+0x1d/0x268
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6078: [<ffff82c4c01a7e01>] hpet_interrupt_handler+0x3e/0x40
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6088: [<ffff82c4c0170744>] do_IRQ+0xb12/0xbc7
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6168: [<ffff82c4c016805f>] common_interrupt+0x5f/0x70
(XEN) [2013-08-12 22:57:42]    ffff83043f2d61f0: [<ffff82c4c012a535>] _spin_unlock_irqrestore+0x40/0x42
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6228: [<ffff82c4c01a7b94>] handle_hpet_broadcast+0x5b/0x268
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6298: [<ffff82c4c01a7e01>] hpet_interrupt_handler+0x3e/0x40
(XEN) [2013-08-12 22:57:42]    ffff83043f2d62a8: [<ffff82c4c0170744>] do_IRQ+0xb12/0xbc7
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6340: [<ffff82c4c012a178>] _spin_lock_irq+0x28/0x65
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6388: [<ffff82c4c016805f>] common_interrupt+0x5f/0x70
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6410: [<ffff82c4c012a535>] _spin_unlock_irqrestore+0x40/0x42
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6448: [<ffff82c4c01a7b94>] handle_hpet_broadcast+0x5b/0x268
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6470: [<ffff82c4c012a178>] _spin_lock_irq+0x28/0x65
(XEN) [2013-08-12 22:57:42]    ffff83043f2d64b8: [<ffff82c4c01a7e01>] hpet_interrupt_handler+0x3e/0x40
(XEN) [2013-08-12 22:57:42]    ffff83043f2d64c8: [<ffff82c4c0170744>] do_IRQ+0xb12/0xbc7
(XEN) [2013-08-12 22:57:42]    ffff83043f2d64d8: [<ffff82c4c01aaabd>] cpuidle_wakeup_mwait+0xad/0xba
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6518: [<ffff82c4c01aaabd>] cpuidle_wakeup_mwait+0xad/0xba
(XEN) [2013-08-12 22:57:42]    ffff83043f2d65a8: [<ffff82c4c016805f>] common_interrupt+0x5f/0x70
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6600: [<ffff82c4c01a7b39>] handle_hpet_broadcast+0/0x268
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6630: [<ffff82c4c012a583>] _spin_lock_irqsave+0xb/0x5e
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6678: [<ffff82c4c01a7b56>] handle_hpet_broadcast+0x1d/0x268
(XEN) [2013-08-12 22:57:42]    ffff83043f2d66e8: [<ffff82c4c01a7e01>] hpet_interrupt_handler+0x3e/0x40
(XEN) [2013-08-12 22:57:42]    ffff83043f2d66f8: [<ffff82c4c0170744>] do_IRQ+0xb12/0xbc7
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6758: [<ffff82c4c01aaabd>] cpuidle_wakeup_mwait+0xad/0xba
(XEN) [2013-08-12 22:57:42]    ffff83043f2d67d8: [<ffff82c4c016805f>] common_interrupt+0x5f/0x70
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6860: [<ffff82c4c012a535>] _spin_unlock_irqrestore+0x40/0x42
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6898: [<ffff82c4c01a7b94>] handle_hpet_broadcast+0x5b/0x268
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6908: [<ffff82c4c01a7e01>] hpet_interrupt_handler+0x3e/0x40
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6918: [<ffff82c4c0170744>] do_IRQ+0xb12/0xbc7
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6988: [<ffff82c4c01aaabd>] cpuidle_wakeup_mwait+0xad/0xba
(XEN) [2013-08-12 22:57:42]    ffff83043f2d69b8: [<ffff82c4c01aaabd>] cpuidle_wakeup_mwait+0xad/0xba
(XEN) [2013-08-12 22:57:42]    ffff83043f2d69f8: [<ffff82c4c016805f>] common_interrupt+0x5f/0x70
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6a80: [<ffff82c4c012a535>] _spin_unlock_irqrestore+0x40/0x42
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6ab8: [<ffff82c4c01a7b94>] handle_hpet_broadcast+0x5b/0x268
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6b28: [<ffff82c4c01a7e01>] hpet_interrupt_handler+0x3e/0x40
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6b38: [<ffff82c4c0170744>] do_IRQ+0xb12/0xbc7
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6b58: [<ffff82c4c01aaabd>] cpuidle_wakeup_mwait+0xad/0xba
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6ba8: [<ffff82c4c01a7ce9>] handle_hpet_broadcast+0x1b0/0x268
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6c18: [<ffff82c4c016805f>] common_interrupt+0x5f/0x70
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6ca0: [<ffff82c4c012a535>] _spin_unlock_irqrestore+0x40/0x42
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6cd8: [<ffff82c4c01a7b94>] handle_hpet_broadcast+0x5b/0x268
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6d48: [<ffff82c4c01a7e01>] hpet_interrupt_handler+0x3e/0x40
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6d58: [<ffff82c4c0170744>] do_IRQ+0xb12/0xbc7
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6dc8: [<ffff82c4c01aaabd>] cpuidle_wakeup_mwait+0xad/0xba
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6e38: [<ffff82c4c016805f>] common_interrupt+0x5f/0x70
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6ec0: [<ffff82c4c012a577>] _spin_unlock_irq+0x40/0x41
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6ee8: [<ffff82c4c017071a>] do_IRQ+0xae8/0xbc7
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6f00: [<ffff82c4c012a178>] _spin_lock_irq+0x28/0x65
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6f78: [<ffff82c4c01aaabd>] cpuidle_wakeup_mwait+0xad/0xba
(XEN) [2013-08-12 22:57:42]    ffff83043f2d6fc8: [<ffff82c4c016805f>] common_interrupt+0x5f/0x70
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7050: [<ffff82c4c01f0d3f>] ept_get_entry+0x2f/0x239
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7078: [<ffff82c4c01f0d3f>] ept_get_entry+0x2f/0x239
(XEN) [2013-08-12 22:57:42]    ffff83043f2d70b8: [<ffff82c4c016fcda>] do_IRQ+0xa8/0xbc7
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7108: [<ffff82c4c01e97a7>] __get_gfn_type_access+0x12b/0x20e
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7158: [<ffff82c4c01e9fd2>] get_page_from_gfn_p2m+0xc8/0x25d
(XEN) [2013-08-12 22:57:42]    ffff83043f2d71c8: [<ffff82c4c01f4970>] map_domain_gfn_3_levels+0x43/0x13a
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7208: [<ffff82c4c01f4bf2>] guest_walk_tables_3_levels+0x18b/0x489
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7248: [<ffff82c4c01f0f37>] ept_get_entry+0x227/0x239
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7288: [<ffff82c4c0223c98>] hap_p2m_ga_to_gfn_3_levels+0x178/0x306
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7338: [<ffff82c4c0223e45>] hap_gva_to_gfn_3_levels+0x1f/0x2a
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7348: [<ffff82c4c01ebf2e>] paging_gva_to_gfn+0xb6/0xcc
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7398: [<ffff82c4c01b72e6>] hvmemul_linear_to_phys+0xf3/0x24f
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7418: [<ffff82c4c01b801f>] __hvmemul_read+0x179/0x1c8
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7498: [<ffff82c4c01b80c1>] hvmemul_read+0x12/0x14
(XEN) [2013-08-12 22:57:42]    ffff83043f2d74a8: [<ffff82c4c0193aa9>] read_ulong+0xe/0x10
(XEN) [2013-08-12 22:57:42]    ffff83043f2d74b8: [<ffff82c4c0196338>] x86_emulate+0x1df1/0x11309
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7510: [<ffff82c4c01b806e>] hvmemul_insn_fetch+0/0x41
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7530: [<ffff82c4c01a24a7>] x86_emulate+0xdf60/0x11309
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7548: [<ffff82c4c01a24a7>] x86_emulate+0xdf60/0x11309
(XEN) [2013-08-12 22:57:42]    ffff83043f2d75a8: [<ffff82c4c0107774>] evtchn_set_pending+0xc0/0x18e
(XEN) [2013-08-12 22:57:42]    ffff83043f2d75d8: [<ffff82c4c0107900>] notify_via_xen_event_channel+0xbe/0x124
(XEN) [2013-08-12 22:57:42]    ffff83043f2d76c8: [<ffff82c4c01ef9b5>] ept_next_level+0xa4/0xde
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7788: [<ffff82c4c01ef9b5>] ept_next_level+0xa4/0xde
(XEN) [2013-08-12 22:57:42]    ffff83043f2d77b8: [<ffff82c4c01f0f37>] ept_get_entry+0x227/0x239
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7848: [<ffff82c4c017788f>] get_page+0x27/0xf2
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7898: [<ffff82c4c01ef9b5>] ept_next_level+0xa4/0xde
(XEN) [2013-08-12 22:57:42]    ffff83043f2d78c8: [<ffff82c4c01f0f37>] ept_get_entry+0x227/0x239
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7a98: [<ffff82c4c01b8260>] hvm_emulate_one+0x127/0x1bf
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7aa8: [<ffff82c4c01b6f1b>] hvmemul_get_seg_reg+0x49/0x60
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7ae8: [<ffff82c4c01c3bc5>] handle_mmio+0x55/0x1f0
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7b10: [<ffff82c4c01b8260>] hvm_emulate_one+0x127/0x1bf
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7b20: [<ffff82c4c01b6f1b>] hvmemul_get_seg_reg+0x49/0x60
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7c48: [<ffff82c4c01e9700>] __get_gfn_type_access+0x84/0x20e
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7c98: [<ffff82c4c01bcff3>] hvm_hap_nested_page_fault+0x25d/0x456
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7d18: [<ffff82c4c01e1557>] vmx_vmexit_handler+0x140a/0x17ba
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7d30: [<ffff82c4c01be8c5>] hvm_do_resume+0xc6/0x1b7
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7da8: [<ffff82c4c01ce19c>] vpic_get_highest_priority_irq+0xaa/0xc6
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7db8: [<ffff82c4c015f972>] vcpu_kick+0x20/0x6c
(XEN) [2013-08-12 22:57:42]    ffff83043f2d7dd8: [<ffff82c4c01ce22f>] vpic_update_int_output+0x77/0xa2
(XEN) [2013-08-12 22:57:43]    ffff83043f2d7df8: [<ffff82c4c01ce363>] vpic_irq_positive_edge+0x80/0x85
(XEN) [2013-08-12 22:57:43]    ffff83043f2d7e18: [<ffff82c4c01c4b30>] assert_irq+0x27/0x32
(XEN) [2013-08-12 22:57:43]    ffff83043f2d7e38: [<ffff82c4c01c4bca>] hvm_isa_irq_assert+0x8f/0xa4
(XEN) [2013-08-12 22:57:43]    ffff83043f2d7e58: [<ffff82c4c01cb3d0>] vlapic_accept_pic_intr+0x21/0x2b
(XEN) [2013-08-12 22:57:43]    ffff83043f2d7e68: [<ffff82c4c01cf86d>] pt_update_irq+0x267/0x2ea
(XEN) [2013-08-12 22:57:43]    ffff83043f2d7e78: [<ffff82c4c01cb3d0>] vlapic_accept_pic_intr+0x21/0x2b
(XEN) [2013-08-12 22:57:43]    ffff83043f2d7e88: [<ffff82c4c01bd239>] hvm_interrupt_blocked+0x4d/0xe9
(XEN) [2013-08-12 22:57:43]    ffff83043f2d7ec8: [<ffff82c4c01defa9>] vmx_vmenter_helper+0x60/0x139
(XEN) [2013-08-12 22:57:43]    ffff83043f2d7f18: [<ffff82c4c01e7739>] vmx_asm_do_vmentry+0/0xe7
(XEN) [2013-08-12 22:57:43]    
(XEN) [2013-08-12 22:57:43] 
(XEN) [2013-08-12 22:57:43] ****************************************
(XEN) [2013-08-12 22:57:43] Panic on CPU 2:
(XEN) [2013-08-12 22:57:43] DOUBLE FAULT -- system shutdown
(XEN) [2013-08-12 22:57:43] ****************************************
(XEN) [2013-08-12 22:57:43] 
(XEN) [2013-08-12 22:57:43] Reboot in five seconds...
(XEN) [2013-08-12 22:57:43] Executing crash image

[-- Attachment #3: Type: text/plain, Size: 126 bytes --]

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

  reply	other threads:[~2013-08-13  9:04 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-05 20:38 [RFC Patch] x86/hpet: Disable interrupts while running hpet interrupt handler Andrew Cooper
2013-08-06  4:49 ` Keir Fraser
2013-08-06  8:01 ` Jan Beulich
2013-08-06 10:32   ` Andrew Cooper
2013-08-06 11:44     ` Jan Beulich
2013-08-06 13:23       ` Andrew Cooper
2013-08-06 13:57         ` Jan Beulich
2013-08-13  9:03           ` Andrew Cooper [this message]
2013-08-13  9:22             ` Hpet interrupt overflow Tim Deegan
2013-08-13  9:33               ` Andrew Cooper
2013-08-13 11:59             ` Jan Beulich

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=5209F672.7070107@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=JBeulich@suse.com \
    --cc=keir@xen.org \
    --cc=tim@xen.org \
    --cc=xen-devel@lists.xenproject.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.