[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v10 6/7] vmx: VT-d posted-interrupt core logic handling
>>> On 21.01.16 at 10:05, <feng.wu@xxxxxxxxx> wrote: >> > + spin_lock_irqsave(&per_cpu(pi_blocked_vcpu_lock, pi_block_cpu), >> flags); >> > + >> > + /* >> > + * v->arch.hvm_vmx.pi_block_cpu == NR_CPUS here means the vCPU >> was >> > + * removed from the blocking list while we are acquiring the lock. >> > + */ >> > + if ( v->arch.hvm_vmx.pi_block_cpu == NR_CPUS ) >> >> With you wanting to deal with changes behind your back here, >> isn't there come kind of barrier needed between reading and using >> pi_block_cpu, such that the compiler won't convert the local >> variable accesses into multiple reads of >> v->arch.hvm_vmx.pi_block_cpu (which iiuc it is allowed to do)? > > Thinking about this more. Seems we call spin_lock_irqsave() before > using ' v->arch.hvm_vmx.pi_block_cpu ', can spin_lock_irqsave() > used as the serializing instruction here? IIRIC, spin lock operations > can be used for this purpose, right? The way I placed the comment may have been misleading, and I'm sorry for that. The comment really is about the use of the local variable in acquiring the lock (I may have got misguided by local variable and field name being the same into thinking this latter access also checked the local variable). Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |