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
next prev parent 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.