[systemd-devel] [PATCH] readahead: ARM: fix rotational media detection for MMC

Koen Kooi koen at dominion.thruhere.net
Wed May 14 02:33:24 PDT 2014


Op 13 mei 2014, om 23:47 heeft Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl> het volgende geschreven:

> On Tue, May 13, 2014 at 02:14:20PM +0000, Chaiken, Alison wrote:
>> I wrote:
>>> The ARM runtime reports the major device type associated with
>>> /proc/self/mountinfo as MMC_BLOCK_MAJOR, causing on_ssd() in
>>> readahead-common.c to return false.   on_ssd() should return true, as
>>> MMC like SSD is not rotational.
>> 
>> Lennart writes:
>>> Not following here. fs_on_ssd() will actually check for the high-level
>>> ID_SSD property, as well as the "queue/rotational" sysfs attribute for
>>> the block device.
>> 
>> Those other checks are not reached, as the beginning of fs_on_ssd() has
>>        if (major(st.st_dev) == 0) {}
>> encapsulating them, and major(st.st_dev)=MMC_BLOCK_MAJOR, not 0.
> No, those other checks are *below* the if.
> 
> What do
> 
> 1. udevadm info /dev/mmcXXX | grep SSD

I noticed that on my machines with an SSD the string 'SSD' only appears in the name reported by the disk (e.g. "Samsung 840 Pro SSD").

> 2. cat /sys/class/block/mmcXXX/queue/rotational
> 
> say?

I tried it on 2 different ARM machines, one running 3.8, the other 3.15rc.

Kernel 3.8:

~# udevadm info /dev/mmcblk0
P: /devices/ocp.3/mmc.4/mmc_host/mmc0/mmc0:b368/block/mmcblk0
N: mmcblk0
S: disk/by-id/mmc-USD_0x4e851282
S: disk/by-path/platform-mmc.4
E: DEVLINKS=/dev/disk/by-id/mmc-USD_0x4e851282 /dev/disk/by-path/platform-mmc.4
E: DEVNAME=/dev/mmcblk0
E: DEVPATH=/devices/ocp.3/mmc.4/mmc_host/mmc0/mmc0:b368/block/mmcblk0
E: DEVTYPE=disk
E: ID_NAME=USD
E: ID_PART_TABLE_TYPE=dos
E: ID_PATH=platform-mmc.4
E: ID_PATH_TAG=platform-mmc_4
E: ID_SERIAL=0x4e851282
E: MAJOR=179
E: MINOR=0
E: SUBSYSTEM=block
E: TAGS=:systemd:
E: USEC_INITIALIZED=20422

~# cat /sys/class/block/mmcblk0/queue/rotational 
0

Kernel 3.15rc3:

~# udevadm info /dev/mmcblk0
P: /devices/68000000.ocp/4809c000.mmc/mmc_host/mmc0/mmc0:b368/block/mmcblk0
N: mmcblk0
S: disk/by-id/mmc-USD_0x4e74a777
S: disk/by-path/platform-4809c000.mmc
E: DEVLINKS=/dev/disk/by-id/mmc-USD_0x4e74a777 /dev/disk/by-path/platform-4809c000.mmc
E: DEVNAME=/dev/mmcblk0
E: DEVPATH=/devices/68000000.ocp/4809c000.mmc/mmc_host/mmc0/mmc0:b368/block/mmcblk0
E: DEVTYPE=disk
E: ID_NAME=USD
E: ID_PART_TABLE_TYPE=dos
E: ID_PATH=platform-4809c000.mmc
E: ID_PATH_TAG=platform-4809c000_mmc
E: ID_SERIAL=0x4e74a777
E: MAJOR=179
E: MINOR=0
E: SUBSYSTEM=block
E: TAGS=:systemd:
E: UDISKS_PARTITION_TABLE=1
E: UDISKS_PARTITION_TABLE_COUNT=2
E: UDISKS_PARTITION_TABLE_SCHEME=mbr
E: UDISKS_PRESENTATION_NOPOLICY=0
E: USEC_INITIALIZED=32370

~# cat /sys/class/block/mmcblk0/queue/rotational 
0

regards,

Koen



More information about the systemd-devel mailing list