]> git.baikalelectronics.ru Git - kernel.git/commit
RDMA/core: not to set page dirty bit if it's already set.
authorQing Huang <qing.huang@oracle.com>
Thu, 18 May 2017 23:33:53 +0000 (16:33 -0700)
committerDoug Ledford <dledford@redhat.com>
Thu, 1 Jun 2017 21:20:12 +0000 (17:20 -0400)
commit6d2ec69f2166216935d91a1c60004e8c29627c0c
tree74f8555562491ee89c8674d4b8ca052d48d12034
parent019507675fd97f77fa2445810f59e75aa8f2c2e0
RDMA/core: not to set page dirty bit if it's already set.

This change will optimize kernel memory deregistration operations.
__ib_umem_release() used to call set_page_dirty_lock() against every
writable page in its memory region. Its purpose is to keep data
synced between CPU and DMA device when swapping happens after mem
deregistration ops. Now we choose not to set page dirty bit if it's
already set by kernel prior to calling __ib_umem_release(). This
reduces memory deregistration time by half or even more when we ran
application simulation test program.

Signed-off-by: Qing Huang <qing.huang@oracle.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/core/umem.c