[Dev] [SDK/Emulator] Tizen emulator on windows performance

Stanislav Vorobiov s.vorobiov at samsung.com
Tue Apr 8 10:09:16 GMT 2014


Hi, Seokyeon

> Yesterday, I looked up the related code and tested it.
> But, I am not quite sure about the changed timer code in QEMU.
>
> the problem is disappeared by Stanislav's patch. However, I think adding dummy notifier from timerlist registration is better than checking use_icount according to the current changed timer logic. I'm not 100% sure about this.
I've tried the patch, it looks like the fix is almost the same as mine in terms of performance, i.e. it makes things better, but not as good as in 1.6. And the difference
is big, with 1.6 performance was much better. IMHO we didn't fix the problem yet and this patch or mine shouldn't be applied. I'll try to look at this problem again taking
this patch into account, I really hope that we'll find the right solution for this...

>
>
> If anyone knows about the following, please answer me.
>
> 1. Main-loop registers aio_notify to use own timers. Why do 6 timerlist, which are created by init_clocks() function in CPU thread and IO thread, eventually call aio_notify? aio_notify is called because there is no notifier registration explicitly.
>
> 2. The same above timer logic is performed in linux and Windows, but it is slow in Windows. What is the major cause of performance decline in Windows?
It might be that aio logic broke for windows, i.e. misuse of IoCompletion api or something, m.b. we should study win32-aio.c in more detail ?

Also, I noticed one more thing, it may be related to this problem. mobile image doesn't boot with kernel 3.12 at all on windows, it hangs somewhere in
network initialization (not 100% sure), that place also causes a little delay with 3.4 kernel, but with 3.12 it never gets pass it. I've tried this both without and
with this patch. Also, Tizen IVI doesn't have this problem, it boots fine.

