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

Issue 812144 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Mar 2018
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

factory: probe tool run too slow

Project Member Reported by yhong@chromium.org, Feb 14 2018

Issue description

Active probing runs a function once per component class and outputs the values of the component class, but the principle of passive probing is trying to probe each component (there might be a lot of components of same component class) and verify if the component exists or not.  Therefore, the new probe tool now runs very slow and can be faster because many probing methods of each component are all quite similar.

So the code should do cache to speed up the probing process.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Mar 20 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/factory/+/2ce5196086e62c9098f89d6e62e83b3757f14868

commit 2ce5196086e62c9098f89d6e62e83b3757f14868
Author: Yong Hong <yhong@chromium.org>
Date: Tue Mar 20 16:51:12 2018

probe: Refactor the probe framework and add a readme document.

This CL moves the definition of function's base classes from
`py/probe/function.py` into `py/probe/lib/` so that we can extend
the probe framework to have more useful base classes easily.

BUG= chromium:812144 
TEST=make test

Change-Id: Ic182142e29b2440ece00d07de6516c4e63bf17f7
Reviewed-on: https://chromium-review.googlesource.com/958048
Commit-Ready: Yong Hong <yhong@google.com>
Tested-by: Yong Hong <yhong@google.com>
Reviewed-by: Cheng-Han Yang <chenghan@chromium.org>

[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/generic_usb_hosts.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/generic_tpm.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/generic_audio_codec.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/i2c.py
[add] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/lib/combination_function.py
[add] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/README.md
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/flash_chip.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/probe_cmdline.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/generic_bluetooth.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/generic_network_device.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/sysfs.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/function.py
[add] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/or_unittest.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/file.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/function_unittest.py
[add] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/lib/action_function_unittest.py
[add] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/sequence_unittest.py
[add] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/inner_join.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/tools/deps.conf
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/chromeos_firmware.py
[add] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/lib/probe_function.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/generic_storage.py
[add] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/or.py
[add] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/sequence.py
[add] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/lib/action_function.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/input_device.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/touchscreen_elan.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/pci.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/detachable_base.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/generic_cpu.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/generic_video.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/generic_dram.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/edid.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/shell.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/usb.py
[add] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/lib/__init__.py
[add] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/lib/probe_function_unittest.py
[modify] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/glob_path.py
[add] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/lib/factory_common.py
[add] https://crrev.com/2ce5196086e62c9098f89d6e62e83b3757f14868/py/probe/functions/inner_join_unittest.py

Project Member

Comment 2 by bugdroid1@chromium.org, Mar 20 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/factory/+/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e

commit 94cb07db1e19ff1403b08dab8fbd9a7f128cac7e
Author: Yong Hong <yhong@chromium.org>
Date: Tue Mar 20 19:16:04 2018

probe: Cache probe results to speed-up the probe runtime.

This CL implements the cache mechanism for the probe functions
to speed-up the runtime of the probe tool.  As most of the probed
results are hardware related and should be non-volatile, the cached
data will never be expired.

BUG= chromium:812144 
TEST=make test; manually test on DUT

Change-Id: If95cacfcce52ac92a0a997db74ad2011e5ef9c94
Reviewed-on: https://chromium-review.googlesource.com/965711
Commit-Ready: Yong Hong <yhong@google.com>
Tested-by: Yong Hong <yhong@google.com>
Reviewed-by: Yilun Lin <yllin@chromium.org>

[add] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/detachable_base_unittest.py
[modify] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/generic_usb_hosts.py
[modify] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/generic_tpm.py
[modify] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/generic_audio_codec.py
[add] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/lib/cached_probe_function.py
[modify] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/flash_chip.py
[modify] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/generic_bluetooth.py
[modify] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/generic_network_device.py
[modify] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/generic_battery.py
[modify] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/chromeos_firmware.py
[modify] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/generic_storage.py
[modify] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/usb_unittest.py
[modify] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/input_device.py
[modify] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/touchscreen_elan.py
[modify] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/pci_unittest.py
[modify] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/pci.py
[modify] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/detachable_base.py
[modify] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/generic_cpu.py
[modify] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/generic_video.py
[modify] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/generic_dram.py
[modify] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/usb.py
[add] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/lib/cached_probe_function_unittest.py
[modify] https://crrev.com/94cb07db1e19ff1403b08dab8fbd9a7f128cac7e/py/probe/functions/touchscreen_elan_unittest.py

Comment 3 by yhong@chromium.org, Mar 21 2018

Components: Factory
Status: Fixed (was: Assigned)

Sign in to add a comment