Re: [PATCH RFC 11/12] time: Convert xen_read_wallclock() to use timespec64

2014-10-29 Thread Xunlei Pang
On 27 October 2014 23:35, Stefano Stabellini stefano.stabell...@eu.citrix.com wrote: On Mon, 27 Oct 2014, pang.xunlei wrote: The kernel uses 32-bit signed value(time_t) for seconds since 1970-01-01:00:00:00, so it will overflow at 2038-01-19 03:14:08 on 32-bit systems. We call this 2038

Re: [PATCH] time: Fix sign bug in ntp mult overflow warning

2014-12-02 Thread Xunlei Pang
On 2 December 2014 at 17:32, Jeremiah Mahler jmmah...@gmail.com wrote: John, On Mon, Nov 24, 2014 at 08:35:45PM -0800, John Stultz wrote: In commit 6067dc5a8c2b (time: Avoid possible NTP adjustment mult overflow) a new check was added to watch for adjustments that could cause a mult

[PATCH] sched/deadline: Add update_rq_clock() in yield_task_dl()

2014-12-18 Thread Xunlei Pang
should add update_rq_clock() before update_curr_dl(). Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- kernel/sched/deadline.c | 4 1 file changed, 4 insertions(+) diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index e5db8c6..5648e62 100644 --- a/kernel/sched/deadline.c

[PATCH] sched/fair: Fix the dealing with decay_count in __synchronize_entity_decay()

2014-12-16 Thread Xunlei Pang
() will treat it as a blocked task due to its non-zero decay_count, thereby adding its load to cfs_rq-removed_load wrongly. Thus, we must zero se-avg.decay_count in this case as well. Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- kernel/sched/fair.c | 2 +- 1 file changed, 1 insertion

[RFC PATCH 0/4] Add rtc 64bit epoch offset for rtc hardware that only provides 32bit time

2014-11-27 Thread Xunlei Pang
...@linaro.org Xunlei Pang (4): rtc/mxc: Convert get_alarm_or_time()/set_alarm_or_time() to use time64_t rtc: Convert rtc_class_ops.set_mmss() to use time64_t rtc/lib: Provide interfaces to map between 32bit hardware and 64bit time rtc/imxdi: Update driver to address time issues arch/alpha

[RFC PATCH 2/4] rtc: Convert rtc_class_ops.set_mmss() to use time64_t

2014-11-27 Thread Xunlei Pang
arnd.bergm...@linaro.org Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- This patch leaves some y2106 issue tags in the problematic drivers whose rtc hardware only provides 32bit time. The handling of these problematic drivers will be left to the succeeding patch series. But, to better understand

[RFC PATCH 4/4] rtc/imxdi: Update driver to address time issues

2014-11-27 Thread Xunlei Pang
()/rtc_time64_to_hw32() - Use rtc_time64_to_hw32() to handle dryice_rtc_set_mmss() After this patch, the drivers should not have any remaining y2038/y2106 issues. Cc: John Stultz john.stu...@linaro.org Cc: Arnd Bergmann arnd.bergm...@linaro.org Signed-off-by: Xunlei Pang pang.xun...@linaro.org

[RFC PATCH 3/4] rtc/lib: Provide interfaces to map between 32bit hardware and 64bit time

2014-11-27 Thread Xunlei Pang
...@linaro.org Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- drivers/rtc/class.c | 25 + drivers/rtc/rtc-lib.c | 28 include/linux/rtc.h |3 +++ 3 files changed, 56 insertions(+) diff --git a/drivers/rtc/class.c b/drivers/rtc

[RFC PATCH 1/4] rtc/mxc: Convert get_alarm_or_time()/set_alarm_or_time() to use time64_t

2014-11-27 Thread Xunlei Pang
internal interfaces of mxc to use safe time64_t first, so as to make some preparations for the rtc_class_ops.set_mmss() conversion. Currently, mxc is the only driver with such issue. Cc: John Stultz john.stu...@linaro.org Cc: Arnd Bergmann arnd.bergm...@linaro.org Signed-off-by: Xunlei Pang

[PATCH 1/2] rtc/ab8500: set uie_unsupported flag

2014-12-08 Thread Xunlei Pang
to timer2 with the earliest expires in the timerqueue. So, rtc drivers must set this flag if they don't support UIE. Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- drivers/rtc/rtc-ab8500.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/rtc/rtc-ab8500.c b/drivers/rtc/rtc-ab8500.c

[PATCH 2/2] rtc: Refine rtc_timer_do_work() to consider other set alarm failures

2014-12-08 Thread Xunlei Pang
time, so the alarm irq will never be programmed. When such failures happen, this patch will retry __rtc_set_alarm(), if still can't program the alarm time, it will remove current rtc_timer from timerqueue and fetch next one, thus preventing it from affecting other rtc timers. Signed-off-by: Xunlei

[PATCH v2 1/3] time: Don't bother to run rtc_resume() for the nonstop clocksource

2015-01-22 Thread Xunlei Pang
in the rtc_resume() logic thinking no one has set the time and it then will over-write the suspend time again, which is not necessary and only increases clock error. So, fix this for rtc_resume(). Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- v1-v2: Modify according to Thomas' feedback

[PATCH v2 3/3] time: clocksource: Add a comment to CLOCK_SOURCE_SUSPEND_NONSTOP

