Messages in this thread | | | Date | Fri, 06 Feb 2015 20:30:35 +0530 | From | Raghavendra K T <> | Subject | Re: sched: memory corruption on completing completions |
| |
On 02/06/2015 12:18 PM, Raghavendra K T wrote: > On 02/06/2015 04:27 AM, Linus Torvalds wrote: >> On Thu, Feb 5, 2015 at 2:37 PM, Davidlohr Bueso <dave@stgolabs.net> >> wrote: >>>> >>>> It is possible that the paravirt spinlocks could be saved by: >>>> >>>> - moving the clearing of TICKET_SLOWPATH_FLAG into the fastpath >>>> locking code. >>> >>> Ouch, to avoid deadlocks they explicitly need the unlock to occur before >>> the slowpath tail flag is read. >> >> Well, just make the unlock do the actual real unlock operation >> ("fastpath"), leaving the TICKET_SLOWPATH_FLAG alone. The unlock path >> can *test* the flag and do whatever kicking it needs to get people >> started again, but not clear it again. >> > > This is definitely a good idea, will think more on this. >
Just sent the patch with that idea, also keeping in mind that head = tail may not hold good for trylock checking (last unlock might have left TICKET_SLOWPATH_FLAG set)
http://article.gmane.org/gmane.linux.kernel/1883900
| |