[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 3/4] VT-d PI: restrict the vcpu number on a given pcpu
On Fri, Jul 07, 2017 at 09:57:47AM -0600, Jan Beulich wrote: >>>> On 07.07.17 at 08:48, <chao.gao@xxxxxxxxx> wrote: >> --- a/xen/arch/x86/hvm/vmx/vmx.c >> +++ b/xen/arch/x86/hvm/vmx/vmx.c >> @@ -95,22 +95,91 @@ static DEFINE_PER_CPU(struct vmx_pi_blocking_vcpu, >> vmx_pi_blocking); >> uint8_t __read_mostly posted_intr_vector; >> static uint8_t __read_mostly pi_wakeup_vector; >> >> +/* >> + * Protect critical sections to avoid adding a blocked vcpu to a destroyed >> + * blocking list. >> + */ >> +static DEFINE_SPINLOCK(remote_pbl_operation); > >What is "pbl" supposed to stand for? pi blocking list. > >> +#define remote_pbl_operation_begin(flags) \ >> +({ \ >> + spin_lock_irqsave(&remote_pbl_operation, flags); \ >> +}) >> + >> +#define remote_pbl_operation_done(flags) \ >> +({ \ >> + spin_unlock_irqrestore(&remote_pbl_operation, flags); \ >> +}) > >No need for the ({ }) here. > >But then I don't understand what this is needed for in the first >place. If this is once again about CPU offlining, then I can only >repeat that such happens in stop_machine context. Otherwise But I don't think vmx_pi_desc_fixup() happens in stop_machine context, please refer to cpu_callback() function in hvm.c and the time notifier_call_chain(CPU_DEAD) is called in cpu_down(). Our goal here is to avoid adding one entry to a destroyed list. To avoid destruction happens during adding, we can put these two process in critical sections, like add: remote_pbl_operation_begin() add one entry to the list remote_pbl_operation_end() destroy: remote_pbl_operation_begin() destruction remote_pbl_operation_end() Destruction may happen before we enter the critical section. so adding should be: add: remote_pbl_operation_begin() check the list is still valid add one entry to the list remote_pbl_operation_end() In this patch, we choose an online cpu's list. The list should be valid for the list is always destroyed after offline. >I'm afraid the comment ahead of this code section needs >adjustment, as I can't interpret it in another way. Thanks Chao _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |