Re: I/O flexpages / new mapping DB issue with overlapping ports
Frank Mehnert <[email protected]>
| Newsgroups | gmane.comp.micro-kernel.l4.l4ka.general |
|---|---|
| Organization | InnoTek Systemberatung GmbH |
| Message-ID | <[email protected]> |
Morning,
On Thursday 08 June 2006 18:15, Espen Skoglund wrote:
> [Frank Mehnert]
>
> > [PROBLEM1: although we requested the whole I/O space from Sigma0 we did
> > not receive any port below 0x100, right?]
>
> Fixed. The code managing the IO ports treated NULL objects as not
> present.
>
> > ROOT: Sending ports 0cf8-0cfb to task #08
> > io<f0352040>::map (fp=0cf80826 [00000cf8,2] base=00000cf8) to
> > io<f0352060> (fp=0
> > 0004020 [00000000,16])
> > Assertion isize > newsize failed in
> > file /home-sarge/fm3/src/afterburner/extern/
> > pistachio/kernel/src/generic/vrt.cc, line 354 (fn=f0303671)
> > --- "KD# assert" ---
> >
> > [This is PROBLEM2]
>
> Fixed. There was a special case of overmapping that wasn't handled
> properly in the code managing the IO spaces.
>
> In addition I've tested and fixed the other overmapping cases. Have
> committed all the fixes to the CVS (but will probably not be mirrored
> to the outside in another 45 minutes).
Espen, sorry for bothering you again but there still something wrong, I got
another assertion:
[root task has mapped all I/O ports from Sigma0. hello requests several I/O
fpages from root task, I enabled tracepoints VRT_MAP and VRT_MAPCTRL]
io<f0352040>::map (fp=dcfa0426 [0000dcfa,1] base=0000dcfa) to io<f0352060>
(fp=00004020 [00000000,16])
io<f0352040>::map (fp=dc1b0026 [0000dc1b,0] base=0000dc1b) to io<f0352060>
(fp=00004020 [00000000,16])
io<f0352040>::map (fp=dc270026 [0000dc27,0] base=0000dc27) to io<f0352060>
(fp=00004020 [00000000,16])
io<f0352040>::map (fp=dc200026 [0000dc20,0] base=0000dc20) to io<f0352060>
(fp=00004020 [00000000,16])
io<f0352040>::map (fp=dc100026 [0000dc10,0] base=0000dc10) to io<f0352060>
(fp=00004020 [00000000,16])
io<f0352040>::map (fp=dc230026 [0000dc23,0] base=0000dc23) to io<f0352060>
(fp=00004020 [00000000,16])
io<f0352040>::map (fp=dc000826 [0000dc00,2] base=0000dc00) to io<f0352060>
(fp=00004020 [00000000,16])
Assertion t_node->is_valid () && t_node->is_table () && t_node->get_table
()->match_prefix (t_addr) failed in
file /home/fm3/src/pistachio/kernel/src/generic/vrt.cc, line 460
(fn=f0303a30)
--- "KD# assert" ---
--------------------------------- (eip=f0302db4, esp=f0320384) ---
/mdb> dumpallio
00000000 table [objsize=256 radix=256 count=256] (f0363060)
00000000 [1] port: 0000, space: f0358000
00000100 [1] port: 0100, space: f0358000
...
0000db00 [1] port: db00, space: f0358000
0000dc00 [1] port: dc00, space: f0358000
0000dc00 table [objsize=8 radix=32 count=5] (f03630c0)
0000dc00 table [objsize=2 radix=4 count=2] (f0363170)
0000dc00 [2] port: dc00, space: fe01e000
0000dc02 [2] port: dc02, space: fe01e000
0000dc10 table [objsize=1 radix=2 count=1] (f0363140)
0000dc10 [2] port: dc10, space: fe01e000
0000dc1a table [objsize=1 radix=2 count=1] (f03630b0)
0000dc1b [2] port: dc1b, space: fe01e000
0000dc20 table [objsize=2 radix=4 count=3] (f0363110)
0000dc20 table [objsize=1 radix=2 count=1] (f0363100)
0000dc20 [2] port: dc20, space: fe01e000
0000dc22 table [objsize=1 radix=2 count=1] (f0363160)
0000dc23 [2] port: dc23, space: fe01e000
0000dc26 table [objsize=1 radix=2 count=1] (f03630e0)
0000dc27 [2] port: dc27, space: fe01e000
0000dcf8 table [objsize=2 radix=4 count=1] (f0363080)
0000dcfa [2] port: dcfa, space: fe01e000
0000dd00 [1] port: dd00, space: f0358000
...
0000ff00 [1] port: ff00, space: f0358000
Frank
--
## InnoTek Systemberatung GmbH, http://www.innotek.de ##
signature.asc
(application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (GNU/Linux) iD8DBQBEiSlK6z8pigLf3EcRAqiQAJ9WACgp+ooRepiSbrVIUBIQr1rE+ACeKt8C hpEq16imQ8s7hIUSp0tJw4M= =rzK7 -----END PGP SIGNATURE-----