[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