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

[Xen-devel] Kernel Oops when reading kernel_page_tables debugfs file


  • To: xen-devel@xxxxxxxxxxxxxxxxxxx
  • From: Vivien Bernet-Rollande <vbernetr@xxxxxxxxx>
  • Date: Wed, 24 Nov 2010 17:07:49 +0100
  • Delivery-date: Thu, 25 Nov 2010 01:31:30 -0800
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; b=YhRWUAPKCTU7tgYpKS/reVbMEi/wgQi0Y9lLg3wfo8ZaB47LvtXJHC2Plq4lapYcDT kepShCA/MwGGkNk22iusDQQi/YX1zy9peUpsxrDcB+xe4oKRaknA4D4+cWIOwejHYmdS /cuaJ9MT7eWrKSwUGaYFnyT1qgonr/DmaGbqI=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Hi list.
I'm  currently trying to get a device driver to work on Xen dom0. The driver maps PCI space to userland, and for some reason I have yet to figure, it doesn't work.

Trying to debug this, I came  across the kernel_page_tables debugfs file, that basically displays the content of the pagetable. It doesn't allow me to read the page entries for a process, but I was thinking of hacking it up a bit. For now, on a non Xen system, it just shows :
---[ User Space ]---
0x0000000000000000-0xffff800000000000 16777088T pgd
---[ Kernel Space ]---
 ...
 ...

The thing is, it doesn't work on dom0 :

[root@x-dev-4 ~]# mount -t debugfs none /sys/kernel/debug/
mount: none already mounted or /sys/kernel/debug/ busy
mount: according to mtab, none is already mounted on /sys/kernel/debug
[root@x-dev-4 ~]# cat /sys/kernel/debug/kernel_page_tables

