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]> |
On Friday 09 June 2006 17:20, Espen Skoglund wrote:
> [Frank Mehnert]
>
> > Espen, sorry for bothering you again but there still something
> > wrong, I got another assertion:
>
> Yeah. After I committed the stuff yesterday I tried out some weird
> configurations which triggered some problems. I didn't get around too
> look into it yet, though.
>
> > [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=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
> >
> > [...]
> >
> > 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
>
> Seems like the first half of ports were mapped OK, but the latter half
> were not (MDB_MAP would tell you if this was the case). Would also be
> good to see the actual IO spaces themselves ("aP" in the kernel
> debugger). Anyhow, I think the other problems I ran into yesterday
> might be related to this problem, so you may want to just let me look
> into those first.
Here you are. I have reduced the test case to only two IO fpage requests:
1. { port=0xdc23, size=1 }
2. { port=0xdc00, size=4 }
io<f0352040>::map (fp=dc230026 [0000dc23,0] base=0000dc23) to io<f0352060>
(fp=00004020 [00000000,16])
io::map (fe01c574, f0363084, 0, 0000dc23, 6, 7)
io<f0352040>::map (fp=dc000826 [0000dc00,2] base=0000dc00) to io<f0352060>
(fp=00004020 [00000000,16])
io::map (fe01c574, f0352080, 1, 0000dc00, 6, 7)
io::map (fe01c574, f0352084, 1, 0000dc02, 6, 7)
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=f03039e5)
--- "KD# assert" ---
dumpiospace
Address space of IO space [current]: 00500001
IO space f0352060 (space fe01e000):
00000000 table [objsize=256 radix=256] (f0353034)
0000dc00 table [objsize=8 radix=32] (f0353058)
0000dc00 table [objsize=2 radix=4] (f0353064)
0000dc22 table [objsize=1 radix=2] (f0353040)
0000dc23 port: 0000dc23, space: fe01e000
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) iD8DBQBEjWRO6z8pigLf3EcRAqLMAKCROfrH03qUk/urj0LiDXkC+vSd4gCfaJj/ 94eijWpW9oN1HomfBHNZ2zE= =lTxd -----END PGP SIGNATURE-----