Messages in this thread Patch in this message | | | Date | Fri, 1 Nov 2019 19:26:15 -0200 | From | Marcelo Tosatti <> | Subject | Re: [PATCH 5/5] cpuidle-haltpoll: fix up the branch check |
| |
On Sat, Oct 26, 2019 at 11:23:59AM +0800, Zhenzhong Duan wrote: > Ensure pool time is longer than block_ns, so there is a margin to > avoid vCPU get into block state unnecessorily. > > Signed-off-by: Zhenzhong Duan <zhenzhong.duan@oracle.com> > --- > drivers/cpuidle/governors/haltpoll.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/cpuidle/governors/haltpoll.c b/drivers/cpuidle/governors/haltpoll.c > index 4b00d7a..59eadaf 100644 > --- a/drivers/cpuidle/governors/haltpoll.c > +++ b/drivers/cpuidle/governors/haltpoll.c > @@ -81,9 +81,9 @@ static void adjust_poll_limit(struct cpuidle_device *dev, unsigned int block_us) > u64 block_ns = block_us*NSEC_PER_USEC; > > /* Grow cpu_halt_poll_us if > - * cpu_halt_poll_us < block_ns < guest_halt_poll_us > + * cpu_halt_poll_us <= block_ns < guest_halt_poll_us > */ > - if (block_ns > dev->poll_limit_ns && block_ns <= guest_halt_poll_ns) { > + if (block_ns >= dev->poll_limit_ns && block_ns < guest_halt_poll_ns) { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If block_ns == guest_halt_poll_ns, you won't allow dev->poll_limit_ns to grow. Why is that?
> @@ -101,7 +101,7 @@ static void adjust_poll_limit(struct cpuidle_device *dev, unsigned int block_us) > val = guest_halt_poll_ns; > > dev->poll_limit_ns = val; > - } else if (block_ns > guest_halt_poll_ns && > + } else if (block_ns >= guest_halt_poll_ns && > guest_halt_poll_allow_shrink) { > unsigned int shrink = guest_halt_poll_shrink;
And here you shrink if block_ns == guest_halt_poll_ns. Not sure why that makes sense either.
| |