2022-06-06 12:28:31

by Huichun Feng

[permalink] [raw]
Subject: [PATCH] sched/fair: avoid redundant hrtimer check

The check is required iff HRTICK is enabled and DOUBLE_TICK is disabled,
avoid the redundant check by adding corresponding sched_feat() .

Signed-off-by: Huichun Feng <[email protected]>
---
kernel/sched/fair.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 77b2048a9..80cc1a924 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -4668,7 +4668,7 @@ entity_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr, int queued)
/*
* don't let the period tick interfere with the hrtick preemption
*/
- if (!sched_feat(DOUBLE_TICK) &&
+ if (sched_feat(HRTICK) && !sched_feat(DOUBLE_TICK) &&
hrtimer_active(&rq_of(cfs_rq)->hrtick_timer))
return;
#endif
--
2.36.1


2022-06-09 12:35:54

by Peter Zijlstra

[permalink] [raw]
Subject: Re: [PATCH] sched/fair: avoid redundant hrtimer check

On Mon, Jun 06, 2022 at 08:26:12PM +0800, Huichun Feng wrote:
> The check is required iff HRTICK is enabled and DOUBLE_TICK is disabled,
> avoid the redundant check by adding corresponding sched_feat() .

How about: 'don't do that then'?

2022-06-09 13:29:27

by Huichun Feng

[permalink] [raw]
Subject: Re: [PATCH] sched/fair: avoid redundant hrtimer check

Peter Zijlstra <[email protected]> 於 2022年6月9日 週四 下午8:29寫道:
>
> On Mon, Jun 06, 2022 at 08:26:12PM +0800, Huichun Feng wrote:
> > The check is required iff HRTICK is enabled and DOUBLE_TICK is disabled,
> > avoid the redundant check by adding corresponding sched_feat() .
>
> How about: 'don't do that then'?

Looks good!

Should I send a v2 for this? Or could you help amend it directly?

Thank you!
Huichun

2022-06-18 18:06:12

by Huichun Feng

[permalink] [raw]
Subject: Re: [PATCH v2] sched/fair: avoid redundant hrtimer check

The check is required iff HRTICK is enabled and DOUBLE_TICK is disabled,
don't do that then.

Signed-off-by: Huichun Feng <[email protected]>
---

Changes since v1:
- Refine commit message

kernel/sched/fair.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 77b2048a9..80cc1a924 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -4668,7 +4668,7 @@ entity_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr, int queued)
/*
* don't let the period tick interfere with the hrtick preemption
*/
- if (!sched_feat(DOUBLE_TICK) &&
+ if (sched_feat(HRTICK) && !sched_feat(DOUBLE_TICK) &&
hrtimer_active(&rq_of(cfs_rq)->hrtick_timer))
return;
#endif
--
2.36.1