All of lore.kernel.org
 help / color / mirror / Atom feed
* Xenlinux oops and crashes with nbd, Xen no longer boots
@ 2004-07-11 23:24 murble-xendev
  2004-07-12 18:27 ` Ian Pratt
  2004-07-12 21:06 ` Keir Fraser
  0 siblings, 2 replies; 11+ messages in thread
From: murble-xendev @ 2004-07-11 23:24 UTC (permalink / raw)
  To: xen-devel

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


Hi,


When I start a new domain using an nbd exported device into domain0,
xenlinux Oops and crashes.  Nbd otherwise works fine in domain0 I
can mount filesystems on it, dd them all, export them from domain0
to a new domain via nfs from domain0 also works.

This is easily reproducable, with somthing like

disk = [ 'phy:/dev/xen-uml0,sda1,w' ]

Where xen-uml0 is the nbd exported device.

With Changeset 1.1063  Xen crashes at start up only displaying the
figlet banner + (Xen) Unknown Interrupt.

Hardware is 
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 6
model           : 3
model name      : AMD Duron(tm) Processor
stepping        : 1
cpu MHz         : 697.541
cache size      : 64 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 mmx fxsr syscall mmxext 3dnowext 3dnow
bogomips        : 6973.03


-- 
bill boughton

[-- Attachment #2: nbd-crash-ksymoops --]
[-- Type: text/plain, Size: 2454 bytes --]

ksymoops 2.4.9 on i686 2.4.26-xen0.  Options used
     -V (default)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.4.26-xen0/ (default)
     -M (specified)

invalid operand: 0000
CPU:    0
EIP:    0819:[<c00b8abb>]    Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00213286
eax: 0000003a   ebx: c46e4040   ecx: c016a000   edx: 00000000
esi: 00000030   edi: c46e4160   ebp: c016bcd0   esp: c016bcc0
ds: 0821   es: 0821   ss: 0821
Process swapper (pid: 0, stackpage=c016b000)<1>
Stack: c011eba0 c00d5258 c46e4040 c46e4040 c016bd48 c00d5258 00000678 00000030
       00000004 00000008 0000000e c5d0aca0 c016bd18 c00c394c c349c800 00000008
       0000000e c016bd40 0000000c c46e4098 c016bea8 0000001c 00000000 000005a8
Call Trace: [<c00d5258>] [<c00d5258>] [<c00c394c>] [<c001fc7e>] [<c00f1ea1>]
   [<c00b55a3>] [<c7c800e0>] [<c009209f>] [<c00b3622>] [<c00bcc8f>] [<c7c82a28>]
   [<c0092351>] [<c7ccd118>] [<c7cce394>] [<c009275c>] [<c008f546>] [<c000c342>]
   [<c000c0a8>] [<c000be9e>] [<c006ebc0>] [<c007325e>] [<c006d5d7>] [<c006b5c2>]
 <0>Kernel panic: Aiee, killing interrupt handler!
Warning (Oops_read): Code line not seen, dumping what data is available


>>EIP; c00b8abb <alloc_skb+11b/250>   <=====

>>ebx; c46e4040 <_end+4525cc0/7a61d00>
>>ecx; c016a000 <init_task_union+0/a430>
>>edi; c46e4160 <_end+4525de0/7a61d00>
>>ebp; c016bcd0 <init_task_union+1cd0/a430>
>>esp; c016bcc0 <init_task_union+1cc0/a430>

Trace; c00d5258 <tcp_sendmsg+8a8/1340>
Trace; c00d5258 <tcp_sendmsg+8a8/1340>
Trace; c00c394c <rtnetlink_put_metrics+9c/580>
Trace; c001fc7e <kfree+3e/70>
Trace; c00f1ea1 <inet_sendmsg+41/50>
Trace; c00b55a3 <sock_sendmsg+73/b0>
Trace; c7c800e0 <[ipv6]fib6_clean_tree+30/40>
Trace; c009209f <get_gendisk+94f/16b0>
Trace; c00b3622 <pci_assign_resource+6b62/85c0>
Trace; c00bcc8f <dev_queue_xmit+9f/2e0>
Trace; c7c82a28 <[ipv6]ndisc_send_rs+1a8/230>
Trace; c0092351 <get_gendisk+c01/16b0>
Trace; c7ccd118 <.data.end+4b99/????>
Trace; c7cce394 <.data.end+5e15/????>
Trace; c009275c <get_gendisk+100c/16b0>
Trace; c008f546 <generic_unplug_device+66/70>
Trace; c000c342 <__run_task_queue+62/140>
Trace; c000c0a8 <__tasklet_hi_schedule+d8/1e0>
Trace; c000be9e <do_softirq+de/100>
Trace; c006ebc0 <enable_irq+160/170>
Trace; c007325e <evtchn_do_upcall+9e/1310>
Trace; c006d5d7 <__up_wakeup+13e7/27b0>
Trace; c006b5c2 <enable_hlt+72/d0>


1 warning issued.  Results may not be reliable.

[-- Attachment #3: lspci-vv.log --]
[-- Type: text/plain, Size: 4921 bytes --]

0000:00:00.0 Host bridge: Silicon Integrated Systems [SiS] 730 Host (rev 02)
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR-
	Latency: 32
	Region 0: Memory at d0000000 (32-bit, non-prefetchable) [size=64M]
	Expansion ROM at <unassigned> [disabled] [size=2K]
	Capabilities: <available only to root>

0000:00:00.1 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE] (rev d0) (prog-if 80 [Master])
	Subsystem: Silicon Integrated Systems [SiS] SiS5513 EIDE Controller (A,B step)
	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 16
	Region 4: I/O ports at ff00 [size=16]
	Expansion ROM at <unassigned> [disabled] [size=2K]

0000:00:01.0 ISA bridge: Silicon Integrated Systems [SiS] SiS85C503/5513 (LPC Bridge)
	Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 0
	Expansion ROM at <unassigned> [disabled] [size=2K]

0000:00:01.1 Ethernet controller: Silicon Integrated Systems [SiS] SiS900 PCI Fast Ethernet (rev 82)
	Subsystem: Silicon Integrated Systems [SiS] SiS900 10/100 Ethernet Adapter
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 64
	Interrupt: pin ? routed to IRQ 5
	Region 0: I/O ports at cc00 [size=256]
	Region 1: Memory at cfff7000 (32-bit, non-prefetchable) [size=4K]
	Expansion ROM at cffc0000 [disabled] [size=128K]
	Capabilities: <available only to root>

0000:00:01.2 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 07) (prog-if 10 [OHCI])
	Subsystem: Silicon Integrated Systems [SiS] USB 1.0 Controller
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 64, Cache Line Size: 0x08 (32 bytes)
	Interrupt: pin ? routed to IRQ 11
	Region 0: Memory at cfffc000 (32-bit, non-prefetchable) [size=4K]
	Expansion ROM at <unassigned> [disabled] [size=2K]

