scsi: ses: don't ask for diagnostic pages repeatedly during probe
authorLi Dongyang <dongyang.li@anu.edu.au>
Mon, 13 Nov 2017 23:48:04 +0000 (10:48 +1100)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 5 Dec 2017 03:55:59 +0000 (22:55 -0500)
commit9c0a50022b8ac7e863e6ec8342fa476fe5d1d75c
treedf834c552366b6f80905fe6b93dd70a6ab758340
parentd828e5c6d7a0bdca824481189bb7a911a6bf2d31
scsi: ses: don't ask for diagnostic pages repeatedly during probe

We are testing if there is a match with the ses device in a loop by
calling ses_match_to_enclosure(), which will issue scsi receive
diagnostics commands to the ses device for every device on the same
host.  On one of our boxes with 840 disks, it takes a long time to load
the driver:

[root@g1b-oss06 ~]# time modprobe ses

real 40m48.247s
user 0m0.001s
sys 0m0.196s

With the patch:

[root@g1b-oss06 ~]# time modprobe ses

real 0m17.915s
user 0m0.008s
sys 0m0.053s

Note that we still need to refresh page 10 when we see a new disk to
create the link.

Signed-off-by: Li Dongyang <dongyang.li@anu.edu.au>
Tested-by: Jason Ozolins <jason.ozolins@hpe.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/ses.c