2015-01-22 Thread Xunlei Pang
to indicate that if have this flag set, people are aware that this nonstop clocksource won't wrap back during system suspend/resume. Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- include/linux/clocksource.h | 5 + 1 file changed, 5 insertions(+) diff --git a/include/linux/clocksource.h

[PATCH v2 2/3] rtc: Remove redundant rtc_valid_tm() from rtc_resume()

2015-01-22 Thread Xunlei Pang
rtc_read_time() has already judged valid tm by rtc_valid_tm(), so just remove it. Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- drivers/rtc/class.c | 4 1 file changed, 4 deletions(-) diff --git a/drivers/rtc/class.c b/drivers/rtc/class.c index 6100af5..7db4c90 100644 --- a/drivers

Re: [PATCH v2 3/3] time: clocksource: Add a comment to CLOCK_SOURCE_SUSPEND_NONSTOP

2015-01-23 Thread Xunlei Pang
Hi Thomas, On 23 January 2015 at 05:07, Thomas Gleixner t...@linutronix.de wrote: On Thu, 22 Jan 2015, Xunlei Pang wrote: When doing timekeeping_resume(), if the nonstop clocksource wraps back, cycle_delta will miss the wrap time. It's hard to determine the right CLOCKSOURCE_MASK(xxx

Re: [PATCH v2 1/3] time: Don't bother to run rtc_resume() for the nonstop clocksource

2015-01-23 Thread Xunlei Pang
On 23 January 2015 at 02:30, John Stultz john.stu...@linaro.org wrote: On Thu, Jan 22, 2015 at 4:01 AM, Xunlei Pang pang.xun...@linaro.org wrote: If a system does not provide a persistent_clock(), the time will be updated on resume by rtc_resume(). With the addition of the non-stop

Re: [PATCH 1/5] sched/deadline: Modify cpudl::free_cpus to reflect rd-online

2015-01-23 Thread Xunlei Pang
Hi Peter, Juri, Could you please give some comments on these 5 patches? Thanks for your time. Regards, Xunlei On 19 January 2015 at 12:49, Xunlei Pang pang.xun...@linaro.org wrote: Currently, cpudl::free_cpus contains all cpus during init, see cpudl_init(). When calling cpudl_find(), we have

[PATCH] sched/rt: Check to push the task when changing its affinity

2015-02-03 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org We may suffer from extra rt overload rq due to the affinity, so when the affinity of any runnable rt task is changed, we should check to trigger balancing, otherwise it will cause some unnecessary delayed real-time response. Unfortunately, current RT

Re: [PATCH RESEND 1/2] sched/rt: Check to push the task when changing its affinity

2015-02-04 Thread Xunlei Pang
Hi Steve, On 4 February 2015 at 11:14, Steven Rostedt rost...@goodmis.org wrote: On Wed, 4 Feb 2015 09:12:20 +0800 Xunlei Pang xlp...@126.com wrote: From: Xunlei Pang pang.xun...@linaro.org + */ + cpumask_copy(p-cpus_allowed, new_mask); + p

Re: [PATCH RESEND 2/2] sched/rt: Add check_preempt_equal_prio() logic in pick_next_task_rt()

2015-02-04 Thread Xunlei Pang
Hi Steve, On 4 February 2015 at 11:17, Steven Rostedt rost...@goodmis.org wrote: On Wed, 4 Feb 2015 09:12:21 +0800 Xunlei Pang xlp...@126.com wrote: From: Xunlei Pang pang.xun...@linaro.org check_preempt_curr() doesn't call sched_class::check_preempt_curr when the class of current

Re: [PATCH] sched/deadline: Add update_rq_clock() in yield_task_dl()

2015-02-04 Thread Xunlei Pang
On 4 February 2015 at 21:28, Xunlei Pang pang.xun...@linaro.org wrote: Hi Kirill, I've also sent out this similar patch to yours before, and I agree with you on this point :-) But with the latest modification which peter made, ( see: cebde6d681aa45f96111cfcffc1544cf2a0454ff ) My mistake

Re: [PATCH v3 1/2] time: Don't bother to run rtc_resume() for the nonstop clocksource

2015-02-04 Thread Xunlei Pang
Ping ... On 29 January 2015 at 23:59, Xunlei Pang xlp...@126.com wrote: From: Xunlei Pang pang.xun...@linaro.org If a system does not provide a persistent_clock(), the time will be updated on resume by rtc_resume(). With the addition of the non-stop clocksources for suspend timing, those

Re: [PATCH 5/5] sched/rt: Optimize find_lowest_rq() to select a cache hot cpu

2015-02-04 Thread Xunlei Pang
Hi Peter, Steve, Thanks for all your valuable sharing. I'll keep them in mind. Regards, Xunlei On 30 January 2015 at 03:23, Peter Zijlstra pet...@infradead.org wrote: On Fri, Jan 30, 2015 at 12:42:47AM +0800, Xunlei Pang wrote: On 27 January 2015 at 22:56, Steven Rostedt rost...@goodmis.org

Re: [PATCH] sched/deadline: Add update_rq_clock() in yield_task_dl()

