- rebased to 2.28.0
This commit is contained in:
parent
da9838c800
commit
d81d4fd383
@ -1,108 +0,0 @@
|
|||||||
From 493af760ed47454f5719f05a6e6316f43a3be98a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stefan Haberland <sth@linux.ibm.com>
|
|
||||||
Date: Mon, 8 May 2023 14:52:54 +0200
|
|
||||||
Subject: [PATCH] zdev: add support for autoquiesce related sysfs attributes
|
|
||||||
|
|
||||||
Autoquiesce is a mechanism that tells Linux to stop issuing I/Os to a
|
|
||||||
specific DASD after certain events.
|
|
||||||
|
|
||||||
Add support for configuring related DASD device attributes
|
|
||||||
that govern the following aspects of autoquiesce:
|
|
||||||
|
|
||||||
aq_mask - Configure which events lead to autoquiesce.
|
|
||||||
aq_requeue - Configure if autoquiesce will requeue all I/O to blocklayer.
|
|
||||||
aq_timeouts - Configure the number of timeouts before autoquiesce.
|
|
||||||
|
|
||||||
Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
|
|
||||||
Reviewed-by: Peter Oberparleiter <oberpar@linux.ibm.com>
|
|
||||||
Signed-off-by: Steffen Eiden <seiden@linux.ibm.com>
|
|
||||||
---
|
|
||||||
zdev/src/dasd.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
1 file changed, 65 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/zdev/src/dasd.c b/zdev/src/dasd.c
|
|
||||||
index f9fd231..4330229 100644
|
|
||||||
--- a/zdev/src/dasd.c
|
|
||||||
+++ b/zdev/src/dasd.c
|
|
||||||
@@ -344,6 +344,68 @@ static struct attrib dasd_attr_fc_security = {
|
|
||||||
.readonly = 1,
|
|
||||||
};
|
|
||||||
|
|
||||||
+static struct attrib dasd_attr_aq_mask = {
|
|
||||||
+ .name = "aq_mask",
|
|
||||||
+ .title = "Specify autoquiesce triggers",
|
|
||||||
+ .desc =
|
|
||||||
+ "Use the aq_mask attribute to automatically quiesce a device and block\n"
|
|
||||||
+ "new I/O after certain events.\n"
|
|
||||||
+ "\n"
|
|
||||||
+ "The value is a bitmask in decimal or hexadecimal format where each set bit\n"
|
|
||||||
+ "indicates that the associated event shown in the table below triggers an\n"
|
|
||||||
+ "autoquiesce.\n"
|
|
||||||
+ " Bit 0 is not used.\n"
|
|
||||||
+ " 1 - 0x02 - A terminal I/O error occurred\n"
|
|
||||||
+ " 2 - 0x04 - No active channel paths remain for the device\n"
|
|
||||||
+ " 3 - 0x08 - A state change interrupt occurred\n"
|
|
||||||
+ " 4 - 0x10 - The device is PPRC suspended\n"
|
|
||||||
+ " 5 - 0x20 - No space is left on an ESE device\n"
|
|
||||||
+ " 6 - 0x40 – The number of timeouts specified in aq_timeouts is reached\n"
|
|
||||||
+ " 7 - 0x80 - I/O was not started because of an error in the start function\n"
|
|
||||||
+ "\n"
|
|
||||||
+ "For example bits 1,3 and 5 set (0010 1010) lead to an integer value of 42\n"
|
|
||||||
+ "or 0x2A.\n"
|
|
||||||
+ "An integer value of 0 turns off the autoquiesce function.\n",
|
|
||||||
+ .order_cmp = ccw_online_only_order_cmp,
|
|
||||||
+ .check = ccw_online_only_check,
|
|
||||||
+ .defval = "0",
|
|
||||||
+ /*
|
|
||||||
+ * Currently only 8 bits are defined and the max value is 255.
|
|
||||||
+ * This needs to be adjusted if more bits are defined.
|
|
||||||
+ */
|
|
||||||
+ .accept = ACCEPT_ARRAY(ACCEPT_RANGE(0, 255)),
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static struct attrib dasd_attr_aq_requeue = {
|
|
||||||
+ .name = "aq_requeue",
|
|
||||||
+ .title = "Control I/O requeing during autoquiesce",
|
|
||||||
+ .desc =
|
|
||||||
+ "Use the aq_requeue attribute to control whether outstanding I/O\n"
|
|
||||||
+ "operations to the blocklayer should be automatically requeued after\n"
|
|
||||||
+ "an autoquiesce event.\n"
|
|
||||||
+ "Valid values are 1 for requeuing, or 0 for no requeueing.\n"
|
|
||||||
+ "Requeing the I/O requests to the blocklayer might benefit I/O\n"
|
|
||||||
+ "in case of a copy_pair swap operation.\n",
|
|
||||||
+ .order_cmp = ccw_online_only_order_cmp,
|
|
||||||
+ .check = ccw_online_only_check,
|
|
||||||
+ .defval = "0",
|
|
||||||
+ .accept = ACCEPT_ARRAY(ACCEPT_RANGE(0, 1)),
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static struct attrib dasd_attr_aq_timeouts = {
|
|
||||||
+ .name = "aq_timeouts",
|
|
||||||
+ .title = "Specify timeout retry threshold",
|
|
||||||
+ .desc =
|
|
||||||
+ "Specify the number of sequential timeout events for an I/O operation\n"
|
|
||||||
+ "before an autoquiesce is triggered on a device.\n"
|
|
||||||
+ "This requires that the corresponding trigger bit 6 is set\n"
|
|
||||||
+ "in the aq_mask attribute.\n",
|
|
||||||
+ .order_cmp = ccw_online_only_order_cmp,
|
|
||||||
+ .check = ccw_online_only_check,
|
|
||||||
+ .defval = "32768",
|
|
||||||
+ .accept = ACCEPT_ARRAY(ACCEPT_RANGE(0, 32768)),
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
* DASD subtype methods.
|
|
||||||
*/
|
|
||||||
@@ -725,6 +787,9 @@ struct subtype dasd_subtype_eckd = {
|
|
||||||
&dasd_attr_safe_offline,
|
|
||||||
&dasd_attr_fc_security,
|
|
||||||
&dasd_attr_copy_pair,
|
|
||||||
+ &dasd_attr_aq_mask,
|
|
||||||
+ &dasd_attr_aq_requeue,
|
|
||||||
+ &dasd_attr_aq_timeouts,
|
|
||||||
&internal_attr_early,
|
|
||||||
),
|
|
||||||
.unknown_dev_attribs = 1,
|
|
||||||
--
|
|
||||||
2.39.2
|
|
||||||
|
|
0
s390utils-2.28.0-fedora.patch
Normal file
0
s390utils-2.28.0-fedora.patch
Normal file
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
Name: s390utils
|
Name: s390utils
|
||||||
Summary: Utilities and daemons for IBM z Systems
|
Summary: Utilities and daemons for IBM z Systems
|
||||||
Version: 2.27.0
|
Version: 2.28.0
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Epoch: 2
|
Epoch: 2
|
||||||
License: MIT
|
License: MIT
|
||||||
@ -38,7 +38,7 @@ Patch0: s390-tools-zipl-invert-script-options.patch
|
|||||||
Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch
|
Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch
|
||||||
|
|
||||||
# upstream fixes/updates
|
# upstream fixes/updates
|
||||||
Patch100: s390utils-%{version}-fedora.patch
|
#Patch100: s390utils-%%{version}-fedora.patch
|
||||||
|
|
||||||
Requires: s390utils-core = %{epoch}:%{version}-%{release}
|
Requires: s390utils-core = %{epoch}:%{version}-%{release}
|
||||||
Requires: s390utils-base = %{epoch}:%{version}-%{release}
|
Requires: s390utils-base = %{epoch}:%{version}-%{release}
|
||||||
@ -67,10 +67,7 @@ be used together with the zSeries (s390) Linux kernel and device drivers.
|
|||||||
%patch 1 -p1 -b .blscfg-rpm-nvr-sort
|
%patch 1 -p1 -b .blscfg-rpm-nvr-sort
|
||||||
|
|
||||||
# upstream fixes/updates
|
# upstream fixes/updates
|
||||||
%patch 100 -p1
|
#%%patch 100 -p1
|
||||||
|
|
||||||
# remove --strip from install
|
|
||||||
find . -name Makefile | xargs sed -i 's/$(INSTALL) -s/$(INSTALL)/g'
|
|
||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -898,6 +895,9 @@ User-space development files for the s390/s390x architecture.
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Jul 11 2023 Dan Horák <dan[at]danny.cz> - 2:2.28.0-1
|
||||||
|
- rebased to 2.28.0
|
||||||
|
|
||||||
* Wed May 31 2023 Dan Horák <dan[at]danny.cz> - 2:2.27.0-1
|
* Wed May 31 2023 Dan Horák <dan[at]danny.cz> - 2:2.27.0-1
|
||||||
- rebased to 2.27.0
|
- rebased to 2.27.0
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (s390-tools-2.27.0.tar.gz) = 8ec83718639d17fe7b1990f4e492f1e1bdd11e814b7838c921733eeccb212f417141042118eadf1e8db498e3ff2ce0c8d404189e436cefe17d9a3dacea22429f
|
SHA512 (s390-tools-2.28.0.tar.gz) = ece3a1463e2c8b8e5626a5a8956c5d1a1227661dce2e75cbda0cb30b0a3fecb3f17a0cffc631c500eb7fda4094691f9cdbc342b7b9d1b7539f1a754cae9d6a84
|
||||||
|
Loading…
Reference in New Issue
Block a user