search for: paravirt_idle_pol

Displaying 12 results from an estimated 12 matches for "paravirt_idle_pol".

Did you mean: paravirt_idle_poll
2017 Nov 16
1
[PATCH RFC v3 3/6] sched/idle: Add a generic poll before enter real idle path
...mentioned in another email) --- a/drivers/cpuidle/cpuidle.c +++ b/drivers/cpuidle/cpuidle.c @@ -210,6 +210,13 @@ int cpuidle_enter_state(struct cpuidle_device *dev, struct cpuidle_driver *drv, ??????????????? target_state = &drv->states[index]; ??????? } +#ifdef CONFIG_PARAVIRT +?????? paravirt_idle_poll(); + +?????? if (need_resched()) +?????????????? return -EBUSY; +#endif + ??????? /* Take note of the planned idle state. */ ??????? sched_idle_set_state(target_state); thanks, Quan Alibaba Cloud
2017 Nov 16
0
[PATCH RFC v3 3/6] sched/idle: Add a generic poll before enter real idle path
...rivers/cpuidle/cpuidle.c > +++ b/drivers/cpuidle/cpuidle.c > @@ -210,6 +210,13 @@ int cpuidle_enter_state(struct cpuidle_device *dev, > struct cpuidle_driver *drv, > ??????????????? target_state = &drv->states[index]; > ??????? } > > +#ifdef CONFIG_PARAVIRT > +?????? paravirt_idle_poll(); > + > +?????? if (need_resched()) > +?????????????? return -EBUSY; > +#endif That's just plain wrong. We don't want to see any of this PARAVIRT crap in anything outside the architecture/hypervisor interfacing code which really needs it. The problem can and must be solved a...
2017 Nov 15
6
[PATCH RFC v3 3/6] sched/idle: Add a generic poll before enter real idle path
On Wed, 15 Nov 2017, Peter Zijlstra wrote: > On Mon, Nov 13, 2017 at 06:06:02PM +0800, Quan Xu wrote: > > From: Yang Zhang <yang.zhang.wz at gmail.com> > > > > Implement a generic idle poll which resembles the functionality > > found in arch/. Provide weak arch_cpu_idle_poll function which > > can be overridden by the architecture code if needed. > >
2017 Nov 15
6
[PATCH RFC v3 3/6] sched/idle: Add a generic poll before enter real idle path
On Wed, 15 Nov 2017, Peter Zijlstra wrote: > On Mon, Nov 13, 2017 at 06:06:02PM +0800, Quan Xu wrote: > > From: Yang Zhang <yang.zhang.wz at gmail.com> > > > > Implement a generic idle poll which resembles the functionality > > found in arch/. Provide weak arch_cpu_idle_poll function which > > can be overridden by the architecture code if needed. > >
2017 Sep 01
0
[RFC PATCH v2 1/7] x86/paravirt: Add pv_idle_ops to paravirt ops
...h/x86/include/asm/paravirt.h >> +++ b/arch/x86/include/asm/paravirt.h >> @@ -202,6 +202,11 @@ static inline unsigned long long paravirt_read_pmc(int counter) >> >> #define rdpmcl(counter, val) ((val) = paravirt_read_pmc(counter)) >> >> +static inline void paravirt_idle_poll(void) >> +{ >> + PVOP_VCALL0(pv_idle_ops.poll); >> +} >> + >> static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries) >> { >> PVOP_VCALL2(pv_cpu_ops.alloc_ldt, ldt, entries); >> diff --git a/arch/x86/include/asm/paravi...
2017 Sep 01
0
[RFC PATCH v2 1/7] x86/paravirt: Add pv_idle_ops to paravirt ops
...h/x86/include/asm/paravirt.h >> +++ b/arch/x86/include/asm/paravirt.h >> @@ -202,6 +202,11 @@ static inline unsigned long long paravirt_read_pmc(int counter) >> >> #define rdpmcl(counter, val) ((val) = paravirt_read_pmc(counter)) >> >> +static inline void paravirt_idle_poll(void) >> +{ >> + PVOP_VCALL0(pv_idle_ops.poll); >> +} >> + >> static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries) >> { >> PVOP_VCALL2(pv_cpu_ops.alloc_ldt, ldt, entries); >> diff --git a/arch/x86/include/asm/paravi...
2017 Nov 13
1
[PATCH RFC v3 3/6] sched/idle: Add a generic poll before enter real idle path
...deletions(-) diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index c676853..f7db8b5 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c @@ -333,6 +333,13 @@ void arch_cpu_idle(void) x86_idle(); } +#ifdef CONFIG_PARAVIRT +void arch_cpu_idle_poll(void) +{ + paravirt_idle_poll(); +} +#endif + /* * We use this if we don't have any better idle routine.. */ diff --git a/kernel/sched/idle.c b/kernel/sched/idle.c index 257f4f0..df7c422 100644 --- a/kernel/sched/idle.c +++ b/kernel/sched/idle.c @@ -74,6 +74,7 @@ static noinline int __cpuidle cpu_idle_poll(void) }...
2017 Nov 13
7
[PATCH RFC v3 0/6] x86/idle: add halt poll support
From: Yang Zhang <yang.zhang.wz at gmail.com> Some latency-intensive workload have seen obviously performance drop when running inside VM. The main reason is that the overhead is amplified when running inside VM. The most cost I have seen is inside idle path. This patch introduces a new mechanism to poll for a while before entering idle state. If schedule is needed during poll, then we
2017 Nov 13
7
[PATCH RFC v3 0/6] x86/idle: add halt poll support
From: Yang Zhang <yang.zhang.wz at gmail.com> Some latency-intensive workload have seen obviously performance drop when running inside VM. The main reason is that the overhead is amplified when running inside VM. The most cost I have seen is inside idle path. This patch introduces a new mechanism to poll for a while before entering idle state. If schedule is needed during poll, then we
2017 Nov 13
2
[PATCH RFC v3 1/6] x86/paravirt: Add pv_idle_ops to paravirt ops
...de/asm/paravirt.h index fd81228..3c83727 100644 --- a/arch/x86/include/asm/paravirt.h +++ b/arch/x86/include/asm/paravirt.h @@ -198,6 +198,11 @@ static inline unsigned long long paravirt_read_pmc(int counter) #define rdpmcl(counter, val) ((val) = paravirt_read_pmc(counter)) +static inline void paravirt_idle_poll(void) +{ + PVOP_VCALL0(pv_idle_ops.poll); +} + static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries) { PVOP_VCALL2(pv_cpu_ops.alloc_ldt, ldt, entries); diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h index 10cc3b9..95c0e3e 1...
2017 Nov 17
2
[PATCH RFC v3 3/6] sched/idle: Add a generic poll before enter real idle path
...+++ b/drivers/cpuidle/cpuidle.c >> @@ -210,6 +210,13 @@ int cpuidle_enter_state(struct cpuidle_device *dev, >> struct cpuidle_driver *drv, >> ??????????????? target_state = &drv->states[index]; >> ??????? } >> >> +#ifdef CONFIG_PARAVIRT >> +?????? paravirt_idle_poll(); >> + >> +?????? if (need_resched()) >> +?????????????? return -EBUSY; >> +#endif > That's just plain wrong. We don't want to see any of this PARAVIRT crap in > anything outside the architecture/hypervisor interfacing code which really > needs it. > &g...
2017 Nov 17
2
[PATCH RFC v3 3/6] sched/idle: Add a generic poll before enter real idle path
...+++ b/drivers/cpuidle/cpuidle.c >> @@ -210,6 +210,13 @@ int cpuidle_enter_state(struct cpuidle_device *dev, >> struct cpuidle_driver *drv, >> ??????????????? target_state = &drv->states[index]; >> ??????? } >> >> +#ifdef CONFIG_PARAVIRT >> +?????? paravirt_idle_poll(); >> + >> +?????? if (need_resched()) >> +?????????????? return -EBUSY; >> +#endif > That's just plain wrong. We don't want to see any of this PARAVIRT crap in > anything outside the architecture/hypervisor interfacing code which really > needs it. > &g...