0000:00:01.3 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 07) (prog-if 10 [OHCI])
	Subsystem: Silicon Integrated Systems [SiS] Onboard USB Controller
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 64, Cache Line Size: 0x08 (32 bytes)
	Interrupt: pin ? routed to IRQ 11
	Region 0: Memory at cfffd000 (32-bit, non-prefetchable) [size=4K]
	Expansion ROM at <unassigned> [disabled] [size=2K]

0000:00:01.4 Multimedia audio controller: Silicon Integrated Systems [SiS] SiS PCI Audio Accelerator (rev 02)
	Subsystem: Silicon Integrated Systems [SiS] SiS PCI Audio Accelerator
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 64
	Interrupt: pin ? routed to IRQ 11
	Region 0: I/O ports at d000 [size=256]
	Region 1: Memory at cfffe000 (32-bit, non-prefetchable) [size=4K]
	Expansion ROM at <unassigned> [disabled] [size=2K]
	Capabilities: <available only to root>

0000:00:01.6 Modem: Silicon Integrated Systems [SiS] AC'97 Modem Controller (rev a0) (prog-if 00 [Generic])
	Subsystem: Silicon Integrated Systems [SiS] AC'97 Modem Controller
	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 64
	Interrupt: pin ? routed to IRQ 5
	Region 0: I/O ports at d800 [size=256]
	Region 1: I/O ports at d400 [size=128]
	Expansion ROM at <unassigned> [disabled] [size=2K]
	Capabilities: <available only to root>

0000:01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 630/730 PCI/AGP VGA Display Adapter (rev 31) (prog-if 00 [VGA])
	Subsystem: Silicon Integrated Systems [SiS] 630/730 PCI/AGP VGA Display Adapter
	Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	BIST result: 00
	Region 0: Memory at c0000000 (32-bit, prefetchable) [size=128M]
	Region 1: Memory at cfee0000 (32-bit, non-prefetchable) [size=128K]
	Region 2: I/O ports at ac00 [size=128]
	Expansion ROM at <unassigned> [disabled] [size=2K]
	Capabilities: <available only to root>


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

* Re: Xenlinux oops and crashes with nbd, Xen no longer boots
  2004-07-11 23:24 Xenlinux oops and crashes with nbd, Xen no longer boots murble-xendev
@ 2004-07-12 18:27 ` Ian Pratt
  2004-07-12 21:06 ` Keir Fraser
  1 sibling, 0 replies; 11+ messages in thread
From: Ian Pratt @ 2004-07-12 18:27 UTC (permalink / raw)
  To: murble-xendev; +Cc: xen-devel, Ian.Pratt


> When I start a new domain using an nbd exported device into domain0,
> xenlinux Oops and crashes.  Nbd otherwise works fine in domain0 I
> can mount filesystems on it, dd them all, export them from domain0
> to a new domain via nfs from domain0 also works.

You mean the domain0 oops'es, right?

There was a fix checked in earlier today that might be relevant
to this. Please can you try it out.

> With Changeset 1.1063  Xen crashes at start up only displaying the
> figlet banner + (Xen) Unknown Interrupt.

This bug was introduced as part on an x86_64 checkin, and was due
to a gcc version incompatibility, and is believed fixed. 

Ian



-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com

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

* Re: Xenlinux oops and crashes with nbd, Xen no longer boots
  2004-07-11 23:24 Xenlinux oops and crashes with nbd, Xen no longer boots murble-xendev
  2004-07-12 18:27 ` Ian Pratt
@ 2004-07-12 21:06 ` Keir Fraser
  1 sibling, 0 replies; 11+ messages in thread
From: Keir Fraser @ 2004-07-12 21:06 UTC (permalink / raw)
  To: murble-xendev; +Cc: xen-devel

> 
> Hi,
> 
> 
> When I start a new domain using an nbd exported device into domain0,
> xenlinux Oops and crashes.  Nbd otherwise works fine in domain0 I
> can mount filesystems on it, dd them all, export them from domain0
> to a new domain via nfs from domain0 also works.
> 
> This is easily reproducable, with somthing like
> 
> disk = [ 'phy:/dev/xen-uml0,sda1,w' ]
> 
> Where xen-uml0 is the nbd exported device.

>From what I can figure from the backtrace, it looks like the problem
is an assertion failure due to a non-atomic memory allocation request
while in interrupt context.

Unfortunately the backtrace is a real mess. I might have better luck
deciphering it if you can provide a link to your 'vmlinux' file.

