New issue
Advanced search Search tips

Issue 655192 link

Starred by 5 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: 2016-10-17
OS: Chrome
Pri: 2
Type: Feature


Sign in to add a comment

support nvme based storage

Project Member Reported by gwendal@chromium.org, Oct 12 2016

Issue description

Currently, init scripts and tests assume device storage is either SATA, eMMC or (to a certain extend) raw flash.
Add support for NVMe: device name is nvmeXnY (usually X = 0, Y = 1).

Areas that need some upgrade:
+ autotest:
 - hardware_StorageQualBase/hardware_SsdDetection.test 
             FAIL: The main disk [] is not fixed
 - hardware_StorageQualBase
             FAIL: The main disk [] is not fixed
 - /platform_CryptohomeFio.XXXX   
             TEST_NA: Test only on internal disk

+ chromeos-common.sh
 - in get_device_type and other base functions.



 

Comment 1 by puthik@chromium.org, Oct 13 2016

Cc: puthik@chromium.org
Do we need to also upgrade platform2/userfeedback/scripts/storage_info ?
Project Member

Comment 2 by bugdroid1@chromium.org, Oct 14 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/portage-stable/+/e329efb740e597543d18aa6444fbf49179904025

commit e329efb740e597543d18aa6444fbf49179904025
Author: Gwendal Grignou <gwendal@chromium.org>
Date: Wed Oct 12 16:58:15 2016

smartmontools: upgraded package to upstream

Upgraded sys-apps/smartmontools to version 6.5 on amd64, arm, x86

Command used:
cros_portage_upgrade \
--board=amd64-generic:veyron_minnie-cheets:x86-generic \
--upgrade smartmontools --unstable-ok

BUG=chromium:655192
TEST=Test on a machine booting from NVMe that smartctl is working:
smartctl  -A /dev/nvme0n1
smartctl  -x /dev/nvme0n1 and other commands mentioned in
https://www.smartmontools.org/wiki/NVMe_Support

Change-Id: If1d28a697e7d07b769146dc5b853192e6dae9dc1
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/397438
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[add] https://crrev.com/e329efb740e597543d18aa6444fbf49179904025/sys-apps/smartmontools/files/smartmontools-update-drivedb
[add] https://crrev.com/e329efb740e597543d18aa6444fbf49179904025/sys-apps/smartmontools/smartmontools-6.5.ebuild
[modify] https://crrev.com/e329efb740e597543d18aa6444fbf49179904025/sys-apps/smartmontools/Manifest
[delete] https://crrev.com/1e7dc9112bcf204f965d5f9dd888086dc35d41ad/metadata/md5-cache/sys-apps/smartmontools-5.42
[modify] https://crrev.com/e329efb740e597543d18aa6444fbf49179904025/sys-apps/smartmontools/metadata.xml
[add] https://crrev.com/e329efb740e597543d18aa6444fbf49179904025/sys-apps/smartmontools/files/smartd-r1.rc
[delete] https://crrev.com/1e7dc9112bcf204f965d5f9dd888086dc35d41ad/sys-apps/smartmontools/files/smartd.rc
[delete] https://crrev.com/1e7dc9112bcf204f965d5f9dd888086dc35d41ad/sys-apps/smartmontools/smartmontools-5.42.ebuild
[add] https://crrev.com/e329efb740e597543d18aa6444fbf49179904025/metadata/md5-cache/sys-apps/smartmontools-6.5

Project Member

Comment 3 by bugdroid1@chromium.org, Oct 17 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/df2d269d4bcad38b448c23d1b830225f5fd32f98

commit df2d269d4bcad38b448c23d1b830225f5fd32f98
Author: Deepti Patil <deepti.patil@intel.com>
Date: Fri Mar 04 09:54:58 2016

installer: Identify NVMe device as such

Have get_device_type return NMVE when device is a NVMe device.

BUG=chromium:655192
TEST=Check on a machine booting from NMVe.

Change-Id: If510da86fb5c8b4385f02596f90005940be9f308
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/398486
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/df2d269d4bcad38b448c23d1b830225f5fd32f98/installer/share/chromeos-common.sh

Project Member

Comment 4 by bugdroid1@chromium.org, Oct 17 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/66cc835fb96e97dc0f5cd4024930a327fe6668fb

