<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/include/linux/net_dim.h, branch linux-5.14.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-5.14.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-5.14.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2019-06-25T20:46:39Z</updated>
<entry>
<title>linux/dim: Move implementation to .c files</title>
<updated>2019-06-25T20:46:39Z</updated>
<author>
<name>Tal Gilboa</name>
<email>talgi@mellanox.com</email>
</author>
<published>2019-01-10T15:33:17Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=4f75da3666c0c572967729a2401ac650be5581b6'/>
<id>urn:sha1:4f75da3666c0c572967729a2401ac650be5581b6</id>
<content type='text'>
Moved all logic from dim.h and net_dim.h to dim.c and net_dim.c.
This is both more structurally appealing and would allow to only
expose externally used functions.

Signed-off-by: Tal Gilboa &lt;talgi@mellanox.com&gt;
Signed-off-by: Saeed Mahameed &lt;saeedm@mellanox.com&gt;
</content>
</entry>
<entry>
<title>linux/dim: Rename externally used net_dim members</title>
<updated>2019-06-25T20:46:39Z</updated>
<author>
<name>Tal Gilboa</name>
<email>talgi@mellanox.com</email>
</author>
<published>2019-01-31T14:44:48Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=8960b38932bee8db0bc9c4d8c135f21df6cdd297'/>
<id>urn:sha1:8960b38932bee8db0bc9c4d8c135f21df6cdd297</id>
<content type='text'>
Removed 'net' prefix from functions and structs used by external drivers.

Signed-off-by: Tal Gilboa &lt;talgi@mellanox.com&gt;
Signed-off-by: Saeed Mahameed &lt;saeedm@mellanox.com&gt;
</content>
</entry>
<entry>
<title>linux/dim: Rename net_dim_sample() to net_dim_update_sample()</title>
<updated>2019-06-25T20:46:39Z</updated>
<author>
<name>Tal Gilboa</name>
<email>talgi@mellanox.com</email>
</author>
<published>2019-01-14T13:32:49Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=e5b6ab02d7aa4118c9a36491633812dcc442acbe'/>
<id>urn:sha1:e5b6ab02d7aa4118c9a36491633812dcc442acbe</id>
<content type='text'>
In order to avoid confusion between the function and the similarly
named struct.
In preparation for removing the 'net' prefix from dim members.

Signed-off-by: Tal Gilboa &lt;talgi@mellanox.com&gt;
Signed-off-by: Saeed Mahameed &lt;saeedm@mellanox.com&gt;
</content>
</entry>
<entry>
<title>linux/dim: Rename externally exposed macros</title>
<updated>2019-06-25T20:46:39Z</updated>
<author>
<name>Tal Gilboa</name>
<email>talgi@mellanox.com</email>
</author>
<published>2018-11-05T10:07:52Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c002bd529d719858d4cc233431c88c9efa844053'/>
<id>urn:sha1:c002bd529d719858d4cc233431c88c9efa844053</id>
<content type='text'>
Renamed macros in use by external drivers.

Signed-off-by: Tal Gilboa &lt;talgi@mellanox.com&gt;
Signed-off-by: Saeed Mahameed &lt;saeedm@mellanox.com&gt;
</content>
</entry>
<entry>
<title>linux/dim: Remove "net" prefix from internal DIM members</title>
<updated>2019-06-25T20:46:38Z</updated>
<author>
<name>Tal Gilboa</name>
<email>talgi@mellanox.com</email>
</author>
<published>2018-11-05T09:57:10Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=449986ea92412727e8c553eaa5c8d3ed884253c4'/>
<id>urn:sha1:449986ea92412727e8c553eaa5c8d3ed884253c4</id>
<content type='text'>
Only renaming functions and structs which aren't used by an external code.

Signed-off-by: Tal Gilboa &lt;talgi@mellanox.com&gt;
Signed-off-by: Saeed Mahameed &lt;saeedm@mellanox.com&gt;
</content>
</entry>
<entry>
<title>linux/dim: Move logic to dim.h</title>
<updated>2019-06-25T20:46:38Z</updated>
<author>
<name>Tal Gilboa</name>
<email>talgi@mellanox.com</email>
</author>
<published>2018-11-04T17:07:02Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=0e58983de0d89f6ee75daab1b0ea918cfcf6ddbf'/>
<id>urn:sha1:0e58983de0d89f6ee75daab1b0ea918cfcf6ddbf</id>
<content type='text'>
In preparation for supporting more implementations of the DIM
algorithm, I'm moving what would become common logic to a common
library. Downstream DIM implementations will use the common lib
for their implementation.

