<feed xmlns='http://www.w3.org/2005/Atom'>
<title>passt/.gitignore, branch 2024_07_26.57a21d2</title>
<subtitle>Plug A Simple Socket Transport</subtitle>
<link rel='alternate' type='text/html' href='https://passt.top/passt/'/>
<entry>
<title>test/perf: Get iperf3 stats from client side</title>
<updated>2023-11-07T08:56:06+00:00</updated>
<author>
<name>David Gibson</name>
<email>david@gibson.dropbear.id.au</email>
</author>
<published>2023-11-06T07:08:27+00:00</published>
<link rel='alternate' type='text/html' href='https://passt.top/passt/commit/?id=f9ff6678d4bbf5d9c80c1c6f784c3955468c09d6'/>
<id>f9ff6678d4bbf5d9c80c1c6f784c3955468c09d6</id>
<content type='text'>
iperf3 generates statistics about its run on both the client and server
sides.  They don't have exactly the same information, but both have the
pieces we need (AFAICT the server communicates some nformation to the
client over the control socket, so the most important information is in the
client side output, even if measured by the server).

Currently we use the server side information for our measurements. Using
the client side information has several advantages though:

 * We can directly wait for the client to complete and we know we'll have
   the output we want.  We don't need to sleep to give the server time to
   write out the results.
 * That in turn means we can wrap up as soon as the client is done, we
   don't need to wait overlong to make sure everything is finished.
 * The slightly different organisation of the data in the client output
   means that we always want the same json value, rather than requiring
   slightly different onces for UDP and TCP.

The fact that we avoid some extra delays speeds up the overal run of the
perf tests by around 7 minutes (out of around 35 minutes) on my laptop.

The fact that we no longer unconditionally kill client and server after
a certain time means that the client could run indefinitely if the server
doesn't respond.  We mitigate that by setting 1s connect timeout on the
client.  This isn't foolproof - if we get an initial response, but then
lose connectivity this could still run indefinitely, however it does cover
by far the most likely failure cases.  --snd-timeout would provide more
robustness, but I've hit odd failures when trying to use it.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
Signed-off-by: Stefano Brivio &lt;sbrivio@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
iperf3 generates statistics about its run on both the client and server
sides.  They don't have exactly the same information, but both have the
pieces we need (AFAICT the server communicates some nformation to the
client over the control socket, so the most important information is in the
client side output, even if measured by the server).

Currently we use the server side information for our measurements. Using
the client side information has several advantages though:

 * We can directly wait for the client to complete and we know we'll have
   the output we want.  We don't need to sleep to give the server time to
   write out the results.
 * That in turn means we can wrap up as soon as the client is done, we
   don't need to wait overlong to make sure everything is finished.
 * The slightly different organisation of the data in the client output
   means that we always want the same json value, rather than requiring
   slightly different onces for UDP and TCP.

The fact that we avoid some extra delays speeds up the overal run of the
perf tests by around 7 minutes (out of around 35 minutes) on my laptop.

The fact that we no longer unconditionally kill client and server after
a certain time means that the client could run indefinitely if the server
doesn't respond.  We mitigate that by setting 1s connect timeout on the
client.  This isn't foolproof - if we get an initial response, but then
lose connectivity this could still run indefinitely, however it does cover
by far the most likely failure cases.  --snd-timeout would provide more
robustness, but I've hit odd failures when trying to use it.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
Signed-off-by: Stefano Brivio &lt;sbrivio@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "MAKE: Fix parallel builds; .o files; .gitignore; new makedocs"</title>
<updated>2023-07-10T04:33:44+00:00</updated>
<author>
<name>Stefano Brivio</name>
<email>sbrivio@redhat.com</email>
</author>
<published>2023-07-10T04:33:44+00:00</published>
<link rel='alternate' type='text/html' href='https://passt.top/passt/commit/?id=023d68442020c303a8cb4a873ccef7fcd16f3ebe'/>
<id>023d68442020c303a8cb4a873ccef7fcd16f3ebe</id>
<content type='text'>
This reverts commit cc2a6bec3cf2ff6ed0c043ada93d352466614373: I
applied that patch by mistake.

Fixes: cc2a6bec3cf2 ("MAKE: Fix parallel builds; .o files; .gitignore; new makedocs")
Signed-off-by: Stefano Brivio &lt;sbrivio@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit cc2a6bec3cf2ff6ed0c043ada93d352466614373: I
applied that patch by mistake.