2015-02-04 Thread Xunlei Pang
, Xunlei Pang pang.xun...@linaro.org wrote: yield_task_dl() calls update_curr_dl() which calls start_dl_timer() to throttle current task. But yield_task_dl() doesn't update the rq clock which will cause start_dl_timer() to set the wrong dl_timer which may be much later than current deadline time

[PATCH v2 1/2] sched/rt: Check to push the task when changing its affinity

2015-02-05 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org We may suffer from extra rt overload rq due to the affinity, so when the affinity of any runnable rt task is changed, we should check to trigger balancing, otherwise it will cause some unnecessary delayed real-time response. Unfortunately, current RT

[PATCH v2 2/2] sched/rt: Add check_preempt_equal_prio() logic in pick_next_task_rt()

2015-02-05 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org check_preempt_curr() doesn't call sched_class::check_preempt_curr when the class of current is a higher level. So if there is a DL task running when doing this for RT, check_preempt_equal_prio() will definitely miss, which may result in some response

Re: [PATCH v2 1/2] sched/rt: Check to push the task when changing its affinity

2015-02-08 Thread Xunlei Pang
On 8 February 2015 at 22:55, Xunlei Pang pang.xun...@linaro.org wrote: Hi Steve, On 7 February 2015 at 05:09, Steven Rostedt rost...@goodmis.org wrote: On Thu, 5 Feb 2015 23:59:33 +0800 if (task_running(rq, p)) { if (cpumask_test_cpu() cpupri_find

[PATCH v3 1/2] sched/rt: Check to push the task when changing its affinity

2015-02-08 Thread Xunlei Pang
schedule(), this definitely causes some/big response latency for rt2. So, when doing set_cpus_allowed_rt(), if detecting such cases, check to trigger a push behaviour. Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- v2, v3: Refine according to Steven Rostedt's comments. kernel/sched/rt.c | 78

[PATCH v3 2/2] sched/rt: Add check_preempt_equal_prio() logic in pick_next_task_rt()

2015-02-08 Thread Xunlei Pang
check_preempt_equal_prio() here is that we just don't care whether RT2 is migratable. - Otherwise, if there's no rt task with the same priority as RT1, RT1 will still be picked as the running task after the requeuing. Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- kernel/sched/rt.c | 16

Re: [PATCH v2 1/2] sched/rt: Check to push the task when changing its affinity

2015-02-08 Thread Xunlei Pang
Hi Steve, On 7 February 2015 at 05:09, Steven Rostedt rost...@goodmis.org wrote: On Thu, 5 Feb 2015 23:59:33 +0800 + + if (task_running(rq, p) + cpumask_test_cpu(task_cpu(p), new_mask) Why the check for task_cpu being in new_mask? If the current cpu of this

[PATCH RESEND 2/2] sched/rt: Add check_preempt_equal_prio() logic in pick_next_task_rt()

2015-02-03 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org check_preempt_curr() doesn't call sched_class::check_preempt_curr when the class of current is a higher level. So if there is a DL task running when doing this for RT, check_preempt_equal_prio() will definitely miss, which may result in some response

[PATCH RESEND 1/2] sched/rt: Check to push the task when changing its affinity

2015-02-03 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org We may suffer from extra rt overload rq due to the affinity, so when the affinity of any runnable rt task is changed, we should check to trigger balancing, otherwise it will cause some unnecessary delayed real-time response. Unfortunately, current RT

[PATCH 4/5] sched/rt: Consider deadline tasks in cpupri_find()

2015-01-18 Thread Xunlei Pang
of percpu local_cpu_mask to save an extra mask allocation, so always passing a non-NULL lowest_mask to cpupri_find(). Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- kernel/sched/core.c | 2 ++ kernel/sched/cpupri.c | 22 +- kernel/sched/cpupri.h | 1 + kernel/sched/rt.c

[PATCH 2/5] sched/deadline: Remove cpu_active_mask from cpudl_find()

2015-01-18 Thread Xunlei Pang
onto a dying cpu) which rq_offline_dl() can't handle timely, then it can be handled through _cpu_down()-...-multi_cpu_stop()-migration_call() -migrate_tasks(), preventing the task from hanging on the dead cpu. Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- kernel/sched/cpudeadline.c | 3

[PATCH 3/5] sched/deadline: Fix wrong cpudl_find() in check_preempt_equal_dl()

2015-01-18 Thread Xunlei Pang
In check_preempt_equal_dl(), cpudl_find() is called with a NULL later_mask, thus cpudl_find() here doesn't check cpudl::free_cpus at all. This patch takles this issue by always passing a non-NULL later_mask to cpudl_find(), thereby fixing this issue. Signed-off-by: Xunlei Pang pang.xun

[PATCH 5/5] sched/rt: Optimize find_lowest_rq() to select a cache hot cpu

2015-01-18 Thread Xunlei Pang
() in passing. Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- kernel/sched/rt.c | 17 + 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index d28cfa4..e6a42e6 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c

[PATCH 1/5] sched/deadline: Modify cpudl::free_cpus to reflect rd-online

2015-01-18 Thread Xunlei Pang
(). This patch adds cpudl_set_freecpu() and cpudl_clear_freecpu() for changing cpudl::free_cpus when doing rq_online_dl()/rq_offline_dl(), so we can avoid the rd-span operation when calling cpudl_find() in find_later_rq(). Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- kernel/sched/cpudeadline.c

[RFC PATCH v3 0/8] Provide y2038/y2106 safe rtc_class_ops.set_mmss64()

2015-01-20 Thread Xunlei Pang
: https://lkml.org/lkml/2014/11/27/341 [3] v2: https://lkml.org/lkml/2015/1/13/403 v2-v3: * Remove get_seconds64(), use ktime_get_real_seconds() to replace get_seconds() * Refine rtc-test.c Xunlei Pang (8): rtc: Provide y2038 safe rtc_class_ops.set_mmss() replacement rtc/test: Update driver

[RFC PATCH v3 1/8] rtc: Provide y2038 safe rtc_class_ops.set_mmss() replacement

2015-01-20 Thread Xunlei Pang
to use set_mmss64(), it can be removed when having no users. Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- drivers/rtc/interface.c | 7 ++- drivers/rtc/systohc.c | 5 - include/linux/rtc.h | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/rtc

[PATCH 2/3] rtc: Remove redundant rtc_valid_tm() from rtc_resume()

2015-01-20 Thread Xunlei Pang
rtc_read_time() has already judged valid tm by rtc_valid_tm(), so just remove it. Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- drivers/rtc/class.c | 4 1 file changed, 4 deletions(-) diff --git a/drivers/rtc/class.c b/drivers/rtc/class.c index c8f35a5..5953225 100644 --- a/drivers

[PATCH 3/3] time: clocksource: Add a comment to CLOCK_SOURCE_SUSPEND_NONSTOP

2015-01-20 Thread Xunlei Pang
When doing timekeeping_resume(), if the nonstop clocksource wraps back, cycle_delta will miss the wrap time. So add a comment to indicate that if have this flag set, you are aware that this nonstop clocksource won't wrap during suspension. Signed-off-by: Xunlei Pang pang.xun...@linaro.org

[PATCH 1/3] time: Don't bother to run rtc_resume() for nonstop clocksource

2015-01-20 Thread Xunlei Pang
in the rtc_resume() logic thinking no one has set the time and it then will over-write the suspend time again, which is not necessary and only increases clock error. So, fix this for rtc_resume(). Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- drivers/rtc/class.c | 2 +- include/linux

[RFC PATCH v3 6/8] rtc/mxc: Convert get_alarm_or_time()/set_alarm_or_time() to use time64_t

2015-01-20 Thread Xunlei Pang
. Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- drivers/rtc/rtc-mxc.c | 29 ++--- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/drivers/rtc/rtc-mxc.c b/drivers/rtc/rtc-mxc.c index a7b218f..83cba23 100644 --- a/drivers/rtc/rtc-mxc.c +++ b/drivers/rtc

[RFC PATCH v3 8/8] alpha: rtc: change to use rtc_class_ops's set_mmss64()

2015-01-20 Thread Xunlei Pang
change alpha_rtc_set_mmss() and remote_set_mmss() to use rtc_class_ops's set_mmss64(). Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- arch/alpha/kernel/rtc.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/alpha/kernel/rtc.c b/arch/alpha/kernel/rtc.c index

[RFC PATCH v3 3/8] rtc/ab3100: Update driver to address y2038/y2106 issues

2015-01-20 Thread Xunlei Pang
remaining y2038/y2106 issues. Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- drivers/rtc/rtc-ab3100.c | 55 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/drivers/rtc/rtc-ab3100.c b/drivers/rtc/rtc-ab3100.c index 1d0340f

[RFC PATCH v3 7/8] rtc/mxc: Update driver to address y2038/y2106 issues

2015-01-20 Thread Xunlei Pang
remaining y2038/y2106 issues. Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- drivers/rtc/rtc-mxc.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/rtc/rtc-mxc.c b/drivers/rtc/rtc-mxc.c index 83cba23..09d422b 100644 --- a/drivers/rtc/rtc-mxc.c +++ b/drivers

[RFC PATCH v3 2/8] rtc/test: Update driver to address y2038/y2106 issues

2015-01-20 Thread Xunlei Pang
module parameter. Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- drivers/rtc/rtc-test.c | 19 +-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/drivers/rtc/rtc-test.c b/drivers/rtc/rtc-test.c index 8f86fa9..3a2da4c 100644 --- a/drivers/rtc/rtc-test.c +++ b

[RFC PATCH v3 4/8] rtc/mc13xxx: Update driver to address y2038/y2106 issues

2015-01-20 Thread Xunlei Pang
-by: Xunlei Pang pang.xun...@linaro.org --- drivers/rtc/rtc-mc13xxx.c | 32 ++-- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/drivers/rtc/rtc-mc13xxx.c b/drivers/rtc/rtc-mc13xxx.c index 5bce904b..32df1d8 100644 --- a/drivers/rtc/rtc-mc13xxx.c +++ b/drivers/rtc

[RFC PATCH v3 5/8] rtc/mxc: Modify rtc_update_alarm() not to touch the alarm time

2015-01-20 Thread Xunlei Pang
rtc_class_ops's set_alarm() shouldn't deal with the alarm date, as this is handled in the rtc core. See rtc_dev_ioctl()'s RTC_ALM_SET and RTC_WKALM_SET cases. Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- drivers/rtc/rtc-mxc.c | 22 -- 1 file changed, 4 insertions

[PATCH 3/5] rtc: Modify rtc_hctosys() to address y2038 issues

2015-01-21 Thread Xunlei Pang
john.stu...@linaro.org Reviewed-by: Arnd Bergmann arnd.bergm...@linaro.org Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- drivers/rtc/hctosys.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/rtc/hctosys.c b/drivers/rtc/hctosys.c index 4aa60d7..2153b52 100644

[PATCH 5/5] rtc: Convert rtc_set_ntp_time() to use timespec64

2015-01-21 Thread Xunlei Pang
arnd.bergm...@linaro.org Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- drivers/rtc/systohc.c | 6 +++--- include/linux/rtc.h | 2 +- kernel/time/ntp.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/rtc/systohc.c b/drivers/rtc/systohc.c index e34a07b

[PATCH 4/5] rtc: Remove redundant rtc_valid_tm() from rtc_hctosys()

2015-01-21 Thread Xunlei Pang
rtc_read_time() has already judged valid tm by rtc_valid_tm(), so just remove it. Reviewed-by: John Stultz john.stu...@linaro.org Reviewed-by: Arnd Bergmann arnd.bergm...@linaro.org Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- drivers/rtc/hctosys.c | 8 1 file changed, 8

[PATCH 2/5] drivers/rtc/rtc-dev.c: Update code to use y2038-safe time interfaces

2015-01-21 Thread Xunlei Pang
-off-by: Xunlei Pang pang.xun...@linaro.org --- drivers/rtc/rtc-dev.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/rtc/rtc-dev.c b/drivers/rtc/rtc-dev.c index d049393..799c34b 100644 --- a/drivers/rtc/rtc-dev.c +++ b/drivers/rtc/rtc-dev.c @@ -304,12 +304,12

[PATCH 1/5] drivers/rtc/interface.c: Update code to use y2038-safe time interfaces

2015-01-21 Thread Xunlei Pang
-off-by: Xunlei Pang pang.xun...@linaro.org --- drivers/rtc/interface.c | 22 ++ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/drivers/rtc/interface.c b/drivers/rtc/interface.c index db44df8..c6be2bb 100644 --- a/drivers/rtc/interface.c +++ b/drivers/rtc

Re: [RFC PATCH v2 3/9] rtc/test: Update driver to address y2038/y2106 issues

2015-01-16 Thread Xunlei Pang
On 14 January 2015 at 23:39, Alessandro Zummo a.zu...@towertech.it wrote: On Wed, 14 Jan 2015 23:26:37 +0800 Xunlei Pang pang.xun...@linaro.org wrote: But on the other hand, we will have no test for set_mmss64(), because adding the set_mmss64() will make set_mmss() dysfunctional. add

Re: [RFC PATCH v2 3/9] rtc/test: Update driver to address y2038/y2106 issues

2015-01-14 Thread Xunlei Pang
On 14 January 2015 at 23:03, Alessandro Zummo a.zu...@towertech.it wrote: On Wed, 14 Jan 2015 22:56:15 +0800 Xunlei Pang pang.xun...@linaro.org wrote: We want to do away with set_mmss() eventually, time64 is the final version, so I think this would be ok. We'll get rid of set_mmss() from

Re: [RFC PATCH v2 5/9] rtc/mc13xxx: Update driver to address y2038/y2106 issues

2015-01-14 Thread Xunlei Pang
Cc Uwe Kleine-Koenig u.kleine-koe...@pengutronix.de On 13 January 2015 at 23:44, Xunlei Pang xlp...@126.com wrote: From: Xunlei Pang pang.xun...@linaro.org This driver has a number of y2038/y2106 issues. This patch resolves them by: - Replace rtc_time_to_tm() with rtc_time64_to_tm

Re: [RFC PATCH v2 6/9] rtc/mxc: Modify rtc_update_alarm() not to touch the alarm time

2015-01-14 Thread Xunlei Pang
Cc Fabio Estevam fabio.este...@freescale.com On 13 January 2015 at 23:44, Xunlei Pang xlp...@126.com wrote: From: Xunlei Pang pang.xun...@linaro.org rtc_class_ops's set_alarm() shouldn't deal with the alarm date, as this is handled in the rtc core. See rtc_dev_ioctl()'s RTC_ALM_SET

Re: [RFC PATCH v2 2/9] time: Provide y2106 safe get_seconds() replacement

2015-01-14 Thread Xunlei Pang
On 14 January 2015 at 04:42, Thomas Gleixner t...@linutronix.de wrote: On Tue, 13 Jan 2015, Xunlei Pang wrote: From: Xunlei Pang pang.xun...@linaro.org As part of addressing y2038 problem for in-kernel uses, this patch adds safe get_seconds64() using time64_t. After this patch, get_seconds

Re: [RFC PATCH v2 3/9] rtc/test: Update driver to address y2038/y2106 issues

2015-01-14 Thread Xunlei Pang
On 14 January 2015 at 00:19, Alessandro Zummo a.zu...@towertech.it wrote: On Tue, 13 Jan 2015 23:44:51 +0800 Xunlei Pang xlp...@126.com wrote: This patch resolves them by: - Repalce get_seconds() with get_seconds64() - Replace rtc_time_to_tm() with rtc_time64_to_tm() - Change

Re: [PATCH v3 2/2] sched/rt: Add check_preempt_equal_prio() logic in pick_next_task_rt()

2015-02-12 Thread Xunlei Pang
Hi steve, On 13 February 2015 at 08:04, Steven Rostedt rost...@goodmis.org wrote: On Sun, 8 Feb 2015 23:51:26 +0800 Xunlei Pang pang.xun...@linaro.org wrote: check_preempt_curr() doesn't call sched_class::check_preempt_curr when the class of current is a higher level. The above sentence

Re: [PATCH v3 2/2] sched/rt: Add check_preempt_equal_prio() logic in pick_next_task_rt()

2015-02-12 Thread Xunlei Pang
Hi Steve, On 13 February 2015 at 11:55, Xunlei Pang pang.xun...@linaro.org wrote: Hi steve, On 13 February 2015 at 08:04, Steven Rostedt rost...@goodmis.org wrote: On Sun, 8 Feb 2015 23:51:26 +0800 Xunlei Pang pang.xun...@linaro.org wrote: check_preempt_curr() doesn't call sched_class

Re: [PATCH v3 1/2] sched/rt: Check to push the task when changing its affinity

2015-02-12 Thread Xunlei Pang
On 13 February 2015 at 07:31, Steven Rostedt rost...@goodmis.org wrote: On Sun, 8 Feb 2015 23:51:25 +0800 Xunlei Pang pang.xun...@linaro.org wrote: + if (new_weight 1 + rt_task(rq-curr) + !test_tsk_need_resched(rq-curr)) { + /* + * We own p

[PATCH v4 4/4] rtc: Remove redundant rtc_valid_tm() from rtc_resume()

2015-02-15 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org rtc_read_time() has already judged valid tm by rtc_valid_tm(), so just remove it. Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- drivers/rtc/class.c | 4 1 file changed, 4 deletions(-) diff --git a/drivers/rtc/class.c b/drivers/rtc/class.c

[PATCH v4 2/4] time: Fix a bug in timekeeping_suspend() with no persistent clock

2015-02-15 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org When there's no persistent clock, normally timekeeping_suspend_time should always be zero, but this can break in timekeeping_suspend(). At T1, there was a system suspend, so old_delta was assigned T1. After some time, one time adjustment happened

[PATCH v4 3/4] time: rtc: Don't bother into rtc_resume() for the nonstop clocksource

2015-02-15 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org If a system does not provide a persistent_clock(), the time will be updated on resume by rtc_resume(). With the addition of the non-stop clocksources for suspend timing, those systems set the time on resume in timekeeping_resume(), but may not provide

[PATCH v4 1/4] time: Add needed macros for timekeeping_inject_sleeptime64()

2015-02-15 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org timekeeping_inject_sleeptime64() is only used by RTC suspend/resume, so embrace it in RTC related macros. Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- kernel/time/timekeeping.c | 4 1 file changed, 4 insertions(+) diff --git a/kernel/time

Re: [PATCH 3/5] sched/deadline: Fix wrong cpudl_find() in check_preempt_equal_dl()

2015-01-28 Thread Xunlei Pang
Hi Peter, On 28 January 2015 at 00:47, Peter Zijlstra pet...@infradead.org wrote: On Mon, Jan 19, 2015 at 04:49:38AM +, Xunlei Pang wrote: In check_preempt_equal_dl(), cpudl_find() is called with a NULL later_mask, thus cpudl_find() here doesn't check cpudl::free_cpus at all. This patch

Re: [PATCH 4/5] sched/rt: Consider deadline tasks in cpupri_find()

2015-01-28 Thread Xunlei Pang
Hi Steven, On 28 January 2015 at 07:04, Steven Rostedt rost...@goodmis.org wrote: On Tue, 27 Jan 2015 13:58:59 +0100 Peter Zijlstra pet...@infradead.org wrote: Not a bad idea, Cc'ed Steve who likes to look after the RT bits, excessive quoting for him. Yep I do. index ade2958..48c9576

Re: [PATCH v2 3/3] time: clocksource: Add a comment to CLOCK_SOURCE_SUSPEND_NONSTOP

2015-01-28 Thread Xunlei Pang
Hi Thomas, On 25 January 2015 at 01:07, Thomas Gleixner t...@linutronix.de wrote: On Sat, 24 Jan 2015, Xunlei Pang wrote: Before this, I tried to add some code to catch such problem at the time of registering the clocksource, like using the CLOCKSOURCE_MASK(), for example 64bit counter

Re: [RFC PATCH v3 0/8] Provide y2038/y2106 safe rtc_class_ops.set_mmss64()

2015-01-28 Thread Xunlei Pang
ping Alessandro On 21 January 2015 at 00:21, Xunlei Pang pang.xun...@linaro.org wrote: This patch series relies on a former patchset[1], it provides y2038/y2106 safe rtc_class_ops.set_mmss64(), and converts some possible users of set_mmss() to use set_mmss64(), in the hope that making

Re: [PATCH 5/5] sched/rt: Optimize find_lowest_rq() to select a cache hot cpu

2015-01-29 Thread Xunlei Pang
On 27 January 2015 at 22:56, Steven Rostedt rost...@goodmis.org wrote: On Tue, 27 Jan 2015 15:21:36 +0100 Peter Zijlstra pet...@infradead.org wrote: On Mon, Jan 19, 2015 at 04:49:40AM +, Xunlei Pang wrote: In find_lowest_rq(), if we can't find a wake_affine cpu from sched_domain

[PATCH v2 3/4] sched/deadline: Fix wrong cpudl_find() in check_preempt_equal_dl()

2015-01-29 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org In check_preempt_equal_dl(), cpudl_find() is called with a NULL later_mask, thus cpudl_find() here doesn't check cpudl::free_cpus at all. This patch takles this issue by always passing a non-NULL later_mask to cpudl_find(), thereby fixing this issue

[PATCH v2 4/4] sched/rt: Consider deadline tasks in cpupri_find()

2015-01-29 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org Currently, RT global scheduling doesn't factor deadline tasks, this may cause some problems. See a case below: On a 3 CPU system, CPU0 has one running deadline task, CPU1 has one running low priority RT task or idle, CPU3 has one running high priority RT

[PATCH v3 1/2] time: Don't bother to run rtc_resume() for the nonstop clocksource

2015-01-29 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org If a system does not provide a persistent_clock(), the time will be updated on resume by rtc_resume(). With the addition of the non-stop clocksources for suspend timing, those systems set the time on resume in timekeeping_resume(), but may not provide

[PATCH v2 1/4] sched/deadline: Modify cpudl::free_cpus to reflect root_domain::online

2015-01-29 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org Currently, cpudl::free_cpus contains all cpus during init, see cpudl_init(). When calling cpudl_find(), we have to mask rd-span to avoid selecting the cpu outside current root domain, because cpus_allowed is undependable when performing clustered

[PATCH v2 2/4] sched/deadline: Remove cpu_active_mask from cpudl_find()

2015-01-29 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org cpu_active_mask is rarely changeable, so remove this operation to gain a little performance. If there is a change in cpu_active_mask, rq_online_dl() and rq_offline_dl() should take care of it normally, so cpudl:: free_cpus carries enough information

[PATCH v3 2/2] rtc: Remove redundant rtc_valid_tm() from rtc_resume()

2015-01-29 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org rtc_read_time() has already judged valid tm by rtc_valid_tm(), so just remove it. Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- drivers/rtc/class.c | 4 1 file changed, 4 deletions(-) diff --git a/drivers/rtc/class.c b/drivers/rtc/class.c

[RFC PATCH v2 9/9] alpha: change to use rtc_class_ops's set_mmss64()

2015-01-13 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org Change alpha_rtc_set_mmss() and remote_set_mmss() to use rtc_class_ops's set_mmss64(). Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- arch/alpha/kernel/rtc.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/alpha

[RFC PATCH v2 2/9] time: Provide y2106 safe get_seconds() replacement

2015-01-13 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org As part of addressing y2038 problem for in-kernel uses, this patch adds safe get_seconds64() using time64_t. After this patch, get_seconds() is deprecated and all its call sites will be fixed using get_seconds64(), after that it can be removed. Signed

[RFC PATCH v2 3/9] rtc/test: Update driver to address y2038/y2106 issues

2015-01-13 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org This driver has a number of y2038/y2106 issues. This patch resolves them by: - Repalce get_seconds() with get_seconds64() - Replace rtc_time_to_tm() with rtc_time64_to_tm() - Change test_rtc_set_mmss() to use rtc_class_ops's set_mmss64() After this patch

[RFC PATCH v2 6/9] rtc/mxc: Modify rtc_update_alarm() not to touch the alarm time

2015-01-13 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org rtc_class_ops's set_alarm() shouldn't deal with the alarm date, as this is handled in the rtc core. See rtc_dev_ioctl()'s RTC_ALM_SET and RTC_WKALM_SET cases. Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- drivers/rtc/rtc-mxc.c | 22

[RFC PATCH v2 8/9] rtc/mxc: Update driver to address y2038/y2106 issues

2015-01-13 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org This driver has a number of y2038/y2106 issues. This patch resolves them by: - Replace rtc_time_to_tm() with rtc_time64_to_tm() - Replace rtc_tm_to_time() with rtc_tm_to_time64() - Change mxc_rtc_set_mmss() to use rtc_class_ops's set_mmss64() After

[RFC PATCH v2 0/9] Provide y2038/y2106 safe rtc_class_ops.set_mmss64()

2015-01-13 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org This patch series relies on a former patchset[1], it provides y2038/y2106 safe rtc_class_ops.set_mmss64(), and converts some possible users of set_mmss() to use set_mmss64(), in the hope that making these users(i.e. rtc drivers) y2038/y2106 safe

[RFC PATCH v2 1/9] rtc: Provide y2038 safe rtc_class_ops.set_mmss() replacement

2015-01-13 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org Currently the rtc_class_op's set_mmss() function takes a 32bit second value (on 32bit systems), which is problematic for dates past y2038. This patch provides a safe version named set_mmss64() using y2038 safe time64_t. After this patch, set_mmss

[RFC PATCH v2 7/9] rtc/mxc: Convert get_alarm_or_time()/set_alarm_or_time() to use time64_t

2015-01-13 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org We want to convert mxc_rtc_set_mmss() to use rtc_class_ops's set_mmss64(), but it uses get_alarm_or_time()/set_alarm_or_time() internal interfaces which are y2038 unsafe. So here as a separate patch, it converts these two internal interfaces of mxc to use

[RFC PATCH v2 4/9] rtc/ab3100: Update driver to address y2038/y2106 issues

2015-01-13 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org This driver has a number of y2038/y2106 issues. This patch resolves them by: - Replace rtc_tm_to_time() with rtc_tm_to_time64() - Replace rtc_time_to_tm() with rtc_time64_to_tm() - Change ab3100_rtc_set_mmss() to use rtc_class_ops's set_mmss64() After

[RFC PATCH v2 5/9] rtc/mc13xxx: Update driver to address y2038/y2106 issues

2015-01-13 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org This driver has a number of y2038/y2106 issues. This patch resolves them by: - Replace rtc_time_to_tm() with rtc_time64_to_tm() - Change mc13xxx_rtc_set_mmss() to use rtc_class_ops's set_mmss64() After this patch, the driver should not have any remaining

Re: [PATCH v3 1/2] time: Don't bother to run rtc_resume() for the nonstop clocksource

2015-02-10 Thread Xunlei Pang
Hi John, On 11 February 2015 at 08:01, John Stultz john.stu...@linaro.org wrote: On Thu, Jan 29, 2015 at 11:59 PM, Xunlei Pang xlp...@126.com wrote: From: Xunlei Pang pang.xun...@linaro.org If a system does not provide a persistent_clock(), the time will be updated on resume by rtc_resume

[PATCH v4 1/3] lib/plist: Provide plist_add_head() for nodes with the same prio

2015-02-16 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org If there're multiple nodes with the same prio as @node, currently plist_add() will add @node behind all of them. Now we need to add @node before all of these nodes for SMP RT scheduler. This patch adds a common __plist_add() for adding @node before

[PATCH v4 2/3] sched/rt: Fix wrong SMP scheduler behavior for equal prio cases

2015-02-16 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org Currently, SMP RT scheduler has some trouble in dealing with equal prio cases. For example, in check_preempt_equal_prio(): When RT1(current task) gets preempted by RT2, if there is a migratable RT3 with same prio, RT3 will be pushed away instead of RT1

[PATCH v4 3/3] sched/rt: Check to push the task when changing its affinity

2015-02-16 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org We may suffer from extra rt overload rq due to the affinity, so when the affinity of any runnable rt task is changed, we should check to trigger balancing, otherwise it will cause some unnecessary delayed real-time response. Unfortunately, current RT

[PATCH RESEND 1/2] sched/deadline: Fix wrong cpudl_find() in check_preempt_equal_dl()

2015-03-18 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org In check_preempt_equal_dl(), cpudl_find() is called with a NULL later_mask, thus cpudl_find() here doesn't check cpudl::free_cpus at all. This patch takles this issue by always passing a non-NULL later_mask to cpudl_find(), thereby fixing this issue

[PATCH RESEND 2/2] sched/rt: Consider deadline tasks in cpupri_find()

2015-03-18 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org Currently, RT global scheduling doesn't factor deadline tasks, this may cause some problems. See a case below: On a 3 CPU system, CPU0 has one running deadline task, CPU1 has one running low priority RT task or idle, CPU3 has one running high priority RT

[PATCH] sched/fair: Restore env status before goto redo in load_balance()

2015-03-18 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org In load_balance(), some members of lb_env will be assigned with new values in LBF_DST_PINNED case. But lb_env::flags may still retain LBF_ALL_PINNED if no proper tasks were found afterwards due to another balance, task affinity changing, etc, which can

[PATCH 2/2] time: rtc: Don't bother into rtc_resume() for the nonstop clocksource

2015-03-18 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org If a system does not provide a persistent_clock(), the time will be updated on resume by rtc_resume(). With the addition of the non-stop clocksources for suspend timing, those systems set the time on resume in timekeeping_resume(), but may not provide

[PATCH 1/2] time: Fix a bug in timekeeping_suspend() with no persistent clock

2015-03-18 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org When there's no persistent clock, normally timekeeping_suspend_time should always be zero, but this can break in timekeeping_suspend(). At T1, there was a system suspend, so old_delta was assigned T1. After some time, one time adjustment happened

[PATCH v5 3/4] time: rtc: Don't bother into rtc_resume() for the nonstop clocksource

2015-03-09 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org If a system does not provide a persistent_clock(), the time will be updated on resume by rtc_resume(). With the addition of the non-stop clocksources for suspend timing, those systems set the time on resume in timekeeping_resume(), but may not provide

[PATCH v5 2/4] time: Fix a bug in timekeeping_suspend() with no persistent clock

2015-03-09 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org When there's no persistent clock, normally timekeeping_suspend_time should always be zero, but this can break in timekeeping_suspend(). At T1, there was a system suspend, so old_delta was assigned T1. After some time, one time adjustment happened

[PATCH v5 1/4] time: Add needed macros for timekeeping_inject_sleeptime64()

2015-03-09 Thread Xunlei Pang
From: Xunlei Pang pang.xun...@linaro.org timekeeping_inject_sleeptime64() is only used by RTC suspend/resume, so embrace it in RTC related macros. Signed-off-by: Xunlei Pang pang.xun...@linaro.org --- v5 changes: Remove CONFIG_RTC_CLASS. kernel/time/timekeeping.c | 2 ++ 1 file changed, 2

  1   2   3   4   5   6   7   8   9   10   >