commit 66cc835fb96e97dc0f5cd4024930a327fe6668fb
Author: Gwendal Grignou <gwendal@chromium.org>
Date: Fri Oct 14 15:48:57 2016

userfeedback: Add NVMe storage information

At boot, collect NVMe SMART information.

BUG=chromium:655192
TEST=Check on a machine booting from NMVe.

Change-Id: I3dac4d92e161f72f58fab8cbc4bc518a53c29b3e
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/398487
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/66cc835fb96e97dc0f5cd4024930a327fe6668fb/installer/share/chromeos-common.sh
[modify] https://crrev.com/66cc835fb96e97dc0f5cd4024930a327fe6668fb/userfeedback/scripts/storage_info

Project Member

Comment 5 by bugdroid1@chromium.org, Oct 21 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/d5131c51e20190d6d02833fb901cdb8cc3bf827e

commit d5131c51e20190d6d02833fb901cdb8cc3bf827e
Author: Gwendal Grignou <gwendal@chromium.org>
Date: Wed Oct 19 00:12:52 2016

installer: Add nvme as list of device ending with digits.

NVMe device ends with digit, need p for partitioning:
nvme0n1p12.

BUG=chromium:655192
TEST=unit test. Test 'cros deploy' works on a NVMe based machine.

Change-Id: I8547399f64ce45b205d717e0fbb5ab5f72175e04
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/399934
Reviewed-by: Don Garrett <dgarrett@chromium.org>

[modify] https://crrev.com/d5131c51e20190d6d02833fb901cdb8cc3bf827e/installer/inst_util.cc
[modify] https://crrev.com/d5131c51e20190d6d02833fb901cdb8cc3bf827e/installer/inst_util_unittest.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Oct 22 2016

Labels: merge-merged-chromeos-3.18
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/976566b0aff51630568b5916906e7792cd553140

commit 976566b0aff51630568b5916906e7792cd553140
Author: Gwendal Grignou <gwendal@chromium.org>
Date: Fri Oct 21 17:32:34 2016

CHROMIUM: config: Add support for NVMe

Add NVMe stack to the kernel to boot from NVMe device

BUG=chromium:655192
TEST=Boot from a machine from NVMe: without the patch, the kernel can
not find the boot device.
Once booted, run xfsFilesystemTestSuite and StorageQualBase.test.

Change-Id: Ibda970e14db2a71b460d731e14f7d4ddc7afa011
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/401527
Reviewed-by: Guenter Roeck <groeck@chromium.org>

[modify] https://crrev.com/976566b0aff51630568b5916906e7792cd553140/chromeos/config/x86_64/common.config

Project Member

Comment 7 by bugdroid1@chromium.org, Oct 22 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/vboot_reference/+/08d56aa7a7df69e80aa0a1fd6e847aa1adde5f9c

commit 08d56aa7a7df69e80aa0a1fd6e847aa1adde5f9c
Author: Gwendal Grignou <gwendal@chromium.org>
Date: Thu Oct 13 20:18:37 2016

cgpt: Add support for NVMe

find: A p is added betwen device name and partition whenever the last
character of a device is a number, as written in disk_name() in kernel
block/partition-generic.c file.

debug_vboot: Add regex for nvme device.

BUG=chromium:655192
BRANCH=none
TEST=Check that when a machine boots from NVMe, chromeos-setgoodkernel
set "successful" field properly.
Run " dev_debug_vboot --cleanup", check the NVMe device kernel
partitions are verified.

Change-Id: I6a9342c95500fa582f51f06e48c1ff90684c2a27
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/398338
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/08d56aa7a7df69e80aa0a1fd6e847aa1adde5f9c/utility/dev_debug_vboot
[modify] https://crrev.com/08d56aa7a7df69e80aa0a1fd6e847aa1adde5f9c/cgpt/cgpt_find.c

Blockedon: 659262
Project Member

Comment 9 by bugdroid1@chromium.org, Nov 2 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/a409c80507d68befd00d3e9aa20cf378f11c1fb9

commit a409c80507d68befd00d3e9aa20cf378f11c1fb9
Author: Gwendal Grignou <gwendal@chromium.org>
Date: Thu Oct 13 16:41:08 2016

Add support for NVMe device

Add support in storage client tests to support NVMe device.

BUG=chromium:655192
TEST=Run StorageQualBase.test.
Verified that all tests (Cryptohome and plain fio tests) passed.

