[PATCH] kvm: powerpc: book3s: Disable preemption while accessing paca xics_phys filed
Michael Ellerman
mpe at ellerman.id.au
Wed Mar 29 21:46:34 AEDT 2017
Denis Kirjanov <kirjanov at gmail.com> writes:
> On Wednesday, March 29, 2017, Paul Mackerras <paulus at ozlabs.org> wrote:
>
>> On Wed, Mar 29, 2017 at 12:07:03PM +1100, Michael Ellerman wrote:
>> > Denis Kirjanov <kda at linux-powerpc.org <javascript:;>> writes:
>> >
>> [...]
>> > > @@ -3930,7 +3934,11 @@ static int kvmppc_book3s_init_hv(void)
>> > > * indirectly, via OPAL.
>> > > */
>> > > #ifdef CONFIG_SMP
>> > > - if (!get_paca()->kvm_hstate.xics_phys) {
>> > > + preempt_disable();
>> > > + xics_phys = get_paca()->kvm_hstate.xics_phys;
>> > > + preempt_enable();
>> > > +
>> > > + if (!xics_phys) {
>> > > struct device_node *np;
>> >
>> > Can you tell me what actual problem (other than the warning) this is
>> > fixing?
>>
>> If paca->kvm_hstate.xics_phys is non-zero on one cpu, it will be
>> non-zero on them all. Therefore this is not fixing any actual
>> problem, just the warning.
>
> Then we can replace get_paca with local_paca to avoid the warning, right?
Yeah in this case I think that's fine. I dislike it somewhat because a
reader of that code now needs to know about what local_paca is but I
guess that's OK.
My point was that just sticking preempt_disable/enable() around every
get_paca() call is not the right way to deal with these warnings.
cheers
More information about the Linuxppc-dev
mailing list