summaryrefslogtreecommitdiffstats
path: root/lib/dim/Makefile
diff options
context:
space:
mode:
authorJason Gunthorpe2019-07-08 19:58:59 +0200
committerJason Gunthorpe2019-07-08 21:37:21 +0200
commit2ef38e380ea6a80fed5be21e9f7af31c02dea09e (patch)
treebb24f28b8f002cc5e4d8308fcd8dee30ff857048 /lib/dim/Makefile
parentIB/mlx5: Report correctly tag matching rendezvous capability (diff)
parentlinux/dim: Add completions count to dim_sample (diff)
downloadkernel-qcow2-linux-2ef38e380ea6a80fed5be21e9f7af31c02dea09e.tar.gz
kernel-qcow2-linux-2ef38e380ea6a80fed5be21e9f7af31c02dea09e.tar.xz
kernel-qcow2-linux-2ef38e380ea6a80fed5be21e9f7af31c02dea09e.zip
Merge tag 'blk-dim-v2' into rdma.git for-next
Generic DIM From: Tal Gilboa and Yamin Fridman Implement net DIM over a generic DIM library, add RDMA DIM dim.h lib exposes an implementation of the DIM algorithm for dynamically-tuned interrupt moderation for networking interfaces. We want a similar functionality for other protocols, which might need to optimize interrupts differently. Main motivation here is DIM for NVMf storage protocol. Current DIM implementation prioritizes reducing interrupt overhead over latency. Also, in order to reduce DIM's own overhead, the algorithm might take some time to identify it needs to change profiles. While this is acceptable for networking, it might not work well on other scenarios. Here we propose a new structure to DIM. The idea is to allow a slightly modified functionality without the risk of breaking Net DIM behavior for netdev. We verified there are no degradations in current DIM behavior with the modified solution. Suggested solution: - Common logic is implemented in lib/dim/dim.c - Net DIM (existing) logic is implemented in lib/dim/net_dim.c, which uses the common logic in dim.c - Any new DIM logic will be implemented in "lib/dim/new_dim.c". This new implementation will expose modified versions of profiles, dim_step() and dim_decision(). - DIM API is declared in include/linux/dim.h for all implementations. Pros for this solution are: - Zero impact on existing net_dim implementation and usage - Relatively more code reuse (compared to two separate solutions) - Increased extensibility Required for dependencies in the next series. Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Diffstat (limited to 'lib/dim/Makefile')
-rw-r--r--lib/dim/Makefile9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/dim/Makefile b/lib/dim/Makefile
new file mode 100644
index 000000000000..160afe288df0
--- /dev/null
+++ b/lib/dim/Makefile
@@ -0,0 +1,9 @@
+#
+# DIM Dynamic Interrupt Moderation library
+#
+
+obj-$(CONFIG_DIMLIB) = net_dim.o
+
+net_dim-y = \
+ dim.o \
+ net_dim.o