Message from syslogd@x-dev-4 at Nov 24 19:02:55 ...
 kernel:[  210.164008] Oops: 0000 [#2] SMP DEBUG_PAGEALLOC

Message from syslogd@x-dev-4 at Nov 24 19:02:55 ...
 kernel:[  210.164008] last sysfs file: /sys/kernel/mm/ksm/run

Message from syslogd@x-dev-4 at Nov 24 19:02:55 ...
 kernel:[  210.164008] Stack:

Message from syslogd@x-dev-4 at Nov 24 19:02:55 ...
 kernel:[  210.164008] Call Trace:

Message from syslogd@x-dev-4 at Nov 24 19:02:55 ...
 kernel:[  210.164008] Code: 0f 00 00 00 88 ff ff 48 8d 14 10 4e 8d 24 20 48 8b 45 98 48 89 55 80 48 89 45 88 48 8b 45 88 48 c1 e0 10 48 c1 f8 10 48 89 45 b8 <49> 8b 3c 24 48 85 ff 0f 84 aa 01 00 00 ff 14 25 70 9c 6a 81 48

Message from syslogd@x-dev-4 at Nov 24 19:02:55 ...
 kernel:[  210.164008] CR2: ffff9d5555555000
Killed


[root@x-dev-4 ~]# dmesg
[  210.163806] BUG: unable to handle kernel paging request at ffff9d5555555000
[  210.163940] IP: [<ffffffff8103cc2c>] ptdump_show+0xcb/0x30f
[  210.164008] PGD 0
[  210.164008] Oops: 0000 [#2] SMP DEBUG_PAGEALLOC
[  210.164008] last sysfs file: /sys/kernel/mm/ksm/run
[  210.164008] CPU 0
[  210.164008] Modules linked in: bridge stp llc sunrpc rdma_ucm rdma_cm iw_cm ib_addr ib_ipoib ib_cm ib_sa ipv6 ib_uverbs ib_umad iw_nes libcrc32c iw_cxgb3 cxgb3 mlx4_en mlx4_ib mlx4_core xen_netback xen_blkback blkback_pagemap xen_gntdev xen_evtchn xenfs ib_mthca snd_hda_codec_realtek snd_hda_intel snd_hda_codec snd_hwdep snd_seq ib_mad snd_seq_device snd_pcm hp_wmi ib_core snd_timer rfkill tg3 snd edac_core ppdev k8temp soundcore parport_pc edac_mce_amd i2c_piix4 snd_page_alloc wmi parport shpchp serio_raw xfs exportfs pata_acpi ata_generic dm_multipath pata_atiixp radeon ttm drm_kms_helper drm i2c_algo_bit i2c_core [last unloaded: scsi_wait_scan]
[  210.164008] Pid: 1729, comm: cat Tainted: G      D W  2.6.32.25-172.xendom0.debug.fc12.x86_64 #1 HP Compaq dc5750 Microtower
[  210.164008] RIP: e030:[<ffffffff8103cc2c>]  [<ffffffff8103cc2c>] ptdump_show+0xcb/0x30f
[  210.164008] RSP: e02b:ffff88005083bdd8  EFLAGS: 00010296
[  210.164008] RAX: ffff800000000000 RBX: ffff88005050ca80 RCX: 0000000000000000
[  210.164008] RDX: ffff9d5555555ff8 RSI: 0000000000000000 RDI: 0000000077db4067
[  210.164008] RBP: ffff88005083be78 R08: 0000000000000006 R09: 0000000000000073
[  210.164008] R10: 0000000000008fff R11: 0000000000000246 R12: ffff9d5555555000
[  210.164008] R13: ffff88005083bf58 R14: ffff88004fa3c9c0 R15: ffffffff81001800
[  210.164008] FS:  00007effbc512700(0000) GS:ffff880005d45000(0000) knlGS:0000000000000000
[  210.164008] CS:  e033 DS: 0000 ES: 0000 CR0: 000000008005003b
[  210.164008] CR2: ffff9d5555555000 CR3: 000000004f89e000 CR4: 0000000000000660
[  210.164008] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  210.164008] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[  210.164008] Process cat (pid: 1729, threadinfo ffff88005083a000, task ffff88005044aea0)
[  210.164008] Stack:
[  210.164008]  ffffffff8100f001 ffff88005083be78 ffffffff8100f742 0000000000000246
[  210.164008] <0> ffff9d5555555ff8 0000800000000000 ffff880005d57040 0000800000000000
[  210.164008] <0> 0000000000000001 0000000000000000 0000000000000000 ffff800000000000
[  210.164008] Call Trace:
[  210.164008]  [<ffffffff8100f001>] ? xen_force_evtchn_callback+0xd/0xf
[  210.164008]  [<ffffffff8100f742>] ? check_events+0x12/0x20
[  210.164008]  [<ffffffff81139d32>] ? seq_read+0x93/0x354
[  210.164008]  [<ffffffff81139e25>] seq_read+0x186/0x354
[  210.164008]  [<ffffffff8111ed4c>] vfs_read+0xab/0x108
[  210.164008]  [<ffffffff8111ee69>] sys_read+0x4a/0x6e
[  210.164008]  [<ffffffff81012d32>] system_call_fastpath+0x16/0x1b
[  210.164008] Code: 0f 00 00 00 88 ff ff 48 8d 14 10 4e 8d 24 20 48 8b 45 98 48 89 55 80 48 89 45 88 48 8b 45 88 48 c1 e0 10 48 c1 f8 10 48 89 45 b8 <49> 8b 3c 24 48 85 ff 0f 84 aa 01 00 00 ff 14 25 70 9c 6a 81 48
[  210.164008] RIP  [<ffffffff8103cc2c>] ptdump_show+0xcb/0x30f
[  210.164008]  RSP <ffff88005083bdd8>
[  210.164008] CR2: ffff9d5555555000
[  210.164008] ---[ end trace a7919e7f17c0a729 ]---



How to reproduce :
 - compile kernel with CONFIG_X86_PTDUMP=y
 # mount -t debugfs none /sys/kernel/debug/
 # cat /sys/kernel/debug/kernel_page_tables

This is possibly caused by the driver I'm trying to fix (ib_mthca, see http://lists.xensource.com/archives/html/xen-devel/2010-11/msg00462.html for symptoms). However, since the memory management is quite different between Xen and bare x86_64, I figured the file might just not work on Xen.

So, basically, it comes down to this question : is this feature actually supposed to work in Xen ?

By the way, kernel is 2.6.32 with pvops patch, Xen is 4.0.1.

Thanks for any input you may have.

--
Vivien
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

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