Hi Tiwei,

On 05/17/2018 01:44 PM, Maxime Coquelin wrote:
This patch caches all dirty pages logging until the used ring index
is updated.

The goal of this optimization is to fix a performance regression
introduced when the vhost library started to use atomic operations
to set bits in the shared dirty log map. While the fix was valid
as previous implementation wasn't safe against concurrent accesses,
contention was induced.

With this patch, during migration, we have:
1. Less atomic operations as only a single atomic OR operation
per 32 or 64 (depending on CPU) pages.
2. Less atomic operations as during a burst, the same page will
be marked dirty only once.
3. Less write memory barriers.

Fixes: 897f13a1f726 ("vhost: make page logging atomic")


Cc: Tiwei Bie<tiwei....@intel.com>
Suggested-by: Michael S. Tsirkin<m...@redhat.com>
Signed-off-by: Maxime Coquelin<maxime.coque...@redhat.com>

I missed to add your:
Reviewed-by: Tiwei Bie <tiwei....@intel.com>

that you replied to v3, and since the changes in v4 were suggested by
you, I guess it still applies.


Reply via email to