Fixes: cc2a6bec3cf2 ("MAKE: Fix parallel builds; .o files; .gitignore; new makedocs")
Signed-off-by: Stefano Brivio &lt;sbrivio@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>MAKE: Fix parallel builds; .o files; .gitignore; new makedocs</title>
<updated>2023-07-07T20:34:37+00:00</updated>
<author>
<name>KuhnChris</name>
<email>kuhnchris@kuhnchris.eu</email>
</author>
<published>2023-06-28T14:07:28+00:00</published>
<link rel='alternate' type='text/html' href='https://passt.top/passt/commit/?id=cc2a6bec3cf2ff6ed0c043ada93d352466614373'/>
<id>cc2a6bec3cf2ff6ed0c043ada93d352466614373</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>test: Move pidfiles and nsholder sockets into state directory</title>
<updated>2022-09-13T09:12:41+00:00</updated>
<author>
<name>David Gibson</name>
<email>david@gibson.dropbear.id.au</email>
</author>
<published>2022-09-13T04:35:26+00:00</published>
<link rel='alternate' type='text/html' href='https://passt.top/passt/commit/?id=d81366010718733df82edd4baebb814597d088ba'/>
<id>d81366010718733df82edd4baebb814597d088ba</id>
<content type='text'>
Currently they go in the passt source tree with a fixed names, which means
their presence can mess with subsequent test runs.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently they go in the passt source tree with a fixed names, which means
their presence can mess with subsequent test runs.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>test: Rewrite test_iperf3</title>
<updated>2022-09-07T09:01:22+00:00</updated>
<author>
<name>David Gibson</name>
<email>david@gibson.dropbear.id.au</email>
</author>
<published>2022-09-02T02:04:34+00:00</published>
<link rel='alternate' type='text/html' href='https://passt.top/passt/commit/?id=e5e10aff8179b5f410b4e2fe7923303fd183fc75'/>
<id>e5e10aff8179b5f410b4e2fe7923303fd183fc75</id>
<content type='text'>
test_iperf3() is a pretty inscrutable mess of nested background processes.
It has a number of ugly sleeps needed to wait for things to complete.

Rewrite it to be cleaner:
  * Use the construct (a &amp; b &amp; wait) to run 'a' and 'b' in parallel, but
    then wait for them both to complete before continuing
  * This allows us to wait for both the server and client to finish, rather
    than sleeping
  * Use jq to do all the math we need to get the final result, rather than
    jq followed by some complicated 'bc' mangling

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
test_iperf3() is a pretty inscrutable mess of nested background processes.
It has a number of ugly sleeps needed to wait for things to complete.

Rewrite it to be cleaner:
  * Use the construct (a &amp; b &amp; wait) to run 'a' and 'b' in parallel, but
    then wait for them both to complete before continuing
  * This allows us to wait for both the server and client to finish, rather
    than sleeping
  * Use jq to do all the math we need to get the final result, rather than
    jq followed by some complicated 'bc' mangling

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gitignore pidfiles other than passt.pid</title>
<updated>2022-09-07T09:01:22+00:00</updated>
<author>
<name>David Gibson</name>
<email>david@gibson.dropbear.id.au</email>
</author>
<published>2022-09-02T02:04:31+00:00</published>
<link rel='alternate' type='text/html' href='https://passt.top/passt/commit/?id=55679a16af441344eacc95ae8d5e952aae2313b0'/>
<id>55679a16af441344eacc95ae8d5e952aae2313b0</id>
<content type='text'>
The tests now use a number of pidfiles for qemu and pasta as well as
passt.pid.  Broaden the .gitignore file so these aren't unintentially
committed.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The tests now use a number of pidfiles for qemu and pasta as well as
passt.pid.  Broaden the .gitignore file so these aren't unintentially
committed.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gitignore README.plain.md</title>
<updated>2022-08-24T16:01:48+00:00</updated>
<author>
<name>David Gibson</name>
<email>david@gibson.dropbear.id.au</email>
</author>
<published>2022-08-23T06:31:50+00:00</published>
<link rel='alternate' type='text/html' href='https://passt.top/passt/commit/?id=42a60735e1a1ec9dd72b09bc9c926a4dbc0d8545'/>
<id>42a60735e1a1ec9dd72b09bc9c926a4dbc0d8545</id>
<content type='text'>
Add the generated README.plain.md file to .gitignore.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add the generated README.plain.md file to .gitignore.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Clean up passt.pid file</title>
<updated>2022-07-13T23:32:42+00:00</updated>
<author>
<name>David Gibson</name>
<email>david@gibson.dropbear.id.au</email>
</author>
<published>2022-07-06T07:29:02+00:00</published>
<link rel='alternate' type='text/html' href='https://passt.top/passt/commit/?id=ed63892a16940261055f08853914d8d8a456659a'/>
<id>ed63892a16940261055f08853914d8d8a456659a</id>
<content type='text'>
If the tests are interrupted at the right point a passt.pid file can be
left over.  Clean it up with "make clean" and add it to .gitignore so it
doesn't get accidentally committed.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the tests are interrupted at the right point a passt.pid file can be
left over.  Clean it up with "make clean" and add it to .gitignore so it
doesn't get accidentally committed.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add basic .gitignore files</title>
<updated>2022-05-19T13:24:09+00:00</updated>
<author>
<name>David Gibson</name>
<email>david@gibson.dropbear.id.au</email>
</author>
<published>2022-05-11T07:02:51+00:00</published>
<link rel='alternate' type='text/html' href='https://passt.top/passt/commit/?id=d3e842afc07ae1011539bff4e451ab92a4618e39'/>
<id>d3e842afc07ae1011539bff4e451ab92a4618e39</id>
<content type='text'>
Ignore various files generated during build or test.

Reviewed-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ignore various files generated during build or test.

Reviewed-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</pre>
</div>
</content>
</entry>
</feed>