Change-Id: Ieadd636c2f459e45f8e5c06067d9055300bab09c
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/398158

[modify] https://crrev.com/a409c80507d68befd00d3e9aa20cf378f11c1fb9/client/bin/base_utils.py
[modify] https://crrev.com/a409c80507d68befd00d3e9aa20cf378f11c1fb9/client/site_tests/hardware_SsdDetection/hardware_SsdDetection.py
[modify] https://crrev.com/a409c80507d68befd00d3e9aa20cf378f11c1fb9/client/site_tests/hardware_StorageFio/hardware_StorageFio.py

Blockedon: 669596
Project Member

Comment 11 by bugdroid1@chromium.org, Jan 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/portage-stable/+/d2b77e2cdaac0bb0cd93a19ce91fa7a012b27461

commit d2b77e2cdaac0bb0cd93a19ce91fa7a012b27461
Author: Gwendal Grignou <gwendal@chromium.org>
Date: Fri Dec 16 16:16:45 2016

nvme-cli: upgraded package to upstream

Upgraded sys-apps/nvme-cli to version 1.1 on amd64, x86

Revert to EAPI=5

Command used:
cros_portage_upgrade --board=x86-generic:chell-cheets --amend \
  --unstable-ok  --upgrade --local-only sys-apps/nvme-cli

BUG=chromium:655192
TEST=On a machine with a NVMe device, check basic functions work:
nvme list
nvme id-ctrl /dev/nvme0
nvme smart-log /dev/nvme0n1
...

Change-Id: I6bfd9ccdcc06c9b6d099dc305b15354ad9705e64
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/396902
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[add] https://crrev.com/d2b77e2cdaac0bb0cd93a19ce91fa7a012b27461/sys-apps/nvme-cli/nvme-cli-1.1.ebuild
[add] https://crrev.com/d2b77e2cdaac0bb0cd93a19ce91fa7a012b27461/sys-apps/nvme-cli/Manifest
[add] https://crrev.com/d2b77e2cdaac0bb0cd93a19ce91fa7a012b27461/metadata/md5-cache/sys-apps/nvme-cli-1.1
[add] https://crrev.com/d2b77e2cdaac0bb0cd93a19ce91fa7a012b27461/sys-apps/nvme-cli/metadata.xml

Blockedon: 700436
Project Member

Comment 13 by bugdroid1@chromium.org, Mar 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/851df426973cde43bda513dff607615a616d8d17

commit 851df426973cde43bda513dff607615a616d8d17
Author: Gwendal Grignou <gwendal@chromium.org>
Date: Tue Mar 21 02:30:25 2017

Fix Regex error in c/398158

Regexes would match /dev/sda twice, leading to error like:
The main disk ['sda', 'sda'] is not fixed

Add decoration to pass --verify.

BUG=b:35984191,chromium:655192
TEST=Check manually that regexes match only once the following devices:
/dev/sda
/dev/mmcblk0
/dev/nvme0n1

Change-Id: I9609f78c51bfe95d53dc9bd76ad6af43c8010b3a
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/455267
Reviewed-by: Puthikorn Voravootivat <puthik@chromium.org>

[modify] https://crrev.com/851df426973cde43bda513dff607615a616d8d17/client/site_tests/hardware_SsdDetection/hardware_SsdDetection.py

Project Member

Comment 14 by bugdroid1@chromium.org, Jun 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/6562fe7f22bec9b8b92433b2560349b144560f41

commit 6562fe7f22bec9b8b92433b2560349b144560f41
Author: Gwendal Grignou <gwendal@chromium.org>
Date: Thu Jun 22 06:38:10 2017

installer: Add support for multiple rootdev choices

On machines that can support multiple types of boot devices (eMMC + NVMe
/ SATA + NVMe), allow DEFAULT_ROOTDEV to be a space separted list of
strings, each contains a possible path to the device, where pathname
expansion is allowed.

BUG=chromium:655192
TEST=By setting DEFAULT_ROOTDEV to different values, check
get_fixed_dst_drive return the right value.

Change-Id: Icc78babaa9ae0a260c51c2caab715959d61eaa4c
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/540666
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/6562fe7f22bec9b8b92433b2560349b144560f41/installer/share/chromeos-common.sh
[modify] https://crrev.com/6562fe7f22bec9b8b92433b2560349b144560f41/installer/chromeos-install

