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
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
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
() 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
...@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
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
()/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
...@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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
, 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
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
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
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
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
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
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
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
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
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
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
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
() 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
().
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
: 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
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
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
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
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
.
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
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
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
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
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
-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
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
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
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
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
-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
-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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 - 100 of 1061 matches
Mail list logo