kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: bugzilla-daemon@bugzilla.kernel.org
To: kvm@vger.kernel.org
Subject: [Bug 206579] KVM with passthrough generates "BUG: kernel NULL pointer dereference" and crashes
Date: Mon, 02 Mar 2020 07:01:03 +0000	[thread overview]
Message-ID: <bug-206579-28872-0iYAPtVarv@https.bugzilla.kernel.org/> (raw)
In-Reply-To: <bug-206579-28872@https.bugzilla.kernel.org/>

https://bugzilla.kernel.org/show_bug.cgi?id=206579

--- Comment #44 from muncrief (rmuncrief@humanavance.com) ---
(In reply to Paolo Bonzini from comment #43)
> Hey, this should fix the warning (not sure because it's untested and I'd
> wait for Suravee to confirm it's the intended behavior): ...
> 

Thanks Paolo. I assumed you meant "svm->avic_is_running == 1" because "is_run"
isn't defined, but along the way I could see that functions like
"avic_set_running" actually called "avic_vcpu_load" with "is_true" set to true.

So, being confused about the intended logic, I spent an interesting day trying
to figure out why the stack trace seemed to show "avic_vcpu_load" being called
by "kvm_vcpu_block", which didn't have any obvious calls to "avic_vcpu_load".

I don't know how to setup gdb to debug the kernel, and after doing a quick
search it looked pretty difficult, so I just used an old fashioned technique of
defining a global unsigned integer and setting/clearing tracking bits
throughout "kvm_vcpu_block" to trace the real time flow of the code. I then
output the bits from "avic_vcpu_load" when the error condition occurred so I
could see where "kvm_vcpu_block" was when the warning condition was triggered.

And what I found was that "avic_vcpu_load" is branched to after the
"schedule()" call in "kvm_vcpu_block". There's a for loop that executes
"prepare_to_swait_exclusive" and then "schedule()", and that's when
"avic_vcpu_load" is executed.

When I saw that I realized that tracking bits wouldn't do, as it appears to be
some kind of preemption issue. So I'm seriously thinking about setting up my
system for gdb kernel debugging because it really pissed me off that I couldn't
figure it out! :)

Anyway, yes, I'm crazy like that :) I spent the whole day sprinkling tracking
bits throughout the code and then recompiling the kernel over and over so I
could decipher real time code flow. Hey! Don't laugh! That's the way we used to
do it in the olden days ... :)

-- 
You are receiving this mail because:
You are watching the assignee of the bug.

  parent reply	other threads:[~2020-03-02  7:01 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-17 18:17 [Bug 206579] New: KVM with passthrough generates "BUG: kernel NULL pointer dereference" and crashes bugzilla-daemon
2020-02-18  6:45 ` [Bug 206579] " bugzilla-daemon
2020-02-18 18:54 ` bugzilla-daemon
2020-02-18 19:55 ` bugzilla-daemon
2020-02-21 14:56 ` bugzilla-daemon
2020-02-21 19:15 ` bugzilla-daemon
2020-02-21 21:27 ` bugzilla-daemon
2020-02-22  0:21 ` bugzilla-daemon
2020-02-24 13:52 ` bugzilla-daemon
2020-02-24 14:24 ` bugzilla-daemon
2020-02-24 14:44 ` bugzilla-daemon
2020-02-24 16:50 ` bugzilla-daemon
2020-02-24 17:57 ` bugzilla-daemon
2020-02-24 20:36 ` bugzilla-daemon
2020-02-24 20:38 ` bugzilla-daemon
2020-02-24 21:43 ` bugzilla-daemon
2020-02-24 21:47 ` bugzilla-daemon
2020-02-24 22:09 ` bugzilla-daemon
2020-02-24 22:53 ` bugzilla-daemon
2020-02-24 23:08 ` bugzilla-daemon
2020-02-25  7:50 ` bugzilla-daemon
2020-02-25  8:53 ` bugzilla-daemon
2020-02-25 20:34 ` bugzilla-daemon
2020-02-25 20:42 ` bugzilla-daemon
2020-02-26  2:25 ` bugzilla-daemon
2020-02-26 20:34 ` bugzilla-daemon
2020-02-27 14:49 ` bugzilla-daemon
2020-02-27 20:50 ` bugzilla-daemon
2020-02-27 23:00 ` bugzilla-daemon
2020-02-28  0:12 ` bugzilla-daemon
2020-02-28  0:20 ` bugzilla-daemon
2020-02-28  3:38 ` bugzilla-daemon
2020-02-28  3:44 ` bugzilla-daemon
2020-02-28  7:25 ` bugzilla-daemon
2020-02-28  7:26 ` bugzilla-daemon
2020-02-28  7:55 ` bugzilla-daemon
2020-02-28 16:06 ` bugzilla-daemon
2020-02-28 20:14 ` bugzilla-daemon
2020-02-28 21:49 ` bugzilla-daemon
2020-02-29  7:02 ` bugzilla-daemon
2020-02-29 17:40 ` bugzilla-daemon
2020-02-29 19:43 ` bugzilla-daemon
2020-03-01  6:27 ` bugzilla-daemon
2020-03-01 18:21 ` bugzilla-daemon
2020-03-02  7:01 ` bugzilla-daemon [this message]
2020-03-03  5:04 ` bugzilla-daemon
2020-03-22 13:43 ` bugzilla-daemon
2020-03-22 18:58 ` bugzilla-daemon
2020-04-03 13:55 ` bugzilla-daemon
2020-04-04 12:57 ` bugzilla-daemon
2020-04-04 13:02 ` bugzilla-daemon
2020-04-04 19:24 ` bugzilla-daemon
2020-04-05 16:52 ` bugzilla-daemon
2020-04-06  2:50 ` bugzilla-daemon
2020-04-06 10:27 ` bugzilla-daemon
2020-04-10 19:28 ` bugzilla-daemon
2020-04-11  0:20 ` bugzilla-daemon
2020-04-13 16:51 ` bugzilla-daemon
2020-04-13 17:20 ` bugzilla-daemon
2020-04-18 22:28 ` bugzilla-daemon
2020-04-18 23:19 ` bugzilla-daemon
2020-04-22 21:49 ` bugzilla-daemon
2020-04-27 19:11 ` bugzilla-daemon
2020-05-03 19:58 ` bugzilla-daemon
2020-08-24 17:03 ` bugzilla-daemon

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=bug-206579-28872-0iYAPtVarv@https.bugzilla.kernel.org/ \
    --to=bugzilla-daemon@bugzilla.kernel.org \
    --cc=kvm@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 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).