Messages in this thread | | | From | Kosuke Tatsukawa <> | Subject | Re: [PATCH v2] tty: fix stall caused by missing memory barrier in drivers/tty/n_tty.c | Date | Sat, 10 Oct 2015 05:04:39 +0000 |
| |
Peter Hurley wrote: > On 10/09/2015 01:28 PM, Peter Hurley wrote: >> Tatsukawa-san, >> >> I would still like to root-cause the reported stall; is the reported >> stall resolved if smp_mb() is added before the waitqueue_active() >> in __receive_buf()? > > Nevermind, I see it now. > > The store to commit_head is deferred until after the load of read_wait->next; > a full memory barrier would properly order the store before the load but, > since that is roughly equivalent to taking the spin lock for the wake up anyway, > it makes sense to just always do the wakeup.
The stall problem is resolved if smp_mb() is added both before the waitqueue_active() in __receive_buf(), and before the line containing input_available_p() in n_tty_read(). --- Kosuke TATSUKAWA | 3rd IT Platform Department | IT Platform Division, NEC Corporation | tatsu@ab.jp.nec.com
| |