[PATCH 2/2] gta02-drm-defconfig: enable FCSE and PREEMPT

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH 2/2] gta02-drm-defconfig: enable FCSE and PREEMPT

Martix
Enables FCSE and PREEMPT to make low-latency system.

0002-gta02-drm-defconfig-enable-FCSE-and-PREEMPT.patch

Sending as attachment to prevent line wrapping.

0002-gta02-drm-defconfig-enable-FCSE-and-PREEMPT.patch (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH 2/2] gta02-drm-defconfig: enable FCSE and PREEMPT

Gennady Kupava
В Срд, 01/09/2010 в 17:00 +0200, Martix пишет:
> Enables FCSE and PREEMPT to make low-latency system.

> 0002-gta02-drm-defconfig-enable-FCSE-and-PREEMPT.patch

Why do you think enabling PREEMPT will help you? Low latency to what?

I mean which event do you want to proceed with low latency?

Gennady


Reply | Threaded
Open this post in threaded view
|

Re: [PATCH 2/2] gta02-drm-defconfig: enable FCSE and PREEMPT

Martix
You meant hardware event? I am talking about common multitasking
response times, when using more applications on FR.

2010/9/1 Gennady Kupava <[hidden email]>:

> В Срд, 01/09/2010 в 17:00 +0200, Martix пишет:
>> Enables FCSE and PREEMPT to make low-latency system.
>
>> 0002-gta02-drm-defconfig-enable-FCSE-and-PREEMPT.patch
>
> Why do you think enabling PREEMPT will help you? Low latency to what?
>
> I mean which event do you want to proceed with low latency?
>
> Gennady
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH 2/2] gta02-drm-defconfig: enable FCSE and PREEMPT

Gennady Kupava
> You meant hardware event? I am talking about common multitasking
> response times, when using more applications on FR.

What is meaming of 'common multitasking response time'?
I have 100Mhz kernel here, and i can't notice any slowdowns.

Response to what? Can you describe or provide example?

Have you tried kernel with and without preempt? Can you feel any
difference? Did you done some testing?

Gennady


Reply | Threaded
Open this post in threaded view
|

Re: [PATCH 2/2] gta02-drm-defconfig: enable FCSE and PREEMPT

Gilles Chanteperdrix
In reply to this post by Martix
On Wed, Sep 01, 2010 at 05:00:28PM +0200, Martix wrote:
> Enables FCSE and PREEMPT to make low-latency system.
>
> 0002-gta02-drm-defconfig-enable-FCSE-and-PREEMPT.patch
>
> Sending as attachment to prevent line wrapping.

> Enables FCSE and PREEMPT to make low-latency system.
>
> Signed-off-by: Martin Holec <[hidden email]>
> ---
>  arch/arm/configs/gta02_drm_defconfig |   16 ++++++++++++----
>  1 files changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm/configs/gta02_drm_defconfig b/arch/arm/configs/gta02_drm_defconfig
> index 39a933c..97bc636 100644
> --- a/arch/arm/configs/gta02_drm_defconfig
> +++ b/arch/arm/configs/gta02_drm_defconfig
> @@ -1,7 +1,7 @@
>  #
>  # Automatically generated make config: don't edit
> -# Linux kernel version: 2.6.32.16
> -# Wed Jul 21 13:53:15 2010
> +# Linux kernel version: 2.6.32.21
> +# Wed Sep  1 16:43:37 2010
>  #
>  CONFIG_ARM=y
>  CONFIG_HAVE_PWM=y
> @@ -30,6 +30,7 @@ CONFIG_CONSTRUCTORS=y
>  #
>  CONFIG_EXPERIMENTAL=y
>  CONFIG_BROKEN_ON_SMP=y
> +CONFIG_LOCK_KERNEL=y
>  CONFIG_INIT_ENV_ARG_LIMIT=32
>  CONFIG_LOCALVERSION=""
>  # CONFIG_LOCALVERSION_AUTO is not set
> @@ -292,6 +293,13 @@ CONFIG_ARM_THUMB=y
>  # CONFIG_CPU_DCACHE_DISABLE is not set
>  # CONFIG_CPU_DCACHE_WRITETHROUGH is not set
>  CONFIG_ARM_L1_CACHE_SHIFT=5
> +CONFIG_ARM_FCSE=y
> +# CONFIG_ARM_FCSE_GUARANTEED is not set
> +CONFIG_ARM_FCSE_BEST_EFFORT=y
> +# CONFIG_ARM_FCSE_DYNPID is not set
> +CONFIG_ARM_FCSE_PREEMPT_FLUSH=y
> +# CONFIG_ARM_FCSE_MESSAGES is not set
> +# CONFIG_ARM_FCSE_DEBUG is not set

