Hello Sebastian, I created a new thread which causes the page fault, and also assigned an extra Entrypoint for the Signal_handler [1], but still no success. Perhaps I am using the Signal_handler in a wrong way.
[1] https://github.com/702nADOS/genode-CheckpointRestore-SharedMemory/blob/c58b4144bff720f837112c590ebd2148e9c3f199/src/test/fault_handler/main.cc Kinds regards, Denis On 30.08.2016 15:45, Sebastian Sumpf wrote: > Hello again, > > I missed that part > >> *((unsigned int*)0x1000) = 1; > > in my last reply. You cannot cause a page fault in your entry point and > also handle it in the entry point thread, because the entry point is not > able to receive signals when it is in page fault. It is a hen and egg > problem. > > If you cause the fault from another Genode thread, it should work as > expected. > > Sebastian > > > On 08/30/2016 03:07 PM, Denis Huber wrote: >> Hello Sebastian, >> >> I moved sigh to the member attributes [1], but without success. I also >> tried to use a heap to store the Signal_handler, also without success. >> >> [1] >> https://github.com/702nADOS/genode-CheckpointRestore-SharedMemory/blob/93eaec436ce9b6d3b3a6663558bff9af925ae70f/src/test/fault_handler/main.cc#L19 >> >> I am using run script [2], if it helps. >> >> [2] >> https://github.com/702nADOS/genode-CheckpointRestore-SharedMemory/blob/93eaec436ce9b6d3b3a6663558bff9af925ae70f/run/fault_handler.run >> >> >> Kind regards, >> Denis >> >> On 30.08.2016 14:36, Sebastian Sumpf wrote: >>> Hi Denis, >>> >>>> Signal_handler<Main> sigh = {env.ep(), *this, &Main::_handle_fault}; >>> >>> The line above, creates the Signal_handler on the stack and destructs >>> this handler as soon as the 'Main' constructor is finished. >>> >>> Therefore, 'sigh' should be a member of the 'Main' class. >>> >>> Regards, >>> >>> Sebastian >>> >>> On 08/30/2016 02:10 PM, Denis Huber wrote: >>>> Dear Genode community, >>>> >>>> in Genode 16.05 the old usage of Signal_receivers and Signal_contexts is >>>> considered deprecated. Instead Signal_handler and Signal_transmitter >>>> shall be used. >>>> >>>> I am trying to use a Signal_handler as a fault handler for env's address >>>> space. I wrote a short test to illustrate the problem [1]. >>>> >>>> [1] >>>> https://github.com/702nADOS/genode-CheckpointRestore-SharedMemory/blob/c9a5a1f999a2ce1c6ffd5c316eee127c93d87308/src/test/fault_handler/main.cc >>>> >>>> The output of [1] is as follows: >>>> " >>>> [init -> pf-signal_handler] --- pf-signal_handler started --- >>>> no RM attachment (WRITE pf_addr=1000 pf_ip=100061c from 2ae000) >>>> Genode::Pager_entrypoint::entry()::<lambda(Genode::Pager_object*)>: >>>> Could not resolve pf=1000 ip=100061c >>>> " >>>> >>>> The signal handler was registered correctly, because the line >>>> " >>>> Genode::Core_pd_session_component::submit(Genode::Capability<Genode::Signal_context>, >>>> unsigned int)::<lambda(Genode::Signal_context_component*)>: invalid >>>> signal-context capability >>>> " >>>> is missing. However, the method _handle_fault() is never entered. What >>>> am I doing wrong? >>>> >>>> >>>> Kind regards, >>>> Denis >>>> >>>> ------------------------------------------------------------------------------ >>>> _______________________________________________ >>>> genode-main mailing list >>>> genode-main@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/genode-main >>>> >>> >>> >>> ------------------------------------------------------------------------------ >>> _______________________________________________ >>> genode-main mailing list >>> genode-main@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/genode-main >>> >> >> ------------------------------------------------------------------------------ >> _______________________________________________ >> genode-main mailing list >> genode-main@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/genode-main >> > > > ------------------------------------------------------------------------------ > _______________________________________________ > genode-main mailing list > genode-main@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/genode-main > ------------------------------------------------------------------------------ _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main