Messages in this thread | | | Date | Tue, 28 Jun 2016 13:38:19 +0800 | From | xinhui <> | Subject | Re: [PATCH 2/3] powerpc/spinlock: support vcpu preempted check |
| |
On 2016年06月28日 13:03, Boqun Feng wrote: > On Tue, Jun 28, 2016 at 11:39:18AM +0800, xinhui wrote: > [snip] >>>> +{ >>>> + struct lppaca *lp = &lppaca_of(cpu); >>>> + >>>> + if (unlikely(!(lppaca_shared_proc(lp) || >>>> + lppaca_dedicated_proc(lp)))) >>> >>> Do you want to detect whether we are running in a guest(ie. pseries >>> kernel) here? Then I wonder whether "machine_is(pseries)" works here. >>> >> I tried as you said yesterday. but .h file has dependencies. >> As you said, if we add #ifdef PPC_PSERIES, this is not a big problem. only powernv will be affected as they are built into same kernel img. >> > > I never said this it not a big problem ;-) > > The problem here is that we only need to detect the vcpu preemption in > a guest, and there could be several ways we can detect whether the > kernel is running in a guest. It's worthwhile to try find the best one > for this. Besides, it's really better that you can make sure we are > runing out of options before you introduce something like > lppaca_dedicated_proc(). > > I have a feeling that yield_count is non-zero only if we are running in > a guest, if so, we can use this and save several loads. But surely we > need the confirmation from ppc maintainers. > yes, on powernv, print the lppaca.yield_count and it is always zero. looks like only hypervisor and os can touch/modify it.
> Regards, > Boqun >
| |