[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Faulting linear address??

On Fri, 2017-09-08 at 14:33 +0900, Minjun Hong wrote:
> 1) I worked on the scheduler(credit scheduler) and I had a kernel
> panic by my modification.
To do what?

Can you show here what you are changing, e.g., by putting together a
quick patch?

It does not have to be properly formatted and follow all the rules of a
proper patch submission... it can just be a diff against original code,
to understand what you are changing.

> 2) I tried to get any information for debugging so that, I used
> serial console and could gain the serial logs like following: 
> (XEN) ----[ Xen-4.5.0  x86_64  debug=n  Not tainted ]----
First of all, when debugging, you should use a debug hypervisor, i.e.,
a build of Xen, done with 'debug=y', or in general, with debug enabled.

Also, Xen-4.5.0. Can you move to a more recent version?

> (XEN) CPU:    2
> (XEN) RIP:    e008:[<ffff82d080120973>] csched_schedule+0x373/0x1180
> (XEN) RFLAGS: 0000000000010086   CONTEXT: hypervisor
> [..]
> (XEN) Xen call trace:
> (XEN)    [<ffff82d080120973>]
> csched_schedule+0x373/0x1180
> (XEN)    [<ffff82d080128cb3>] schedule+0xf3/0x590
> (XEN)    [<ffff82d08015f295>] reprogram_timer+0x75/0xe0
> (XEN)    [<ffff82d08012f64e>] timer_softirq_action+0x13e/0x210
> (XEN)    [<ffff82d08012c03c>] __do_softirq+0x7c/0xd0
> (XEN)    [<ffff82d080162e3a>] idle_loop+0x3a/0x70
Again, use a debug hypervisor, compiled with frame pointers.

> (XEN) Pagetable walk from ffff830088002c98:
> (XEN)  L4[0x106] = 0000000086075063 ffffffffffffffff
> (XEN)  L3[0x002] = 0000000086071063 ffffffffffffffff
> (XEN)  L2[0x040] = 0000000000000000 ffffffffffffffff
> (XEN)
> (XEN) ****************************************
> (XEN) Panic on CPU 2:
> (XEN) [error_code=0000]
> (XEN) Faulting linear address: ffff830088002c98
> (XEN) ****************************************

> I want to know where I should start debugging from.
> However, although I'm using serial console, I could get not enough
> clues only from the kernel log:
> 1) I could figure out what line and file caused the panic by its call
> trace, but it is too rough so it does not help me.
That's exactly from where you usually start: looking at what's at the
instruction that cause the system to explode, in your case, at address

You can figure that out by disassembling the Xen hypervisor binary,
with `objdump', and looking up that address. Or you can use addr2line,
to have an indication of the same thing, but in the C sources.

I'm not sure what you mean with "it is too rough". At least the address
of the instruction that caused the system to fail in the Xen binary, is
usually pretty accurate (then, of course, you have to look at
surrounding instructions, check how you got there, etc.).

Again, make sure you use a debug hypervisor.

> 2) What linear address brings about this situation; 'Faulting linear
> address', but it is just an address and not recognizable something
> that human cannot read.
> I think, literally, the 'Faulting linear address' is key point
> because I heard that it represents bad address that I should never
> access.
It is, but the only way of understanding why you hit such an access
violation, is understand what the code is doing when it happens.

<<This happens because I choose it to happen!>> (Raistlin Majere)
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)

Attachment: signature.asc
Description: This is a digitally signed message part

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.