Re: [PATCH v11 06/10] genirq/msi-doorbell: msi_doorbell_safe
On Thu, 21 Jul 2016, Auger Eric wrote: > On 20/07/2016 10:12, Thomas Gleixner wrote: > > On Tue, 19 Jul 2016, Eric Auger wrote: > >> +bool msi_doorbell_safe(void) > >> +{ > >> + struct irqchip_doorbell *db; > >> + bool irq_remapping = true; > >> + > >> + mutex_lock(_doorbell_mutex); > >> + list_for_each_entry(db, _doorbell_list, next) { > >> + irq_remapping &= db->info.irq_remapping; > > > > db->info.irq_remapping is set in msi_doorbell_register(). So you can keep > > book > > about that there. No need to iterate here. > Yes makes sense to store the info at registration time. Currently this > function is not in any fast path but that's cleaner from a general > perspective. I will need to do such iteration at un-registration though. Two simple counter should be sufficient. nr_registered_bells; nr_remapped_bells; Thanks, tglx ___ kvmarm mailing list kvmarm@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
Re: [PATCH v11 06/10] genirq/msi-doorbell: msi_doorbell_safe
Hi, On 20/07/2016 10:12, Thomas Gleixner wrote: > On Tue, 19 Jul 2016, Eric Auger wrote: >> +bool msi_doorbell_safe(void) >> +{ >> +struct irqchip_doorbell *db; >> +bool irq_remapping = true; >> + >> +mutex_lock(_doorbell_mutex); >> +list_for_each_entry(db, _doorbell_list, next) { >> +irq_remapping &= db->info.irq_remapping; > > db->info.irq_remapping is set in msi_doorbell_register(). So you can keep book > about that there. No need to iterate here. Yes makes sense to store the info at registration time. Currently this function is not in any fast path but that's cleaner from a general perspective. I will need to do such iteration at un-registration though. Thanks Eric > > Thanks, > > tglx > > ___ kvmarm mailing list kvmarm@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
Re: [PATCH v11 06/10] genirq/msi-doorbell: msi_doorbell_safe
On Tue, 19 Jul 2016, Eric Auger wrote: > +bool msi_doorbell_safe(void) > +{ > + struct irqchip_doorbell *db; > + bool irq_remapping = true; > + > + mutex_lock(_doorbell_mutex); > + list_for_each_entry(db, _doorbell_list, next) { > + irq_remapping &= db->info.irq_remapping; db->info.irq_remapping is set in msi_doorbell_register(). So you can keep book about that there. No need to iterate here. Thanks, tglx ___ kvmarm mailing list kvmarm@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/kvmarm