diff mbox series

migration: Remove RDMA_UNREGISTRATION_EXAMPLE

Message ID 20220620150918.57471-1-quintela@redhat.com
State New
Headers show
Series migration: Remove RDMA_UNREGISTRATION_EXAMPLE | expand

Commit Message

Juan Quintela June 20, 2022, 3:09 p.m. UTC
Nobody has ever showed up to unregister individual pages, and another
set of patches written by Daniel P. Berrangé <berrange@redhat.com>
just remove qemu_rdma_signal_unregister() function needed here.

Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 migration/rdma.c | 41 -----------------------------------------
 1 file changed, 41 deletions(-)

Comments

Dr. David Alan Gilbert June 20, 2022, 5:30 p.m. UTC | #1
* Juan Quintela (quintela@redhat.com) wrote:
> Nobody has ever showed up to unregister individual pages, and another
> set of patches written by Daniel P. Berrangé <berrange@redhat.com>
> just remove qemu_rdma_signal_unregister() function needed here.
> 
> Signed-off-by: Juan Quintela <quintela@redhat.com>

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

> ---
>  migration/rdma.c | 41 -----------------------------------------
>  1 file changed, 41 deletions(-)
> 
> diff --git a/migration/rdma.c b/migration/rdma.c
> index 672d1958a9..8504152f39 100644
> --- a/migration/rdma.c
> +++ b/migration/rdma.c
> @@ -1370,30 +1370,6 @@ const char *print_wrid(int wrid)
>      return wrid_desc[wrid];
>  }
>  
> -/*
> - * RDMA requires memory registration (mlock/pinning), but this is not good for
> - * overcommitment.
> - *
> - * In preparation for the future where LRU information or workload-specific
> - * writable writable working set memory access behavior is available to QEMU
> - * it would be nice to have in place the ability to UN-register/UN-pin
> - * particular memory regions from the RDMA hardware when it is determine that
> - * those regions of memory will likely not be accessed again in the near future.
> - *
> - * While we do not yet have such information right now, the following
> - * compile-time option allows us to perform a non-optimized version of this
> - * behavior.
> - *
> - * By uncommenting this option, you will cause *all* RDMA transfers to be
> - * unregistered immediately after the transfer completes on both sides of the
> - * connection. This has no effect in 'rdma-pin-all' mode, only regular mode.
> - *
> - * This will have a terrible impact on migration performance, so until future
> - * workload information or LRU information is available, do not attempt to use
> - * this feature except for basic testing.
> - */
> -/* #define RDMA_UNREGISTRATION_EXAMPLE */
> -
>  /*
>   * Perform a non-optimized memory unregistration after every transfer
>   * for demonstration purposes, only if pin-all is not requested.
> @@ -1571,18 +1547,6 @@ static uint64_t qemu_rdma_poll(RDMAContext *rdma, struct ibv_cq *cq,
>          if (rdma->nb_sent > 0) {
>              rdma->nb_sent--;
>          }
> -
> -        if (!rdma->pin_all) {
> -            /*
> -             * FYI: If one wanted to signal a specific chunk to be unregistered
> -             * using LRU or workload-specific information, this is the function
> -             * you would call to do so. That chunk would then get asynchronously
> -             * unregistered later.
> -             */
> -#ifdef RDMA_UNREGISTRATION_EXAMPLE
> -            qemu_rdma_signal_unregister(rdma, index, chunk, wc.wr_id);
> -#endif
> -        }
>      } else {
>          trace_qemu_rdma_poll_other(print_wrid(wr_id), wr_id, rdma->nb_sent);
>      }
> @@ -2137,11 +2101,6 @@ retry:
>  
>      chunk_end = ram_chunk_end(block, chunk + chunks);
>  
> -    if (!rdma->pin_all) {
> -#ifdef RDMA_UNREGISTRATION_EXAMPLE
> -        qemu_rdma_unregister_waiting(rdma);
> -#endif
> -    }
>  
>      while (test_bit(chunk, block->transit_bitmap)) {
>          (void)count;
> -- 
> 2.35.3
>
diff mbox series

Patch

diff --git a/migration/rdma.c b/migration/rdma.c
index 672d1958a9..8504152f39 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -1370,30 +1370,6 @@  const char *print_wrid(int wrid)
     return wrid_desc[wrid];
 }
 
-/*
- * RDMA requires memory registration (mlock/pinning), but this is not good for
- * overcommitment.
- *
- * In preparation for the future where LRU information or workload-specific
- * writable writable working set memory access behavior is available to QEMU
- * it would be nice to have in place the ability to UN-register/UN-pin
- * particular memory regions from the RDMA hardware when it is determine that
- * those regions of memory will likely not be accessed again in the near future.
- *
- * While we do not yet have such information right now, the following
- * compile-time option allows us to perform a non-optimized version of this
- * behavior.
- *
- * By uncommenting this option, you will cause *all* RDMA transfers to be
- * unregistered immediately after the transfer completes on both sides of the
- * connection. This has no effect in 'rdma-pin-all' mode, only regular mode.
- *
- * This will have a terrible impact on migration performance, so until future
- * workload information or LRU information is available, do not attempt to use
- * this feature except for basic testing.
- */
-/* #define RDMA_UNREGISTRATION_EXAMPLE */
-
 /*
  * Perform a non-optimized memory unregistration after every transfer
  * for demonstration purposes, only if pin-all is not requested.
@@ -1571,18 +1547,6 @@  static uint64_t qemu_rdma_poll(RDMAContext *rdma, struct ibv_cq *cq,
         if (rdma->nb_sent > 0) {
             rdma->nb_sent--;
         }
-
-        if (!rdma->pin_all) {
-            /*
-             * FYI: If one wanted to signal a specific chunk to be unregistered
-             * using LRU or workload-specific information, this is the function
-             * you would call to do so. That chunk would then get asynchronously
-             * unregistered later.
-             */
-#ifdef RDMA_UNREGISTRATION_EXAMPLE
-            qemu_rdma_signal_unregister(rdma, index, chunk, wc.wr_id);
-#endif
-        }
     } else {
         trace_qemu_rdma_poll_other(print_wrid(wr_id), wr_id, rdma->nb_sent);
     }
@@ -2137,11 +2101,6 @@  retry:
 
     chunk_end = ram_chunk_end(block, chunk + chunks);
 
-    if (!rdma->pin_all) {
-#ifdef RDMA_UNREGISTRATION_EXAMPLE
-        qemu_rdma_unregister_waiting(rdma);
-#endif
-    }
 
     while (test_bit(chunk, block->transit_bitmap)) {
         (void)count;