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

Sangho Park sangho1206.park at samsung.com
Wed Apr 9 07:46:40 GMT 2014


Hi, Seokyeon Hwang

I’m afraid that the same performance degradation can happen in qemu 2.0
that will be released at Apr. 10. (http://wiki.qemu.org/Planning/2.0)

I think that we need to dig more this issue until next week. J

From: SeokYeon Hwang [mailto:syeon.hwang at samsung.com] 
Sent: Wednesday, April 09, 2014 3:11 PM
To: Stanislav Vorobiov; dev at lists.tizen.org; 박상호
Subject: Re: Re: [Dev] [SDK/Emulator] Tizen emulator on windows performance

 

@ stanislav,

I see. You didn't want to apply W/A patch.

And... yes, we should study win32-aio.c in more detail.

 

I didn't test 3.12 kernel on Windows host yet. I should try it.

 

@ sangho and all,

How about your opinion?

 

 

------- Original Message -------

Sender : Stanislav Vorobiov<s.vorobiov at samsung.com> Expert Engineer/SRR-
Tizen S/W Group/삼성전자

Date : 2014-04-08 19:09 (GMT+09:00)

Title : Re: [Dev] [SDK/Emulator] Tizen emulator on windows performance

 

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* : 황석연 수석보/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>
> 
> *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> 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 
>>>>>>> https://lists.tizen.org/listinfo/dev
>>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Dev mailing list
>>>>> Dev at lists.tizen.org 
>>>>> https://lists.tizen.org/listinfo/dev
>>>>>
>>>>>  
>>>>>
>>>>>  
>>>>>
>>>>>  
>>>>>
>>>>
>>>>  
>>>>
>>>>  
>>>>
>>>>  
>>>>
>>>
>>>  
>>>
>>>  
>>>
>>>  
>>>
>> 
> 
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 

 

 

 




 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.tizen.org/pipermail/dev/attachments/20140409/dcf67cbd/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.gif
Type: image/gif
Size: 10014 bytes
Desc: not available
URL: <http://lists.tizen.org/pipermail/dev/attachments/20140409/dcf67cbd/attachment-0001.gif>


More information about the Dev mailing list