Project Member

Comment 15 by bugdroid1@chromium.org, Jun 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/876e691c1a10808db4ac0d55b91ce1145dd0708b

commit 876e691c1a10808db4ac0d55b91ce1145dd0708b
Author: Gwendal Grignou <gwendal@chromium.org>
Date: Sat Jun 24 10:08:14 2017

utils.py: Fix regex to identify nvme devices

/dev/nvme0 is not a storage device, /dev/nvme0n1 is.
Fix the regex so that get_disk_from_filename() reports nvme0n1 instead
of nvme0.

BUG=chromium:655192
TEST=Check get_disk_from_filename report nvme0n1 for a file on this
device. Check regex works fine for mmcblk0.

Change-Id: I744aa7971c1417b8194b8a66d674cb88d505d412
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/543542
Reviewed-by: Puthikorn Voravootivat <puthik@chromium.org>

[modify] https://crrev.com/876e691c1a10808db4ac0d55b91ce1145dd0708b/client/bin/utils.py

Status: Started (was: Untriaged)
Project Member

Comment 17 by bugdroid1@chromium.org, Jul 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/285d3aa9da80170f348305c2389ce5c93f911818

commit 285d3aa9da80170f348305c2389ce5c93f911818
Author: Gwendal Grignou <gwendal@chromium.org>
Date: Thu Jul 27 22:44:04 2017

target-chromium-os-dev: Add nvme-cli when needed

Add nvme cli on devices that may have NVMe devices.

BUG=chromium:655192
TEST=Check on device with USE=nvme set that nvme-cli is in the dev image.

Change-Id: I574cd5b44b2858d3f52d3877bbd05dc9a7c9999a
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/589767
Reviewed-by: Chirantan Ekbote <chirantan@chromium.org>

[rename] https://crrev.com/285d3aa9da80170f348305c2389ce5c93f911818/virtual/target-chromium-os-dev/target-chromium-os-dev-1-r23.ebuild
[modify] https://crrev.com/285d3aa9da80170f348305c2389ce5c93f911818/virtual/target-chromium-os-dev/target-chromium-os-dev-1.ebuild

Project Member

Comment 18 by bugdroid1@chromium.org, Aug 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/327fec6a1dbcbc88342eb5f4fc95c84f112dcc37

commit 327fec6a1dbcbc88342eb5f4fc95c84f112dcc37
Author: Gwendal Grignou <gwendal@chromium.org>
Date: Sun Aug 06 05:07:59 2017

[cros_label]: Add nvme label

Add label storage:nvme for device booting from NVMe.

BUG=chromium:655192
TEST=Check regex is valid when rootdev_str='/dev/nvme0n1'

Change-Id: Ib6eab06673cc47ab0d874369ae2260dac7619082
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/588051
Reviewed-by: Xixuan Wu <xixuan@chromium.org>

[modify] https://crrev.com/327fec6a1dbcbc88342eb5f4fc95c84f112dcc37/server/hosts/cros_label.py

Labels: -Pri-3 Pri-2
Owner: gwendal@chromium.org
Project Member

Comment 20 by bugdroid1@chromium.org, Aug 18 2017

Labels: merge-merged-release-R61-9765.B
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/6caf4d0e3a0bd36a598b593918e4e9955b4c689f

commit 6caf4d0e3a0bd36a598b593918e4e9955b4c689f
Author: Gwendal Grignou <gwendal@chromium.org>
Date: Fri Aug 18 00:39:51 2017

target-chromium-os-dev: Add nvme-cli when needed

Add nvme cli on devices that may have NVMe devices.

BUG=chromium:655192
TEST=Check on device with USE=nvme set that nvme-cli is in the dev image.

Change-Id: I574cd5b44b2858d3f52d3877bbd05dc9a7c9999a
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/589767
Reviewed-by: Chirantan Ekbote <chirantan@chromium.org>
(cherry picked from commit 285d3aa9da80170f348305c2389ce5c93f911818)
Reviewed-on: https://chromium-review.googlesource.com/617452
Reviewed-by: Duncan Laurie <dlaurie@google.com>
Commit-Queue: Duncan Laurie <dlaurie@google.com>
Tested-by: Duncan Laurie <dlaurie@google.com>

