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-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.