On 10/08/2017 08:14 PM, Hartmut Kaiser wrote: > Steve, > >> Thank you Harmut, I will report the bug. > > > Thanks! > >> But so this means that the only way to use my function remotely is to get >> rid of all possible stack allocations? >> >> Or is there any setting/parameter of hpx to ask for more space in the >> stack? > > You can increase the stack-size globally. I'd suggest to change the code in > question to not allocate large chunks of memory on the stack, though. > > You can pass -Ihpx.stacks.small_size=0x20000 or similar on the command line > (0x8000 is the default).
With actions, you can also change the stack programmatically by using the macro HPX_ACTION_USES_STACK. In your specific case, this would be: HPX_ACTION_USES_STACK(testio_action, hpx::threads::thread_stacksize_large) or short: HPX_ACTION_USES_LARGE_STACK(testio_action) see: https://github.com/STEllAR-GROUP/hpx/blob/master/hpx/runtime/actions/basic_action.hpp#L930-L951 The same can be done for the priority with HPX_ACTION_HAS_HIGH_PRIORITY (and friends: https://github.com/STEllAR-GROUP/hpx/blob/master/hpx/runtime/actions/basic_action.hpp#L966-L992) > > HTH > Regards Hartmut > --------------- > http://boost-spirit.com > http://stellar.cct.lsu.edu > > >> >> Thank you, >> Steve >> >>> On Oct 8, 2017, at 9:33 AM, Hartmut Kaiser <[email protected]> >> wrote: >>> >>> Just making sure you receive this response, Steve... >>> >>> Regards Hartmut >>> --------------- >>> http://boost-spirit.com >>> http://stellar.cct.lsu.edu >>> >>> >>>> -----Original Message----- >>>> From: Hartmut Kaiser [mailto:[email protected]] >>>> Sent: Sunday, October 8, 2017 9:33 AM >>>> To: '[email protected]' <[email protected]> >>>> Subject: RE: [hpx-users] thread_stacksize_large for HPX_PLAIN_ACTION >> not >>>> working? >>>> >>>> Steve, >>>> >>>>> After long debugging of my code I’ve found that calling hex::async on >> an >>>>> Actions that allocates some data in the stack results in SEG_FAULT. >> The >>>>> same is not true if I use simple (local) function calls. >>>> >>>> I think that we don't send the executor over the wire, they probably >> will >>>> not work even for local invocations of actions. >>>> This is clearly a bug (i.e. missing implementation). Would you mind >>>> opening a ticket and attach a smallest possible self-contained test >> case? >>>> >>>> Thanks! >>>> Regards Hartmut >>>> --------------- >>>> http://boost-spirit.com >>>> http://stellar.cct.lsu.edu >>>> >>>> >>>>> >>>>> Here is my code: >>>>> >>>>> ——————————— >>>>> >>>>> int test(){ >>>>> char filename[64*1024]; >>>>> >>>>> printf("DONE\n"); >>>>> return 0; >>>>> >>>>> } >>>>> >>>>> HPX_PLAIN_ACTION(testio) >>>>> >>>>> int hpx_main(boost::program_options::variables_map& vm) >>>>> { >>>>> hpx::parallel::execution::default_executor fancy_executor( >>>>> hpx::threads::thread_priority_high, >>>>> hpx::threads::thread_stacksize_large); >>>>> >>>>> testio_action act; >>>>> hpx::future<int> out = hpx::async(fancy_executor, act, >>>>> hpx::find_here()); >>>>> >>>>> out.get(); >>>>> >>>>> return hpx::finalize(); >>>>> } >>>>> ——————————— >>>>> >>>>> This code results in a SEG_FAULT in test(). >>>>> >>>>> Instead if I use the same function test() as a local call with: >>>>> hpx::future<int> out = hpx::async(fancy_executor, &testio); >>>>> >>>>> Works correctly. >>>>> >>>>> What is going wrong using the Action? Should I add any settings to my >>>>> executor or to HPX to tell that my actions require a bit more stack >>>>> allocation? >>>>> >>>>> Thank you, >>>>> Steve >>>>> >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> hpx-users mailing list >>>>> [email protected] >>>>> https://mail.cct.lsu.edu/mailman/listinfo/hpx-users >>> > > _______________________________________________ > hpx-users mailing list > [email protected] > https://mail.cct.lsu.edu/mailman/listinfo/hpx-users > _______________________________________________ hpx-users mailing list [email protected] https://mail.cct.lsu.edu/mailman/listinfo/hpx-users
