]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
s390/zcrypt: Show load of cards and queues in sysfs
authorHarald Freudenberger <freude@de.ibm.com>
Thu, 7 Jun 2018 13:09:48 +0000 (15:09 +0200)
committerThadeu Lima de Souza Cascardo <cascardo@canonical.com>
Fri, 9 Nov 2018 19:01:01 +0000 (17:01 -0200)
BugLink: https://bugs.launchpad.net/bugs/1799184
Show the current load value of cards and queues in sysfs.
The load value for each card and queue is maintained by
the zcrypt device driver for dispatching and load
balancing requests over the available devices.

This patch provides the load value to userspace via a
new read only sysfs attribute 'load' per card and queue.

Signed-off-by: Harald Freudenberger <freude@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
(backported from commit 4a07750ba8f3f45f0be730f7370c2c21a7491cd7)
[Minor context adjustments]
Signed-off-by: Frank Heimes <frank.heimes@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/s390/crypto/zcrypt_card.c
drivers/s390/crypto/zcrypt_queue.c

index 24e0899882c61a96dfd2ab8ef00af8e71012b8ca..6d991f8ec26873dff27939b55f494c80bf0a7ec1 100644 (file)
@@ -82,9 +82,21 @@ static ssize_t online_store(struct device *dev,
 
 static DEVICE_ATTR_RW(online);
 
+static ssize_t zcrypt_card_load_show(struct device *dev,
+                                    struct device_attribute *attr,
+                                    char *buf)
+{
+       struct zcrypt_card *zc = to_ap_card(dev)->private;
+
+       return snprintf(buf, PAGE_SIZE, "%d\n", atomic_read(&zc->load));
+}
+
+static DEVICE_ATTR(load, 0444, zcrypt_card_load_show, NULL);
+
 static struct attribute *zcrypt_card_attrs[] = {
        &dev_attr_type.attr,
        &dev_attr_online.attr,
+       &dev_attr_load.attr,
        NULL,
 };
 
index 4ebca99687a1daf00775b0f1544e158a70dfee2a..a71d59c13bb91decf65b11439a9afe402aa1027f 100644 (file)
@@ -74,8 +74,20 @@ static ssize_t online_store(struct device *dev,
 
 static DEVICE_ATTR_RW(online);
 
+static ssize_t zcrypt_queue_load_show(struct device *dev,
+                                     struct device_attribute *attr,
+                                     char *buf)
+{
+       struct zcrypt_queue *zq = to_ap_queue(dev)->private;
+
+       return snprintf(buf, PAGE_SIZE, "%d\n", atomic_read(&zq->load));
+}
+
+static DEVICE_ATTR(load, 0444, zcrypt_queue_load_show, NULL);
+
 static struct attribute *zcrypt_queue_attrs[] = {
        &dev_attr_online.attr,
+       &dev_attr_load.attr,
        NULL,
 };