New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 734452 link

Starred by 1 user

Issue metadata

Status: Archived
Owner:
Closed: Jun 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Feature



Sign in to add a comment

Make --compress for rsync optional in deploy_chrome

Project Member Reported by satorux@chromium.org, Jun 19 2017

Issue description

edcourtney@ found that deploy_chrome is much faster without --compress when using a USB 3.0 gigabit dongle (but slower when using a USB 2.0 100mbps dongle):

deploy_chrome with and without --compress
- Gigabit: 16s   -> 11s
- 100mbps: 16.3s -> 28s
 
deploy_chrome --nostrip with and without --compress
- Gigabit: 2m32s -> 48s
- 100mpbs: 2m33s -> 6:10s

I think it's good to make --compress optional.

Also, would be nice if deploy_chrome could auto-detect the right option. dspaid@ suggested we could use use "ethtool" for this.
 
Labels: -OS-Linux OS-Chrome
Components: Tools
The numbers above were from caroline and z840.
I created a patch locally, which I failed to upload, that adds --compress=always,never,auto to deploy_chrome. Will try to upload tomorrow.

Comment 4 by ihf@chromium.org, Jun 20 2017

Good suggestion. Notice that these transmission times will depend on the latency between DUT and dev machine. Normally latency will be zero, but sometimes it could be 10...100ms when developing away from the workplace.
https://chromium-review.googlesource.com/c/541096/ was merged, but the bug wasn't updated for some reason.

Cc: grundler@chromium.org
grundler@ pointed out in the code review that cdc_ether driver doesn't report link speed via ethtool. Hence gigabit dongles covered by the driver aren't auto detected. Any ideas on detecting these dongles?
Project Member

Comment 8 by bugdroid1@chromium.org, Jun 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7aad48da550b0f282bc7e31000b91a925618c7fc

commit 7aad48da550b0f282bc7e31000b91a925618c7fc
Author: satorux <satorux@chromium.org>
Date: Wed Jun 21 08:05:02 2017

Roll src/third_party/chromite/ 72c510ef4..df34c6894 (65 commits)

https://chromium.googlesource.com/chromiumos/chromite.git/+log/72c510ef4082..df34c6894b82

$ git log 72c510ef4..df34c6894 --date=short --no-merges --format='%ad %ae %s'
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-20 satorux deploy_chrome: Fix a bug where --target-dir wasn't honored correctly
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-15 stevenjb crome_stages.py: Pass --internal to cros chrome-sdk
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-08 bhthompson chromeos_config: generate firmware configs for all release boards
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-15 stevenjb cros_chrome_sdk: Ignore changes to non critical GN args
2017-06-08 bhthompson chromeos_config: remove most depthcharge firmware configs
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-20 satorux deploy_chrome: Add --compress=always,never,auto option
2017-06-15 bhthompson chromeos_config: Promote veyron_tiger and veyron_jaq paladins to important
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-20 chrome-bot Update config settings by config-updater.
2017-06-19 chrome-bot Update config settings by config-updater.
2017-06-19 chrome-bot Update config settings by config-updater.
2017-06-19 chrome-bot Update config settings by config-updater.
2017-06-16 mikewu Upload licensing file as artifact in ArchiveStage
2017-06-19 chrome-bot Update config settings by config-updater.
2017-06-19 chrome-bot Update config settings by config-updater.
2017-06-19 chrome-bot Update config settings by config-updater.
2017-06-19 chrome-bot Update config settings by config-updater.
2017-06-19 chrome-bot Update config settings by config-updater.
2017-06-07 nxia Only cancel obsolete slave builds with the right master_config tag.
2017-06-14 stevenjb cros_chrome_sdk: Elim non chromium checkout support
2017-06-19 chrome-bot Update config settings by config-updater.
2017-06-19 chrome-bot Update config settings by config-updater.
2017-06-15 achuith cros_run_vm_test: Avoid doing work in __del__ if possible.
2017-06-01 edjee cbuildbot: lakitu-st: add cbuildbot configuration for lakitu-st
2017-06-05 stevenjb Elim x86-generic from PFQ and paladins
2017-06-14 dgarrett cbuildbot_launch: Add a presence metric for builds.
2017-06-14 akeshet chromeos_config: mark lakitu-gpu-paladin experimental
2017-06-12 nya chromeos_config: Do not update BINHOST in Android PFB.
2017-06-12 ihf PFQ: mark caroline important.
2017-06-14 chrome-bot Update config settings by config-updater.
2017-06-13 dgarrett cbuildbot_launch: Generate improved fields for all metrics.
2017-06-14 hidehiko Enable goma on bots with AFDO enabled.
2017-06-14 stevenjb Revert "cros_chrome_sdk: Elim support for GS LATEST- files"
2017-06-09 hidehiko Enable goma for TestSimpleChrome step.
2017-06-07 ddavenport chromite: Move tree_status.py to chromite/lib
2017-06-13 dshi Add arg suppress_exception to ts_mon_config.SetupTsMonGlobalState
2017-05-30 dgarrett metrics: Add a Presence context manager.
2017-06-05 dgarrett metrics: Fix lint error.
2017-05-19 dgarrett cbuildbot_launch: Move cbuildbot checkout to subdirectory.
2017-06-09 bhthompson Add eve paladin builder
2017-06-06 shapiroc HWTest fanout support for unified builds
2017-06-12 stevenjb cros_chrome_sdk: Elim support for GS LATEST- files
2017-06-09 hidehiko Support goma for TestSimpleChromeStep.
2017-06-08 hidehiko Refactor goma related code in cbuildbot.

