On Wed, Jun 05, 2019 at 11:24:31PM +0000, Saeed Mahameed wrote: > Hi Dave, Doug & Jason > > This series improves DIM - Dynamically-tuned Interrupt > Moderation- to be generic for netdev and RDMA use-cases. > > From Tal and Yamin: > The first 7 patches provide the necessary refactoring to current net_dim > library which affect some net drivers who are using the API. > > The last 2 patches provide the RDMA implementation for DIM. > > For more information please see tag log below. > > Once we are all happy with the series, please pull to net-next and > rdma-next trees. > > Thanks, > Saeed. > > --- > The following changes since commit cd6c84d8f0cdc911df435bb075ba22ce3c605b07: > > Linux 5.2-rc2 (2019-05-26 16:49:19 -0700) > > are available in the Git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git tags/dim-updates-2019-06-05 > > for you to fetch changes up to 1ec9974e75e7a58bff1ab17c4fcda17b180ed3bb: > > RDMA/core: Provide RDMA DIM support for ULPs (2019-06-05 16:09:02 -0700) > > ---------------------------------------------------------------- > dim-updates-2019-06-05 > > From: Tal Gilboa > > Implement net DIM over a generic DIM library > > net_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 I 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. I verified there are no degradations in current DIM behavior with > the modified solution. > > Solution: > - Common logic is declared in include/linux/dim.h and implemented in > lib/dim/dim.c > - Net DIM (existing) logic is declared in include/linux/net_dim.h and > implemented in lib/dim/net_dim.c, which uses the common logic from dim.h > - Any new DIM logic will be declared in "/include/linux/new_dim.h" and > implemented in "lib/dim/new_dim.c". > - This new implementation will expose modified versions of profiles, > dim_step() and dim_decision(). > > 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 > > ---------------------------------------------------------------- > Tal Gilboa (6): > linux/dim: Move logic to dim.h > linux/dim: Remove "net" prefix from internal DIM members > linux/dim: Rename externally exposed macros > linux/dim: Rename net_dim_sample() to net_dim_update_sample() > linux/dim: Rename externally used net_dim members > linux/dim: Move implementation to .c files > > Yamin Friedman (3): > linux/dim: Add completions count to dim_sample > linux/dim: Implement rdma_dim > RDMA/core: Provide RDMA DIM support for ULPs Saeed, No, for the RDMA patches. We need to see usage of those APIs before merging. Thanks