Re: [Qemu-devel] ivshmem assertion failure with EventNotifier
On 2012-08-22 06:29, Cam Macdonell wrote: Hi Paolo, I've noticed an assertion error when sending interrupts via ivshmem. I bisected to this patch. commit 563027cc0c94aa4846c18f9d665a4c90f8c42ba8 Author: Paolo Bonzini pbonz...@redhat.com Date: Thu Jul 5 17:16:25 2012 +0200 ivshmem: use EventNotifier and memory API All of ivshmem's usage of eventfd now has a corresponding API in EventNotifier. Simplify the code by using it, and also use the memory API consistently to set up and tear down the ioeventfds. Signed-off-by: Paolo Bonzini pbonz...@redhat.com Signed-off-by: Avi Kivity a...@redhat.com qemu-system-x86_64: /home/cam/src/git/qemu/memory.c:1244: memory_region_del_even tfd: Assertion `i != mr-ioeventfd_nb' failed. This assertion failure occurs when the eventfd is triggered. I'll continue to dig around, but can you explain what this assertion is catching. Is there an initialization that might be missing? Possibly a double-release of the eventfd. The assertion checks if the parameters provided on del_eventfd match an existing one. Or that matching is broken. Jan signature.asc Description: OpenPGP digital signature
Re: [Qemu-devel] ivshmem assertion failure with EventNotifier
Il 22/08/2012 06:29, Cam Macdonell ha scritto: Hi Paolo, I've noticed an assertion error when sending interrupts via ivshmem. I bisected to this patch. Does this help? diff --git a/hw/ivshmem.c b/hw/ivshmem.c index b4d65a6..47f2a16 100644 --- a/hw/ivshmem.c +++ b/hw/ivshmem.c @@ -366,6 +366,10 @@ static void close_guest_eventfds(IVShmemState *s, int posn) { int i, guest_curr_max; +if (!ivshmem_has_feature(s, IVSHMEM_IOEVENTFD)) { +return; +} + guest_curr_max = s-peers[posn].nb_eventfds; memory_region_transaction_begin(); Paolo
Re: [Qemu-devel] ivshmem assertion failure with EventNotifier
On Wed, Aug 22, 2012 at 6:01 AM, Paolo Bonzini pbonz...@redhat.com wrote: Il 22/08/2012 06:29, Cam Macdonell ha scritto: Hi Paolo, I've noticed an assertion error when sending interrupts via ivshmem. I bisected to this patch. Does this help? Yes, that solves it. diff --git a/hw/ivshmem.c b/hw/ivshmem.c index b4d65a6..47f2a16 100644 --- a/hw/ivshmem.c +++ b/hw/ivshmem.c @@ -366,6 +366,10 @@ static void close_guest_eventfds(IVShmemState *s, int posn) { int i, guest_curr_max; +if (!ivshmem_has_feature(s, IVSHMEM_IOEVENTFD)) { +return; +} + guest_curr_max = s-peers[posn].nb_eventfds; memory_region_transaction_begin(); Paolo
[Qemu-devel] ivshmem assertion failure with EventNotifier
Hi Paolo, I've noticed an assertion error when sending interrupts via ivshmem. I bisected to this patch. commit 563027cc0c94aa4846c18f9d665a4c90f8c42ba8 Author: Paolo Bonzini pbonz...@redhat.com Date: Thu Jul 5 17:16:25 2012 +0200 ivshmem: use EventNotifier and memory API All of ivshmem's usage of eventfd now has a corresponding API in EventNotifier. Simplify the code by using it, and also use the memory API consistently to set up and tear down the ioeventfds. Signed-off-by: Paolo Bonzini pbonz...@redhat.com Signed-off-by: Avi Kivity a...@redhat.com qemu-system-x86_64: /home/cam/src/git/qemu/memory.c:1244: memory_region_del_even tfd: Assertion `i != mr-ioeventfd_nb' failed. This assertion failure occurs when the eventfd is triggered. I'll continue to dig around, but can you explain what this assertion is catching. Is there an initialization that might be missing? Thanks, Cam