Created with:
  roll-dep src/third_party/chromite

BUG= 734452 

Review-Url: https://codereview.chromium.org/2948053002
Cr-Commit-Position: refs/heads/master@{#481139}

[modify] https://crrev.com/7aad48da550b0f282bc7e31000b91a925618c7fc/DEPS

Satoru,
Just some unsolicited advice below - it's going to sound a bit patronizing but I really mean it as a short tutorial on how/why we run benchmarks.  I think you are doing a "Good Thing" with these changes and I can only thank you for the effort you've put into this so far.

I don't have an answer for comment #7 (how to query link rate of cdc_ether devices).

First, please literally cut/paste the entire test command(s) into the commit message. CL 541096 clearly has a typo and this does not help with credibility of the test results:
    % deploy_chorme --nostrip --compress=always ...

Please include the entire command so others can try to reproduce your results should there be issues in the future.  If the methodology to benchmark is long and complicated, write up a doc if one doesn't already exist and refer to that doc in the commit message.

Next, collecting results: put them into a spreadsheet and document _everything_. See go/cros-usb-ethernet-perf as an example. The whole point of collecting benchmark results is to document a behavior. This will become the baseline for future comparison (ie next time something related is changed, repeat this benchmark).  In particular, make sure anyone can understand what was being measured (time to transfer X MB) and compared (kevin vs chell and different options). But for future reference, please also include mfg/model of the USB dongle in use and which build was used for A/B testing.

Lastly, I think ihf is right: we know what the data transfer rate into a particular DUT is since we've transferred loads of data to it many times before. The complicated part is to record those kinds of things across the fleet. But any significant change in transfer rate could generate warnings that we don't really have any other tests for.

grundler@, thank you for the suggestions. Here's the steps:

% cros chrome-sdk --board=<board>
$ gn gen out_$SDK_BOARD/Release --args="$GN_ARGS"
$ ninja -C out_$SDK_BOARD/Release/ -j 500 chrome  chrome_sandbox
$ time deploy_chrome --build-dir=out_${SDK_BOARD}/Release --to=<ip> --nostrip --target-dir=/var/tmp/chrome --compress=<option>

/var/tmp/chrome on the device was wiped every time before running deploy_chrome.

https://www.amazon.com/dp/B00ZZ6NW5E/ is the dongle I used. The following is the output from dmesg when the dongle is inserted.

[  205.991377] usb 2-3: new SuperSpeed USB device number 4 using xhci_hcd
[  206.003610] usb 2-3: New USB device found, idVendor=0bda, idProduct=8153
[  206.003643] usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=6
[  206.003670] usb 2-3: Product: USB 10/100/1000 LAN
[  206.003688] usb 2-3: Manufacturer: Realtek
[  206.003704] usb 2-3: SerialNumber: 000002
[  206.007214] platform vpd: Driver vpd requests probe deferral
[  206.108759] usb 2-3: reset SuperSpeed USB device number 4 using xhci_hcd
[  206.146023] r8152 2-3:1.0 eth0: v1.08.3
[  206.146169] platform vpd: Driver vpd requests probe deferral

Status: Fixed (was: Assigned)

Comment 12 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Sign in to add a comment