netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jean-Philippe Menil <jean-philippe.menil@univ-nantes.fr>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: netdev@vger.kernel.org, kvm@vger.kernel.org,
	virtualization@lists.linux-foundation.org
Subject: Re: Bug inkvm_set_irq
Date: Wed, 09 Mar 2011 13:28:43 +0100	[thread overview]
Message-ID: <4D77727B.2000207@univ-nantes.fr> (raw)
In-Reply-To: <20110308111320.GA8002@redhat.com>

Le 08/03/2011 12:13, Michael S. Tsirkin a écrit :
> On Fri, Mar 04, 2011 at 10:39:05AM +0100, Jean-Philippe Menil wrote:
>> Yes, it's a 2.6.37.2 kernel.
> OK, here's a debugging patch.
> Please run with slab debugging as previously until you see
> 'eventfd bug detected!' in dmesg or until there is a crash.
> It might be also useful to enable timestampts on printk with
>   Symbol: PRINTK_TIME [=y]
>    │ Type  : boolean
>    │ Prompt: Show timing information on printks
>
> once you see the error, please upload the
> full dmesg output somewhere to we can track what
> goes on.
>
> Hopefully there won't be an oops this time which
> should make it easier for you to test (no need to
> reboot).
>
>
> diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c
> index c1f1e3c..3cb679b 100644
> --- a/virt/kvm/eventfd.c
> +++ b/virt/kvm/eventfd.c
> @@ -32,6 +32,7 @@
>   #include<linux/eventfd.h>
>   #include<linux/kernel.h>
>   #include<linux/slab.h>
> +#include<linux/nmi.h>
>
>   #include "iodev.h"
>
> @@ -43,6 +44,8 @@
>    * --------------------------------------------------------------------
>    */
>
> +#define KVM_BAD_PTR ((void*)(long)(0x6b6b6b6b6b6b6b6bull))
> +
>   struct _irqfd {
>   	struct kvm               *kvm;
>   	struct eventfd_ctx       *eventfd;
> @@ -61,6 +64,13 @@ irqfd_inject(struct work_struct *work)
>   {
>   	struct _irqfd *irqfd = container_of(work, struct _irqfd, inject);
>   	struct kvm *kvm = irqfd->kvm;
> +	if (kvm == KVM_BAD_PTR) {
> +		printk(KERN_ERR "Eventfd bug detected!\n");
> +		printk(KERN_ERR "%s(work=%p,irqfd=%p,kvm=%p,gsi=%d)\n", __func__,
> +			work, irqfd, kvm, irqfd->gsi);
> +		trigger_all_cpu_backtrace();
> +		return;
> +	}
>
>   	kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 1);
>   	kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 0);
> @@ -75,6 +85,8 @@ irqfd_shutdown(struct work_struct *work)
>   	struct _irqfd *irqfd = container_of(work, struct _irqfd, shutdown);
>   	u64 cnt;
>
> +	printk(KERN_ERR "%s(work=%p,irqfd=%p,kvm=%p, gsi=%d)\n", __func__,
> +	       work, irqfd, irqfd->kvm, irqfd->gsi);
>   	/*
>   	 * Synchronize with the wait-queue and unhook ourselves to prevent
>   	 * further events.
> @@ -91,6 +103,8 @@ irqfd_shutdown(struct work_struct *work)
>   	 * It is now safe to release the object's resources
>   	 */
>   	eventfd_ctx_put(irqfd->eventfd);
> +	printk(KERN_ERR "kfree at %s(work=%p,irqfd=%p)\n", __func__,
> +	       work, irqfd);
>   	kfree(irqfd);
>   }
>
> @@ -111,6 +125,8 @@ static void
>   irqfd_deactivate(struct _irqfd *irqfd)
>   {
>   	BUG_ON(!irqfd_is_active(irqfd));
> +	printk(KERN_ERR "%s(irqfd=%p,kvm=%p, gsi=%d)\n", __func__,
> +	       irqfd, irqfd->kvm, irqfd->gsi);
>
>   	list_del_init(&irqfd->list);
>
> @@ -178,6 +194,8 @@ kvm_irqfd_assign(struct kvm *kvm, int fd, int gsi)
>
>   	irqfd->kvm = kvm;
>   	irqfd->gsi = gsi;
> +	printk(KERN_ERR "%s(irqfd=%p,kvm=%p, gsi=%d)\n", __func__,
> +	       irqfd, kvm, gsi);
>   	INIT_LIST_HEAD(&irqfd->list);
>   	INIT_WORK(&irqfd->inject, irqfd_inject);
>   	INIT_WORK(&irqfd->shutdown, irqfd_shutdown);
> @@ -264,6 +282,8 @@ kvm_irqfd_deassign(struct kvm *kvm, int fd, int gsi)
>   	struct _irqfd *irqfd, *tmp;
>   	struct eventfd_ctx *eventfd;
>
> +	printk(KERN_ERR "%s(kvm=%p, gsi=%d)\n", __func__,
> +	       kvm, gsi);
>   	eventfd = eventfd_ctx_fdget(fd);
>   	if (IS_ERR(eventfd))
>   		return PTR_ERR(eventfd);
> @@ -305,6 +325,7 @@ void
>   kvm_irqfd_release(struct kvm *kvm)
>   {
>   	struct _irqfd *irqfd, *tmp;
> +	printk(KERN_ERR "%s(kvm=%p)\n", __func__, kvm);
>
>   	spin_lock_irq(&kvm->irqfds.lock);
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
Hi,

I boot the host with the patched kernel yesterday.
No crach until now, but two "Eventfd bug detected!" in the log at "Mar  
9 02:04:31" and "Mar  9 02:15:17"
You can find part of the log at the following adress:
http://filex.univ-nantes.fr/get?k=jL4Fe7yfSMN57toAH7V

It a split file of the kern.log (1,4G), so if you need another part of 
the log, let me know.

Thanks for all.

Regards.


-- 
Jean-Philippe Menil - Pôle réseau Service IRTS
DSI Université de Nantes
jean-philippe.menil@univ-nantes.fr
Tel : 02.53.48.49.27 - Fax : 02.53.48.49.09


  reply	other threads:[~2011-03-09 12:28 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-25  9:07 Bug inkvm_set_irq Jean-Philippe Menil
2011-02-25 10:36 ` Gleb Natapov
2011-02-27 17:00 ` Michael S. Tsirkin
2011-02-28  8:56   ` Jean-Philippe Menil
2011-02-28 10:11     ` Michael S. Tsirkin
2011-02-28 10:40       ` Jean-Philippe Menil
2011-02-28 11:39         ` Michael S. Tsirkin
2011-02-28 15:13           ` Jean-Philippe Menil
2011-02-28 22:34             ` Jean-Philippe Menil
2011-03-01  7:03               ` Michael S. Tsirkin
2011-03-01 14:39                 ` Jean-Philippe Menil
2011-03-03 14:47                   ` Michael S. Tsirkin
2011-03-03 15:26                     ` Jean-Philippe Menil
2011-03-03 15:55                       ` Michael S. Tsirkin
2011-03-04  9:22                         ` Jean-Philippe Menil
2011-03-04  9:35                           ` Michael S. Tsirkin
2011-03-04  9:39                             ` Jean-Philippe Menil
2011-03-08 11:13                               ` Michael S. Tsirkin
2011-03-09 12:28                                 ` Jean-Philippe Menil [this message]
2011-03-09 13:00                                   ` Michael S. Tsirkin
2011-03-09 13:12                                     ` Jean-Philippe Menil
2011-03-09 13:59                                       ` Michael S. Tsirkin
2011-03-10  8:42                                         ` Jean-Philippe Menil
2011-03-15 14:32                                           ` Michael S. Tsirkin
2011-03-15 14:58                                             ` Jean-Philippe Menil
2011-03-17  8:00                                               ` Jean-Philippe Menil
2011-03-17  8:21                                                 ` Michael S. Tsirkin

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=4D77727B.2000207@univ-nantes.fr \
    --to=jean-philippe.menil@univ-nantes.fr \
    --cc=kvm@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=virtualization@lists.linux-foundation.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 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).