hello all,

am new to gem5...i am trying to run a parallel c program using gem5

i checked out that we need to install m5threads.
but am getting the follwoing error

gcc -O3 -static   -c -o pthread.o pthread.c
pthread.c:45:4: error: #error "spinlock routines not available for your
arch!\n"
In file included from pthread.c:49:0:
tls_defs.h:220:4: error: #error "No TLS defs for your architecture"
pthread.c: In function ‘populate_thread_block_info’:
pthread.c:139:69: error: ‘tcbhead_t’ undeclared (first use in this function)
pthread.c:139:69: note: each undeclared identifier is reported only once
for each function it appears in

kindly help in remofing this error

On Thu, Jul 2, 2015 at 6:43 PM, Yuan Yao <[email protected]> wrote:

>  Dear All:
>     After digging into eventq.cc, I solved my problem by rescheduling my
> component with the cycle number at which the checkpoint is created.
>     Specifically, I did this:
>
>          MyComponent::MyComponent(){
>            ...
>
>  
> scheduleEventAbsolute(m_net_ptr->clockEdge(Cycles(CHECKPOINT_TICK/clockPeriod()));
>            ...
>        }
>
>        MyComponents::wakeup(){
>            ...
>            scheduleEvent(Cycles(A_PERIOD));
>            ...
>       }
>
>      Now the code works.
>
>  Date: Tue, 30 Jun 2015 19:23:53 +0000
> From: "Cagdas Dirik (cdirik)" <[email protected]>
> To: gem5 users mailing list <[email protected]>
> Subject: Re: [gem5-users] Wakeup after restoring checkpoint
> Message-ID:
> <[email protected]>
> Content-Type: text/plain; charset="us-ascii"
>
> I believe there are timers that already do what you are trying to do -
> that at checkpoint time save their state (time till next time to tick), and
> on restore generate an event with an offset.
>
> I8254 timer is a good example to take a look at.
> src/dev/x86/i8254.cc
>
> Cagdas
> ________________________________________
> From: gem5-users [[email protected]] on behalf of Erfan
> Azarkhish [[email protected]]
> Sent: Tuesday, June 30, 2015 7:42 AM
> To: gem5 users mailing list
> Subject: Re: [gem5-users] Wakeup after restoring checkpoint
>
> Dear Yuan,
>
> I faced the same issue, and I solved it using a not very clean trick. So,
> I would really appreciate it if someone could tell us the proper solution
> to address this issue.
> Here is how I fixed it:
>
> 1. In the init() method of my component, I check whether this is a "fresh
> execution" or a "checkpoint resume". (I pass this information MANUALLY to
> gem5 by creation of a file and checking whether it exists).
>  Now in the init() method, I schedule my periodic event ONLY if the
> execution is fresh, otherwise I won't schedule it (see below).
> 2. I override the drain() method of my component, and I make sure that
> there are no in-flight transactions in my component (You can see an example
> of how this method is used in the existing components).
> 3. I override the drainResume() method, and there, I schedule my periodic
> event.
>
> This way the periodic event works both with fresh execution, and with
> checkpoint resuming.
>
> I hope that this helps,
>
> Best,
>
> On Fri, Jun 19, 2015 at 12:23 PM, Yuan Yao <[email protected]<
> mailto:[email protected] <[email protected]>>> wrote:
> Hi All:
>    Recently I wrote a new component in Garnet, which wakes itself up when
> initialized. After that, it re-shedules periodically.
>    Below is the code for this purpose:
>
>    MyComponent::MyComponent(){
>        ...
>        scheduleEventAbsolute(m_net_ptr->clockEdge(Cycles(1)));
>        ...
>    }
>
>    MyComponents::wakeup(){
>        ...
>        scheduleEvent(Cycles(A_PERIOD));
>        ...
>    }
>
>    The code works fine when I start a full system simulation afresh.
> However, when I restore from a checkpoint, MyComponent never wakes up.
>    I guess the problem is in the event queue. It seems the wake up event
> of MyComponent is not registered successfully. But I am not sure about
> this...
>    Based on this observation, my question is:
>
>        - How to wake up your own component after restoring from a
> checkpoint?
>
> Best Regards
> ==================================
>
> Yuan Yao (Mr.)
> PhD Candidate in Electronic and Computer Systems
>
> School of ICT
> KTH Royal Institute of Technology
>
> [email protected]<mailto:[email protected] <[email protected]>>
>
>
> _______________________________________________
> gem5-users mailing list
> [email protected]<mailto:[email protected] <[email protected]>>
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>
>
>
> --
> Erfan Azarkhish
> Micrel Lab - Viale Carlo Pepoli 3/2 - 40123, Bologna
> DEI - University of Bologna, Italy
> https://www.linkedin.com/in/erfanazarkhish
>
>
> ------------------------------
>
> Message: 3
> Date: Tue, 30 Jun 2015 21:59:58 +0100
> From: Andreas Hansson <[email protected]>
> To: gem5 users mailing list <[email protected]>
> Subject: Re: [gem5-users] Wakeup after restoring checkpoint
> Message-ID: <d1b85129.27762%[email protected]>
> Content-Type: text/plain; charset="utf-8"
>
> Hi all,
>
> Have a look at http://www.gem5.org/SimObject_Initialization and
> src/sim/sim_object.hh. In general, I would recommend to not schedule events
> in init(), and rather do so in initState, loadState or startup.
>
> Andreas
>
> From: gem5-users <[email protected]<mailto:
> [email protected]>> on behalf of Erfan Azarkhish <
> [email protected]<mailto:[email protected]>>
> Reply-To: gem5 users mailing list <[email protected]<mailto:
> [email protected]>>
> Date: Tuesday, 30 June 2015 07:42
> To: gem5 users mailing list <[email protected]<mailto:
> [email protected]>>
> Subject: Re: [gem5-users] Wakeup after restoring checkpoint
>
> Dear Yuan,
>
> I faced the same issue, and I solved it using a not very clean trick. So,
> I would really appreciate it if someone could tell us the proper solution
> to address this issue.
> Here is how I fixed it:
>
> 1. In the init() method of my component, I check whether this is a "fresh
> execution" or a "checkpoint resume". (I pass this information MANUALLY to
> gem5 by creation of a file and checking whether it exists).
>  Now in the init() method, I schedule my periodic event ONLY if the
> execution is fresh, otherwise I won't schedule it (see below).
> 2. I override the drain() method of my component, and I make sure that
> there are no in-flight transactions in my component (You can see an example
> of how this method is used in the existing components).
> 3. I override the drainResume() method, and there, I schedule my periodic
> event.
>
> This way the periodic event works both with fresh execution, and with
> checkpoint resuming.
>
> I hope that this helps,
>
> Best,
>
> On Fri, Jun 19, 2015 at 12:23 PM, Yuan Yao <[email protected]<mailto:
> [email protected]>> wrote:
> Hi All:
>    Recently I wrote a new component in Garnet, which wakes itself up when
> initialized. After that, it re-shedules periodically.
>    Below is the code for this purpose:
>
>    MyComponent::MyComponent(){
>        ...
>        scheduleEventAbsolute(m_net_ptr->clockEdge(Cycles(1)));
>        ...
>    }
>
>    MyComponents::wakeup(){
>        ...
>        scheduleEvent(Cycles(A_PERIOD));
>        ...
>    }
>
>    The code works fine when I start a full system simulation afresh.
> However, when I restore from a checkpoint, MyComponent never wakes up.
>    I guess the problem is in the event queue. It seems the wake up event
> of MyComponent is not registered successfully. But I am not sure about
> this...
>    Based on this observation, my question is:
>
>        - How to wake up your own component after restoring from a
> checkpoint?
>
> Best Regards
> ==================================
>
> Yuan Yao (Mr.)
> PhD Candidate in Electronic and Computer Systems
>
> School of ICT
> KTH Royal Institute of Technology
>
> [email protected]<mailto:[email protected]>
>
>
>  _______________________________________________
> gem5-users mailing list
> [email protected]<mailto:[email protected] <[email protected]>>
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>
>
>
> --
> Erfan Azarkhish
> Micrel Lab - Viale Carlo Pepoli 3/2 - 40123, Bologna
> DEI - University of Bologna, Italy
> https://www.linkedin.com/in/erfanazarkhish
>
>
> -- IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose the
> contents to any other person, use it for any purpose, or store or copy the
> information in any medium. Thank you.
>
> ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ,
> Registered in England & Wales, Company No: 2557590
> ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ,
> Registered in England & Wales, Company No: 2548782
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://m5sim.org/cgi-bin/mailman/private/gem5-users/attachments/20150630/c430770b/attachment-0001.html
> >
>
>
>     Best Regards
> ==================================
>
> Yuan Yao (Mr.)
>  PhD Candidate in Electronic and Computer Systems
>
>  School of ICT
>  KTH Royal Institute of Technology
>
> [email protected]
>
>
>
>
>
>
>
> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>



-- 
Thanks & Regards

Sunitha.P
8970314569
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to