* [PATCH] DLS: add dl_time_equal helper in deadline scheduler
@ 2012-04-07 7:49 Hillf Danton
2012-04-09 7:34 ` Juri Lelli
0 siblings, 1 reply; 3+ messages in thread
From: Hillf Danton @ 2012-04-07 7:49 UTC (permalink / raw)
To: Dario Faggioli, Juri Lelli; +Cc: LKML, Hillf Danton
Hi all
A tiny helper, dl_time_equal, is added for easing readers.
And dl_entity_preempt is redefined to be bool, and its comment is also changed.
Signed-off-by: Hillf Danton <dhillf@gmail.com>
---
--- a/kernel/sched_dl.c Sat Apr 7 15:00:28 2012
+++ b/kernel/sched_dl.c Sat Apr 7 15:20:10 2012
@@ -16,16 +16,21 @@
*/
static const struct sched_class dl_sched_class;
-static inline int dl_time_before(u64 a, u64 b)
+static inline bool dl_time_equal(u64 a, u64 b)
+{
+ return a == b;
+}
+
+static inline bool dl_time_before(u64 a, u64 b)
{
return (s64)(a - b) < 0;
}
/*
- * Tells if entity @a should preempt entity @b.
+ * Return true if entity @a could preempt entity @b in term of deadline
*/
-static inline
-int dl_entity_preempt(struct sched_dl_entity *a, struct sched_dl_entity *b)
+static inline bool
+dl_entity_preempt(struct sched_dl_entity *a, struct sched_dl_entity *b)
{
return dl_time_before(a->deadline, b->deadline);
}
@@ -885,7 +890,7 @@ static void check_preempt_curr_dl(struct
* In the unlikely case current and p have the same deadline
* let us try to decide what's the best thing to do...
*/
- if ((s64)(p->dl.deadline - rq->curr->dl.deadline) == 0 &&
+ if (dl_time_equal(p->dl.deadline, rq->curr->dl.deadline) &&
!need_resched())
check_preempt_equal_dl(rq, p);
#endif /* CONFIG_SMP */
--
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] DLS: add dl_time_equal helper in deadline scheduler
2012-04-07 7:49 [PATCH] DLS: add dl_time_equal helper in deadline scheduler Hillf Danton
@ 2012-04-09 7:34 ` Juri Lelli
2012-04-09 12:29 ` Hillf Danton
0 siblings, 1 reply; 3+ messages in thread
From: Juri Lelli @ 2012-04-09 7:34 UTC (permalink / raw)
To: Hillf Danton; +Cc: Dario Faggioli, LKML
Hi,
On 04/07/2012 09:49 AM, Hillf Danton wrote:
> Hi all
>
> A tiny helper, dl_time_equal, is added for easing readers.
>
> And dl_entity_preempt is redefined to be bool, and its comment is also changed.
>
> Signed-off-by: Hillf Danton<dhillf@gmail.com>
> ---
>
> --- a/kernel/sched_dl.c Sat Apr 7 15:00:28 2012
> +++ b/kernel/sched_dl.c Sat Apr 7 15:20:10 2012
> @@ -16,16 +16,21 @@
> */
> static const struct sched_class dl_sched_class;
>
> -static inline int dl_time_before(u64 a, u64 b)
> +static inline bool dl_time_equal(u64 a, u64 b)
> +{
> + return a == b;
> +}
> +
> +static inline bool dl_time_before(u64 a, u64 b)
> {
> return (s64)(a - b)< 0;
> }
>
> /*
> - * Tells if entity @a should preempt entity @b.
> + * Return true if entity @a could preempt entity @b in term of deadline
> */
> -static inline
> -int dl_entity_preempt(struct sched_dl_entity *a, struct sched_dl_entity *b)
> +static inline bool
> +dl_entity_preempt(struct sched_dl_entity *a, struct sched_dl_entity *b)
> {
> return dl_time_before(a->deadline, b->deadline);
> }
> @@ -885,7 +890,7 @@ static void check_preempt_curr_dl(struct
> * In the unlikely case current and p have the same deadline
> * let us try to decide what's the best thing to do...
> */
> - if ((s64)(p->dl.deadline - rq->curr->dl.deadline) == 0&&
> + if (dl_time_equal(p->dl.deadline, rq->curr->dl.deadline)&&
> !need_resched())
> check_preempt_equal_dl(rq, p);
> #endif /* CONFIG_SMP */
> --
I'll change the comparison to be deadline_a == deadline_b, but I don't see the
need for a special helper function. It is used only once, better to have the
comparison really inline (a very special case).
Thanks and Regards,
- Juri
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-04-09 12:29 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-07 7:49 [PATCH] DLS: add dl_time_equal helper in deadline scheduler Hillf Danton
2012-04-09 7:34 ` Juri Lelli
2012-04-09 12:29 ` Hillf Danton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox