> -----Original Message----- > From: anish kumar [mailto:anish198519851...@gmail.com] > Sent: Friday, October 12, 2012 11:25 PM > To: Liu, Chuansheng > Cc: Thomas Gleixner; linux-kernel@vger.kernel.org > Subject: RE: [PATCH] genirq: for edge interrupt IRQS_ONESHOT support with irq > thread > > On Fri, 2012-10-12 at 14:57 +0000, Liu, Chuansheng wrote: > > > On SMP an interrupt which is raised after the ack() again before the > > > handler finishes, can invoke another delivery on a different CPU, > > > which then sees the IRQ_INPROGESS flag, masks it and flags it > > > PENDING. When the primary handler on the first CPU returns, it sees > > > the PENDING flag, unmasks and invokes the handler another time. > > In this case, when IRQ_INPROGRESS flag is set, on another CPU, it will > > mask and ack it, if before the primary handler on the first CPU returns, > > the edge interrupt is raised again, it will be lost, right? > Why will the interrupt be raised again?Is not it masked?I read tglx I means because it is masked, if at this time device issues edge irq, It will not be delivered and lost.
> statement as this:if the interrupt is being handled on one core, then > the delivery of new interrupt can be on the second core and in that case > it will see IRQ_INPROGRESS flag and it will *mask* it and set the flag > as pending.So there is no chance of any new interrupt. > > So I think set PENDING just confirm one time, it just depends on primary > handler > > execution time and irq frequency. > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > > the body of a message to majord...@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > Please read the FAQ at http://www.tux.org/lkml/ > N�����r��y����b�X��ǧv�^�){.n�+����{����zX����ܨ}���Ơz�&j:+v�������zZ+��+zf���h���~����i���z��w���?�����&�)ߢf��^jǫy�m��@A�a��� 0��h���i