[rename] https://crrev.com/6caf4d0e3a0bd36a598b593918e4e9955b4c689f/virtual/target-chromium-os-dev/target-chromium-os-dev-1-r23.ebuild
[modify] https://crrev.com/6caf4d0e3a0bd36a598b593918e4e9955b4c689f/virtual/target-chromium-os-dev/target-chromium-os-dev-1.ebuild

Project Member

Comment 21 by bugdroid1@chromium.org, Aug 24 2017

Labels: merge-merged-chromeos-4.4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/ac736ab40d6d1b9e353f6630f7708d849be0b015

commit ac736ab40d6d1b9e353f6630f7708d849be0b015
Author: Keith Busch <keith.busch@intel.com>
Date: Thu Aug 24 02:04:11 2017

BACKPORT: NVMe: Allow request merges

It is generally more efficient to submit larger IO.

Signed-off-by: Keith Busch <keith.busch@intel.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
(cherry picked from commit ef2d4615c59efb312e531a5e949970f37ca1c841)
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>

BUG=chromium:655192,b:37954744
TEST=Check with
blktrace -d /dev/nvme0n1 -D /tmp -o dd &
sleep 1
dd if=/dev/nvme0n1p5 of=/dev/null bs=256K count=1
sleep 1
kill %1

and

blkparse /tmp/dd

that we have only 2 IOs of 128K each instead of multiple 4K..32K IOs.

Change-Id: I20e80cb913b0a5be97ddabf1477d81cd0d6b78f8
Reviewed-on: https://chromium-review.googlesource.com/617381
Commit-Ready: Gwendal Grignou <gwendal@chromium.org>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Puthikorn Voravootivat <puthik@chromium.org>

[modify] https://crrev.com/ac736ab40d6d1b9e353f6630f7708d849be0b015/drivers/nvme/host/pci.c

Project Member

Comment 22 by bugdroid1@chromium.org, Aug 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/a1846c4dfb59a792a5d2b583f236d2750290da7b

commit a1846c4dfb59a792a5d2b583f236d2750290da7b
Author: Christoph Hellwig <hch@lst.de>
Date: Thu Aug 24 02:04:13 2017

BACKPORT: nvme: fix max_segments integer truncation

The block layer uses an unsigned short for max_segments.  The way we
calculate the value for NVMe tends to generate very large 32-bit values,
which after integer truncation may lead to a zero value instead of
the desired outcome.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reported-by: Jeff Lien <Jeff.Lien@hgst.com>
Tested-by: Jeff Lien <Jeff.Lien@hgst.com>
Reviewed-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
(cherry picked from commit 45686b6198bd824f083ff5293f191d78db9d708a)
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>

BUG=chromium:655192
TEST=Check max_segments is still valid.

Change-Id: I6748a750a2e658849bc24f186dfa17af6efd262b
Reviewed-on: https://chromium-review.googlesource.com/617382
Commit-Ready: Gwendal Grignou <gwendal@chromium.org>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Puthikorn Voravootivat <puthik@chromium.org>

[modify] https://crrev.com/a1846c4dfb59a792a5d2b583f236d2750290da7b/drivers/nvme/host/pci.c

Project Member

Comment 23 by bugdroid1@chromium.org, Aug 24 2017

Labels: merge-merged-factory-eve-9667.B
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/402e9b2edc67acf849c55b5dec8a67abe165a9cc

commit 402e9b2edc67acf849c55b5dec8a67abe165a9cc
Author: Gwendal Grignou <gwendal@chromium.org>
Date: Thu Aug 24 02:59:40 2017

installer: Add support for multiple rootdev choices

On machines that can support multiple types of boot devices (eMMC + NVMe
/ SATA + NVMe), allow DEFAULT_ROOTDEV to be a space separted list of
strings, each contains a possible path to the device, where pathname
expansion is allowed.

BUG=chromium:655192
TEST=By setting DEFAULT_ROOTDEV to different values, check
get_fixed_dst_drive return the right value.

Change-Id: Icc78babaa9ae0a260c51c2caab715959d61eaa4c
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/540666
Reviewed-by: Mike Frysinger <vapier@chromium.org>
(cherry picked from commit 6562fe7f22bec9b8b92433b2560349b144560f41)
Reviewed-on: https://chromium-review.googlesource.com/630981
Reviewed-by: Yilun Lin <yllin@chromium.org>
Commit-Queue: Yilun Lin <yllin@chromium.org>
Tested-by: Yilun Lin <yllin@chromium.org>

