Thanks for the information guys. I do have halt implemented and it does 
quiesce the CPU and I have seen it called in one of the idle functions, 
so I think that's taken care of. I think this means the next thing to 
implement will be to hook the pseudo instructions in someplace.

Gabe

nathan binkert wrote:
> Yeah, you're right.
>
> On Fri, Dec 19, 2008 at 9:26 AM, Ali Saidi <[email protected]> wrote:
>   
>> For our initial purposes the default executes the halt instruction and
>> should suffice as long as we have an implementation of halt that
>> quiesces the CPU, correct?
>>
>> Ali
>>
>>
>>
>> On Dec 19, 2008, at 10:08, "nathan binkert" <[email protected]> wrote:
>>
>>     
>>> Gabe, if you have any further questions on the x86 idle loop, I'm
>>> actually quite familiar with it because of the ASISA stuff I was
>>> doing.  Ali is correct in how the idle loop works.  One thing that is
>>> nice is that the idle function is actually a function pointer, so it
>>> is designed to be swapped with a different function.  That makes it
>>> really easy for you to write an m5 specific function and just change
>>> the function pointer.  (I've for example changed the idle function by
>>> loading a module.)
>>>
>>>  Nate
>>>
>>> On Fri, Dec 19, 2008 at 6:36 AM, Ali Saidi <[email protected]> wrote:
>>>       
>>>> There are a couple of psuedo instructions, although I believe that
>>>> x86
>>>> at least has one type built in.
>>>> Here are the alpha patches:
>>>> http://repo.m5sim.org/linux-patches/file/0ab58d9bd9a5/m5/quiesce.diff
>>>> http://repo.m5sim.org/linux-patches/file/0ab58d9bd9a5/m5/quiesce_2.6.27.diff
>>>>
>>>> I'm pretty sure cpu_idle() eventually calls delaut_idle() which calls
>>>> safe_halt(). I can't find a definition for it, however I would
>>>> imagine
>>>> it executes the halt instruction and the cpu is quiesced until an
>>>> interrupt arrives so diff #2 in the list is already implemented in
>>>> x86.
>>>>
>>>> Diff #1 still needs to be implemented. To make it boot faster you'll
>>>> need to modify arch/x86/lib/delay.c is a simlar manner to how I
>>>> modified the alpha version. For that version I ended up adding a
>>>> parameter nanoseconds to the delay_loop() function since the caller
>>>> knew the number of nanoseconds and the loop only knew the number of
>>>> jiffies. With the number of nano seconds I simply quiesce for the
>>>> number of ns requested and then immediately test for the number of ns
>>>> requested. If the time hasn't arrived yet, do some math and put the
>>>> processor back to sleep.
>>>>
>>>> Ali
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Dec 19, 2008, at 7:38 AM, Geoffrey Blake wrote:
>>>>
>>>>         
>>>>> I'm pretty sure in the alpha linux code, that they've added the
>>>>> quiesce()
>>>>> pseudo-inst to just skip past any busy wait loops. They've done this
>>>>> for the
>>>>> cpu_idle() loop as well in Alpha.
>>>>>
>>>>> -----Original Message-----
>>>>> From: [email protected] [mailto:[email protected]] On
>>>>> Behalf
>>>>> Of Gabe Black
>>>>> Sent: Friday, December 19, 2008 3:50 AM
>>>>> To: M5 Developer List
>>>>> Subject: [m5-dev] SLOOOOOOOOOOW IDE controller
>>>>>
>>>>>   I finally have the IDE controller sort of working (yay!), but
>>>>> apparently there's a built in 3 millisecond busy loop delay before
>>>>> the
>>>>> device is recognized as ready to go. In general, did you need to do
>>>>> anything special to make the controller start up and work in a
>>>>> reasonable amount of real time for Alpha?
>>>>>
>>>>> Gabe
>>>>> _______________________________________________
>>>>> m5-dev mailing list
>>>>> [email protected]
>>>>> http://m5sim.org/mailman/listinfo/m5-dev
>>>>>
>>>>>
>>>>>
>>>>> No virus found in this incoming message.
>>>>> Checked by AVG - http://www.avg.com
>>>>> Version: 8.0.176 / Virus Database: 270.9.19/1856 - Release Date:
>>>>> 12/18/2008
>>>>> 8:06 PM
>>>>>
>>>>> _______________________________________________
>>>>> m5-dev mailing list
>>>>> [email protected]
>>>>> http://m5sim.org/mailman/listinfo/m5-dev
>>>>>
>>>>>           
>>>> _______________________________________________
>>>> m5-dev mailing list
>>>> [email protected]
>>>> http://m5sim.org/mailman/listinfo/m5-dev
>>>>
>>>>
>>>>         
>>> _______________________________________________
>>> m5-dev mailing list
>>> [email protected]
>>> http://m5sim.org/mailman/listinfo/m5-dev
>>>
>>>       
>> _______________________________________________
>> m5-dev mailing list
>> [email protected]
>> http://m5sim.org/mailman/listinfo/m5-dev
>>
>>
>>     
> _______________________________________________
> m5-dev mailing list
> [email protected]
> http://m5sim.org/mailman/listinfo/m5-dev
>   

_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to