Skip to content

Commit 057cb3c

Browse files
author
amin1377
committed
Delete the documents related to Kokoro
1 parent 5509cc1 commit 057cb3c

File tree

1 file changed

+0
-133
lines changed

1 file changed

+0
-133
lines changed

README.developers.md

Lines changed: 0 additions & 133 deletions
Original file line numberDiff line numberDiff line change
@@ -325,139 +325,6 @@ VTR also has a limited set of unit tests, which can be run with:
325325
$ make && make test
326326
```
327327

328-
## Running tests on Pull Requests (PRs) via Kokoro
329-
330-
Because of the long runtime for nightly and weekly tests, a Kokoro job can be
331-
used to run these tests once a Pull Request (PR) has been made at
332-
https://github.com/verilog-to-routing/vtr-verilog-to-routing.
333-
334-
Any pull request made by a contributor of the verilog-to-routing GitHub project
335-
on https://github.com/verilog-to-routing/ will get a set of jobs immediately.
336-
Non-contributors can request a contributor on the project add a label
337-
"kokoro:force-run" to the PR. Kokoro will then detect the tag, remove the tag,
338-
and then and issue jobs for that PR. If the tag remains after being added,
339-
there may not be an available Kokoro runner, so wait.
340-
341-
### Re-running tests on Kokoro
342-
343-
If a job fails due to an intermittent failure or a re-run is desired, a
344-
contributor can add the label "kokoro:force-run" to re-issue jobs for that PR.
345-
346-
### Checking results from Kokoro tests
347-
348-
Currently there is not a way for an in-flight job to be monitored.
349-
350-
Once a job has been completed, you can follow the "Details" link that appears on the PR status.
351-
The Kokoro page will show the job's stdout in the 'Target Log' tab (once the job has completed).
352-
The full log can be downloading by clicking the 'Download Full Log' button, or from the 'Artifacts' tab.
353-
354-
### Downloading logs from Google Cloud Storage (GCS)
355-
356-
After a Kokoro run is complete a number of useful log files (e.g. for each VPR invocation) are stored to Google Cloud Storage (GCS).
357-
358-
The top level directory containing all VTR Kokoro runs is:
359-
360-
https://console.cloud.google.com/storage/browser/vtr-verilog-to-routing/artifacts/prod/foss-fpga-tools/verilog-to-routing/upstream/
361-
362-
PR jobs are under the `presubmit` directory, and continuous jobs (which run on the master branch) are under the `continuous` directory.
363-
364-
Each Kokoro run has a unique build number, which can be found in the log file (available via the Kokoro run webpage).
365-
For example, if the log file contains:
366-
```
367-
export KOKORO_BUILD_NUMBER="450"
368-
```
369-
then the Kokoro build number is `450`.
370-
371-
If build 450 corresponded to a PR (`presubmit`) build of the `nightly` regression tests, the resulting output files would be available at:
372-
373-
https://console.cloud.google.com/storage/browser/vtr-verilog-to-routing/artifacts/prod/foss-fpga-tools/verilog-to-routing/upstream/presubmit/nightly/450/
374-
375-
where `presubmit/nightly/450/` (the type, test name and build number) have been appended to the base URL.
376-
Navigating to that URL will allow you to browse and download the collected log files.
377-
378-
To download all the files from that Kokoro run, replace `https://console.cloud.google.com/storage/browser/` in the URL with `gs://` and invoke the [gsutil](https://cloud.google.com/storage/docs/gsutil) command (and it's `cp -R` sub-command), like so:
379-
380-
```
381-
gsutil -m cp -R gs://vtr-verilog-to-routing/artifacts/prod/foss-fpga-tools/verilog-to-routing/upstream/presubmit/nightly/450 .
382-
```
383-
384-
This will download all of the logs to the current directory for inspection.
385-
386-
#### Kokoro runner details
387-
388-
Kokoro runners are a standard
389-
[`n1-highmem-16`](https://cloud.google.com/compute/docs/machine-types#n1_high-memory_machine_types)
390-
VM with a 4 TB `pd-standard` disk used to perform the build of VPR and run the
391-
tests.
392-
393-
#### What to do if Kokoro jobs are not starting?
394-
395-
There are several reasons Kokoro jobs might not be starting.
396-
Try adding the "kokoro:force-run" label if it is not already added, or remove
397-
and add it if it already was added.
398-
399-
If adding the label has no affect, check GCS status, as a GCS disruption will
400-
also disrupt Kokoro.
401-
402-
Another reason jobs may not start is if there is a large backlog of jobs
403-
running, there may be no runners left to start. In this case, someone with
404-
Kokoro management rights may need to terminate stale jobs, or wait for job
405-
timeouts.
406-
407-
# Debugging Failed Tests
408-
409-
If a test fails you probably want to look at the log files to determine the cause.
410-
411-
Lets assume we have a failure in `vtr_reg_basic`:
412-
413-
```shell
414-
#In the VTR root directory
415-
$ ./run_reg_test.py vtr_reg_strong
416-
#Output trimmed...
417-
regression_tests/vtr_reg_basic/basic_no_timing
418-
-----------------------------------------
419-
k4_N10_memSize16384_memData64/ch_intrinsics/common failed: vpr
420-
k4_N10_memSize16384_memData64/diffeq1/common failed: vpr
421-
#Output trimmed...
422-
regression_tests/vtr_reg_basic/basic_no_timing...[Fail]
423-
k4_N10_memSize16384_memData64.xml/ch_intrinsics.v vpr_status: golden = success result = exited
424-
#Output trimmed...
425-
Error: 10 tests failed!
426-
```
427-
428-
Here we can see that `vpr` failed, which caused subsequent QoR failures (`[Fail]`), and resulted in 10 total errors.
429-
430-
To see the log files we need to find the run directory.
431-
We can see from the output that the specific test which failed was `regression_tests/vtr_reg_basic/basic_no_timing`.
432-
All the regression tests take place under `vtr_flow/tasks`, so the test directory is `vtr_flow/tasks/regression_tests/vtr_reg_basic/basic_no_timing`.
433-
Lets move to that directory:
434-
```shell
435-
#From the VTR root directory
436-
$ cd vtr_flow/tasks/regression_tests/vtr_reg_basic/basic_no_timing
437-
$ ls
438-
config run001 run003
439-
latest run002 run004 run005
440-
```
441-
442-
There we see there is a `config` directory (which defines the test), and a set of run-directories.
443-
Each time a test is run it creates a new `runXXX` directory (where `XXX` is an incrementing number).
444-
From the above we can tell that our last run was `run005` (the symbolic link `latest` also points to the most recent run directory).
445-
From the output of `run_reg_test.py` we know that one of the failing architecture/circuit/parameters combinations was `k4_N10_memSize16384_memData64/ch_intrinsics/common`.
446-
Each architecture/circuit/parameter combination is run in its own sub-folder.
447-
Lets move to that directory:
448-
```shell
449-
$ cd run005/k4_N10_memSize16384_memData64/ch_intrinsics/common
450-
$ ls
451-
abc.out k4_N10_memSize16384_memData64.xml qor_results.txt
452-
ch_intrinsics.net odin.out thread_1.out
453-
ch_intrinsics.place output.log vpr.out
454-
ch_intrinsics.pre-vpr.blif output.txt vpr_stdout.log
455-
ch_intrinsics.route parse_results.txt
456-
```
457-
458-
Here we can see the individual log files produced by each tool (e.g. `vpr.out`), which we can use to guide our debugging.
459-
We could also manually re-run the tools (e.g. with a debugger) using files in this directory.
460-
461328
# Evaluating Quality of Result (QoR) Changes
462329
VTR uses highly tuned and optimized algorithms and data structures.
463330
Changes which effect these can have significant impacts on the quality of VTR's design implementations (timing, area etc.) and VTR's run-time/memory usage.

0 commit comments

Comments
 (0)