Hello Rahul,

 

Thanks for the metrics. I think there is some problem with the numbers. After we rule out 196 counts of IPI, the total IPI count should also get modified, isn't it?

 

Regards,

Sarbojit

 

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

Sender : Rahul Khandelwal (Rahul Khandelwal)<Rahul.Khandelwal@spreadtrum.com>

Date : Aug 25, 2015 17:23 (GMT+05:30)

Title : RE: [PATCH 1/1] HMP: Do not send IPI if core already waked up

 

Dear All,

 

On an average we are saving around 25% of the IPIs sent to big domain CPUs. Following are the performance analysis in different cases  :

 

Case 1:

Video Recording – IPI reduced by 23.5%

IPI reduced by 23.5 %

Case 2:

                Browsing and Audio(Background) – IPI reduced by 33.11%

IPI reduced by 33.11 %

 

 

Case 3:

                Subway Surfer game – IPI reduced by 23.80%

 

Thanks,

Rahul Khandelwal

 

From: Unixman Linuxboy [mailto:unixman.linuxboy@gmail.com]
Sent: 24 August 2015 18:23
To: Jon Medhurst (Tixy)
Cc: khilman@linaro.org; Morten.Rasmussen@arm.com; vincent.guittot@linaro.org; Gaurav Jindal (Gaurav Jindal); linaro-kernel@lists.linaro.org; Rahul Khandelwal (Rahul Khandelwal); Sanjeev Yadav (Sanjeev Kumar Yadav); chris.redpath@arm.com; Patrick Bellasi; Alex.Shi@linaro.org; ganguly.s@samsung.com; sharan.allur@samsung.com
Subject: Re: [PATCH 1/1] HMP: Do not send IPI if core already waked up

 


On 19 Aug 2015 17:58, "Jon Medhurst (Tixy)" <tixy@linaro.org> wrote:
>
> Adding Patrick Bellasi to the 'to' list as he's been working on HMP with
> Chris Redpath....
>
>
> On Wed, 2015-08-19 at 05:18 +0000, Rahul Khandelwal (Rahul Khandelwal) wrote:
>
> Dear All,
>
> Please consider the  patch, It is related to HMP force up migration. It will avoid sending of unnecessary interrupts to CPUs of faster domain hence increase performance.
>
> --------------------------------------------------------------------------------------------------
> From 2d48749ac30a2c0a2ef77132f303d69605c3dd3f Mon Sep 17 00:00:00 2001
> From: rahulkhandelwal <rahul.khandelwal@spreadtrum.com>
> Date: Fri, 14 Aug 2015 16:36:17 +0800
> Subject: [PATCH 1/1] HMP: Do not send IPI if core already waked up
>
> It is possible that we are sending IPI to a cpu in faster domain which is
> already waked up by other CPU in smaller domain.
>
> HMP select the idle CPU using hmp_domain_min_load. Based on that HMP send IPI
> to the idle cpu in faster domain. There could be some latency by the core to
> wake up and set wake_for_idle_pull = 0. Next smaller cpu again check for
> idle CPU in faster domain and send IPI to already waked up CPU.
>
> For example: In Octacore system, 0-3 are slower CPUs and 4-7 are faster CPUs.
> CPU0 and CPU1 has heavy tasks and CPU4 is idle.
> CPU0 execute hmp_force_up_migration find CPU4 as idle, it send IPI to CPU4
> and return. After that CPU1 got the chance to run hmp_force_up_migration,
> it again find CPU4 as idle, send IPI to CPU4, which is not required.
>
> Signed-off-by: rahulkhandelwal <rahul.khandelwal@spreadtrum.com>
> ---
> kernel/sched/fair.c |    5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index 1baf641..388836c 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -7200,6 +7200,11 @@ static void hmp_force_up_migration(int this_cpu)
>                                }
>                                p = task_of(curr);
>                                if (hmp_up_migration(cpu, &target_cpu, curr)) {
> +                                             if (cpu_rq(target_cpu)->wake_for_idle_pull == 1) {
> +                                                             raw_spin_unlock_irqrestore(&target->lock, flags);
> +                                                             spin_unlock(&hmp_force_migration);
> +                                                             return;
> +                                             }
>                                                cpu_rq(target_cpu)->wake_for_idle_pull = 1;
>                                                raw_spin_unlock_irqrestore(&target->lock, flags);
>                                                spin_unlock(&hmp_force_migration);

Can you please share the actual performance numbers gained by this patch?

> --
> 1.7.9.5
>
>
>
>
> _______________________________________________
> linaro-kernel mailing list
> linaro-kernel@lists.linaro.org
> https://lists.linaro.org/mailman/listinfo/linaro-kernel

 

감사합니다

사보짓   선임   삼성 전자

----------------------------------------------------------------------+

The Tao lies beyond Yin and Yang. It is silent and still as a pool of water.      |

It does not seek fame, therefore nobody knows its presence.                       |

It does not seek fortune, for it is complete within itself.                       |

It exists beyond space and time.                                                  |

----------------------------------------------------------------------+