qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] ivshmem assertion failure with EventNotifier
@ 2012-08-22  4:29 Cam Macdonell
  2012-08-22  8:05 ` Jan Kiszka
  2012-08-22 12:01 ` Paolo Bonzini
  0 siblings, 2 replies; 4+ messages in thread
From: Cam Macdonell @ 2012-08-22  4:29 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: Avi Kivity, qemu-devel@nongnu.org Developers

Hi Paolo,

I've noticed an assertion error when sending interrupts via ivshmem.
I bisected to this patch.

commit 563027cc0c94aa4846c18f9d665a4c90f8c42ba8
Author: Paolo Bonzini <pbonzini@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 <pbonzini@redhat.com>
    Signed-off-by: Avi Kivity <avi@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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] ivshmem assertion failure with EventNotifier
  2012-08-22  4:29 [Qemu-devel] ivshmem assertion failure with EventNotifier Cam Macdonell
@ 2012-08-22  8:05 ` Jan Kiszka
  2012-08-22 12:01 ` Paolo Bonzini
  1 sibling, 0 replies; 4+ messages in thread
From: Jan Kiszka @ 2012-08-22  8:05 UTC (permalink / raw)
  To: Cam Macdonell; +Cc: Paolo Bonzini, Avi Kivity, qemu-devel@nongnu.org Developers

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

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 <pbonzini@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 <pbonzini@redhat.com>
>     Signed-off-by: Avi Kivity <avi@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



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 262 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] ivshmem assertion failure with EventNotifier
  2012-08-22  4:29 [Qemu-devel] ivshmem assertion failure with EventNotifier Cam Macdonell
  2012-08-22  8:05 ` Jan Kiszka
@ 2012-08-22 12:01 ` Paolo Bonzini
  2012-08-22 17:00   ` Cam Macdonell
  1 sibling, 1 reply; 4+ messages in thread
From: Paolo Bonzini @ 2012-08-22 12:01 UTC (permalink / raw)
  To: Cam Macdonell; +Cc: Avi Kivity, qemu-devel@nongnu.org Developers

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

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] ivshmem assertion failure with EventNotifier
  2012-08-22 12:01 ` Paolo Bonzini
@ 2012-08-22 17:00   ` Cam Macdonell
  0 siblings, 0 replies; 4+ messages in thread
From: Cam Macdonell @ 2012-08-22 17:00 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: Avi Kivity, qemu-devel@nongnu.org Developers

On Wed, Aug 22, 2012 at 6:01 AM, Paolo Bonzini <pbonzini@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
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-08-22 17:07 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-22  4:29 [Qemu-devel] ivshmem assertion failure with EventNotifier Cam Macdonell
2012-08-22  8:05 ` Jan Kiszka
2012-08-22 12:01 ` Paolo Bonzini
2012-08-22 17:00   ` Cam Macdonell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).