OpenCloudOS-Kernel/include/trace/events
Zhang Haoyu 184564efae kvm: ioapic: conditionally delay irq delivery duringeoi broadcast
Currently, we call ioapic_service() immediately when we find the irq is still
active during eoi broadcast. But for real hardware, there's some delay between
the EOI writing and irq delivery.  If we do not emulate this behavior, and
re-inject the interrupt immediately after the guest sends an EOI and re-enables
interrupts, a guest might spend all its time in the ISR if it has a broken
handler for a level-triggered interrupt.

Such livelock actually happens with Windows guests when resuming from
hibernation.

As there's no way to recognize the broken handle from new raised ones, this patch
delays an interrupt if 10.000 consecutive EOIs found that the interrupt was
still high.  The guest can then make a little forward progress, until a proper
IRQ handler is set or until some detection routine in the guest (such as
Linux's note_interrupt()) recognizes the situation.

Cc: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Zhang Haoyu <zhanghy@sangfor.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2014-09-16 14:44:48 +02:00
..
9p.h 9p: trace: use %*ph to dump buffer 2013-05-28 13:42:08 -05:00
asoc.h ASoC: Move name and id from CODEC/platform to component 2014-06-21 21:04:24 +01:00
bcache.h bcache: fix crash in bcache_btree_node_alloc_fail tracepoint 2014-08-04 15:23:03 -07:00
block.h blktrace: fix accounting of partially completed requests 2014-03-05 16:11:21 -07:00
btrfs.h btrfs: Add trace for btrfs_workqueue alloc/destroy 2014-03-20 17:15:28 -07:00
compaction.h mm/compaction: do not count migratepages when unnecessary 2014-06-04 16:54:07 -07:00
context_tracking.h context_tracking: User/kernel broundary cross trace events 2013-08-14 17:14:48 +02:00
ext3.h jbd: change journal_invalidatepage() to accept length 2013-05-21 23:26:36 -04:00
ext4.h ext4: rename uninitialized extents to unwritten 2014-04-20 23:45:47 -04:00
f2fs.h f2fs: add tracepoint for f2fs_direct_IO 2014-08-02 07:34:46 -07:00
fence.h fence: dma-buf cross-device synchronization (v18) 2014-07-08 12:18:56 -07:00
filelock.h locks: add some tracepoints in the lease handling code 2014-06-02 08:09:30 -04:00
filemap.h mm: trace filemap add and del 2013-04-29 15:54:28 -07:00
gfpflags.h mm: get rid of __GFP_KMEMCG 2014-06-04 16:53:56 -07:00
gpio.h gpio: add trace events for setting direction and value 2011-05-20 00:40:19 -06:00
host1x.h gpu: host1x: Add channel support 2013-04-22 12:32:43 +02:00
hswadsp.h Merge remote-tracking branches 'asoc/topic/ml26124', 'asoc/topic/of', 'asoc/topic/omap', 'asoc/topic/pxa' and 'asoc/topic/rcar' into asoc-next 2014-03-12 23:04:35 +00:00
i2c.h i2c: Add message transfer tracepoints for SMBUS [ver #2] 2014-03-13 22:15:07 +01:00
intel-sst.h Merge remote-tracking branches 'asoc/topic/ml26124', 'asoc/topic/of', 'asoc/topic/omap', 'asoc/topic/pxa' and 'asoc/topic/rcar' into asoc-next 2014-03-12 23:04:35 +00:00
iommu.h iommu: Add iommu_error class event to iommu trace 2013-09-25 11:07:04 +02:00
ipi.h tracepoint: add generic tracepoint definitions for IPI tracing 2014-08-07 20:40:40 -04:00
irq.h rcu: Use softirq to address performance regression 2011-06-14 15:25:39 -07:00
jbd.h jbd: Write journal superblock with WRITE_FUA after checkpointing 2012-05-15 23:34:37 +02:00
jbd2.h jbd2: trace when lock_buffer in do_get_write_access takes a long time 2013-04-21 16:47:54 -04:00
kmem.h mm: get rid of unnecessary overhead of trace_mm_page_alloc_extfrag() 2013-11-13 12:09:10 +09:00
kvm.h kvm: ioapic: conditionally delay irq delivery duringeoi broadcast 2014-09-16 14:44:48 +02:00
lock.h
mce.h
migrate.h mm tracing: tell mm_migrate_pages event about numa_misplaced 2014-08-06 18:01:18 -07:00
module.h This contains two fixes. 2014-05-08 14:17:13 -07:00
napi.h
net.h net: Rename skb->rxhash to skb->hash 2014-03-26 15:58:20 -04:00
nmi.h x86: Add NMI duration tracepoints 2013-06-23 11:52:58 +02:00
oom.h mm, oom: change type of oom_score_adj to short 2012-12-11 17:22:27 -08:00
pagemap.h mm: pagemap: avoid unnecessary overhead when tracepoints are deactivated 2014-08-06 18:01:20 -07:00
power.h PM / sleep: trace events for device PM callbacks 2014-06-11 02:16:48 +02:00
power_cpu_migrate.h ARM: bL_switcher/trace: Add trace trigger for trace bootstrapping 2013-09-23 18:47:30 -04:00
printk.h printk/tracing: rework console tracing 2013-04-29 18:28:13 -07:00
random.h random: convert DEBUG_ENT to tracepoints 2013-10-10 14:32:23 -04:00
rcu.h rcu: Avoid sparse warnings in rcu_nocb_wake trace event 2013-09-23 09:18:17 -07:00
regmap.h regmap: Add support for discarding parts of the register cache 2013-05-12 18:46:47 +04:00
regulator.h
rpm.h device.h: audit and cleanup users in main include dir 2012-03-16 10:38:24 -04:00
sched.h sched, trace: Add a tracepoint for IPI-less remote wakeups 2014-06-05 12:09:50 +02:00
scsi.h
signal.h tracing: let trace_signal_generate() report more info, kill overflow_fail/lose_info 2012-01-13 18:48:50 +01:00
skb.h
sock.h core: add tracepoints for queueing skb to rcvbuf 2011-06-21 16:06:10 -07:00
spi.h spi: Provide common spi_message processing loop 2013-10-11 20:09:50 +01:00
sunrpc.h SUNRPC: Fix oops when trace sunrpc_task events in nfs client 2014-03-07 19:10:08 -05:00
swiotlb.h tracing/events: Add bounce tracing to swiotbl 2013-10-02 12:53:26 -04:00
syscalls.h tracepoint: Fix sparse warnings in tracepoint.c 2014-04-09 10:12:11 -04:00
target.h target: Fix assignment of LUN in tracepoints 2013-10-09 01:54:44 -07:00
task.h exec: kill bprm->tcomm[], simplify the "basename" logic 2014-04-07 16:36:05 -07:00
thp.h powerpc/thp: Add tracepoints to track hugepage invalidate 2014-08-13 18:20:42 +10:00
timer.h Merge branch 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-05-05 13:23:27 -07:00
tlb.h x86/mm: Add tracepoints for TLB flushes 2014-07-31 08:48:51 -07:00
udp.h udp: add tracepoints for queueing skb to rcvbuf 2011-06-21 16:06:10 -07:00
v4l2.h [media] v4l: add stream format for SDR receiver 2014-03-05 14:15:12 -03:00
vmscan.h mm: shrinker: add nid to tracepoint output 2014-06-04 16:54:04 -07:00
workqueue.h workqueue: rename cpu_workqueue to pool_workqueue 2013-02-13 19:29:12 -08:00
writeback.h Most of the changes were largely clean ups, and some documentation. 2014-04-03 10:26:31 -07:00
xen.h xen/mmu: Use Xen specific TLB flush instead of the generic one. 2012-10-31 12:38:31 -04:00