[modify] https://crrev.com/402e9b2edc67acf849c55b5dec8a67abe165a9cc/installer/share/chromeos-common.sh
[modify] https://crrev.com/402e9b2edc67acf849c55b5dec8a67abe165a9cc/installer/chromeos-install

Project Member

Comment 24 by bugdroid1@chromium.org, Aug 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/f5f759593426919f6fdd11412a4d6e10acb6913b

commit f5f759593426919f6fdd11412a4d6e10acb6913b
Author: Keith Busch <keith.busch@intel.com>
Date: Thu Aug 24 08:25:48 2017

BACKPORT: NVMe: Export namespace attributes to sysfs

Exposes the NGUID, EUI-64, and NSID to sysfs entries under the disk's
kobject.

Signed-off-by: Keith Busch <keith.busch@intel.com>
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
(cherry picked from commit 2b9b6e86bca7209de02754fc84acf7ab3e78734e)
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>

BUG=chromium:655192
TEST=Check /sys/block/nvme0n1/uuid is populated

Change-Id: Ic0d91bcf724b4fb098de92db91c6077dbfcd5610
Reviewed-on: https://chromium-review.googlesource.com/617383
Commit-Ready: Gwendal Grignou <gwendal@chromium.org>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>

[modify] https://crrev.com/f5f759593426919f6fdd11412a4d6e10acb6913b/drivers/nvme/host/pci.c
[modify] https://crrev.com/f5f759593426919f6fdd11412a4d6e10acb6913b/drivers/nvme/host/nvme.h

Project Member

Comment 25 by bugdroid1@chromium.org, Aug 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/797702bdfae89441b69f1e50661b310492268928

commit 797702bdfae89441b69f1e50661b310492268928
Author: Keith Busch <keith.busch@intel.com>
Date: Thu Aug 24 08:25:49 2017

BACKPORT: NVMe: Export NVMe attributes to sysfs group

Adds all controller information to attribute list exposed to sysfs, and
appends the reset_controller attribute to it. The nvme device is created
with this attribute list, so driver no long manages its attributes.

Reported-by: Sujith Pandel <sujithpshankar@gmail.com>
Cc: Sujith Pandel <sujithpshankar@ gmail.com>
Cc: David Milburn <dmilburn@redhat.com>
Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
(cherry picked from commit 779ff75617099f4defe14e20443b95019a4c5ae8)
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>

BUG=chromium:655192
TEST=Check serial/model/firmware_rev are populated.

Change-Id: I0cd08487f79177ccfad34715d1e63233a1f59113
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/617384
Reviewed-by: Puthikorn Voravootivat <puthik@chromium.org>

[modify] https://crrev.com/797702bdfae89441b69f1e50661b310492268928/drivers/nvme/host/pci.c

Labels: Merge-Request-61
Project Member

Comment 27 by sheriffbot@chromium.org, Aug 24 2017

Labels: -Merge-Request-61 Merge-Review-61 Hotlist-Merge-Review
This bug requires manual review: We are only 11 days from stable.
Please contact the milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), ketakid@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 28 by bugdroid1@chromium.org, Aug 25 2017

Labels: merge-merged-release-R61-9765.B-chromeos-4.4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/61b8559194adc9371e033960f78bc23c0c67830e

commit 61b8559194adc9371e033960f78bc23c0c67830e
Author: Keith Busch <keith.busch@intel.com>
Date: Fri Aug 25 17:42:03 2017

BACKPORT: NVMe: Export namespace attributes to sysfs

Exposes the NGUID, EUI-64, and NSID to sysfs entries under the disk's
kobject.

Signed-off-by: Keith Busch <keith.busch@intel.com>
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
(cherry picked from commit 2b9b6e86bca7209de02754fc84acf7ab3e78734e)
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>

BUG=chromium:655192
TEST=Check /sys/block/nvme0n1/uuid is populated

Change-Id: Ic0d91bcf724b4fb098de92db91c6077dbfcd5610
Reviewed-on: https://chromium-review.googlesource.com/617383
Commit-Ready: Gwendal Grignou <gwendal@chromium.org>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
(cherry picked from commit f5f759593426919f6fdd11412a4d6e10acb6913b)
Reviewed-on: https://chromium-review.googlesource.com/632899
Commit-Queue: Gwendal Grignou <gwendal@chromium.org>

