Re: [kvm-unit-tests PATCH v3 7/9] s390x: smp: Remove unneeded cpu loops

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 1/21/20 1:59 PM, Cornelia Huck wrote:
> On Tue, 21 Jan 2020 13:46:51 +0100
> Janosch Frank <frankja@xxxxxxxxxxxxx> wrote:
> 
>> On 1/20/20 5:11 PM, Cornelia Huck wrote:
>>> On Mon, 20 Jan 2020 15:41:52 +0100
>>> Janosch Frank <frankja@xxxxxxxxxxxxx> wrote:
>>>   
>>>> On 1/20/20 12:29 PM, Cornelia Huck wrote:  
>>>>> On Fri, 17 Jan 2020 05:46:38 -0500
>>>>> Janosch Frank <frankja@xxxxxxxxxxxxx> wrote:
>>>>>     
>>>>>> Now that we have a loop which is executed after we return from the
>>>>>> main function of a secondary cpu, we can remove the surplus loops.
>>>>>>
>>>>>> Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxx>
>>>>>> ---
>>>>>>  s390x/smp.c | 8 +-------
>>>>>>  1 file changed, 1 insertion(+), 7 deletions(-)
>>>>>>
>>>>>> diff --git a/s390x/smp.c b/s390x/smp.c
>>>>>> index 555ed72..c12a3db 100644
>>>>>> --- a/s390x/smp.c
>>>>>> +++ b/s390x/smp.c
>>>>>> @@ -29,15 +29,9 @@ static void wait_for_flag(void)
>>>>>>  	}
>>>>>>  }
>>>>>>  
>>>>>> -static void cpu_loop(void)
>>>>>> -{
>>>>>> -	for (;;) {}
>>>>>> -}
>>>>>> -
>>>>>>  static void test_func(void)
>>>>>>  {
>>>>>>  	testflag = 1;
>>>>>> -	cpu_loop();
>>>>>>  }
>>>>>>  
>>>>>>  static void test_start(void)
>>>>>> @@ -234,7 +228,7 @@ int main(void)
>>>>>>  
>>>>>>  	/* Setting up the cpu to give it a stack and lowcore */
>>>>>>  	psw.mask = extract_psw_mask();
>>>>>> -	psw.addr = (unsigned long)cpu_loop;
>>>>>> +	psw.addr = (unsigned long)test_func;    
>>>>>
>>>>> Before, you did not set testflag here... intended change?    
>>>>
>>>> Yes
>>>> It is set to 0 before the first test, so it shouldn't matter.  
>>>
>>> Hm... I got a bit lost in all those changes, so I checked your branch
>>> on github, and I don't see it being set to 0 before test_start() is
>>> called?  
>>
>> Well, that's because test_start doesn't care about the flag.
> 
> But I see a wait_for_flag() in there? What am I missing?
> 
>> ecall and emcall are the first users, and they set it to 0 before using it.

Well, cpu #1 will update tesflag to 1 in ecall() and emcall()

>>
>>>   
>>>>  
>>>>>     
>>>>>>  	smp_cpu_setup(1, psw);
>>>>>>  	smp_cpu_stop(1);
>>>>>>      
>>>>>     
>>>>
>>>>  
>>>   
>>
>>
> 


Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux