ppoll([{fd=98<socket:[4660317]>, events=POLLIN|POLLERR|POLLHUP},
{fd=89<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=88<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=87<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=86<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=85<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=84<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=83<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=82<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=81<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=80<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=79<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=78<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=77<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=76<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=75<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=74<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=73<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=72<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=71<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=70<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=69<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=68<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=67<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=66<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=65<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=64<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=63<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=62<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=61<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=60<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP},
{fd=59<anon_inode:[eventfd]>, events=POLLIN|POLLERR|POLLHUP}, ...], 71,
{0, 124112228}, NULL, 8) = 1 ([...], left {0, 124090614})
write(7<anon_inode:[eventfd]>, "\1\0\0\0\0\0\0\0", 8) = 8
read(6<anon_inode:[eventfd]>, "\1\0\0\0\0\0\0\0", 512) = 8
write(7<anon_inode:[eventfd]>, "\1\0\0\0\0\0\0\0", 8) = 8
Can you grab some random backtraces ("thread apply all bt full") with gdb?
What is the libvirt XML or qemu command line?
Paolo
Kernel (host/guest): 3.18.6-200.fc21.x86_64 #1 SMP
qemu-kvm-2.2.0-5.fc21.x86_64
Bug 1178975 - endless loop in clock_gettime() on a kvm-based VM
https://bugzilla.redhat.com/show_bug.cgi?id=1178975
is fixed (didn't occour with the test program posted at
https://bugzilla.redhat.com/show_bug.cgi?id=1178975#c28 in 30min,
happened before reproduceable in 2min, still running)
So I guess there is another problem in the kernel with volatile and gcc
optimizations (or maybe in qemu-KVM)
No, this doesn't look like volatile.