[modify] https://crrev.com/61b8559194adc9371e033960f78bc23c0c67830e/drivers/nvme/host/pci.c
[modify] https://crrev.com/61b8559194adc9371e033960f78bc23c0c67830e/drivers/nvme/host/nvme.h

Project Member

Comment 29 by bugdroid1@chromium.org, Aug 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/96b64fe4c44587daadc09c06df607ec7b36c8001

commit 96b64fe4c44587daadc09c06df607ec7b36c8001
Author: Christoph Hellwig <hch@lst.de>
Date: Fri Aug 25 17:44:23 2017

BACKPORT: nvme: fix max_segments integer truncation

The block layer uses an unsigned short for max_segments.  The way we
calculate the value for NVMe tends to generate very large 32-bit values,
which after integer truncation may lead to a zero value instead of
the desired outcome.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reported-by: Jeff Lien <Jeff.Lien@hgst.com>
Tested-by: Jeff Lien <Jeff.Lien@hgst.com>
Reviewed-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
(cherry picked from commit 45686b6198bd824f083ff5293f191d78db9d708a)
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>

BUG=chromium:655192
TEST=Check max_segments is still valid.

Change-Id: I6748a750a2e658849bc24f186dfa17af6efd262b
Reviewed-on: https://chromium-review.googlesource.com/617382
Commit-Ready: Gwendal Grignou <gwendal@chromium.org>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Puthikorn Voravootivat <puthik@chromium.org>
(cherry picked from commit a1846c4dfb59a792a5d2b583f236d2750290da7b)
Reviewed-on: https://chromium-review.googlesource.com/632898
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Commit-Queue: Gwendal Grignou <gwendal@chromium.org>

[modify] https://crrev.com/96b64fe4c44587daadc09c06df607ec7b36c8001/drivers/nvme/host/pci.c

Project Member

Comment 30 by bugdroid1@chromium.org, Aug 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/78e686c4e3aae2f52e07a8b4f7a914204b1c748b

commit 78e686c4e3aae2f52e07a8b4f7a914204b1c748b
Author: Keith Busch <keith.busch@intel.com>
Date: Fri Aug 25 17:56:51 2017

BACKPORT: NVMe: Export NVMe attributes to sysfs group

Adds all controller information to attribute list exposed to sysfs, and
appends the reset_controller attribute to it. The nvme device is created
with this attribute list, so driver no long manages its attributes.

Reported-by: Sujith Pandel <sujithpshankar@gmail.com>
Cc: Sujith Pandel <sujithpshankar@ gmail.com>
Cc: David Milburn <dmilburn@redhat.com>
Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
(cherry picked from commit 779ff75617099f4defe14e20443b95019a4c5ae8)
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>

BUG=chromium:655192
TEST=Check serial/model/firmware_rev are populated.

Change-Id: I0cd08487f79177ccfad34715d1e63233a1f59113
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/617384
Reviewed-by: Puthikorn Voravootivat <puthik@chromium.org>
(cherry picked from commit 797702bdfae89441b69f1e50661b310492268928)
Reviewed-on: https://chromium-review.googlesource.com/636203

[modify] https://crrev.com/78e686c4e3aae2f52e07a8b4f7a914204b1c748b/drivers/nvme/host/pci.c

Project Member

Comment 31 by bugdroid1@chromium.org, Aug 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/5f3619ef451dd3834fc8474caed73e5f80778dff

commit 5f3619ef451dd3834fc8474caed73e5f80778dff
Author: Keith Busch <keith.busch@intel.com>
Date: Fri Aug 25 22:18:30 2017

BACKPORT: NVMe: Allow request merges

It is generally more efficient to submit larger IO.

Signed-off-by: Keith Busch <keith.busch@intel.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
(cherry picked from commit ef2d4615c59efb312e531a5e949970f37ca1c841)
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>

BUG=chromium:655192,b:37954744
TEST=Check with
blktrace -d /dev/nvme0n1 -D /tmp -o dd &
sleep 1
dd if=/dev/nvme0n1p5 of=/dev/null bs=256K count=1
sleep 1
kill %1

and

blkparse /tmp/dd

that we have only 2 IOs of 128K each instead of multiple 4K..32K IOs.