On 04/08/2014 11:19 AM, SeokYeon Hwang wrote:
> Sorry, my attachment was missing.
> 
>  
> 
> Thanks.
> 
>  
> 
> ------- *Original Message* -------
> 
> *Sender* : 황석연<syeon.hwang at samsung.com> 수석보/VM파트/에스코어
> 
> *Date* : 2014-04-08 16:11 (GMT+09:00)
> 
> *Title* : Re: [Dev] [SDK/Emulator] Tizen emulator on windows performance
> 
>  
> 
> Hi, everyone.
> 
>  
> 
> Sorry for late reply.
> 
> Yesterday, I looked up the related code and tested it.
> But, I am not quite sure about the changed timer code in QEMU.
> 
> the problem is disappeared by Stanislav's patch. However, I think adding dummy notifier from timerlist registration is better than checking use_icount according to the current changed timer logic. I'm not 100% sure about this.
> 
> 
> If anyone knows about the following, please answer me.
> 
> 1. Main-loop registers aio_notify to use own timers. Why do 6 timerlist, which are created by init_clocks() function in CPU thread and IO thread, eventually call aio_notify? aio_notify is called because there is no notifier registration explicitly.
> 
> 2. The same above timer logic is performed in linux and Windows, but it is slow in Windows. What is the major cause of performance decline in Windows?
> 
> 
> I'll apply Stanislav's patch or the "dummy_notifier patch" attached as workaround If I cannot figure it out until this week.
> If you have any comment about this, please let me know.
> 
>  
> 
> Thanks.
> 
>  
> 
> ============================================================================================
> 
> *Sender*: Seokyeon Hwang<syeon.hwang at samsung.com <mailto:syeon.hwang at samsung.com>>
> 
> *Date*: 2014-03-14 10:35 (GMT+09:00)
> 
> *Title*: Re: [Dev] [SDK/Emulator] Tizen emulator on windows performance
> 
>  
> 
> Great job, thanks.
> 
>  
> 
> I should test with "vanilla QEMU 1.6" on windows.
> 
> I think it could be our mis-use QEMU timer API, or some other mistake on tizen specific devices.
> 
> I will test it until next week.
> 
>  
> 
> ------- *Original Message* -------
> 
> *Sender*: Stanislav Vorobiov<s.vorobiov at samsung.com <mailto:s.vorobiov at samsung.com>> Expert Engineer/SRR-Tizen S/W Group/삼성전자
> 
> *Date*: 2014-03-14 02:22 (GMT+09:00)
> 
> *Title*: Re: [Dev] [SDK/Emulator] Tizen emulator on windows performance
> 
>  
> 
> I was able to make some progress on this issue, it looks like this commit:
> 
> b1bbfe72ec1ebf302d97f886cc646466c0abd679 aio / timers: On timer modification, qemu_notify or aio_notify
> 
> causes the degradation, I'm attaching the patch that reverts changes in this commit. Although emulator is
> performing better with this patch, it's still not as good as it was with qemu 1.6. Also, this patch
> is a dirty hack of course, it reverts generic code that works fine on linux and mac os x, but the problem is on windows
> only.
> 
> Any comments are welcome...
> 
> On 03/12/2014 02:59 PM, Stanislav Vorobiov wrote:
>> Hi all,
>> 
>> Just for information, Intel VTune Amplifier XE for windows works great with MinGW, it's capable of gathering
>> correct profiles and symbol naming is ok, you don't even need to build qemu with some special options.
>> 
>> I'm using it now to find the cause of this performance degradation, m.b. someone else will find it useful as well.
>> 
>> Thanks.
>> 
>> On 01/16/2014 06:38 AM, 황석연wrote:
>>> Dear all,
>>>
>>>  
>>>
>>> @ stanislav
>>>
>>> You are right. The performance profiling in Windows is very hard job.
>>>
>>> Actually I prefer using profiling tool to analysing sources, trial and error, in Windows - MinGW.
>>>
>>>  
>>>
>>> @ all
>>>
>>> If anyone knows good profiling tool in Windows - MinGW,
>>>
>>> Please let us know.
>>>
>>>  
>>>
>>> Thanks.
>>>
>>>  
>>>
>>>  
>>>
>>> ------- *Original Message* -------
>>>
>>> *Sender* : Stanislav VorobiovLeading Engineer/SRR-Mobile S/W Group/삼성전자
>>>
>>> *Date* : 2014-01-15 14:54 (GMT+09:00)
>>>
>>> *Title* : Re: [Dev] [SDK/Emulator] Tizen emulator on windows performance
>>>
>>>  
>>>
>>> Hi, Syeon
>>>
>>> Yes, but unfortunately it's hard to say where exactly is that problem. It would be great to do some profiling, but on MinGW it seems
>>> not an easy task. In MinGW there're no things such as valgrind or perf and all existing windows profiling tools require .pdb database,
>>> which means they can only profile executables built by visual studio. After some struggling I've managed to run qemu with gprof, which
>>> gave me output with correct symbol naming, but unfortunately the output is still not usefull, m.b. it's because gprof is known to not
>>> work correctly with multithreaded applications. Do you have suggestions how can we profile qemu on windows ? Are there any good tools
>>> you know about ?
>>>
>>> On 01/15/2014 08:35 AM, SeokYeon Hwang wrote:
>>>> Dear all,
>>>>
>>>>  
>>>>
>>>> I can reproduce performance degradation on Windows.
>>>>
>>>> We should figure out why.
>>>>
>>>> I thinks it could be related with timer logic changes on 1.7.0.
>>>>
>>>>  
>>>>
>>>> Thanks.
>>>>
>>>>  
>>>>
>>>> ------- *Original Message* -------
>>>>
>>>> *Sender* : Stanislav VorobiovLeading Engineer/SRR-Mobile S/W Group/삼성전자
>>>>
>>>> *Date* : 2014-01-13 14:52 (GMT+09:00)
>>>>
>>>> *Title* : Re: [Dev] [SDK/Emulator] Tizen emulator on windows performance
>>>>
>>>>  
>>>>
>>>> Hi, Syeon
>>>>
>>>> It's not necessarily related to HAXM, the thing is slowdown is significant, e.g. home screen renders about
>>>> 5 times longer than before, home screen scrolling is like 2-3 fps. Other graphics apps are also slow.
>>>>
>>>> On 01/13/2014 06:19 AM, 황석연wrote:
>>>>> Hi, stanislav,
>>>>>
>>>>>  
>>>>>
>>>>> According to my memory, there is no significant changes related with HAXM.
>>>>>
>>>>> But I will re-check about it.
>>>>>
>>>>>  
>>>>>
>>>>> ------- *Original Message* -------
>>>>>
>>>>> *Sender* : Stanislav VorobiovLeading Engineer/SRR-Mobile S/W Group/삼성전자
>>>>>
>>>>> *Date* : 2014-01-10 22:23 (GMT+09:00)
>>>>>
>>>>> *Title* : Re: [Dev] [SDK/Emulator] Tizen emulator on windows performance
>>>>>
>>>>>  
>>>>>
>>>>> Also, this happens both with maru VGA and VIGS
>>>>>
>>>>> On 01/10/2014 01:06 PM, Stanislav Vorobiov wrote:
>>>>>> Hi, all
>>>>>>
>>>>>> After updating tizen branch today (with 1.7.0 merge) I've noticed performance degradation on windows 7 64-bit with HAXM-enabled,
>>>>>> is this some known issue ? Were there significant changes to HAXM in 1.7.0 merge ?
>>>>>>
>>>>>> On 01/08/2014 07:59 AM, 황석연wrote:
>>>>>>> Dear all,
>>>>>>>
>>>>>>>  
>>>>>>>
>>>>>>> A QEMU 1.7.0 stable version has been merged into tizen branch.
>>>>>>>
>>>>>>>  
>>>>>>>
>>>>>>> Thanks.
>>>>>>>
>>>>>>>  
>>>>>>>
>>>>>>> ------- *Original Message* -------
>>>>>>>
>>>>>>> *Sender* : 황석연책임/VM파트/에스코어
>>>>>>>
>>>>>>> *Date* : 2014-01-03 13:16 (GMT+09:00)
>>>>>>>
>>>>>>> *Title* : [Dev] [SDK/Emulator] Merge qemu stable-1.7.0 on tizen emulator
>>>>>>>
>>>>>>>  
>>>>>>>
>>>>>>> Dear all,
>>>>>>>
>>>>>>>  
>>>>>>>
>>>>>>> We has been tested "Tizen Emulator" with tizen_qemu_1.7 branch, and it works well.
>>>>>>>
>>>>>>> So we planned to merge it to tizen branch on next Tuesday - 7, Jan.
>>>>>>>
>>>>>>> If you have any opinion, please let me know.
>>>>>>>
>>>>>>>  
>>>>>>>
>>>>>>> *And please subscribe "Dev" mailing list on "tizen.org".*
>>>>>>>
>>>>>>> *https://lists.tizen.org/listinfo/dev*
>>>>>>>
>>>>>>> *I don't add any other recipients after this mail.*
>>>>>>>
>>>>>>>  
>>>>>>>
>>>>>>> @ John,
>>>>>>>
>>>>>>> Please forward this mail to IVI maintainer.
>>>>>>>
>>>>>>>  
>>>>>>>
>>>>>>> Thanks.
>>>>>>>
>>>>>>>  
>>>>>>>
>>>>>>>  
>>>>>>>
>>>>>>>  
>>>>>>>
>>>>>>>  
>>>>>>>
>>>>>>>  
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Dev mailing list
>>>>>>> Dev at lists.tizen.org <mailto:Dev at lists.tizen.org>
>>>>>>> https://lists.tizen.org/listinfo/dev
>>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Dev mailing list
>>>>> Dev at lists.tizen.org <mailto:Dev at lists.tizen.org>
>>>>> https://lists.tizen.org/listinfo/dev
>>>>>
>>>>>  
>>>>>
>>>>>  
>>>>>
>>>>>  
>>>>>
>>>>
>>>>  
>>>>
>>>>  
>>>>
>>>>  
>>>>
>>>
>>>  
>>>
>>>  
>>>
>>>  
>>>
>> 
> 
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 



More information about the Dev mailing list