Signed-off-by: Tal Gilboa &lt;talgi@mellanox.com&gt;
Signed-off-by: Saeed Mahameed &lt;saeedm@mellanox.com&gt;
</content>
</entry>
<entry>
<title>net/dim: Update DIM start sample after each DIM iteration</title>
<updated>2018-11-22T19:36:54Z</updated>
<author>
<name>Tal Gilboa</name>
<email>talgi@mellanox.com</email>
</author>
<published>2018-11-21T14:28:23Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=0211dda68a4f6531923a2f72d8e8959207f59fba'/>
<id>urn:sha1:0211dda68a4f6531923a2f72d8e8959207f59fba</id>
<content type='text'>
On every iteration of net_dim, the algorithm may choose to
check for the system state by comparing current data sample
with previous data sample. After each of these comparison,
regardless of the action taken, the sample used as baseline
is needed to be updated.

This patch fixes a bug that causes DIM to take wrong decisions,
due to never updating the baseline sample for comparison between
iterations. This way, DIM always compares current sample with
zeros.

Although this is a functional fix, it also improves and stabilizes
performance as the algorithm works properly now.

Performance:
Tested single UDP TX stream with pktgen:
samples/pktgen/pktgen_sample03_burst_single_flow.sh -i p4p2 -d 1.1.1.1
-m 24:8a:07:88:26:8b -f 3 -b 128

ConnectX-5 100GbE packet rate improved from 15-19Mpps to 19-20Mpps.
Also, toggling between profiles is less frequent with the fix.

Fixes: 8115b750dbcb ("net/dim: use struct net_dim_sample as arg to net_dim")
Signed-off-by: Tal Gilboa &lt;talgi@mellanox.com&gt;
Reviewed-by: Tariq Toukan &lt;tariqt@mellanox.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>include/linux/bitops.h: introduce BITS_PER_TYPE</title>
<updated>2018-08-22T17:52:48Z</updated>
<author>
<name>Chris Wilson</name>
<email>chris@chris-wilson.co.uk</email>
</author>
<published>2018-08-22T04:57:03Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9144d75e22cad3c89e6b2ccab551db9ee28d250a'/>
<id>urn:sha1:9144d75e22cad3c89e6b2ccab551db9ee28d250a</id>
<content type='text'>
net_dim.h has a rather useful extension to BITS_PER_BYTE to compute the
number of bits in a type (BITS_PER_BYTE * sizeof(T)), so promote the macro
to bitops.h, alongside BITS_PER_BYTE, for wider usage.

Link: http://lkml.kernel.org/r/20180706094458.14116-1-chris@chris-wilson.co.uk
Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Reviewed-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
Cc: Randy Dunlap &lt;rdunlap@infradead.org&gt;
Cc: Andy Gospodarek &lt;gospo@broadcom.com&gt;
Cc: David S. Miller &lt;davem@davemloft.net&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Ingo Molnar &lt;mingo@kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>net/dim: Support adaptive TX moderation</title>
<updated>2018-04-24T14:15:07Z</updated>
<author>
<name>Tal Gilboa</name>
<email>talgi@mellanox.com</email>
</author>
<published>2018-04-24T10:36:02Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=623ad755226c2b4fb312772bae9cdeccd8219ee3'/>
<id>urn:sha1:623ad755226c2b4fb312772bae9cdeccd8219ee3</id>
<content type='text'>
Interrupt moderation for TX traffic requires different profiles than RX
interrupt moderation. The main goal here is to reduce interrupt rate and
allow better payload aggregation by keeping SKBs in the TX queue a bit
longer. Ping-pong behavior would get a profile with a short timer, so
latency wouldn't increase for these scenarios. There might be a slight
degradation in bandwidth for single stream with large message sizes, since
net.ipv4.tcp_limit_output_bytes is limiting the allowed TX traffic, but
with many streams performance is always improved.

Signed-off-by: Tal Gilboa &lt;talgi@mellanox.com&gt;
Reviewed-by: Tariq Toukan &lt;tariqt@mellanox.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net/dim: Rename *_get_profile() functions to *_get_rx_moderation()</title>
<updated>2018-04-24T14:15:07Z</updated>
<author>
<name>Tal Gilboa</name>
<email>talgi@mellanox.com</email>
</author>
<published>2018-04-24T10:36:01Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=026a807c2de37aa826748c2ffa1969fc778406b2'/>
<id>urn:sha1:026a807c2de37aa826748c2ffa1969fc778406b2</id>
<content type='text'>
Preparation for introducing adaptive TX to net DIM.

Signed-off-by: Tal Gilboa &lt;talgi@mellanox.com&gt;
Reviewed-by: Tariq Toukan &lt;tariqt@mellanox.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
