<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://nick-black.com/dankwiki/index.php?action=history&amp;feed=atom&amp;title=RSS</id>
	<title>RSS - revision history</title>
	<link rel="self" type="application/atom+xml" href="https://nick-black.com/dankwiki/index.php?action=history&amp;feed=atom&amp;title=RSS"/>
	<link rel="alternate" type="text/html" href="https://nick-black.com/dankwiki/index.php?title=RSS&amp;action=history"/>
	<updated>2026-07-11T17:03:02Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://nick-black.com/dankwiki/index.php?title=RSS&amp;diff=9713&amp;oldid=prev</id>
		<title>Dank at 03:56, 18 April 2023</title>
		<link rel="alternate" type="text/html" href="https://nick-black.com/dankwiki/index.php?title=RSS&amp;diff=9713&amp;oldid=prev"/>
		<updated>2023-04-18T03:56:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:56, 18 April 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The idea behind RSS can be performed in Linux&amp;#039;s softirq handler, where it is called RPS (Receive Packet Steering) or RFS (Receive Flow Steering). RPS works by distributing to cores according to their queue length. RFS hashes source L3 addresses to cores. Either way, software steering will run on the core designated by the MSI (and thus the RX queue). RSS can thus usually more fully exploit parallelism (because the hard and softirq handlers themselves can be paralellized), and it is not usually useful to use RFS/RPS in conjunction with RSS (this might not be the case if there are more cores available than RX queues).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The idea behind RSS can be performed in Linux&amp;#039;s softirq handler, where it is called RPS (Receive Packet Steering) or RFS (Receive Flow Steering). RPS works by distributing to cores according to their queue length. RFS hashes source L3 addresses to cores. Either way, software steering will run on the core designated by the MSI (and thus the RX queue). RSS can thus usually more fully exploit parallelism (because the hard and softirq handlers themselves can be paralellized), and it is not usually useful to use RFS/RPS in conjunction with RSS (this might not be the case if there are more cores available than RX queues).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[CATEGORY: Hardware]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikidb:diff:1.41:old-9629:rev-9713:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Dank</name></author>
	</entry>
	<entry>
		<id>https://nick-black.com/dankwiki/index.php?title=RSS&amp;diff=9629&amp;oldid=prev</id>
		<title>Dank: Created page with &quot;Receiver-Side Scaling is a function of some NICs where traffic is divided into one or more hardware RX queues, each with their own MSI. These MSI numbers can then be associated with different cores, creating parallelism in network interrupt handling. If the device must not reorder traffic within a flow, it is generally necessary that all packets from the same flow hit the same core, so the RX queue is typically chosen via a hash over the L3 and L4 addresses. This mea...&quot;</title>
		<link rel="alternate" type="text/html" href="https://nick-black.com/dankwiki/index.php?title=RSS&amp;diff=9629&amp;oldid=prev"/>
		<updated>2023-02-19T03:30:41Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Receiver-Side Scaling is a function of some NICs where traffic is divided into one or more hardware RX queues, each with their own &lt;a href=&quot;/dankwiki/index.php?title=MSI&quot; title=&quot;MSI&quot;&gt;MSI&lt;/a&gt;. These MSI numbers can then be associated with different cores, creating parallelism in network interrupt handling. If the device must not reorder traffic within a flow, it is generally necessary that all packets from the same flow hit the same core, so the RX queue is typically chosen via a hash over the L3 and L4 addresses. This mea...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Receiver-Side Scaling is a function of some NICs where traffic is divided into one or more hardware RX queues, each with their own [[MSI]]. These MSI numbers can then be associated with different cores, creating parallelism in network interrupt handling. If the device must not reorder traffic within a flow, it is generally necessary that all packets from the same flow hit the same core, so the RX queue is typically chosen via a hash over the L3 and L4 addresses. This means that there must be sufficient flow divergence to spread the traffic evenly across queues; if the traffic is dominated by a single flow, a single core will receive the majority of the work.&lt;br /&gt;
&lt;br /&gt;
The idea behind RSS can be performed in Linux&amp;#039;s softirq handler, where it is called RPS (Receive Packet Steering) or RFS (Receive Flow Steering). RPS works by distributing to cores according to their queue length. RFS hashes source L3 addresses to cores. Either way, software steering will run on the core designated by the MSI (and thus the RX queue). RSS can thus usually more fully exploit parallelism (because the hard and softirq handlers themselves can be paralellized), and it is not usually useful to use RFS/RPS in conjunction with RSS (this might not be the case if there are more cores available than RX queues).&lt;/div&gt;</summary>
		<author><name>Dank</name></author>
	</entry>
</feed>