Hi Krishnan, The SE mode does not have any thread scheduler. You should have as many cores as the maximum number threads your program may launch. In your example, since your program has two threads, two cores are needed, each running of the threads.
Thanks, Hossein On Fri, Aug 6, 2021 at 5:16 AM krishnan gosakan <krishnan.gosa...@gmail.com> wrote: > Seems like this problem arise only when number of cores is set to 1. > When I increase the number of cores, I see that pthread_join is working > perfectly. > Not sure if this is kind of a limitation. > Any idea? > > On Fri, Aug 6, 2021 at 11:16 AM krishnan gosakan < > krishnan.gosa...@gmail.com> wrote: > >> Hi Hossein, >> I used the m5thread_x86.o file and compiled my sample code (attached with >> this mail). I used the following 2 commands to build my file >> >> gcc -g -O3 -c -o semodePthread.o semodePthread.c >> gcc -static -o semodePthread semodePthread.o m5threads_x86.o >> >> By running semodePthread in gem5 se mode, I see that pthread_create is >> succeeding but it gets stuck in pthread_join. Also I see printf in thread >> function is not running. >> Am I missing something? Or am I building it wrong? >> ANy suggestions would be greatly appreciated. >> >> On Mon, Jul 26, 2021 at 2:03 AM Hossein Golestani <hosse...@umich.edu> >> wrote: >> >>> [I'm resending my reply without the attachments in case they caused it >>> to get into the spam folder.] >>> >>> Hi Krishnan, >>> >>> I remember that I also failed to build m5threads on a particular system, >>> but I managed to build it on another system with a relatively old config (I >>> have attached the output m5threads object files for x86 and ARM v7 to this >>> email). If I remember correctly, that system had the Linux kernel 3.19 and >>> gcc 4.8. You should be able to link the attached object file to your >>> multi-threaded program compiled on a system with a newer kernel/compiler. >>> Hope this helps. >>> >>> Thanks, >>> Hossein >>> >>> >>> On Sat, Jul 24, 2021 at 11:24 PM krishnan gosakan < >>> krishnan.gosa...@gmail.com> wrote: >>> >>>> Hi Hossein, >>>> I tried building m5threads but it failed. What system configuration are >>>> you using to build m5threads? >>>> What kernel version do you use and what compiler do you use? >>>> >>>> On Sat, Jul 24, 2021 at 10:28 PM Hossein Golestani <hosse...@umich.edu> >>>> wrote: >>>> >>>>> Hi Krishnan, >>>>> >>>>> I use m5threads, which is a light-weight alternative for pthread, to >>>>> simulate multi-threaded programs in the SE mode: >>>>> https://github.com/gem5/m5threads >>>>> (I'm not sure if there are any other ways.) >>>>> >>>>> Thanks, >>>>> Hossein >>>>> >>>>> >>>>> On Sat, Jul 24, 2021 at 11:00 AM krishnan gosakan via gem5-users < >>>>> gem5-users@gem5.org> wrote: >>>>> >>>>>> Hi all, >>>>>> I am trying to run a code with pthread in gem5 se mode. The code runs >>>>>> perfectly when launched from command prompt but pthread_create returns >>>>>> error code 11 when run in se mode. Is there anything special I should do >>>>>> to >>>>>> make pthread run in se mode. From the tests directory, I see that C++ >>>>>> std::thread is running perfectly in gem5 se mode. Any help would be >>>>>> appreciated. >>>>>> Thank you. >>>>>> >>>>>> Sample code I use in gem5 se mode >>>>>> >>>>>> #include <stdio.h> >>>>>> #include <pthread.h> >>>>>> >>>>>> void *doWork1(void *arg) >>>>>> { >>>>>> for (int i=0; i<1000000000; i++) >>>>>> ; >>>>>> printf("work completed\n"); >>>>>> } >>>>>> >>>>>> int main() >>>>>> { >>>>>> pthread_t thread; >>>>>> int error = pthread_create(&thread, NULL, doWork1, NULL); >>>>>> if (error == 0) >>>>>> { >>>>>> printf("thread created\n"); >>>>>> pthread_join(thread, NULL); >>>>>> printf("thread work complete\n"); >>>>>> } >>>>>> else >>>>>> { >>>>>> printf("error in thread creation %d\n",error); >>>>>> } >>>>>> return 0; >>>>>> } >>>>>> >>>>>> -- >>>>>> Regards, >>>>>> Krishnan. >>>>>> _______________________________________________ >>>>>> gem5-users mailing list -- gem5-users@gem5.org >>>>>> To unsubscribe send an email to gem5-users-le...@gem5.org >>>>>> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s >>>>> >>>>> >>>> >>>> -- >>>> Regards, >>>> Krishnan. >>>> >>> >> >> -- >> Regards, >> Krishnan. >> > > > -- > Regards, > Krishnan. >
_______________________________________________ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s