Re: Creating tasks and the l4_task_map function
Adam Lackorzynski <[email protected]> Sun, 28 Aug 2022 23:07:38 +0200
| Newsgroups | gmane.comp.micro-kernel.l4.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Paul, On Sun Aug 21, 2022 at 00:18:57 +0200, Paul Boddie wrote: > On Monday, 18 April 2022 23:26:03 CEST Adam Lackorzynski wrote: > > > > On Tue Apr 12, 2022 at 01:09:40 +0200, Paul Boddie wrote: > > > > > > This might just sound like me complaining, but I also have some concerns > > > about being able to verify the behaviour of some of the code. For > > > example, I recently found that my dataspace implementation was getting > > > requests from a region mapper/manager with an opcode of 0x100000000, > > > which doesn't make any sense to me at all, given that the dataspace > > > interface code in L4Re implicitly defines opcodes that are all likely to > > > be very small integers. At first I obviously blamed my own code, but then > > > I found that in the IPC call implementation found here... > > > > > > pk/l4re-core/l4sys/include/cxx/ipc_iface > > This was obviously... > > pkg/l4re-core/l4sys/include/cxx/ipc_iface > > > > ...if I explicitly cleared the first message register before this > > > statement... > > > > > > int send_bytes = > > > Args::template write_op<Do_in_data>(mrs->mr, 0, Mr_bytes, > > > Opt::Opcode, a...); > > > > > > ...then the opcode was produced as expected again. > > > > Which does not fully make sense to me because the message registers seem > > to be written from 0 on. Anyway, do you have an example maybe? > > I just spent quite some time seeing errors like this... > > ext2svr | L4Re[rm]: mapping for page fault failed with error -39 at > 0x1002fbc00 pc=0x10b7804 > ext2svr | L4Re: rom/ext2_server: Unhandled exception: PC=0x10b7804 > PFA=0x1002fbc00 LdrFlgs=0x0 > > -39 being -L4_EBADPROTO (unsupported protocol), of course. > > And then I remembered that there was some curious IPC-related problem I had > encountered a while ago. It turns out that it was this again, and since I had > obtained a fresh checkout of the L4Re code and had forgotten that this could > be a problem, I had revived it! Introducing my workaround eliminated the > error. > > Do you have any ideas as to why the first message register gets corrupted? No, still not. Any chance I could see a small example of this? Adam