Граф коммитов

592 Коммитов

Автор SHA1 Сообщение Дата
Thad House bce6dc58e5
Add RPS Latency metrics to performance testing (#931)
RPS latency numbers are recorded for every RPS run, as there is no noticeable impact on performance for doing so. 

These latency numbers are currently not uploaded to the Database, they will be added at a later date. They are printed though.

Histograms of latency percentiles are also generated. Currently only the numbers from the last run of a set are uploaded to artifacts. 

A 60 connection test was added to reduce utilization to a constant level.
2020-10-30 11:46:02 -07:00
Thad House 69dadb833c
Print out clog error messages at end of prepare-machine.ps1 (#953) 2020-10-29 13:14:32 -07:00
Thad House 425d57fd99
Disallow 0 sizes in tput tests, make 0 in all perf tests an error (#944)
0 size for upload or download doesn't make sense, as that case is handled by RPS, and you get no data (other then a single useless latency number) out of in in tput.

Then make 0 for all 3 tests an error, so 0's don't accidentally get uploaded to the server.

Also makes the test runner error if a 0 is received
2020-10-23 14:16:16 -07:00
Thad House a4943e5b0c
Properly set thread affinity for throughput tests (#920)
* Properly set thread affinity for throughput tests
2020-10-16 16:11:48 -07:00
Thad House 3196aeb565
Properly close RPS tests upon failure (#919)
* Rever a bunch of changes

* Send UDP timeout

* Reorder read

* Workarounds for timeout issue

* Fix reverts

* Handle errors properly

* Fix linux

* Cleanup in destructor

* Use ConnectionScope instead of manual deletion

* Add missing delete[] operator

* 1 more thing

* Create dumps on perf failures

* Destructors run before elements are destructed

* Fix kernel build

* Few other small fixes

* Some more testing, potential registration issue

* remove dump
2020-10-16 13:41:44 -07:00
Nick Banks 92b0703788
Support Random Memory Allocation Failures (For Testing) (#909) 2020-10-14 09:18:35 -07:00
Nick Banks 6ecce3b14f
Cut out the ':' in interop runner 2020-10-14 07:56:05 -07:00
Nick Banks b210964408
Don't Hardcode Interop Server Name (#908) 2020-10-13 12:21:12 -07:00
Nick Banks 1506e3f434
5 Iterations for All Perf Tests (#898) 2020-10-09 12:15:59 -07:00
Nick Banks 1627dcf13f
Download Perf Support (#897) 2020-10-09 11:44:40 -07:00
Nick Banks e577b482b9
Add noexit Option for Interop Server (#891) 2020-10-07 15:37:06 -07:00
Anthony Rossi 0d86ab0df4
Remove resumption and ecn tests from interop until fully supported. (#882) 2020-10-02 07:30:22 -07:00
Thad House 65458cd3c0
Add prints to error states in perf testing to display where initialization is failing (#875)
* Add prints to error states in perf testing to display where initialization is failing

* Print current user and other small bugs found.

* Only print user name on windows

* Revert user print
2020-09-30 15:47:13 -07:00
Nick Banks 9a651b1b7c
QUIC Configuration Interface (#777) 2020-09-29 12:11:57 -07:00
Anthony Rossi d83d9d5f9d
Improve interop client pass rate (#868) 2020-09-28 15:28:38 -07:00
Thad House 72e121d773
Print how long each test run took (#867) 2020-09-28 14:14:54 -07:00
Thad House 88056bbc54
Revert "IOCTL Interface for MsQuic Performance Counters (#849)" (#859)
* Revert "IOCTL Interface for MsQuic Performance Counters (#849)"

This reverts commit 9364795475.

* Keep necessary changes for new API
2020-09-24 17:24:11 -07:00
Nick Banks 9364795475
IOCTL Interface for MsQuic Performance Counters (#849)
* IOCTL Interface for MsQuic Performance Counters

* Add msquic_ioctl header, test API

* Remove all the file object stuff

* Remove service reading code

* Add ioctl test, onboard into CI pipeline

Still a bit of cleanup to do

* Incorrect test path name

* Fix review comments, clean up service stop code

* Fix clog issues

* Add ioctl header and test library to windows distribution

* nit: extra lines

* fix logs

Co-authored-by: Thad House <thhous@microsoft.com>
2020-09-23 13:53:08 -07:00
Nick Banks 828c230f4f
Binary Version Updates (#850) 2020-09-22 13:49:23 -07:00
Lars Eggert ea04c8cee2
Use certs provided by interop framework (#853) 2020-09-22 07:22:03 -07:00
Nick Banks ef6f3b62bf
Draft 30 Support (#848) 2020-09-18 08:14:05 -07:00
Anthony Rossi ffc1e35ee2
Add diagnostic prints to quicinterop (#847) 2020-09-17 17:25:53 -07:00
Thad House 27e6789f63
Always use self signed certificates for remote performance tests. (#846) 2020-09-17 14:21:54 -07:00
Thad House e133a7a0be
Configure Performance Tests to run OpenSSL Remote Performance (#831)
* Configure Performance to run OpenSSL Remote Performance

* Try remote openssl perf

* Update so skipping properly works

* Fix RPS and HPS

* Add Mitls remote

* Mitls remote
2020-09-17 11:58:44 -07:00
Anthony Rossi da2c232fc1
Add multifile support to quicinterop (#842)
Co-authored-by: Nick Banks <nibanks@microsoft.com>
2020-09-16 20:17:08 -07:00
Nick Banks 584cf2cd2c
Handshakes Per Second Perf Test (#830) 2020-09-14 10:51:49 -07:00
Anthony Rossi c9e7b6acac
Add msquic client support to QNS (#802)
Starts the client portion of #462
Some interop tests still fail, and further investigation is needed.

Co-authored-by: Nick Banks <nibanks@microsoft.com>
2020-09-04 18:01:14 -07:00
Thad House 00503513ab
Support OpenSSL on Windows (#778) 2020-09-01 16:37:11 -07:00
Thad House 15c09ba087
Update to CLOG 0.1.8 (#797)
Fixes output of characters, and also properly updates sidecar
2020-09-01 09:45:16 -07:00
Nick Banks db3fe4ed8e
Default CLOG Off in CMake (#796) 2020-09-01 08:31:44 -07:00
Nick Banks b7894676ba
Fixed Nonbuffered IO (#795) 2020-09-01 08:30:55 -07:00
Thad House 97336e4b24
Add vpid and vtid to lttng logs (#793)
They need to be explicitly enabled with a context, so this enables them in the 2 places we grab logs from
2020-08-31 11:33:13 -07:00
Thad House ce3bc8da6b
Fix issues with perf test matrix (#787)
Matrix values were incorrect, and defaults were always being used. Throughput this didn't matter, RPS it did matter a lot. Also increases the test timeout, some of the RPS tests take longer to finish
2020-08-28 20:26:34 -07:00
Nick Banks 1f4bfd765b
Perf Protocol Refactor (#785) 2020-08-28 12:43:34 -07:00
Thad House fbe48b14b9
Fix unaligned read and write ASAN error in stub TLS (#764)
* Fix unaligned read and write ASAN error in stub TLS

The pointer punning was unaligned, and ASAN warns about this

* Use memcmp and ZeroMemory
2020-08-26 09:32:13 -07:00
Thad House 0985f496a7
Combine loopback and remote performance runs into a single script. (#767)
* Combine loopback and remote into a single script.

By doing this, we make things much easier for PGO

* Fix perf pipeline

* Fix tools lookup

* Update PGO
2020-08-25 16:04:57 -07:00
Nick Banks 1ab02a8ed6
Clean up Logs on Failure (#766) 2020-08-25 16:01:48 -07:00
Nick Banks a2747c31c0
Add RPS Helper Script (#765) 2020-08-25 10:14:55 -07:00
Nick Banks b62956ff01
Clean up after Master to Main Rename (#757) 2020-08-22 11:32:02 -07:00
Thad House c62d90db53
Implement Kernel Mode Performance Testing (#722)
Changed required include using a private kernel library for CI testing, as msquic.sys can't be properly unloaded.
2020-08-21 13:46:39 -07:00
Anthony Rossi c05262bf5c
Create initial performance counters. (#723)
Co-authored-by: Nick Banks <nibanks@microsoft.com>
2020-08-20 15:18:45 -07:00
Thad House 2263745042
Upload separate PGO for localhost vs remote (#731)
Closes #727
2020-08-17 13:42:08 -07:00
Thad House b0e9c5f7b5
Fix missed clog version replacement in docker install script (#730) 2020-08-17 12:15:54 -07:00
Thad House 6e099b4ecb
Update to clog 0.1.7 (#729)
Fixes decoder build
2020-08-17 12:06:22 -07:00
Nick Banks ab78b59436
Interop Client Siduck Support (#717) 2020-08-13 07:25:14 -07:00
Thad House 638d821dc3
Onboard clang into build scripts and CI (#714) 2020-08-13 07:20:18 -07:00
chgray 21247b9dc7
Integrate clog 0.1.6 (#710) 2020-08-13 07:19:09 -07:00
Lars Eggert 681712b39d
Some improvements to docker interop logging. (#707)
* Create logs in the right place (/logs not /log)

* Unbuffer clog2text_lttng.

I only tested the "handshake" test case. With these changes, quic.log is now
always created. But there is still a race condition of some sort, because in
most of the runs, all it contains is something like "Decoded 0 in
00:00:00.0018700". In some runs, however, almost 50K of log are written.
2020-08-11 06:07:34 -07:00
Thad House 51b96dcbfd
Add RPS into perf test suite (#703)
With the sidechannel exit, remote tests should work again
2020-08-10 15:34:47 -07:00
Thad House b3c057cd7d
Add sidechannel to perf runner to enable stopping the tests safely internally (#702)
* Add sidechannel to perf runner to enable stopping the tests safely internally.

Only currently implemented in user mode, kernel mode will be different but done when kernel mode is finished
2020-08-10 14:34:01 -07:00
Nick Banks a35529c2c7
Cleanup Logging Script Args (#699) 2020-08-10 12:37:19 -07:00
Nick Banks bdbabadbbe
QUIC Network Simulation Logging Support (#675) 2020-08-10 12:07:43 -07:00
Nick Banks 7dd33418cf
Initial RPS Perf Code (#694) 2020-08-10 09:22:15 -07:00
Thad House eb158467c5
Fix some minor perf script bugs (#697)
Units were forced to kbps, default arguments were incorrect
2020-08-07 15:27:20 -07:00
Anthony Rossi c7794ffd2b
Fix Schannel TLS alerts not being read correctly. (#695)
The TLS alert buffer was being provided to Schannel incorrectly, causing the alert to always be zero.
A new TLS test was introduced to the platform unittests to cover this as well.
Adds a script to make it easier to run quicping.exe for repro and debugging purposes.
Skip TlsTest.CertificateError on non-Schannel platforms.
Fixes #255
2020-08-07 14:04:07 -07:00
Thad House eaf58f0832
Recreate perf database to allow running perf tests with changing arguments (#692)
Each test now has its own database group.

Also runs a matrix of arguments.
2020-08-07 13:18:58 -07:00
Nick Banks 937e84cd61
Refactored Perf Code (#691) 2020-08-06 13:20:13 -07:00
Thad House 5896832bdc
Finish switching clog to a dynamic tracepoint provider (#671) 2020-08-04 13:09:55 -07:00
Nick Banks ca85764ce4
Exercise Settings Code Paths (#670) 2020-08-03 12:03:12 -07:00
chgray 4088c46563
Fully Enable CLOG (LTTng) for Linux (#590) 2020-08-03 11:45:48 -07:00
Nick Banks 6798a1c95e
Connection Initialization Cleanup (#666) 2020-08-03 09:33:03 -07:00
Thad House 5bf71fb42d
Fix cmake installs since we added clog. (#636) 2020-07-30 07:33:11 -07:00
Thad House 091633d726
Create new Performance Execution Driver (#626)
New performance driver is custom built specifically for performance, rather then using quicping.

Also will be compatible with server mode, and baseline support is part of this commit.
2020-07-29 16:31:27 -07:00
Thad House ba4b76ab98
Fix distribution builds (#653)
Name of clog library was incorrect.
2020-07-28 16:25:11 -07:00
Thad House d985d44364
Increase Receive Buffer Drain Ratio (#651)
* Add Multi-Machine Tests to Perf Pipeline

Co-authored-by: Nick Banks <nibanks@microsoft.com>
2020-07-28 14:05:50 -07:00
Nick Banks ea4e033357
Support Disable 1-RTT Encryption Extension (#560) 2020-07-24 20:24:13 -07:00
Thad House 889454bcb1
Add zip archive distribution for libraries (#635) 2020-07-24 11:39:27 -07:00
Nick Banks 93987aea31
Update Docker Script to Clog v0.1.2 (#641) 2020-07-24 11:35:55 -07:00
Nick Banks 29a94ce43d
Code Coverage Core Only (#633) 2020-07-23 13:02:51 -07:00
Thad House 4b9f0ad9cd
Switch CI flag to be explicit skip flags for debugging helper flags (#631)
* Switch CI flag to be explicit skip flags for debugging helper flags

Will help to default local builds to be identical to CI. However, some of these flags can affect debugging in certain cases, so a flag is needed to disable them.

* Remove CI flag
2020-07-23 10:43:22 -07:00
Nick Banks 01011e3b11
Support Local Code Coverage Usage (#630) 2020-07-23 10:28:44 -07:00
Nick Banks ead83c34f1
prepare-machine.ps1 Refactoring and Clean Up (#629) 2020-07-23 10:27:44 -07:00
Anthony Rossi e6cd704a90
Add Code coverage to Azure Pipelines BVTs (#607)
Collects code coverage on the BVTs and SpinQuic.

Co-authored-by: Nick Banks <nibanks@microsoft.com>
2020-07-22 22:39:05 -07:00
Thad House f7d68bf1e9
Fix clog in kernel mode (#624)
* Fix clog in kernel mode

Bad files were being picked up, in addition clog wasn't being installed, and the kernel build is just ignoring this. I need to figure that out, but wanted the build fixed first
2020-07-21 15:34:59 -07:00
Thad House 2bfcb793e2
Change clog to use a published nuget package (#612)
* Change clog to use a published nuget package

Much cleaner and easier to update. The executable now contains all the clog dependencies, and extracts them when we run --installDependencies
2020-07-21 12:30:43 -07:00
Nick Banks 6d7fc84be2
Add Core Networking Stack to Verifier List (#617) 2020-07-20 16:42:37 -07:00
Nick Banks 1a13af0928
Driver Verifier for Kernel Mode (#615) 2020-07-20 13:42:24 -07:00
Nick Banks 5f7c10336c
Get Docker CI Passing Again (#613) 2020-07-17 18:45:25 -07:00
Thad House 3d0bfc60cf
Add support for SourceLink for msquic (#591) 2020-07-17 15:20:22 -07:00
Nick Banks 3e5099d436
Refactors Build Artifacts (#608) 2020-07-17 12:25:51 -07:00
Thad House f9e9947e22
Make perf results be placed into a path including configuration. (#602)
Without this, during PGO runs the PGO data has the same name, and gets put into the same location on azure, overwriting the prior test
2020-07-16 09:14:27 -07:00
Nick Banks 28f0bd9905
Windows Kernel Mode Test Automation (#595) 2020-07-14 16:33:03 -07:00
Thad House b6f4bbf7cc
Fix up issues in the PS Performance script (#585)
Timeout added to local run (configurable)
Local matcher now prints error on failure
Release mode as default
Automatically configure tls to match system if not set
Validate sets for tls and arch to enable tab completion
2020-07-09 17:17:51 -07:00
Thad House 3a6265ed0e
Fix test platform to match existing platforms (#583) 2020-07-09 13:58:16 -07:00
Thad House 6e1c47a47a
Add multi system test platform infrastructure (#573)
Perf Tests can now run either locally or cross systems. A setup has been created to make this work automatically on AZP.

Additionally, machine name is now published, along with other smaller code changes.
2020-07-09 10:30:02 -07:00
Thad House aaeb595697
Update CLOG dependency to use updated target generation (#581)
* Update CLOG dependency to use updated target generation

* Fix clog copy
2020-07-09 08:30:41 -07:00
chgray d87eebc86b
buildessential and not buildessentials (#580) 2020-07-08 10:25:01 -07:00
Thad House e7df560e22
Update clog submodule to fix output overwriting (#579)
* Update clog submodule to fix output overwriting

Switches the raspbian build to ninja, which will likely test this much better.
2020-07-07 14:04:27 -07:00
Nick Banks 6bcd3d0dd6
Fix Regression to Artifact Publishing (#578) 2020-07-07 10:34:58 -07:00
Nick Banks 2d68ae61d7
Azure Pipeline YAML Refactor & Improvements (#572) 2020-07-02 11:50:34 -07:00
chgray af64e17763
Integrate clog in a no-op way, in order to prepare for taking the tool in the near future (#569) 2020-07-01 12:56:42 -07:00
Nick Banks 247dbe97b3
Disable Send Buffering for Perf (#570) 2020-07-01 09:45:22 -07:00
Thad House 8bc61c5089
Allow QuicPing server to specify number of connections allowed before shutting down (#567)
* Allow QuicPing server to specify number of connections allowed before shutting down

By doing this, performance tests can be cleaner to run, as they can explicitly state how many connections are expected. Also adds parity with the client
2020-06-30 10:47:16 -07:00
Nick Banks 9d8934a12f
Disable APIPA Interface for Loopback Test Perf (#565) 2020-06-29 12:54:30 -07:00
Nick Banks 86e2f62b46
Standardize Container Builds (#564) 2020-06-29 10:42:01 -07:00
Nick Banks bfa9606aa9
Fix WPR Profile XML (#563) 2020-06-29 10:41:24 -07:00
Nick Banks 02577f0da4
Improve Loopback Perf Results (#555) 2020-06-28 12:16:26 -07:00
Anthony Rossi 4a3c186c9c
Enable Application Verifier on Windows BVTs. (#540) 2020-06-25 17:06:04 -07:00
Nick Banks a156f84998
Performance Stability Improvements (#549) 2020-06-24 09:54:51 -07:00
Nick Banks f83bf5ed67
Customizable Performance Pipeline (#544) 2020-06-23 11:35:59 -07:00
Nick Banks a2d76335fc
Fix Break in Perf Public Script (#543) 2020-06-22 20:21:15 -07:00
Nick Banks c478799e48
Move All Scripts to Top Level Scripts Folder (#538) 2020-06-22 16:18:26 -07:00
Nick Banks dd2b35a306
Dump Results on Error (#541) 2020-06-22 16:17:53 -07:00
Nick Banks b3b5762163
Improvements to the Perf Script (#536) 2020-06-19 13:02:15 -07:00
Thad House 8566a867f2
Enable building on Azure for Raspberry Pi with a cross compiler (#524)
* Allow building with Raspberry Pi Cross Compilers
2020-06-19 12:46:38 -07:00
Thad House 5e4715e7d0
Use port 4433 for performance testing (#535)
* Write outputs of perf testing

* Use port over 1000
2020-06-19 11:59:56 -07:00
Nick Banks 839644ad84
Add Support for PGO Azure Pipeline (#525) 2020-06-18 16:26:55 -07:00
Thad House 472ead1b47
Run perf tests on hosted system (#517)
* Run perf tests on hosted system

Co-authored-by: Nick Banks <nibanks@microsoft.com>
2020-06-18 07:59:41 -07:00
Nick Banks e401501cdb
Test Refactoring and Improvements (#513) 2020-06-17 13:06:34 -07:00
Thad House 902c7f2f31
Switch to using SQL database for performance results rather then files (#505)
* Switch performance tests to use SQL and ASP.NET Core server
2020-06-15 08:10:59 -07:00
Thad House c129642563
Fix data published to file (#502)
Last comma was missing, making parsing harder
2020-06-12 12:15:12 -07:00
Nick Banks 524843f1fd
Move run_endpoint.sh to scripts Folder (#496) 2020-06-11 20:19:28 -07:00
Thad House 6a0bb01b7f
Add base support for performance testing and reporting (#489)
Currently uses a test file in the data/performance branch, and is testing using quicping. More tests will be added in the future, along with a better data storage story.
2020-06-11 15:32:23 -07:00
Thad House 63c86ac0fc
Shutdown unregistered connections on worker pool (#483)
This will ensure we don't race manually cleaning up the unregistered connections and work being done on them by the datapath.

Also updates quicspin to loop, allowing the shutdown path to be hit more often.

Should fix #482
2020-06-11 10:26:31 -07:00
Nick Banks e9e81edd1a
Minor Script Improvements (#484) 2020-06-09 12:12:59 -07:00
Nick Banks 3ab883e51e
Adds Various Improvements to Interop Tool (#479) 2020-06-08 14:11:25 -07:00
Nick Banks da00d2a98b
Draft-28 Support (#469) 2020-06-05 16:17:10 -07:00
Thad House 45ecc633d8
Add support for building in UWP mode (#454) 2020-06-04 08:25:31 -07:00
Nick Banks 7a6a7e72ca
Add Build Support for PGO (#406) 2020-05-26 12:28:32 -07:00
Nick Banks 80fa7359ae
Small Refactor of Build Files (#407) 2020-05-26 10:18:33 -07:00
Nick Banks 216f0a5970
Normalize Line Endings (#384) 2020-05-12 19:08:05 -07:00
Nick Banks 24519588cf
Support NoProcDump Mode for Windows Test Script (#379) 2020-05-11 13:34:34 -07:00
Nick Banks a10d94050a
Fix PowerShell Script Defaults (#365) 2020-05-05 14:26:36 -07:00
Nick Banks 3fa74d4aa8
Initial merge of format strings for QuicTraceEvent (#360) 2020-05-04 13:57:25 -07:00
Nick Banks 970916f3d1
Per-Platform TLS Defaults in PowerShell Scripts (#353) 2020-05-03 18:06:38 -07:00
Nick Banks eaf136f3bd
Lots of Logging Refactoring (#349) 2020-04-30 12:32:38 -07:00
Nick Banks 41cf853920
Add Helpers to PowerShell Scripts (#317) 2020-04-13 14:49:45 -07:00
Nick Banks cbbb88f215
Isolate Test Cases (#284) 2020-04-01 13:29:04 -07:00
Nick Banks b9485d91ba
Run quicinterop in AZP (#275) 2020-03-26 12:19:08 -07:00
Nick Banks 8c15f07742
Fix the LTTng Package Install (#267) 2020-03-25 09:34:27 -07:00
Nick Banks 7eed2f8985
Add Version and Release Helper Scripts (#237) 2020-03-16 14:58:18 -07:00
Nick Banks 12a00eefc5
Improve Setup Scripts (#240) 2020-03-16 13:20:13 -07:00
Nick Banks ecbd4ddfaa
Package MsQuicEtw.lib for Windows (#216) 2020-03-04 07:29:57 -08:00
Anthony Rossi 85aaf030b2
Statically link the C runtime on Windows. (#201) 2020-02-29 10:15:56 -08:00
Nick Banks 1be934c83b
Improve SpinQuic Debuggability (#190) 2020-02-27 14:50:45 -08:00
Nick Banks 11fbda7a8c
Package Files for Windows OS Repo (#185) 2020-02-25 07:17:05 -08:00
Anthony Rossi e2e2a902f4
Add platform unit tests (#162)
Adds testing of the platform layers, and fixes an issue in the OpenSSL hash calculation discovered by these tests.
Fixes #93

Co-authored-by: Nick Banks <nibanks@microsoft.com>
2020-02-24 14:06:36 -08:00
Nick Banks e39b822e15
Run BVT Last (#159) 2020-02-19 11:23:43 -08:00
Anthony Rossi 02f0b265df
Onboard core unit tests to gtest (#136)
Co-authored-by: Nick Banks <nibanks@microsoft.com>
2020-02-18 18:27:50 -08:00
Nick Banks a931bb1019
Make Batch Execution Default for Google Tests (#146) 2020-02-18 15:03:24 -08:00
Nick Banks f94e774036
Fix Installation of ETW Manifest (#153) 2020-02-17 16:15:46 -08:00
Nick Banks 90bd0f27a8
Move PowerShell Scripts out of Root (#132)
Moving the scripts out of root to make the project look a little cleaner.
2020-02-12 15:27:44 -08:00