bug-hurd
[Top][All Lists]
Advanced

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

Re: GNU Mach: disabling all network device drivers


From: Diego Nieto Cid
Subject: Re: GNU Mach: disabling all network device drivers
Date: Mon, 30 Aug 2010 01:15:20 -0300

Hello,

Short story: something is clearing kernel_page_dir.

Long story follows. :)

On Wed, Jun 09, 2010 at 08:24:55AM +0200, Samuel Thibault wrote:
> 
> These are correct. So that must the the pagetable that is incorrect.
> Check out cr3 and such.
> 
 
While trying DDE I came across this problem too. I run a few tests and
your guess is apparently correct:

 +-------+--------+--------+---------+------+-----+---------+
 | Test# |   eip  |  *esp  |   kpd   | kpd' | CR3 |   CR3'  |
 + ------+--------+--------+---------+------+-----+---------+
 |   1   | 107e92 | 1436c7 |   ---   | ---  | --- |   ---   |
 +-------+--------+--------+---------+------+-----+---------+
 |   2   | 1051f9 |   ---  | 1371000 | ---  | kpd | 2e8f000 |
 +-------+--------+--------+---------+------+-----+---------+
 |   3   | 107e92 | 1436c7 | 1371000 |   0  | kpd | 219a000 |
 +-------+--------+--------+---------+------+-----+---------+
 |   4   | 107e92 | 1436c7 | 1371000 |   0  | kpd | 2d18000 |
 +-------+--------+--------+---------+------+-----+---------+

Where kpd is the contraction of kernel_page_dir, ' means after the
trap and --- that there is no available information.

Meaning of some addresses:

  # addr2line -e /boot/gnumach 0x107392 0x1436c7 0x1051f9
  ...gnumach/i386/i386/spl.S:217
  ...gnumach/i386/i386at/interrupt.S:40
  ...gnumach/i386/i386at/kdasm.S:113

CR3 value was taken from qemu's monitor console:

  (qemu) info registers

And this is where kpd was read from:

  # nm /boot/gnumach | grep kernel_page_dir
  001aa2b0 B kernel_page_dir

All the test were done by running the following commands:

  # settrans -acfgp /servers/drivers/eth0 /hurd/dde/dde_ne2k_pci
  ...
  # settrans -acfgp /dev/eth0 /hurd/dde/devnode eth0 \
  > -M /servers/drivers/eth0
  ...
  # settrans -acfgp /servers/socket/2 /hurd/dde/pfinet -i /dev/eth0 \
  > -a 10.0.2.16 -g 10.0.2.2 -m 255.255.255.0
  ...
  # wget www.google.com
  --2010-08-30 02:18:19-- http://www.google.com/
  Resolving www.google.com... <<<<<trap point

During the first test I collected the values of the registers.
They are similar to what Zheng Da showed before.
---------
Kernel General protection trap, eip 0x107e92
kernel: General protection (13), code=25a
Stopped at 0x107e92:   ret
db> trace
0x107e92(646565,656b6f70,6761705f,66007365,5f656572)

no memory is assigned to address 6c610077
db> show registers
cs        0x8
ds       0x10
es       0x10
fs       0x10
gs       0x10
ss       0x10
eax       0x5
ecx      0x1c
edx       0x5
ebx   0x44520
esp  0x1a9f20
ebp 0x12dbd1c
esi   0x44560
edi      0x3c
eip  0x107e92
efl     0x297
db> examine 0x1a9f20
       1436c7
db>
---------

The second test went really wrong for some reason and I couldn't get
all the information.
-----------
  Kernel General protection trap, eip 0x1051f9rotection trap, eip 0x107e92
  kernel: General protection (13), code=202
  Stopped at 0x1051f9:   repe movsw  (%esi),%es:(%edi)
  db> trace
  Bad character ']'
  ?
  db> show registers
  Bad character ']'
  ?
  db>
---------



reply via email to

[Prev in Thread] Current Thread [Next in Thread]