2017-12-04 16:39:38 +07:00
|
|
|
# SPDX-License-Identifier: GPL-2.0
|
2005-04-17 05:20:36 +07:00
|
|
|
comment "S/390 block device drivers"
|
2007-05-10 20:46:00 +07:00
|
|
|
depends on S390 && BLOCK
|
2005-04-17 05:20:36 +07:00
|
|
|
|
|
|
|
config BLK_DEV_XPRAM
|
2011-01-05 18:47:15 +07:00
|
|
|
def_tristate m
|
|
|
|
prompt "XPRAM disk support"
|
2007-05-10 20:46:00 +07:00
|
|
|
depends on S390 && BLOCK
|
2005-04-17 05:20:36 +07:00
|
|
|
help
|
|
|
|
Select this option if you want to use your expanded storage on S/390
|
|
|
|
or zSeries as a disk. This is useful as a _fast_ swap device if you
|
|
|
|
want to access more than 2G of memory when running in 31 bit mode.
|
|
|
|
This option is also available as a module which will be called
|
|
|
|
xpram. If unsure, say "N".
|
|
|
|
|
|
|
|
config DCSSBLK
|
2011-01-05 18:47:15 +07:00
|
|
|
def_tristate m
|
2017-01-27 04:54:35 +07:00
|
|
|
select DAX
|
2017-10-15 01:33:32 +07:00
|
|
|
select FS_DAX_LIMITED
|
2011-01-05 18:47:15 +07:00
|
|
|
prompt "DCSSBLK support"
|
2007-05-10 20:46:00 +07:00
|
|
|
depends on S390 && BLOCK
|
2005-04-17 05:20:36 +07:00
|
|
|
help
|
|
|
|
Support for dcss block device
|
|
|
|
|
|
|
|
config DASD
|
2011-01-05 18:47:15 +07:00
|
|
|
def_tristate y
|
|
|
|
prompt "Support for DASD devices"
|
2007-05-10 20:46:00 +07:00
|
|
|
depends on CCW && BLOCK
|
[S390] dasd: fix double elevator_exit call when deadline iosched fails to load
I compiled the kernel without deadline, and the dasd code exits the old
scheduler (CFQ), fails to load the new one (deadline), and then things just
hang - with one of these (sorry about the weird chars - I copy & pasted it
from a 3270 console):
dasd(eckd): 0.0.0151: 3390/0A(CU:3990/01) Cyl:3338 Head:15 Sec:224
------------ cut here ------------
Badness at kernel/mutex.c:134
Modules linked in: dasd_eckd_mod dasd_mod
CPU: 0 Not tainted 2.6.25-rc3 #9
Process exe (pid: 538, task: 000000000d172000, ksp: 000000000d21ef88)
Krnl PSW : 0404000180000000 000000000022fb5c (mutex_lock_nested+0x2a4/0x2cc)
R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:0 CC:0 PM:0 EA:3
Krnl GPRS: 0000000000024218 000000000076fc78 0000000000000000 000000000000000f
000000000022f92e 0000000000449898 000000000f921c00 000003e000162590
00000000001539c4 000000000d172000 070000007fffffff 000000000d21f400
000000000f8f2560 00000000002413f8 000000000022fb44 000000000d21f400
Krnl Code: 000000000022fb50: bf2f1000 icm %r2,15,0(%r1)
000000000022fb54: a774fef6 brc 7,22f940
000000000022fb58: a7f40001 brc 15,22fb5a
>000000000022fb5c: a7f4fef2 brc 15,22f940
000000000022fb60: c0e5fffa112a brasl %r14,171db4
000000000022fb66: 1222 ltr %r2,%r2
000000000022fb68: a784fedb brc 8,22f91e
000000000022fb6c: c010002a0086 larl %r1,76fc78
Call Trace:
(<000000000022f92e> mutex_lock_nested+0x76/0x2cc)
<00000000001539c4> elevator_exit+0x38/0x80
<0000000000156ffe> blk_cleanup_queue+0x62/0x7c
<000003e0001d5414> dasd_change_state+0xe0/0x8ec
<000003e0001d5cae> dasd_set_target_state+0x8e/0x9c
<000003e0001d5f74> dasd_generic_set_online+0x160/0x284
<000003e00011e83a> dasd_eckd_set_online+0x2e/0x40
<0000000000199bf4> ccw_device_set_online+0x170/0x2c0
<0000000000199d9e> online_store_recog_and_online+0x5a/0x14c
<000000000019a08a> online_store+0xbe/0x2ec
<000000000018456c> dev_attr_store+0x38/0x58
<000000000010efbc> sysfs_write_file+0x130/0x190
<00000000000af582> vfs_write+0xb2/0x160
<00000000000afc7c> sys_write+0x54/0x9c
<0000000000025e16> sys32_write+0x2e/0x50
<0000000000024218> sysc_noemu+0x10/0x16
<0000000077e82bd2> 0x77e82bd2
Set elevator pointer to NULL in order to avoid double elevator_exit
calls when elevator_init call for deadline iosched fails.
Also make sure the dasd device driver depends on IOSCHED_DEADLINE so
the default IO scheduler of the dasd driver is present.
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
2008-04-17 12:45:56 +07:00
|
|
|
select IOSCHED_DEADLINE
|
2005-04-17 05:20:36 +07:00
|
|
|
help
|
|
|
|
Enable this option if you want to access DASDs directly utilizing
|
|
|
|
S/390s channel subsystem commands. This is necessary for running
|
|
|
|
natively on a single image or an LPAR.
|
|
|
|
|
|
|
|
config DASD_PROFILE
|
2011-01-05 18:47:15 +07:00
|
|
|
def_bool y
|
|
|
|
prompt "Profiling support for dasd devices"
|
2005-04-17 05:20:36 +07:00
|
|
|
depends on DASD
|
|
|
|
help
|
|
|
|
Enable this option if you want to see profiling information
|
|
|
|
in /proc/dasd/statistics.
|
|
|
|
|
|
|
|
config DASD_ECKD
|
2011-01-05 18:47:15 +07:00
|
|
|
def_tristate y
|
|
|
|
prompt "Support for ECKD Disks"
|
2005-04-17 05:20:36 +07:00
|
|
|
depends on DASD
|
|
|
|
help
|
|
|
|
ECKD devices are the most commonly used devices. You should enable
|
|
|
|
this option unless you are very sure to have no ECKD device.
|
|
|
|
|
|
|
|
config DASD_FBA
|
2011-01-05 18:47:15 +07:00
|
|
|
def_tristate y
|
|
|
|
prompt "Support for FBA Disks"
|
2005-04-17 05:20:36 +07:00
|
|
|
depends on DASD
|
|
|
|
help
|
|
|
|
Select this option to be able to access FBA devices. It is safe to
|
|
|
|
say "Y".
|
|
|
|
|
|
|
|
config DASD_DIAG
|
2011-01-05 18:47:15 +07:00
|
|
|
def_tristate y
|
|
|
|
prompt "Support for DIAG access to Disks"
|
2006-03-24 18:15:24 +07:00
|
|
|
depends on DASD
|
2005-04-17 05:20:36 +07:00
|
|
|
help
|
|
|
|
Select this option if you want to use Diagnose250 command to access
|
|
|
|
Disks under VM. If you are not running under VM or unsure what it is,
|
|
|
|
say "N".
|
|
|
|
|
2006-03-24 18:15:25 +07:00
|
|
|
config DASD_EER
|
2011-01-05 18:47:15 +07:00
|
|
|
def_bool y
|
|
|
|
prompt "Extended error reporting (EER)"
|
2006-03-24 18:15:25 +07:00
|
|
|
depends on DASD
|
|
|
|
help
|
|
|
|
This driver provides a character device interface to the
|
|
|
|
DASD extended error reporting. This is only needed if you want to
|
|
|
|
use applications written for the EER facility.
|
2012-08-28 21:50:38 +07:00
|
|
|
|
|
|
|
config SCM_BLOCK
|
|
|
|
def_tristate m
|
|
|
|
prompt "Support for Storage Class Memory"
|
|
|
|
depends on S390 && BLOCK && EADM_SCH && SCM_BUS
|
|
|
|
help
|
|
|
|
Block device driver for Storage Class Memory (SCM). This driver
|
|
|
|
provides a block device interface for each available SCM increment.
|
|
|
|
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
|
|
module will be called scm_block.
|