Messages in this thread | | | Date | Mon, 27 Jun 2016 22:05:40 +0800 | From | Boqun Feng <> | Subject | Re: [PATCH 1/3] kernel/sched: introduce vcpu preempted check interface |
| |
On Mon, Jun 27, 2016 at 01:41:28PM -0400, Pan Xinhui wrote: > this supports to fix lock holder preempted issue which run as a guest > > for kernel users, we could use bool vcpu_is_preempted(int cpu) to detech > if one vcpu is preempted or not. > > The default implementation is a macrodefined by false. So compiler can > wrap it out if arch dose not support such vcpu pteempted check. > > archs can implement it by define arch_vcpu_is_preempted(). > > Signed-off-by: Pan Xinhui <xinhui.pan@linux.vnet.ibm.com> > --- > include/linux/sched.h | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/include/linux/sched.h b/include/linux/sched.h > index 6e42ada..dc0a9c3 100644 > --- a/include/linux/sched.h > +++ b/include/linux/sched.h > @@ -3293,6 +3293,15 @@ static inline void set_task_cpu(struct task_struct *p, unsigned int cpu) > > #endif /* CONFIG_SMP */ > > +#ifdef arch_vcpu_is_preempted > +static inline bool vcpu_is_preempted(int cpu) > +{ > + return arch_vcpu_is_preempted(cpu); > +} > +#else > +#define vcpu_is_preempted(cpu) false > +#endif > +
I think you are missing Peter's comment here. We can
#ifndef vcpu_is_preempted #define vcpu_is_preempted(cpu) fasle #endif
And different archs implement their own versions of vcpu_is_preempted(), IOW, no need for an arch_vcpu_is_preempted().
Regards, Boqun
> extern long sched_setaffinity(pid_t pid, const struct cpumask *new_mask); > extern long sched_getaffinity(pid_t pid, struct cpumask *mask); > > -- > 2.4.11 > [unhandled content-type:application/pgp-signature] | |