Ping for comment. On Sat, Oct 26, 2019 at 08:45:14AM +0800, Wei Yang wrote: >Current send thread could work while the sync mechanism has some problem: > > * has spuriously wakeup > * number of channels_ready will *overflow* the number of real channels > >The reason is: > > * if MULTIFD_FLAG_SYNC is set in the middle of send thread running, there > is one more spurious wakeup > * if MULTIFD_FLAG_SYNC is set when send thread is not running, there is one > more channels_ready be triggered > >To solve this situation, one new mechanism is introduced to synchronize send >threads. The idea is simple, a new field *sync* is introduced to indicate a >synchronization is required. > >--- >v2: rebase on latest code > >Wei Yang (6): > migration/multifd: move Params update and pages cleanup into > multifd_send_fill_packet() > migration/multifd: notify channels_ready when send thread starts > migration/multifd: use sync field to synchronize send threads > migration/multifd: used must not be 0 for a pending job > migration/multifd: use boolean for pending_job is enough > migration/multifd: there is no spurious wakeup now > > migration/ram.c | 74 +++++++++++++++++++++++++++++++------------------ > 1 file changed, 47 insertions(+), 27 deletions(-) > >-- >2.17.1
-- Wei Yang Help you, Help me