Change-Id: I20e80cb913b0a5be97ddabf1477d81cd0d6b78f8
Reviewed-on: https://chromium-review.googlesource.com/617381
Commit-Ready: Gwendal Grignou <gwendal@chromium.org>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Puthikorn Voravootivat <puthik@chromium.org>
(cherry picked from commit ac736ab40d6d1b9e353f6630f7708d849be0b015)
Reviewed-on: https://chromium-review.googlesource.com/632897
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Trybot-Ready: Gwendal Grignou <gwendal@chromium.org>
Commit-Queue: Gwendal Grignou <gwendal@chromium.org>

[modify] https://crrev.com/5f3619ef451dd3834fc8474caed73e5f80778dff/drivers/nvme/host/pci.c

Labels: -Merge-Review-61 Merge-Approved-61
Approving merge to M61 and M62.
Project Member

Comment 33 by sheriffbot@chromium.org, Sep 11 2017

Cc: ketakid@google.com
This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible!

If all merges have been completed, please remove any remaining Merge-Approved labels from this issue.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 34 Deleted

Comment 35 Deleted

Blockedon: 765962
Project Member

Comment 37 by sheriffbot@chromium.org, Sep 18 2017

This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible!

If all merges have been completed, please remove any remaining Merge-Approved labels from this issue.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 38 by sheriffbot@chromium.org, Oct 31 2017

Labels: -Merge-Approved-61
This issue hasn't been updated in the last 6 weeks, so removing its merge approval label. Please re-request a merge if needed.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 39 by bugdroid1@chromium.org, Dec 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/3660c193677b133ef87d730cef35e3f6d51c069d

commit 3660c193677b133ef87d730cef35e3f6d51c069d
Author: Gwendal Grignou <gwendal@chromium.org>
Date: Mon Dec 11 23:16:28 2017

FIXUP: [cros_label]: Add nvme label

Fix spelling from nmve to nvme.

BUG=chromium:655192
TEST=none

Change-Id: Ibf85491b8e85e76706c52a88fa1f5cd377e56797
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/811585
Reviewed-by: Xixuan Wu <xixuan@chromium.org>

[modify] https://crrev.com/3660c193677b133ef87d730cef35e3f6d51c069d/server/hosts/cros_label.py

Project Member

Comment 40 by bugdroid1@chromium.org, Jun 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/625d0f969c1e882e1918eeed4443cc5afacd1a44

commit 625d0f969c1e882e1918eeed4443cc5afacd1a44
Author: Gwendal Grignou <gwendal@chromium.org>
Date: Sat Jun 16 01:51:07 2018

FIXUP: Add support for NVMe device

Commit a409c80507d68befd00d3e9aa20cf378f11c1fb9 had an error: it put 'p'
in the block device name for nvme or emmc device.

I see the error while reviewing qual results.

BUG=chromium:655192,b:72353146
TEST=Check locally the regex is truncating the 'p'.

Change-Id: I3db3ff8d1e6999d5dd6efc085ab72fababed1b12
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1097509
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Reviewed-by: Puthikorn Voravootivat <puthik@chromium.org>

[modify] https://crrev.com/625d0f969c1e882e1918eeed4443cc5afacd1a44/client/site_tests/hardware_StorageFio/hardware_StorageFio.py

Project Member

Comment 41 by bugdroid1@chromium.org, Jul 7

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/bd19be8e38910e3b9a14d193800c1f2b34f9fa37

commit bd19be8e38910e3b9a14d193800c1f2b34f9fa37
Author: Alexis Savery <asavery@chromium.org>
Date: Sat Jul 07 01:48:48 2018

hardware_StorageFio: Get vendor and model name on nvme

The vendor and model are stored in a different file path on nvme.

BUG=chromium:655192
TEST=hardware_StorageFio finds correct device description on nvme

Change-Id: I96f6c2fd61de156906a35d35c36326d3eb90b74d
Reviewed-on: https://chromium-review.googlesource.com/1117874
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Alexis Savery <asavery@chromium.org>
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>

[modify] https://crrev.com/bd19be8e38910e3b9a14d193800c1f2b34f9fa37/client/site_tests/hardware_StorageFio/hardware_StorageFio.py

Blockedon: 887983
Blockedon: 896020
Blockedon: 889349

Sign in to add a comment