It is not my business, but since I am CC'ed, I dare.
You should probably enable FCSE_MESSAGES, as they may help you find
issues caused by the FCSE patch (such as stack size limitaions).

For performances issues, I would rather disable PREEMPT_FLUSH
for lowest overhead (after all, caches flushes take less than 200 us, so
this should not be a humanly noticeable delay)

I would also test the DYNPID options with the applications you use.

--
                                            Gilles.

Reply | Threaded
Open this post in threaded view
|

[PATCH 2/2] gta02-drm-defconfig: enable FCSE and PREEMPT

Martix
I didn't noticed any segfaults caused by FCSE with this patch version,
but if FCSE_MESSAGES isn't produce much overhead, it could be enabled.

I enabled PREEMPT_FLUSH, when using PREEMPT in expectation of better
response times. We need real application benchmarks to decide, what is
better for mobile phone/PDA like Neo FreeRunner.

What are DYNPID benefits?

2010/9/1 Gilles Chanteperdrix <[hidden email]>:

> On Wed, Sep 01, 2010 at 05:00:28PM +0200, Martix wrote:
>> Enables FCSE and PREEMPT to make low-latency system.
>>
>> 0002-gta02-drm-defconfig-enable-FCSE-and-PREEMPT.patch
>>
>> Sending as attachment to prevent line wrapping.
>
>> Enables FCSE and PREEMPT to make low-latency system.
>>
>> Signed-off-by: Martin Holec <[hidden email]>
>> ---
>>  arch/arm/configs/gta02_drm_defconfig |   16 ++++++++++++----
>>  1 files changed, 12 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/arm/configs/gta02_drm_defconfig b/arch/arm/configs/gta02_drm_defconfig
>> index 39a933c..97bc636 100644
>> --- a/arch/arm/configs/gta02_drm_defconfig
>> +++ b/arch/arm/configs/gta02_drm_defconfig
>> @@ -1,7 +1,7 @@
>>  #
>>  # Automatically generated make config: don't edit
>> -# Linux kernel version: 2.6.32.16
>> -# Wed Jul 21 13:53:15 2010
>> +# Linux kernel version: 2.6.32.21
>> +# Wed Sep  1 16:43:37 2010
>>  #
>>  CONFIG_ARM=y
>>  CONFIG_HAVE_PWM=y
>> @@ -30,6 +30,7 @@ CONFIG_CONSTRUCTORS=y
>>  #
>>  CONFIG_EXPERIMENTAL=y
>>  CONFIG_BROKEN_ON_SMP=y
>> +CONFIG_LOCK_KERNEL=y
>>  CONFIG_INIT_ENV_ARG_LIMIT=32
>>  CONFIG_LOCALVERSION=""
>>  # CONFIG_LOCALVERSION_AUTO is not set
>> @@ -292,6 +293,13 @@ CONFIG_ARM_THUMB=y
>>  # CONFIG_CPU_DCACHE_DISABLE is not set
>>  # CONFIG_CPU_DCACHE_WRITETHROUGH is not set
>>  CONFIG_ARM_L1_CACHE_SHIFT=5
>> +CONFIG_ARM_FCSE=y
>> +# CONFIG_ARM_FCSE_GUARANTEED is not set
>> +CONFIG_ARM_FCSE_BEST_EFFORT=y
>> +# CONFIG_ARM_FCSE_DYNPID is not set
>> +CONFIG_ARM_FCSE_PREEMPT_FLUSH=y
>> +# CONFIG_ARM_FCSE_MESSAGES is not set
>> +# CONFIG_ARM_FCSE_DEBUG is not set
>
> It is not my business, but since I am CC'ed, I dare.
> You should probably enable FCSE_MESSAGES, as they may help you find
> issues caused by the FCSE patch (such as stack size limitaions).
>
> For performances issues, I would rather disable PREEMPT_FLUSH
> for lowest overhead (after all, caches flushes take less than 200 us, so
> this should not be a humanly noticeable delay)
>
> I would also test the DYNPID options with the applications you use.
>
> --
>                                            Gilles.
>

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH 2/2] gta02-drm-defconfig: enable FCSE and PREEMPT

Martix
In reply to this post by Gennady Kupava
Hi,

I have problem with missing option for ar when running lmbench on SHR.
I can try it with Qt Moko, but I'm leaving for two weeks and I don't
know whether I'll have enough time to do it before I return.

Yes, X11 performance is mostly about Glamo, but X11 is also protocol
which consumes CPU and can be affected by overall system latency, when
running multiple applications. I am looking around at benchmark, which
could compare real application use cases.

My only case is low latency mobile phone/PDA.

