All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roland Dreier <rdreier@cisco.com>
To: Avi Kivity <avi@qumranet.com>
Cc: Dave Hansen <dave@linux.vnet.ibm.com>,
	"linux-kernel\@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	kvm-devel <kvm@vger.kernel.org>,
	"Anthony N. Liguori \[imap\]" <aliguori@us.ibm.com>
Subject: Re: KVM overflows the stack
Date: Wed, 16 Jul 2008 23:08:01 -0700	[thread overview]
Message-ID: <ada4p6p9h6m.fsf@cisco.com> (raw)
In-Reply-To: <487EDE26.8040201@qumranet.com> (Avi Kivity's message of "Thu, 17 Jul 2008 08:52:38 +0300")

 > Yes, things like kvm_lapic_state are way too big to be on the stack.

I had a quick look at the code, and my worry about dynamic allocation
would be that handling allocation failure seems like it might get
tricky.  Eg for handling struct kvm_pv_mmu_op_buffer (which is 528 bytes
on the stack in kvm_pv_mmu_op()) can you deal with an mmu op failing?
(maybe in that case you can easily by just setting *ret to 0?)

 > There's an additional problem here, that apparently your gcc (which
 > version?) doesn't fold objects in a switch statement into the same
 > stack slot:
 > 
 > switch (...) {
 >    case x: {
 >         struct medium a;
 >         ...
 >    }
 >    case y:
 >          struct medium b;
 >          ...
 >    }
 > };

A trick for this is to do:

	union {
		struct medium1 a;
		struct medium2 b;
	} u;

	switch (...) {
	case x:
		use u.a;
		...

	case y:
		use u.b;
		...
	}

  reply	other threads:[~2008-07-17  6:08 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-25 21:12 kvm causing memory corruption? ~2.6.25-rc6 Dave Hansen
2008-03-25 21:12 ` Dave Hansen
2008-03-26  9:50 ` [kvm-devel] " Avi Kivity
2008-03-26 16:52   ` Dave Hansen
2008-03-26 16:58     ` Avi Kivity
2008-03-26 16:58       ` Avi Kivity
2008-03-26 17:16       ` [kvm-devel] " Dave Hansen
2008-03-26 17:16         ` Dave Hansen
2008-03-27  9:36         ` [kvm-devel] " Avi Kivity
2008-03-27  9:36           ` Avi Kivity
2008-03-27 10:10           ` [kvm-devel] " Avi Kivity
2008-03-27 14:55             ` Dave Hansen
2008-03-27 14:59               ` Avi Kivity
2008-03-27 14:59                 ` Avi Kivity
2008-03-27 16:30                 ` [kvm-devel] " Dave Hansen
2008-06-02 22:30                 ` kvm causing memory corruption? now 2.6.26-rc4 Dave Hansen
2008-06-03  0:59                   ` Dave Hansen
2008-06-04 13:42                   ` Avi Kivity
2008-06-06  7:41                     ` Dave Hansen
2008-06-12 13:10                       ` Avi Kivity
2008-06-16 18:07                         ` Dave Hansen
2008-07-15 18:57                         ` kvm causing memory corruption? now 2.6.26-rc8 Dave Hansen
2008-07-16 21:44                           ` kvm causing memory corruption? now 2.6.26 Dave Hansen
2008-07-16 22:48                             ` KVM overflows the stack Dave Hansen
2008-07-17  5:52                               ` Avi Kivity
2008-07-17  6:08                                 ` Roland Dreier [this message]
2008-07-17 14:06                                   ` Dave Hansen
2008-07-17 14:15                                     ` Avi Kivity
2008-07-17  6:14                                 ` Dave Hansen
2008-07-17  6:42                                   ` Avi Kivity
2008-07-17  6:45                                 ` [PATCH] update kvm's anon_inodes.c for r/o bind mounts Dave Hansen
2008-07-19  7:33                                   ` Avi Kivity
2008-07-17  6:27                               ` KVM overflows the stack Dave Hansen
2008-07-17  5:38                             ` kvm causing memory corruption? now 2.6.26 Avi Kivity
2008-03-27 15:50           ` [kvm-devel] kvm causing memory corruption? ~2.6.25-rc6 Dave Hansen
2008-03-27 15:50             ` Dave Hansen
2008-03-27 15:53             ` [kvm-devel] " Avi Kivity
2008-03-27 15:53               ` Avi Kivity
2008-03-27 16:30               ` [kvm-devel] " Dave Hansen

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=ada4p6p9h6m.fsf@cisco.com \
    --to=rdreier@cisco.com \
    --cc=aliguori@us.ibm.com \
    --cc=avi@qumranet.com \
    --cc=dave@linux.vnet.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.