From: Stefan Haberland <sth@linux.ibm.com>
To: Jens Axboe <axboe@kernel.dk>
Cc: linux-block@vger.kernel.org,
Jan Hoeppner <hoeppner@linux.ibm.com>,
linux-s390@vger.kernel.org, Heiko Carstens <hca@linux.ibm.com>,
Vasily Gorbik <gor@linux.ibm.com>,
Christian Borntraeger <borntraeger@de.ibm.com>
Subject: [PATCH 4/7] s390/dasd: add aq_requeue sysfs attribute
Date: Wed, 5 Apr 2023 16:20:14 +0200 [thread overview]
Message-ID: <20230405142017.2446986-5-sth@linux.ibm.com> (raw)
In-Reply-To: <20230405142017.2446986-1-sth@linux.ibm.com>
Add a sysfs attribute to control if all IO requests will be requeued to
the blocklayer in case of an autoquiesce event or not.
A value of 1 means that in case of an autoquiesce event all IO requests
will be requeued to the blocklayer.
A value of 0 means that the device will only be stopped.
Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
Reviewed-by: Jan Hoeppner <hoeppner@linux.ibm.com>
---
drivers/s390/block/dasd_devmap.c | 36 ++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/drivers/s390/block/dasd_devmap.c b/drivers/s390/block/dasd_devmap.c
index c7c948c55761..95c7959c7949 100644
--- a/drivers/s390/block/dasd_devmap.c
+++ b/drivers/s390/block/dasd_devmap.c
@@ -1517,6 +1517,41 @@ static ssize_t dasd_aq_mask_store(struct device *dev, struct device_attribute *a
static DEVICE_ATTR(aq_mask, 0644, dasd_aq_mask_show, dasd_aq_mask_store);
+/*
+ * aq_requeue controls if requests are returned to the blocklayer on quiesce
+ * or if requests are only not started
+ */
+static ssize_t dasd_aqr_show(struct device *dev, struct device_attribute *attr,
+ char *buf)
+{
+ struct dasd_devmap *devmap;
+ int flag;
+
+ devmap = dasd_find_busid(dev_name(dev));
+ if (!IS_ERR(devmap))
+ flag = (devmap->features & DASD_FEATURE_REQUEUEQUIESCE) != 0;
+ else
+ flag = (DASD_FEATURE_DEFAULT &
+ DASD_FEATURE_REQUEUEQUIESCE) != 0;
+ return sysfs_emit(buf, "%d\n", flag);
+}
+
+static ssize_t dasd_aqr_store(struct device *dev, struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+ bool val;
+ int rc;
+
+ if (kstrtobool(buf, &val))
+ return -EINVAL;
+
+ rc = dasd_set_feature(to_ccwdev(dev), DASD_FEATURE_REQUEUEQUIESCE, val);
+
+ return rc ? : count;
+}
+
+static DEVICE_ATTR(aq_requeue, 0644, dasd_aqr_show, dasd_aqr_store);
+
/*
* expiration time for default requests
*/
@@ -2367,6 +2402,7 @@ static struct attribute * dasd_attrs[] = {
&dev_attr_copy_role.attr,
&dev_attr_ping.attr,
&dev_attr_aq_mask.attr,
+ &dev_attr_aq_requeue.attr,
NULL,
};
--
2.37.2
next prev parent reply other threads:[~2023-04-05 14:21 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-05 14:20 [PATCH 0/7] s390/dasd: add dasd autoquiesce feature Stefan Haberland
2023-04-05 14:20 ` [PATCH 1/7] s390/dasd: remove unused DASD EER defines Stefan Haberland
2023-04-12 1:31 ` Halil Pasic
2023-04-05 14:20 ` [PATCH 2/7] s390/dasd: add autoquiesce feature Stefan Haberland
2023-04-12 1:33 ` Halil Pasic
2023-04-05 14:20 ` [PATCH 3/7] s390/dasd: add aq_mask sysfs attribute Stefan Haberland
2023-04-12 1:33 ` Halil Pasic
2023-04-05 14:20 ` Stefan Haberland [this message]
2023-04-12 1:34 ` [PATCH 4/7] s390/dasd: add aq_requeue " Halil Pasic
2023-04-05 14:20 ` [PATCH 5/7] s390/dasd: add aq_timeouts autoquiesce trigger Stefan Haberland
2023-04-12 1:34 ` Halil Pasic
2023-04-05 14:20 ` [PATCH 6/7] s390/dasd: add autoquiesce event for start IO error Stefan Haberland
2023-04-12 1:35 ` Halil Pasic
2023-04-05 14:20 ` [PATCH 7/7] s390/dasd: fix hanging blockdevice after request requeue Stefan Haberland
2023-04-12 1:35 ` Halil Pasic
2023-04-12 1:53 ` [PATCH 0/7] s390/dasd: add dasd autoquiesce feature Jens Axboe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230405142017.2446986-5-sth@linux.ibm.com \
--to=sth@linux.ibm.com \
--cc=axboe@kernel.dk \
--cc=borntraeger@de.ibm.com \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=hoeppner@linux.ibm.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.