May I ask what is your reason for keeping PREEMPT disabled? I thought
the reason was too expensive (time consuming) context switching.
PREEMPT causes more frequent context switches, which was expensive
without FCSE, but situation has changed. Now with FCSE we need less
time for context switch and we don't need flush cache at every context
switch. So, we can use low latency advantages.

I would like to see also benchmark numbers instead of feeling or user
experience. I found interbench. [1] I'll use it to provide some basic
result, but it would be nice to have proper EFL/FSO/D-Bus benchmark
for testing and comparing our Neo FreeRunner use cases on multiple SW
configurations.

[1] http://users.on.net/~ckolivas/interbench/

Regards,

Martix

2010/9/1 Gennady Kupava <[hidden email]>:

> Hm, hi.
>
> I really not sure how to test it in a best way. I am really ok with any
> method which can show clear benefit.
>
> Also, i think if lmbench is hard to run in shr (strange, i think Jama
> told shr has gcc and make, what is else need?), why not do testing in
> some other distro. for example qtmoko is ready debian image, so you can
> just run tests. anyway you need to disable all shr services before
> running test.
>
> x11 bechmark will show you glamo speed. efl? hm... may be some dbus
> benchmark... i have no other idea.
>
> my position, is that PREEMPT should be enabled only if it is really
> needed. So, i am trying to understand in which particular case (one for
> the beginning!) it is really need.
>
> if you don't know i am the person who insisted on disabling PREEMPT, but
> consider me open. i'd be like to change my opinion, but so far i saw no
> arguments expect something like 'it is cool'.
>
> Gennady
>
> В Срд, 01/09/2010 в 19:38 +0200, Martix пишет:
>> Could you suggest application benchmarks which should I try, maybe
>> some EFL or X11 based benchmark? lmbench is broken on SHR.
>>
>> Regards,
>>
>> Martix
>>
>> 2010/9/1 Gennady Kupava <[hidden email]>:
>> >> You meant hardware event? I am talking about common multitasking
>> >> response times, when using more applications on FR.
>> >
>> > What is meaming of 'common multitasking response time'?
>> > I have 100Mhz kernel here, and i can't notice any slowdowns.
>> >
>> > Response to what? Can you describe or provide example?
>> >
>> > Have you tried kernel with and without preempt? Can you feel any
>> > difference? Did you done some testing?
>> >
>> > Gennady
>> >
>> >
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH 2/2] gta02-drm-defconfig: enable FCSE and PREEMPT

Gennady Kupava
Hi, Martix,

В Чтв, 02/09/2010 в 01:09 +0200, Martix пишет:

> Hi,
>
> I have problem with missing option for ar when running lmbench on SHR.
> I can try it with Qt Moko, but I'm leaving for two weeks and I don't
> know whether I'll have enough time to do it before I return.
>
> Yes, X11 performance is mostly about Glamo, but X11 is also protocol
> which consumes CPU and can be affected by overall system latency, when
> running multiple applications. I am looking around at benchmark, which
> could compare real application use cases.

Would be also good to measure

>
> My only case is low latency mobile phone/PDA.

Question is what is your definition of 'low latency'. I think that
PREEMPT should be enabled only in case of:
1. _problems_ with latency. Do we have any?
2. overall feeling. do you really can notice defference between kernels
with and without PREEMPT while working with you favorite distribution?

>
> May I ask what is your reason for keeping PREEMPT disabled? I thought
> the reason was too expensive (time consuming) context switching.
> PREEMPT causes more frequent context switches, which was expensive
> without FCSE, but situation has changed. Now with FCSE we need less
> time for context switch and we don't need flush cache at every context
> switch. So, we can use low latency advantages.

Keeping PREEMPT on complicates kernel, influencing code complexity and
thus affecting speed without any benefit. Preemption effectively makes
your kernel SMP kernel. While on modern high speed PCs this complication
is negligible, on our embedded device which is much slower good idea to
take this into account. Also, we have 200Hz timer, which provide far
more than enought context switches. Also, using FCSE patch at it current
form DO NOT fixes problem for _all_ applications, only fixing it for
small subset - for limited amount of applications not exceeding some
limited memory size. So, switching to and from your 'big' main thing
like browser or almost anything with big gui still costs like before.

>
> I would like to see also benchmark numbers instead of feeling or user
> experience. I found interbench. [1] I'll use it to provide some basic
> result, but it would be nice to have proper EFL/FSO/D-Bus benchmark
> for testing and comparing our Neo FreeRunner use cases on multiple SW
> configurations.
>
> [1] http://users.on.net/~ckolivas/interbench/

Thinking a bit more on topic, i realized that main thing really is
existace of problem or noticeable difference in everyday use. if not, no
reason to enable it.

Regards,

Gennady