Even better, recompile your DOM0 kernel with arch/xen/kernel/traps.c
modified with 'kstack_depth_to_print' changed to a larger value like
240. This will give a fuller stack backtrace (it's currently less
useful because it's truncated). Then provide the backtrace and the
vmlinux file.

> With Changeset 1.1063  Xen crashes at start up only displaying the
> figlet banner + (Xen) Unknown Interrupt.

I fixed this earlier today.

 -- Keir


-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com

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

* Re: Xenlinux oops and crashes with nbd, Xen no longer boots
       [not found] <20040712225712.GA30324@yuri.org.uk>
@ 2004-07-13  7:12 ` Keir Fraser
  2004-07-13 15:29   ` Keir Fraser
  0 siblings, 1 reply; 11+ messages in thread
From: Keir Fraser @ 2004-07-13  7:12 UTC (permalink / raw)
  To: Wm; +Cc: xen-devel


Okay, detangling the backtrace....

 Entry EIP    Function                  Caller's return EIP
 ---------    --------                  -------------------
 0xc00c1220   alloc_skb(1656,GFP_NOIO)  0xc00ddd58
 0xc00dd4b0   tcp_sendmsg               0xc00fa9a1
 0xc00fa960   inet_sendmsg              0xc00bde23
 0xc00bddb0   sock_sendmsg              0xc3cad25f
 unknown      nbd_xmit                  0xc3cad511
 unknown      nbd_send_req              0xc3cad91c
 unknown      do_nbd_request            0xc008fc46
 0xc008fbe0   generic_unplug_device     0xc000c342
 0xc000c2e0   __run_task_queue          n/a (tail call)
 0xc00b8f20   io_schedule               0xc000c0a8
 0xc000c050   tasklet_action            0xc000be9e
 0xc000bdc0   do_softirq                0xc006f2c0
 0xc006f220   do_IRQ(133,-)             0xc007395e
 0xc00738c0   evtchn_do_upcall          0xc006dcd7
 0xc006dca4   hypervisor_callback       n/a (async callback)

I see the problem. Well hidden because the key function (io_schedule)
ends in a tail call. The problem is that we are scheduling I/O
requests in interrupt context rather than deferring to a process
context --- a known issue that hasn't bitten until now. I'll have to
think about a fix.

 -- Keir

> Down not across
> ksymoops 2.4.9 on i686 2.4.26-xen0.  Options used
>      -v ./vmlinux (specified)
>      -k /proc/ksyms (default)
>      -l /proc/modules (default)
>      -o /lib/modules/2.4.26-xen0/ (default)
>      -M (specified)
> 
> invalid operand: 0000
> CPU:    0
> EIP:    0819:[<c00c133b>]    Not tainted
> Using defaults from ksymoops -t elf32-i386 -a i386
> EFLAGS: 00213286
> eax: 0000003a   ebx: c048f040   ecx: c0178000   edx: 00000000
> esi: 00000030   edi: c048f160   ebp: c0179cd0   esp: c0179cc0
> ds: 0821   es: 0821   ss: 0821
> Process swapper (pid: 0, stackpage=c0179000)<1>
> Stack: c012c920 c00ddd58 c048f040 c048f040 c0179d48 c00ddd58 00000678 00000030 
>        00000004 00000008 0000000e c27f9b24 c0179d18 c00cc1cc c05dac00 c05dac00 
>        c05d000e c0179d28 c002097c c048f098 c0179ea8 0000001c 00000000 000005a8 
>        00004000 00000000 c048f160 c0179ddc c37fe4e0 c05dac00 7fffffff c048f040 
>        c0179e5c c0179d78 c0179d60 c00fa9a1 c048f040 c0179e5c 0000001c 00000000 
>        c0179da4 c00bde23 c0d7bf0c c0179e5c 0000001c c0179d78 00000000 00000000 
>        00000000 00000000 00000000 c37fe3d8 c218e000 c218ede8 c0179ea8 c0d7bf0c 
>        0000001c c0179e88 c3cad25f c0d7bf0c c0179e5c 0000001c c1eaa538 c35581dc 
>        c1d13960 00000000 00000000 00000000 ffffffff c0179ea8 0000001c c1eaa538
>        00000000 00000030 c35581dc c0179e10 c00bbe62 c01c5444 c35581dc c250e000
>        00000000 c1d13800 c1eaa538 10000000 c0179e28 c00c550f c1eaa538 c1d13800
>        00000040 c1eaa538 c0179e6c c3c0fa28 c1eaa538 00000010 00000000 00000006
>        c0179e90 0000003a c22997ac 00000002 c0179e6c 00000000 c0179e6c 00000000
>        00000000 c0179dd4 00000001 00000000 00000000 00004000 00000002 c3caf440
>        c0d7bf0c c3caf420 c0179ed4 c3cad511 00000001 c0d7bf0c c0179ea8 0000001c
>        00000000 c0d7bf0c 13956025 00000000 c2478c64 c0109f58 00000000 00040000
>        00040000 c010b1d4 c2478c64 c3caf420 00000000 c0179ef0 c3cad91c c3caf420
>        c2478c64 00000000 c0179f0c fffffff7 c0179f00 c008fc46 c01ab6a4 c0179f0c
>        c0179f1c c000c342 c01ab6a4 c01ab704 c01ab704 00000000 c01881d8 c0179f2c
>        c000c0a8 c0147510 00000001 c0179f48 c000be9e c01881d8 00000001 c018a400
>        c1d4bbec 00002140 c0179f68 c006f2c0 00000085 c0179f9c c1d4bbec 00000000
>        00000000 fbff9000 c0179f90 c007395e 00000085 c0179f9c 00000001 00000000
>        c0179f9c c0178000 c0178000 00000006 c0179fe4 c006dcd7 c0179f9c 00000001
>        39854980 38ecb300 c0178000 00000006 c0179fe4 00000006 00000821 00000821
>        00000006 c006bcc2 00000819 00203246 c0179fe4 c0178000 00000000 c01e2200
>        c01983a0 c0179ffc c017a57c c0116f40 c01986a0 00000000 c01985a0 00000000
> Call Trace: [<c00ddd58>] [<c00ddd58>] [<c00cc1cc>] [<c002097c>] [<c00fa9a1>]
>    [<c00bde23>] [<c3cad25f>] [<c00bbe62>] [<c00c550f>] [<c3c0fa28>] [<c3caf440>]
>    [<c3caf420>] [<c3cad511>] [<c0109f58>] [<c010b1d4>] [<c3caf420>] [<c3cad91c>]
>    [<c3caf420>] [<c008fc46>] [<c000c342>] [<c000c0a8>] [<c000be9e>] [<c006f2c0>]
>    [<c007395e>] [<c006dcd7>] [<c006bcc2>]
>  <0>Kernel panic: Aiee, killing interrupt handler!
> Warning (Oops_read): Code line not seen, dumping what data is available
> 
> 
> >>EIP; c00c133b <alloc_skb+11b/130>   <=====
> 
> >>ebx; c048f040 <_end+2bd130/3a2e170>
> >>ecx; c0178000 <init_task_union+0/2000>
> >>edi; c048f160 <_end+2bd250/3a2e170>
> >>ebp; c0179cd0 <init_task_union+1cd0/2000>
> >>esp; c0179cc0 <init_task_union+1cc0/2000>
> 
> Trace; c00ddd58 <tcp_sendmsg+8a8/f40>
> Trace; c00ddd58 <tcp_sendmsg+8a8/f40>
> Trace; c00cc1cc <rtnetlink_put_metrics+9c/150>
> Trace; c002097c <kmem_cache_free_one+ec/200>
> Trace; c00fa9a1 <inet_sendmsg+41/50>
> Trace; c00bde23 <sock_sendmsg+73/b0>
> Trace; c3cad25f <[nbd]nbd_xmit+11f/2e0>
> Trace; c00bbe62 <netif_be_start_xmit+122/180>
> Trace; c00c550f <dev_queue_xmit+9f/270>
> Trace; c3c0fa28 <[ipv6]ndisc_send_rs+1a8/230>
> Trace; c3caf440 <[nbd].data.end+a59/3699>
> Trace; c3caf420 <[nbd].data.end+a39/3699>
> Trace; c3cad511 <[nbd]nbd_send_req+f1/180>
> Trace; c0109f58 <br_config_bpdu_generation+38/40>
> Trace; c010b1d4 <br_hello_timer_expired+14/30>
> Trace; c3caf420 <[nbd].data.end+a39/3699>
> Trace; c3cad91c <[nbd]do_nbd_request+fc/1d0>
> Trace; c3caf420 <[nbd].data.end+a39/3699>
> Trace; c008fc46 <generic_unplug_device+66/70>
> Trace; c000c342 <__run_task_queue+62/80>
> Trace; c000c0a8 <tasklet_action+58/b0>
> Trace; c000be9e <do_softirq+de/100>
> Trace; c006f2c0 <do_IRQ+a0/b0>
> Trace; c007395e <evtchn_do_upcall+9e/100>
> Trace; c006dcd7 <hypervisor_callback+33/49>
> Trace; c006bcc2 <cpu_idle+62/c0>
> 
> 
> 1 warning issued.  Results may not be reliable.
\x1f -=- MIME -=- \x1f\f


--u3/rZRmxL6MmkK24
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Mon, Jul 12, 2004 at 10:06:55PM +0100, Keir Fraser wrote:
> Even better, recompile your DOM0 kernel with arch/xen/kernel/traps.c
> modified with 'kstack_depth_to_print' changed to a larger value like
> 240. This will give a fuller stack backtrace (it's currently less
> useful because it's truncated). Then provide the backtrace and the
> vmlinux file.

OK I've done that the vmlinux file is at
http://www.yuri.org.uk/~murble/vmlinux-xen

New Oops file should be attached.


cheers

bill
-- 
Bill Boughton		<murble(at)@yuri.org.uk>
 			<bill@(at)xencat.murble.org.uk>
Down not across

--u3/rZRmxL6MmkK24
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=xen0-oops

ksymoops 2.4.9 on i686 2.4.26-xen0.  Options used
     -v ./vmlinux (specified)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.4.26-xen0/ (default)
     -M (specified)

invalid operand: 0000
CPU:    0
EIP:    0819:[<c00c133b>]    Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00213286
eax: 0000003a   ebx: c048f040   ecx: c0178000   edx: 00000000
esi: 00000030   edi: c048f160   ebp: c0179cd0   esp: c0179cc0
ds: 0821   es: 0821   ss: 0821
Process swapper (pid: 0, stackpage=c0179000)<1>
Stack: c012c920 c00ddd58 c048f040 c048f040 c0179d48 c00ddd58 00000678 00000030 
       00000004 00000008 0000000e c27f9b24 c0179d18 c00cc1cc c05dac00 c05dac00 
       c05d000e c0179d28 c002097c c048f098 c0179ea8 0000001c 00000000 000005a8 
       00004000 00000000 c048f160 c0179ddc c37fe4e0 c05dac00 7fffffff c048f040 
       c0179e5c c0179d78 c0179d60 c00fa9a1 c048f040 c0179e5c 0000001c 00000000 
       c0179da4 c00bde23 c0d7bf0c c0179e5c 0000001c c0179d78 00000000 00000000 
       00000000 00000000 00000000 c37fe3d8 c218e000 c218ede8 c0179ea8 c0d7bf0c 
       0000001c c0179e88 c3cad25f c0d7bf0c c0179e5c 0000001c c1eaa538 c35581dc 
       c1d13960 00000000 00000000 00000000 ffffffff c0179ea8 0000001c c1eaa538
       00000000 00000030 c35581dc c0179e10 c00bbe62 c01c5444 c35581dc c250e000
       00000000 c1d13800 c1eaa538 10000000 c0179e28 c00c550f c1eaa538 c1d13800
       00000040 c1eaa538 c0179e6c c3c0fa28 c1eaa538 00000010 00000000 00000006
       c0179e90 0000003a c22997ac 00000002 c0179e6c 00000000 c0179e6c 00000000
       00000000 c0179dd4 00000001 00000000 00000000 00004000 00000002 c3caf440
       c0d7bf0c c3caf420 c0179ed4 c3cad511 00000001 c0d7bf0c c0179ea8 0000001c
       00000000 c0d7bf0c 13956025 00000000 c2478c64 c0109f58 00000000 00040000
       00040000 c010b1d4 c2478c64 c3caf420 00000000 c0179ef0 c3cad91c c3caf420
       c2478c64 00000000 c0179f0c fffffff7 c0179f00 c008fc46 c01ab6a4 c0179f0c
       c0179f1c c000c342 c01ab6a4 c01ab704 c01ab704 00000000 c01881d8 c0179f2c
       c000c0a8 c0147510 00000001 c0179f48 c000be9e c01881d8 00000001 c018a400
       c1d4bbec 00002140 c0179f68 c006f2c0 00000085 c0179f9c c1d4bbec 00000000
       00000000 fbff9000 c0179f90 c007395e 00000085 c0179f9c 00000001 00000000
       c0179f9c c0178000 c0178000 00000006 c0179fe4 c006dcd7 c0179f9c 00000001
       39854980 38ecb300 c0178000 00000006 c0179fe4 00000006 00000821 00000821
       00000006 c006bcc2 00000819 00203246 c0179fe4 c0178000 00000000 c01e2200
       c01983a0 c0179ffc c017a57c c0116f40 c01986a0 00000000 c01985a0 00000000
Call Trace: [<c00ddd58>] [<c00ddd58>] [<c00cc1cc>] [<c002097c>] [<c00fa9a1>]
   [<c00bde23>] [<c3cad25f>] [<c00bbe62>] [<c00c550f>] [<c3c0fa28>] [<c3caf440>]
   [<c3caf420>] [<c3cad511>] [<c0109f58>] [<c010b1d4>] [<c3caf420>] [<c3cad91c>]
   [<c3caf420>] [<c008fc46>] [<c000c342>] [<c000c0a8>] [<c000be9e>] [<c006f2c0>]
   [<c007395e>] [<c006dcd7>] [<c006bcc2>]
 <0>Kernel panic: Aiee, killing interrupt handler!
Warning (Oops_read): Code line not seen, dumping what data is available


>>EIP; c00c133b <alloc_skb+11b/130>   <=====

>>ebx; c048f040 <_end+2bd130/3a2e170>
>>ecx; c0178000 <init_task_union+0/2000>
>>edi; c048f160 <_end+2bd250/3a2e170>
>>ebp; c0179cd0 <init_task_union+1cd0/2000>
>>esp; c0179cc0 <init_task_union+1cc0/2000>

Trace; c00ddd58 <tcp_sendmsg+8a8/f40>
Trace; c00ddd58 <tcp_sendmsg+8a8/f40>
Trace; c00cc1cc <rtnetlink_put_metrics+9c/150>
Trace; c002097c <kmem_cache_free_one+ec/200>
Trace; c00fa9a1 <inet_sendmsg+41/50>
Trace; c00bde23 <sock_sendmsg+73/b0>
Trace; c3cad25f <[nbd]nbd_xmit+11f/2e0>
Trace; c00bbe62 <netif_be_start_xmit+122/180>
Trace; c00c550f <dev_queue_xmit+9f/270>
Trace; c3c0fa28 <[ipv6]ndisc_send_rs+1a8/230>
Trace; c3caf440 <[nbd].data.end+a59/3699>
Trace; c3caf420 <[nbd].data.end+a39/3699>
Trace; c3cad511 <[nbd]nbd_send_req+f1/180>
Trace; c0109f58 <br_config_bpdu_generation+38/40>
Trace; c010b1d4 <br_hello_timer_expired+14/30>
Trace; c3caf420 <[nbd].data.end+a39/3699>
Trace; c3cad91c <[nbd]do_nbd_request+fc/1d0>
Trace; c3caf420 <[nbd].data.end+a39/3699>
Trace; c008fc46 <generic_unplug_device+66/70>
Trace; c000c342 <__run_task_queue+62/80>
Trace; c000c0a8 <tasklet_action+58/b0>
Trace; c000be9e <do_softirq+de/100>
Trace; c006f2c0 <do_IRQ+a0/b0>
Trace; c007395e <evtchn_do_upcall+9e/100>
Trace; c006dcd7 <hypervisor_callback+33/49>
Trace; c006bcc2 <cpu_idle+62/c0>


1 warning issued.  Results may not be reliable.

--u3/rZRmxL6MmkK24--



-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com

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

* Re: Xenlinux oops and crashes with nbd, Xen no longer boots
  2004-07-13  7:12 ` Xenlinux oops and crashes with nbd, Xen no longer boots Keir Fraser
@ 2004-07-13 15:29   ` Keir Fraser
  2004-07-13 16:36     ` Wm Boughton
  0 siblings, 1 reply; 11+ messages in thread
From: Keir Fraser @ 2004-07-13 15:29 UTC (permalink / raw)
  To: Keir Fraser; +Cc: Wm, xen-devel


Now fixed. You've been able to hit this more reliably than anyone
else, so I'll be interested to hear confirmation that the problem
really has now gone away.

 -- Keir

> 
> Okay, detangling the backtrace....
> 
>  Entry EIP    Function                  Caller's return EIP
>  ---------    --------                  -------------------
>  0xc00c1220   alloc_skb(1656,GFP_NOIO)  0xc00ddd58
>  0xc00dd4b0   tcp_sendmsg               0xc00fa9a1
>  0xc00fa960   inet_sendmsg              0xc00bde23
>  0xc00bddb0   sock_sendmsg              0xc3cad25f
>  unknown      nbd_xmit                  0xc3cad511
>  unknown      nbd_send_req              0xc3cad91c
>  unknown      do_nbd_request            0xc008fc46
>  0xc008fbe0   generic_unplug_device     0xc000c342
>  0xc000c2e0   __run_task_queue          n/a (tail call)
>  0xc00b8f20   io_schedule               0xc000c0a8
>  0xc000c050   tasklet_action            0xc000be9e
>  0xc000bdc0   do_softirq                0xc006f2c0
>  0xc006f220   do_IRQ(133,-)             0xc007395e
>  0xc00738c0   evtchn_do_upcall          0xc006dcd7
>  0xc006dca4   hypervisor_callback       n/a (async callback)
> 
> I see the problem. Well hidden because the key function (io_schedule)
> ends in a tail call. The problem is that we are scheduling I/O
> requests in interrupt context rather than deferring to a process
> context --- a known issue that hasn't bitten until now. I'll have to
> think about a fix.
> 
>  -- Keir


-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com

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

* Re: Xenlinux oops and crashes with nbd, Xen no longer boots
  2004-07-13 15:29   ` Keir Fraser
@ 2004-07-13 16:36     ` Wm Boughton
  2004-07-23  6:43       ` Steve Traugott
  0 siblings, 1 reply; 11+ messages in thread
From: Wm Boughton @ 2004-07-13 16:36 UTC (permalink / raw)
  To: xen-devel

On Tue, Jul 13, 2004 at 04:29:00PM +0100, Keir Fraser wrote:
> 
> Now fixed. You've been able to hit this more reliably than anyone
> else, so I'll be interested to hear confirmation that the problem
> really has now gone away.

I've not been abel to hit it and am now happily booting
XenLinux instances over nbd.


thanks

bill


-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com

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

* Re: Xenlinux oops and crashes with nbd, Xen no longer boots
  2004-07-13 16:36     ` Wm Boughton
@ 2004-07-23  6:43       ` Steve Traugott
  2004-07-23  8:00         ` how to debug xen? Yan Li
  0 siblings, 1 reply; 11+ messages in thread
From: Steve Traugott @ 2004-07-23  6:43 UTC (permalink / raw)
  To: Wm Boughton, xen-devel

Hi Bill,

On Tue, Jul 13, 2004 at 05:36:38PM +0100, Wm Boughton wrote:
> I've not been abel to hit it and am now happily booting
> XenLinux instances over nbd.

Which NBD are you using?  The kernel NBD, ENBD, or GNBD?

Steve
-- 
Stephen G. Traugott  (KG6HDQ)
UNIX/Linux Infrastructure Architect, TerraLuna LLC
stevegt@TerraLuna.Org 
http://www.stevegt.com -- http://Infrastructures.Org 


-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click

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

* how to debug xen?
  2004-07-23  6:43       ` Steve Traugott
@ 2004-07-23  8:00         ` Yan Li
  2004-07-23 14:28           ` David Becker
  0 siblings, 1 reply; 11+ messages in thread
From: Yan Li @ 2004-07-23  8:00 UTC (permalink / raw)
  To: xen-devel

hi there,

How to debug xen? just use the nsplitd as XenDebugger-HOWTO said? It seems
quite tricky. I believe lots of people are doing development on xen, so
usually how to debug it?

Thanks
Yan


-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click

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

* Re: how to debug xen?
  2004-07-23  8:00         ` how to debug xen? Yan Li
@ 2004-07-23 14:28           ` David Becker
  2004-07-23 15:08             ` Kip Macy
  0 siblings, 1 reply; 11+ messages in thread
From: David Becker @ 2004-07-23 14:28 UTC (permalink / raw)
  To: Yan Li; +Cc: xen-devel


" How to debug xen? just use the nsplitd as XenDebugger-HOWTO said? It seems
" quite tricky. I believe lots of people are doing development on xen, so
" usually how to debug it?

This is how I debug xen.  The starting point is reading
    xeno-unstable.bk/docs/HOWTOs/XenDebugger-HOWTO
I do not use nsplitd.

First, build debug kernels.
For xen, in the xeno-unstable.bk/xen directory add this to arch/x86/Rules.mk
        CFLAGS += -g
    and build xen saying
        make debugger=y
For xenolinux,  in xeno-unstable.bk/linux-2.4.26-xen0
    turn on CONFIG_FRAME_POINTER (in the Kernel Hacking section of
        menuconfig or xconfig)
    in Makefile put -g into CFLAGS_KERNEL (line 52)
        CFLAGS_KERNEL = -g
    and build xenolinux with
        make ARCH=xen bzImage


Second, find a target machine with some serial lines.
I prefer virtual machines and use VMware Workstation 4.5 on Linux (4.0 didn't
work, btw).  In the vmware Machine Settings, config both com1 and com2
to be named pipes with "This end is the client" and "The other end is a
virtual machine".   Run two socat jobs in the background
to convert the pipes to ptys:
    socat UNIX-LISTEN:/tmp/com1pipe,unlink-early,fork pty,link=/tmp/com1 &
    socat UNIX-LISTEN:/tmp/com2pipe,unlink-early,fork pty,link=/tmp/com2 &


Third, boot the target machine and connect the debugger.
Put the debug xen and xenolinux on the machine.  In the grub menu.lst
file, add the serial lines and pdb to the xen command line:
   kernel /boot/xen.gz.debug dom0_mem=100000 ifname=eth0 com1=9600,8n1 com2=9600,8n1 pdb=com2
Boot it up and connect to the console.  In my vmware setup, I connect
to com1 from the machine hosting VMware with
    kermit -c -l /tmp/com1
Then on com1 type ^A^A^A to make xen listen to console cmds.
At this point type 'h' and see if the 'D' command is listed.  If not,
pdb is missing so make sure the xen being run was built with debugger=y.
Hit 'D' on the console to make xen drop into the debugger.

>From the machine listening to the serial lines, connect to the target machine
with gdb and the xen-syms file and check if was built with -g by trying to
list a function:
    $ gdb xeno-unstable.bk/xen/xen-syms
    (gdb) list do_dom0_op 
    26      extern unsigned int alloc_new_dom_mem(struct domain *,
    unsigned int);
    27      extern long arch_do_dom0_op(dom0_op_t *op, dom0_op_t
    *u_dom0_op);
    28      extern void arch_getdomaininfo_ctxt(struct domain *,
    full_execution_context_t *);
    29      
    30      long do_dom0_op(dom0_op_t *u_dom0_op)
    31      {
    32          long ret = 0;
    33          dom0_op_t curop, *op = &curop;
    34      
    35          if ( !IS_PRIV(current) )
    (gdb) target remote /tmp/com2
Now you can debug xen itself.  Note that the breakpoint is in xenolinux
so gdb will be cryptic about the current function and stacktrace.  Put a
breakpoint in xen somewhere and continue to get gdb to a function is can
decode.

To debug xenolinux, drop to the debugger:
   (gdb) set pdb_ctx.domain=0
   (gdb) set pdb_ctx.valid=1
   (gdb) add-symbol-file xeno-unstable.bk/linux-2.4.26-xen0/vmlinux
Now you can debug vmlinux itself (except where the xen and linux
symbols clash).



-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click

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

* Re: how to debug xen?
  2004-07-23 14:28           ` David Becker
@ 2004-07-23 15:08             ` Kip Macy
  2004-08-04  8:12               ` Yan Li
  0 siblings, 1 reply; 11+ messages in thread
From: Kip Macy @ 2004-07-23 15:08 UTC (permalink / raw)
  To: David Becker; +Cc: Yan Li, xen-devel

One non-obvious thing that I didn't see in the docs is that if you use
multiple nsplitds they have to be spaced 4 ports apart not 2.

			-Kip



On Fri, 23 Jul 2004, David Becker wrote:

>
> " How to debug xen? just use the nsplitd as XenDebugger-HOWTO said? It seems
> " quite tricky. I believe lots of people are doing development on xen, so
> " usually how to debug it?
>
> This is how I debug xen.  The starting point is reading
>     xeno-unstable.bk/docs/HOWTOs/XenDebugger-HOWTO
> I do not use nsplitd.
>
> First, build debug kernels.
> For xen, in the xeno-unstable.bk/xen directory add this to arch/x86/Rules.mk
>         CFLAGS += -g
>     and build xen saying
>         make debugger=y
> For xenolinux,  in xeno-unstable.bk/linux-2.4.26-xen0
>     turn on CONFIG_FRAME_POINTER (in the Kernel Hacking section of
>         menuconfig or xconfig)
>     in Makefile put -g into CFLAGS_KERNEL (line 52)
>         CFLAGS_KERNEL = -g
>     and build xenolinux with
>         make ARCH=xen bzImage
>
>
> Second, find a target machine with some serial lines.
> I prefer virtual machines and use VMware Workstation 4.5 on Linux (4.0 didn't
> work, btw).  In the vmware Machine Settings, config both com1 and com2
> to be named pipes with "This end is the client" and "The other end is a
> virtual machine".   Run two socat jobs in the background
> to convert the pipes to ptys:
>     socat UNIX-LISTEN:/tmp/com1pipe,unlink-early,fork pty,link=/tmp/com1 &
>     socat UNIX-LISTEN:/tmp/com2pipe,unlink-early,fork pty,link=/tmp/com2 &
>
>
> Third, boot the target machine and connect the debugger.
> Put the debug xen and xenolinux on the machine.  In the grub menu.lst
> file, add the serial lines and pdb to the xen command line:
>    kernel /boot/xen.gz.debug dom0_mem=100000 ifname=eth0 com1=9600,8n1 com2=9600,8n1 pdb=com2
> Boot it up and connect to the console.  In my vmware setup, I connect
> to com1 from the machine hosting VMware with
>     kermit -c -l /tmp/com1
> Then on com1 type ^A^A^A to make xen listen to console cmds.
> At this point type 'h' and see if the 'D' command is listed.  If not,
> pdb is missing so make sure the xen being run was built with debugger=y.
> Hit 'D' on the console to make xen drop into the debugger.
>
> >From the machine listening to the serial lines, connect to the target machine
> with gdb and the xen-syms file and check if was built with -g by trying to
> list a function:
>     $ gdb xeno-unstable.bk/xen/xen-syms
>     (gdb) list do_dom0_op
>     26      extern unsigned int alloc_new_dom_mem(struct domain *,
>     unsigned int);
>     27      extern long arch_do_dom0_op(dom0_op_t *op, dom0_op_t
>     *u_dom0_op);
>     28      extern void arch_getdomaininfo_ctxt(struct domain *,
>     full_execution_context_t *);
>     29
>     30      long do_dom0_op(dom0_op_t *u_dom0_op)
>     31      {
>     32          long ret = 0;
>     33          dom0_op_t curop, *op = &curop;
>     34
>     35          if ( !IS_PRIV(current) )
>     (gdb) target remote /tmp/com2
> Now you can debug xen itself.  Note that the breakpoint is in xenolinux
> so gdb will be cryptic about the current function and stacktrace.  Put a
> breakpoint in xen somewhere and continue to get gdb to a function is can
> decode.
>
> To debug xenolinux, drop to the debugger:
>    (gdb) set pdb_ctx.domain=0
>    (gdb) set pdb_ctx.valid=1
>    (gdb) add-symbol-file xeno-unstable.bk/linux-2.4.26-xen0/vmlinux
> Now you can debug vmlinux itself (except where the xen and linux
> symbols clash).
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by BEA Weblogic Workshop
> FREE Java Enterprise J2EE developer tools!
> Get your free copy of BEA WebLogic Workshop 8.1 today.
> http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/xen-devel
>


-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click

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

* Re: how to debug xen?
  2004-07-23 15:08             ` Kip Macy
@ 2004-08-04  8:12               ` Yan Li
  0 siblings, 0 replies; 11+ messages in thread
From: Yan Li @ 2004-08-04  8:12 UTC (permalink / raw)
  To: Kip Macy, David Becker; +Cc: xen-devel

hi

Thanks,but now I'm stuck. I wanna try nsplitd first. so I do it according to
the Debugger-howto. I built xen and xeno with -g added and
fomit-frame-pointer
disabled.

The problem is I'm really confused by the configuration of nsplitd.

1.it said set 'pdb=xxx'. How can I tell which port I'm connecting to?

2.in nsplitd configuration.
  what are the /etc/xinetd.d/nsplit and all the 'wcons00', 'wanda remote
console,
  stuff? I'm asuming it's in configuration in their working machine. Then
can
  anyone tell me what does this mean?
  The whole nsplitd configuration section,please let me know the details
about it.
  I totally have no idea what's going on there.

  For example, I have two machines, A.x.x.x, B.x.x.x, I'm running xen on
machine A,
  using machine B to connect to the serial line. What should all the
settings look
  like?

btw, David, is the socat just this one: http://www.socat.org/?

Thanks a lot!

Q
----- Original Message ----- 
From: "Kip Macy" <kmacy@eventdriven.org>
To: "David Becker" <becker@cs.duke.edu>
Cc: "Yan Li" <yan_li00@hotmail.com>; <xen-devel@lists.sourceforge.net>
Sent: Friday, July 23, 2004 8:08 AM
Subject: Re: [Xen-devel] how to debug xen?


> One non-obvious thing that I didn't see in the docs is that if you use
> multiple nsplitds they have to be spaced 4 ports apart not 2.
>
> -Kip
>
>
>
> On Fri, 23 Jul 2004, David Becker wrote:
>
> >
> > " How to debug xen? just use the nsplitd as XenDebugger-HOWTO said? It
seems
> > " quite tricky. I believe lots of people are doing development on xen,
so
> > " usually how to debug it?
> >
> > This is how I debug xen.  The starting point is reading
> >     xeno-unstable.bk/docs/HOWTOs/XenDebugger-HOWTO
> > I do not use nsplitd.
> >
> > First, build debug kernels.
> > For xen, in the xeno-unstable.bk/xen directory add this to
arch/x86/Rules.mk
> >         CFLAGS += -g
> >     and build xen saying
> >         make debugger=y
> > For xenolinux,  in xeno-unstable.bk/linux-2.4.26-xen0
> >     turn on CONFIG_FRAME_POINTER (in the Kernel Hacking section of
> >         menuconfig or xconfig)
> >     in Makefile put -g into CFLAGS_KERNEL (line 52)
> >         CFLAGS_KERNEL = -g
> >     and build xenolinux with
> >         make ARCH=xen bzImage
> >
> >
> > Second, find a target machine with some serial lines.
> > I prefer virtual machines and use VMware Workstation 4.5 on Linux (4.0
didn't
> > work, btw).  In the vmware Machine Settings, config both com1 and com2
> > to be named pipes with "This end is the client" and "The other end is a
> > virtual machine".   Run two socat jobs in the background
> > to convert the pipes to ptys:
> >     socat UNIX-LISTEN:/tmp/com1pipe,unlink-early,fork pty,link=/tmp/com1
&
> >     socat UNIX-LISTEN:/tmp/com2pipe,unlink-early,fork pty,link=/tmp/com2
&
> >
> >
> > Third, boot the target machine and connect the debugger.
> > Put the debug xen and xenolinux on the machine.  In the grub menu.lst
> > file, add the serial lines and pdb to the xen command line:
> >    kernel /boot/xen.gz.debug dom0_mem=100000 ifname=eth0 com1=9600,8n1
com2=9600,8n1 pdb=com2
> > Boot it up and connect to the console.  In my vmware setup, I connect
> > to com1 from the machine hosting VMware with
> >     kermit -c -l /tmp/com1
> > Then on com1 type ^A^A^A to make xen listen to console cmds.
> > At this point type 'h' and see if the 'D' command is listed.  If not,
> > pdb is missing so make sure the xen being run was built with debugger=y.
> > Hit 'D' on the console to make xen drop into the debugger.
> >
> > >From the machine listening to the serial lines, connect to the target
machine
> > with gdb and the xen-syms file and check if was built with -g by trying
to
> > list a function:
> >     $ gdb xeno-unstable.bk/xen/xen-syms
> >     (gdb) list do_dom0_op
> >     26      extern unsigned int alloc_new_dom_mem(struct domain *,
> >     unsigned int);
> >     27      extern long arch_do_dom0_op(dom0_op_t *op, dom0_op_t
> >     *u_dom0_op);
> >     28      extern void arch_getdomaininfo_ctxt(struct domain *,
> >     full_execution_context_t *);
> >     29
> >     30      long do_dom0_op(dom0_op_t *u_dom0_op)
> >     31      {
> >     32          long ret = 0;
> >     33          dom0_op_t curop, *op = &curop;
> >     34
> >     35          if ( !IS_PRIV(current) )
> >     (gdb) target remote /tmp/com2
> > Now you can debug xen itself.  Note that the breakpoint is in xenolinux
> > so gdb will be cryptic about the current function and stacktrace.  Put a
> > breakpoint in xen somewhere and continue to get gdb to a function is can
> > decode.
> >
> > To debug xenolinux, drop to the debugger:
> >    (gdb) set pdb_ctx.domain=0
> >    (gdb) set pdb_ctx.valid=1
> >    (gdb) add-symbol-file xeno-unstable.bk/linux-2.4.26-xen0/vmlinux
> > Now you can debug vmlinux itself (except where the xen and linux
> > symbols clash).
> >
> >
> >
> > -------------------------------------------------------
> > This SF.Net email is sponsored by BEA Weblogic Workshop
> > FREE Java Enterprise J2EE developer tools!
> > Get your free copy of BEA WebLogic Workshop 8.1 today.
> > http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/xen-devel
> >
>


-------------------------------------------------------
This SF.Net email is sponsored by OSTG. Have you noticed the changes on
Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now,
one more big change to announce. We are now OSTG- Open Source Technology
Group. Come see the changes on the new OSTG site. www.ostg.com

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

end of thread, other threads:[~2004-08-04  8:12 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20040712225712.GA30324@yuri.org.uk>
2004-07-13  7:12 ` Xenlinux oops and crashes with nbd, Xen no longer boots Keir Fraser
2004-07-13 15:29   ` Keir Fraser
2004-07-13 16:36     ` Wm Boughton
2004-07-23  6:43       ` Steve Traugott
2004-07-23  8:00         ` how to debug xen? Yan Li
2004-07-23 14:28           ` David Becker
2004-07-23 15:08             ` Kip Macy
2004-08-04  8:12               ` Yan Li
2004-07-11 23:24 Xenlinux oops and crashes with nbd, Xen no longer boots murble-xendev
2004-07-12 18:27 ` Ian Pratt
2004-07-12 21:06 ` Keir Fraser

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.