From patchwork Fri Nov 2 19:35:29 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Heimes X-Patchwork-Id: 992544 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42mskG4SdxzB4Xp; Sat, 3 Nov 2018 06:35:50 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1gIfEO-0001zX-Ji; Fri, 02 Nov 2018 19:35:44 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.86_2) (envelope-from ) id 1gIfEM-0001zO-M7 for kernel-team@lists.ubuntu.com; Fri, 02 Nov 2018 19:35:42 +0000 Received: from mail-lj1-f199.google.com ([209.85.208.199]) by youngberry.canonical.com with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.76) (envelope-from ) id 1gIfEM-0005YR-CB for kernel-team@lists.ubuntu.com; Fri, 02 Nov 2018 19:35:42 +0000 Received: by mail-lj1-f199.google.com with SMTP id k16-v6so65857lja.0 for ; Fri, 02 Nov 2018 12:35:42 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=s6XTDHy6gUc79BMx8pv8AYljWJpoL5ZUKiEqA0cf6sA=; b=pDoohwR6yGigFQeTHxiUcPn0Bg9CTolaOvFU5XGWFeOfmDY7S6ezuiKD3AkbFAhq9z DRBsDO4Ohqt4Nrwfg7c0rM5OtV8d1d7dAVILllEaIB2M57ZglX1Hi/PyifPFNipjWSRD drUUlD9kXbXwdP6tC4fv/Rk3+pOBPJQHo1xI3rHEPlcAitwYkGJsht44K04vtDgxQZAp 3dhM7O24P8Lp+Z6eudG03Bt9UEOzU0vvHCl88qVG1Q8vfoAFt/Ryk6PThEfXAvIgfPiJ DOY/bO5mhMhW4gLXhg0qMVpr8S15vcr09kHxm1+E6NiK/QiRhGx6A86Dd21U7CIAntD8 BvRg== X-Gm-Message-State: AGRZ1gJGukD+vGssFDEWf7Pfl7b8+T8yOa3oEuGlFvSGGOmv1GL5hv30 7WXsZdEgvwclJi7lgp+PLTnOk7WReWiYhmivFXpsDy3FuYuVT3r0tVFuLbXeR9PM1lKycUrQQ6j YwnKbYu56s6h2HgfYuCfH/ywO98TM3/6JPDMt+O68obgxTFhvNrKDldF0Rw== X-Received: by 2002:a2e:92ca:: with SMTP id k10-v6mr8237380ljh.103.1541187341045; Fri, 02 Nov 2018 12:35:41 -0700 (PDT) X-Google-Smtp-Source: AJdET5d1/KPELK0cFFAavWOVTRtJWHM3MGPZkoa2h1q2hQ0iXhMpeBOrqDdwnsEbxQHRILHHEqknuLWH3oOtm4BW8ks= X-Received: by 2002:a2e:92ca:: with SMTP id k10-v6mr8237361ljh.103.1541187340481; Fri, 02 Nov 2018 12:35:40 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Frank Heimes Date: Fri, 2 Nov 2018 20:35:29 +0100 Message-ID: Subject: [SRU][Bionic][PATCH 5/5] s390/zcrypt: Show load of cards and queues in sysfs To: kernel-team@lists.ubuntu.com X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Harald Freudenberger BugLink: http://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 Signed-off-by: Martin Schwidefsky (cherry-picked from commit 4a07750ba8f3f45f0be730f7370c2c21a7491cd7) Signed-off-by: Frank Heimes diff --git a/drivers/s390/crypto/zcrypt_card.c b/drivers/s390/crypto/zcrypt_card.c index 233e1e6..da2c8df 100644 --- a/drivers/s390/crypto/zcrypt_card.c +++ b/drivers/s390/crypto/zcrypt_card.c @@ -83,9 +83,21 @@ static ssize_t zcrypt_card_online_store(struct device *dev, static DEVICE_ATTR(online, 0644, zcrypt_card_online_show, zcrypt_card_online_store); +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, }; diff --git a/drivers/s390/crypto/zcrypt_queue.c b/drivers/s390/crypto/zcrypt_queue.c index 720434e..91a52f2 100644 --- a/drivers/s390/crypto/zcrypt_queue.c +++ b/drivers/s390/crypto/zcrypt_queue.c @@ -75,8 +75,20 @@ static ssize_t zcrypt_queue_online_store(struct device *dev, static DEVICE_ATTR(online, 0644, zcrypt_queue_online_show, zcrypt_queue_online_store); +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, };