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