Re: [PATCH rdma-next v3 1/3] linux/dim: Implement RDMA adaptive moderation (DIM)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




From: Yamin Friedman <yaminf@xxxxxxxxxxxx>

RDMA DIM implements a different algorithm from net DIM and is based on
completions which is how we can implement interrupt moderation in RDMA.

The algorithm optimizes for number of completions and ratio between
completions and events. In order to avoid long latencies, the
implementation performs fast reduction of moderation level when the
traffic changes.

Signed-off-by: Yamin Friedman <yaminf@xxxxxxxxxxxx>
Reviewed-by: Max Gurtovoy <maxg@xxxxxxxxxxxx>
Signed-off-by: Saeed Mahameed <saeedm@xxxxxxxxxxxx>
Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx>
---
  include/linux/dim.h |  36 +++++++++++++++
  lib/dim/Makefile    |   6 +--
  lib/dim/rdma_dim.c  | 108 ++++++++++++++++++++++++++++++++++++++++++++
  3 files changed, 146 insertions(+), 4 deletions(-)
  create mode 100644 lib/dim/rdma_dim.c

diff --git a/include/linux/dim.h b/include/linux/dim.h
index aa9bdd47a648..1ae32835723a 100644
--- a/include/linux/dim.h
+++ b/include/linux/dim.h
@@ -82,6 +82,7 @@ struct dim_stats {
   * @prev_stats: Measured rates from previous iteration (for comparison)
   * @start_sample: Sampled data at start of current iteration
   * @work: Work to perform on action required
+ * @dim_owner: A pointer to the struct that points to dim
   * @profile_ix: Current moderation profile
   * @mode: CQ period count mode
   * @tune_state: Algorithm tuning state (see below)
@@ -95,6 +96,7 @@ struct dim {
  	struct dim_sample start_sample;
  	struct dim_sample measuring_sample;
  	struct work_struct work;
+	void *dim_owner;

This is different than the net consumers that init an embedded dim
struct. I imagine that the reason is to not have this dim space in every
ib_cq struct?

Would suggest to name it to 'priv' or 'dim_priv'

Otherwise,
Reviewed-by: Sagi Grimberg <sagi@xxxxxxxxxxx>



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux