From patchwork Fri Jul 24 17:16:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Asleson X-Patchwork-Id: 1335878 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-ide-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=Bo17s4PW; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BCwqc43WXz9sRK for ; Sat, 25 Jul 2020 03:17:16 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726326AbgGXRRP (ORCPT ); Fri, 24 Jul 2020 13:17:15 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:23169 "EHLO us-smtp-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726702AbgGXRRP (ORCPT ); Fri, 24 Jul 2020 13:17:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1595611034; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=NXsCksyTLCkwB57az0VC2sK31RKrpKwrezDs3J5Qc1I=; b=Bo17s4PWW+rFGMCWoeJNn1Kq/x2iWjecJ0O77PYUw55iUFjFmfqVh2vjdhv0N9BIYr354R HrwX8R2PD+hxA8cyaPBbr8TD3FDbTv3bmsumDJazArGSRz2ovsJQ1mXMsh+Hi9YJP8vt5s 7ufX3n3a2nGmT6IwuCg/jHnVw/CWoVA= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-253-ptN7wANIMu-kj1MbRo5WrA-1; Fri, 24 Jul 2020 13:17:12 -0400 X-MC-Unique: ptN7wANIMu-kj1MbRo5WrA-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2525080183C; Fri, 24 Jul 2020 17:17:11 +0000 (UTC) Received: from sulaco.redhat.com (unknown [10.3.128.8]) by smtp.corp.redhat.com (Postfix) with ESMTP id CD71E74F64; Fri, 24 Jul 2020 17:17:09 +0000 (UTC) From: Tony Asleson To: linux-block@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, b.zolnierkie@samsung.com, axboe@kernel.dk Subject: [v4 01/11] struct device: Add function callback durable_name Date: Fri, 24 Jul 2020 12:16:56 -0500 Message-Id: <20200724171706.1550403-2-tasleson@redhat.com> In-Reply-To: <20200724171706.1550403-1-tasleson@redhat.com> References: <20200724171706.1550403-1-tasleson@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org Function callback and function to be used to write a persistent durable name to the supplied character buffer. This will be used to add structured key-value data to log messages for hardware related errors which allows end users to correlate message and specific hardware. Signed-off-by: Tony Asleson --- drivers/base/core.c | 24 ++++++++++++++++++++++++ include/linux/device.h | 4 ++++ 2 files changed, 28 insertions(+) diff --git a/drivers/base/core.c b/drivers/base/core.c index 0cad34f1eede..511b7d2fc916 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -2304,6 +2304,30 @@ int dev_set_name(struct device *dev, const char *fmt, ...) } EXPORT_SYMBOL_GPL(dev_set_name); +/** + * dev_durable_name - Write "DURABLE_NAME"= in buffer + * @dev: device + * @buffer: character buffer to write results + * @len: length of buffer + * @return: Number of bytes written to buffer + */ +int dev_durable_name(const struct device *dev, char *buffer, size_t len) +{ + int tmp, dlen; + + if (dev && dev->durable_name) { + tmp = snprintf(buffer, len, "DURABLE_NAME="); + if (tmp < len) { + dlen = dev->durable_name(dev, buffer + tmp, + len - tmp); + if (dlen > 0 && ((dlen + tmp) < len)) + return dlen + tmp; + } + } + return 0; +} +EXPORT_SYMBOL_GPL(dev_durable_name); + /** * device_to_dev_kobj - select a /sys/dev/ directory for the device * @dev: device diff --git a/include/linux/device.h b/include/linux/device.h index ac8e37cd716a..281755404c21 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -613,6 +613,8 @@ struct device { struct iommu_group *iommu_group; struct dev_iommu *iommu; + int (*durable_name)(const struct device *dev, char *buff, size_t len); + bool offline_disabled:1; bool offline:1; bool of_node_reused:1; @@ -654,6 +656,8 @@ static inline const char *dev_name(const struct device *dev) extern __printf(2, 3) int dev_set_name(struct device *dev, const char *name, ...); +int dev_durable_name(const struct device *d, char *buffer, size_t len); + #ifdef CONFIG_NUMA static inline int dev_to_node(struct device *dev) { From patchwork Fri Jul 24 17:16:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Asleson X-Patchwork-Id: 1335879 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-ide-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=HXL1Twqc; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BCwqf5gYxz9sRK for ; Sat, 25 Jul 2020 03:17:18 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726717AbgGXRRR (ORCPT ); Fri, 24 Jul 2020 13:17:17 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:48834 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726397AbgGXRRQ (ORCPT ); Fri, 24 Jul 2020 13:17:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1595611036; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=X0buJHSrkh+I+Rp+R9nG+KdqCDEy/CQ4RAkkP1NBj9Q=; b=HXL1TwqcwMUleRbTQAyX/pOzjJ6O0p2gOTUkUup6rtUheuAjA7euIfTLY502OmTfytdy/g T7lvQSx7VD+xfgvy0Wtb4XAg5DppznG0meRdqE6lZcWkMOzuKfEASa10SlLOCr6VoTbnY+ /auaaxKnOJ3oegLr2nxjqRtvlWBOprQ= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-427-dwpUV2gQPf2WEQ1e6Y2zfg-1; Fri, 24 Jul 2020 13:17:14 -0400 X-MC-Unique: dwpUV2gQPf2WEQ1e6Y2zfg-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A2299800C64; Fri, 24 Jul 2020 17:17:12 +0000 (UTC) Received: from sulaco.redhat.com (unknown [10.3.128.8]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7A54174F64; Fri, 24 Jul 2020 17:17:11 +0000 (UTC) From: Tony Asleson To: linux-block@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, b.zolnierkie@samsung.com, axboe@kernel.dk Subject: [v4 02/11] create_syslog_header: Add durable name Date: Fri, 24 Jul 2020 12:16:57 -0500 Message-Id: <20200724171706.1550403-3-tasleson@redhat.com> In-Reply-To: <20200724171706.1550403-1-tasleson@redhat.com> References: <20200724171706.1550403-1-tasleson@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org This gets us a persistent durable name for code that logs messages in the block layer that have the appropriate callbacks setup for durable name. Signed-off-by: Tony Asleson --- drivers/base/core.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/base/core.c b/drivers/base/core.c index 511b7d2fc916..964690572a89 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -3754,6 +3754,7 @@ create_syslog_header(const struct device *dev, char *hdr, size_t hdrlen) { const char *subsys; size_t pos = 0; + int dlen; if (dev->class) subsys = dev->class->name; @@ -3796,6 +3797,10 @@ create_syslog_header(const struct device *dev, char *hdr, size_t hdrlen) "DEVICE=+%s:%s", subsys, dev_name(dev)); } + dlen = dev_durable_name(dev, hdr + (pos + 1), hdrlen - (pos + 1)); + if (dlen) + pos += dlen + 1; + if (pos >= hdrlen) goto overflow; From patchwork Fri Jul 24 17:16:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Asleson X-Patchwork-Id: 1335880 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-ide-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=NpyVqwUk; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BCwqh03tlz9sSn for ; Sat, 25 Jul 2020 03:17:20 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726904AbgGXRRT (ORCPT ); Fri, 24 Jul 2020 13:17:19 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:33203 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726397AbgGXRRS (ORCPT ); Fri, 24 Jul 2020 13:17:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1595611037; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1I1jj7ycE4M8Ce2HJV0/6+ITH9/gcB8f4Vcrj+v3V5Q=; b=NpyVqwUk8+ROG/u8kv+cku1HpOrFoxdjrBSeepP7Em3fafJpzhCVLjNYEnefiKcPSxARQc iICvnBKFm0+/k0TZM4zVruXIvQrKZamHKlqQeFubidQo7IBIVIUv3knuBpKXKF2CB1HOSZ 9YUEYcjyGGgetsb4kfjARrEwbN6NH3o= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-137-euqzHgGTMtaMOXJQeLhktw-1; Fri, 24 Jul 2020 13:17:15 -0400 X-MC-Unique: euqzHgGTMtaMOXJQeLhktw-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 402291009615; Fri, 24 Jul 2020 17:17:14 +0000 (UTC) Received: from sulaco.redhat.com (unknown [10.3.128.8]) by smtp.corp.redhat.com (Postfix) with ESMTP id 02EE379D01; Fri, 24 Jul 2020 17:17:12 +0000 (UTC) From: Tony Asleson To: linux-block@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, b.zolnierkie@samsung.com, axboe@kernel.dk Subject: [v4 03/11] dev_vprintk_emit: Increase hdr size Date: Fri, 24 Jul 2020 12:16:58 -0500 Message-Id: <20200724171706.1550403-4-tasleson@redhat.com> In-Reply-To: <20200724171706.1550403-1-tasleson@redhat.com> References: <20200724171706.1550403-1-tasleson@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org With the addition of the device persistent id we have the possibility of adding 154 more bytes to the hdr. Thus if we assume the previous size of 128 was sufficent we can simply add the 2 amounts and round up. Signed-off-by: Tony Asleson --- drivers/base/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/base/core.c b/drivers/base/core.c index 964690572a89..c2439d12608d 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -3814,7 +3814,7 @@ create_syslog_header(const struct device *dev, char *hdr, size_t hdrlen) int dev_vprintk_emit(int level, const struct device *dev, const char *fmt, va_list args) { - char hdr[128]; + char hdr[288]; size_t hdrlen; hdrlen = create_syslog_header(dev, hdr, sizeof(hdr)); From patchwork Fri Jul 24 17:16:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Asleson X-Patchwork-Id: 1335881 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-ide-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=B7iTNU3K; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BCwqk0P39z9sR4 for ; Sat, 25 Jul 2020 03:17:22 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726639AbgGXRRV (ORCPT ); Fri, 24 Jul 2020 13:17:21 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:53225 "EHLO us-smtp-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726512AbgGXRRU (ORCPT ); Fri, 24 Jul 2020 13:17:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1595611038; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=y66z1B4c6fd79YJ8+1DTAA3bMJbfS37SvBej44OKRts=; b=B7iTNU3KhN9Ep3ZR8JAoHIXOtYlyL8gpWiyhpUajBjpbfL+kfNH3onJFN2CY5/tfTWlxsk Y9rQl08D59v6Rc0hwRb1x2a5XbtWE8aY0pd43/wpRGXkEL44R6M1fXh8s/x16/TS/ImYjC 8JIbJQG5OkExppFwh/cR3pg47rc43R0= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-295-dMhTJkwrMRupsvzsxnVuJQ-1; Fri, 24 Jul 2020 13:17:17 -0400 X-MC-Unique: dMhTJkwrMRupsvzsxnVuJQ-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D1BDB91275; Fri, 24 Jul 2020 17:17:15 +0000 (UTC) Received: from sulaco.redhat.com (unknown [10.3.128.8]) by smtp.corp.redhat.com (Postfix) with ESMTP id 93F3874F64; Fri, 24 Jul 2020 17:17:14 +0000 (UTC) From: Tony Asleson To: linux-block@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, b.zolnierkie@samsung.com, axboe@kernel.dk Subject: [v4 04/11] scsi: Add durable_name for dev_printk Date: Fri, 24 Jul 2020 12:16:59 -0500 Message-Id: <20200724171706.1550403-5-tasleson@redhat.com> In-Reply-To: <20200724171706.1550403-1-tasleson@redhat.com> References: <20200724171706.1550403-1-tasleson@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org Add the needed functions to fill out the durable_name function call back for scsi based storage devices. This allows calls into dev_printk for scsi devices to have a persistent id associated with them. Signed-off-by: Tony Asleson --- drivers/scsi/scsi_lib.c | 14 ++++++++++++++ drivers/scsi/scsi_sysfs.c | 23 +++++++++++++++++++++++ drivers/scsi/sd.c | 2 ++ include/scsi/scsi_device.h | 3 +++ 4 files changed, 42 insertions(+) diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 06c260f6cdae..9f6c41162c55 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -3142,3 +3142,17 @@ int scsi_vpd_tpg_id(struct scsi_device *sdev, int *rel_id) return group_id; } EXPORT_SYMBOL(scsi_vpd_tpg_id); + +int scsi_durable_name(struct scsi_device *sdev, char *buf, size_t len) +{ + int vpd_len = 0; + + vpd_len = scsi_vpd_lun_id(sdev, buf, len); + if (vpd_len > 0 && vpd_len < len) + vpd_len++; + else + vpd_len = 0; + + return vpd_len; +} +EXPORT_SYMBOL(scsi_durable_name); diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c index 163dbcb741c1..f719b63f4b63 100644 --- a/drivers/scsi/scsi_sysfs.c +++ b/drivers/scsi/scsi_sysfs.c @@ -1582,6 +1582,28 @@ static struct device_type scsi_dev_type = { .groups = scsi_sdev_attr_groups, }; + +int dev_to_scsi_durable_name(const struct device *dev, char *buf, size_t len) +{ + struct scsi_device *sd_dev = NULL; + + // When we go through dev_printk in the scsi layer, dev is embedded + // in a struct scsi_device. When we go through the block layer, + // dev is embedded in struct genhd, thus we need different paths to + // retrieve the struct scsi_device to call scsi_durable_name. + if (dev->type == &scsi_dev_type) { + sd_dev = to_scsi_device(dev); + } else if (dev->parent && dev->parent->type == &scsi_dev_type) { + sd_dev = to_scsi_device(dev->parent); + } else { + // We have a pointer to something else, bail + return 0; + } + + return scsi_durable_name(sd_dev, buf, len); +} +EXPORT_SYMBOL(dev_to_scsi_durable_name); + void scsi_sysfs_device_initialize(struct scsi_device *sdev) { unsigned long flags; @@ -1591,6 +1613,7 @@ void scsi_sysfs_device_initialize(struct scsi_device *sdev) device_initialize(&sdev->sdev_gendev); sdev->sdev_gendev.bus = &scsi_bus_type; sdev->sdev_gendev.type = &scsi_dev_type; + sdev->sdev_gendev.durable_name = dev_to_scsi_durable_name; dev_set_name(&sdev->sdev_gendev, "%d:%d:%d:%llu", sdev->host->host_no, sdev->channel, sdev->id, sdev->lun); diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index a793cb08d025..f40e4cb4a5f6 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c @@ -3360,6 +3360,8 @@ static int sd_probe(struct device *dev) gd->private_data = &sdkp->driver; gd->queue = sdkp->device->request_queue; + disk_to_dev(gd)->durable_name = dev_to_scsi_durable_name; + /* defaults, until the device tells us otherwise */ sdp->sector_size = 512; sdkp->capacity = 0; diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h index c3cba2aaf934..7be5861565f7 100644 --- a/include/scsi/scsi_device.h +++ b/include/scsi/scsi_device.h @@ -461,6 +461,9 @@ extern void sdev_disable_disk_events(struct scsi_device *sdev); extern void sdev_enable_disk_events(struct scsi_device *sdev); extern int scsi_vpd_lun_id(struct scsi_device *, char *, size_t); extern int scsi_vpd_tpg_id(struct scsi_device *, int *); +extern int dev_to_scsi_durable_name(const struct device *dev, char *buf, + size_t len); +extern int scsi_durable_name(struct scsi_device *sdev, char *buf, size_t len); #ifdef CONFIG_PM extern int scsi_autopm_get_device(struct scsi_device *); From patchwork Fri Jul 24 17:17:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Asleson X-Patchwork-Id: 1335884 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-ide-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=bz9Pd7oI; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BCwqp4dYZz9sRK for ; Sat, 25 Jul 2020 03:17:26 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726953AbgGXRR0 (ORCPT ); Fri, 24 Jul 2020 13:17:26 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:55462 "EHLO us-smtp-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726962AbgGXRRX (ORCPT ); Fri, 24 Jul 2020 13:17:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1595611042; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mODc3efTkpI2zf5Pknz9bXgNLlzTp1vYCCFGuMMO6Cs=; b=bz9Pd7oIe0RNM4oOaPIwB/yxCT/PLlz1A7zzLxfAWYog4obJsPkFYFwZA380gANnzzOE58 2S8Chw3qSqu7Gr6cDpY2Mea4Cc6kuMV9s2RLMtfI33IYaBLsuc9UvEcdpxGHK9S37kl2am rTr9PpR+4qRiNiZU48u6Cpnk9E+mKpE= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-281-AFtHj5L7PQmK2wkqzuSOOA-1; Fri, 24 Jul 2020 13:17:18 -0400 X-MC-Unique: AFtHj5L7PQmK2wkqzuSOOA-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 7099318FF662; Fri, 24 Jul 2020 17:17:17 +0000 (UTC) Received: from sulaco.redhat.com (unknown [10.3.128.8]) by smtp.corp.redhat.com (Postfix) with ESMTP id 33D8474F64; Fri, 24 Jul 2020 17:17:16 +0000 (UTC) From: Tony Asleson To: linux-block@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, b.zolnierkie@samsung.com, axboe@kernel.dk Subject: [v4 05/11] nvme: Add durable name for dev_printk Date: Fri, 24 Jul 2020 12:17:00 -0500 Message-Id: <20200724171706.1550403-6-tasleson@redhat.com> In-Reply-To: <20200724171706.1550403-1-tasleson@redhat.com> References: <20200724171706.1550403-1-tasleson@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org Corrections from Keith Busch review comments. Signed-off-by: Tony Asleson --- drivers/nvme/host/core.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index f3c037f5a9ba..f2e5b91668a1 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -2667,6 +2667,22 @@ static bool nvme_validate_cntlid(struct nvme_subsystem *subsys, return true; } +static ssize_t wwid_show(struct device *dev, struct device_attribute *attr, + char *buf); + +static int dev_to_nvme_durable_name(const struct device *dev, char *buf, size_t len) +{ + char serial[144]; /* Max 141 for wwid_show */ + ssize_t serial_len = wwid_show((struct device *)dev, NULL, serial); + + if (serial_len > 0 && serial_len < len) { + serial_len -= 1; /* Remove the '\n' from the string */ + strncpy(buf, serial, serial_len); + return serial_len; + } + return 0; +} + static int nvme_init_subsystem(struct nvme_ctrl *ctrl, struct nvme_id_ctrl *id) { struct nvme_subsystem *subsys, *found; @@ -3616,6 +3632,8 @@ static void nvme_alloc_ns(struct nvme_ctrl *ctrl, unsigned nsid) disk->queue = ns->queue; disk->flags = flags; memcpy(disk->disk_name, disk_name, DISK_NAME_LEN); + disk_to_dev(disk)->durable_name = dev_to_nvme_durable_name; + ns->disk = disk; __nvme_revalidate_disk(disk, id); From patchwork Fri Jul 24 17:17:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Asleson X-Patchwork-Id: 1335882 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-ide-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=bHX9QAUX; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BCwqm1gGkz9sR4 for ; Sat, 25 Jul 2020 03:17:24 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726971AbgGXRRX (ORCPT ); Fri, 24 Jul 2020 13:17:23 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:38764 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726397AbgGXRRX (ORCPT ); Fri, 24 Jul 2020 13:17:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1595611042; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8ImeJ3bLpLTJQP5gpaVY3PbrCkxzGZxT2qAXoeNIvVo=; b=bHX9QAUX2Qpa35b8ljPHagpzqGIMWPcEkjYVU6ebUW4UWGyMV/mtQxguhlG8ZTQi4eCbaO abQkQz+HiJ/QwRjFw7WmXNHz1TQMg7I5cEUI7r20Zq2+Yh4hUJHKWGe6aSmuEo0aDj2CIl I3uoClDcjNDGa2voXoU+ogcwHVgPb6s= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-495-ojXNLA1kO8SG5im6BrRqMA-1; Fri, 24 Jul 2020 13:17:20 -0400 X-MC-Unique: ojXNLA1kO8SG5im6BrRqMA-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E31F618FF665; Fri, 24 Jul 2020 17:17:18 +0000 (UTC) Received: from sulaco.redhat.com (unknown [10.3.128.8]) by smtp.corp.redhat.com (Postfix) with ESMTP id C5B1D74F64; Fri, 24 Jul 2020 17:17:17 +0000 (UTC) From: Tony Asleson To: linux-block@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, b.zolnierkie@samsung.com, axboe@kernel.dk Subject: [v4 06/11] libata: Add ata_scsi_durable_name Date: Fri, 24 Jul 2020 12:17:01 -0500 Message-Id: <20200724171706.1550403-7-tasleson@redhat.com> In-Reply-To: <20200724171706.1550403-1-tasleson@redhat.com> References: <20200724171706.1550403-1-tasleson@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org Function used to create the durable name for ata scsi. Signed-off-by: Tony Asleson Reported-by: kernel test robot Reported-by: kernel test robot Reported-by: kernel test robot --- drivers/ata/libata-scsi.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index 36e588d88b95..ec1f6e406ceb 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c @@ -1091,6 +1091,14 @@ int ata_scsi_dev_config(struct scsi_device *sdev, struct ata_device *dev) return 0; } +int ata_scsi_durable_name(const struct device *dev, char *buf, size_t len) +{ + struct ata_device *ata_dev = container_of(dev, struct ata_device, tdev); + + return scsi_durable_name(ata_dev->sdev, buf, len); +} + + /** * ata_scsi_slave_config - Set SCSI device attributes * @sdev: SCSI device to examine @@ -1111,8 +1119,11 @@ int ata_scsi_slave_config(struct scsi_device *sdev) ata_scsi_sdev_config(sdev); - if (dev) + if (dev) { rc = ata_scsi_dev_config(sdev, dev); + if (!rc) + dev->tdev.durable_name = ata_scsi_durable_name; + } return rc; } From patchwork Fri Jul 24 17:17:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Asleson X-Patchwork-Id: 1335883 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-ide-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=GDrDVWQ/; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BCwqp1pNKz9sR4 for ; Sat, 25 Jul 2020 03:17:26 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726891AbgGXRRZ (ORCPT ); Fri, 24 Jul 2020 13:17:25 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:49656 "EHLO us-smtp-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726969AbgGXRRY (ORCPT ); Fri, 24 Jul 2020 13:17:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1595611043; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=oSlX4q9qPcgrYzkVhKJS1bSnP7QaRJh6k1RERLvLpgM=; b=GDrDVWQ/Vk96/IvPhxGDy/HUjRqhA3p787POjFAYWRkQ+Znl6h7Sn4rj/CL8NCgLZzO2Uy ErzBcKMk3Ko3fOIAYUv5/LV+uC2XwUrJi9MTVR2nqLpaH4dqRubTCrprj5PDCqwUcq2FrQ 4KNGyvFVjPTLV+D9/FaRVdi8rKpTenU= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-223-9AoSTa1sNEaDeNxosstYRQ-1; Fri, 24 Jul 2020 13:17:21 -0400 X-MC-Unique: 9AoSTa1sNEaDeNxosstYRQ-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 7EEE958; Fri, 24 Jul 2020 17:17:20 +0000 (UTC) Received: from sulaco.redhat.com (unknown [10.3.128.8]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4389674F64; Fri, 24 Jul 2020 17:17:19 +0000 (UTC) From: Tony Asleson To: linux-block@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, b.zolnierkie@samsung.com, axboe@kernel.dk Subject: [v4 07/11] Add durable_name_printk Date: Fri, 24 Jul 2020 12:17:02 -0500 Message-Id: <20200724171706.1550403-8-tasleson@redhat.com> In-Reply-To: <20200724171706.1550403-1-tasleson@redhat.com> References: <20200724171706.1550403-1-tasleson@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org Ideally block related code would standardize on using dev_printk, but dev_printk does change the user visible messages which is questionable. Adding this function which adds the structured key/value durable name to the log entry. It has the same signature as dev_printk. In the future, code that is using this could easily transition to dev_printk when that becomes workable. Signed-off-by: Tony Asleson --- drivers/base/core.c | 15 +++++++++++++++ include/linux/dev_printk.h | 5 +++++ 2 files changed, 20 insertions(+) diff --git a/drivers/base/core.c b/drivers/base/core.c index c2439d12608d..aaf7b8256712 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -3865,6 +3865,21 @@ void dev_printk(const char *level, const struct device *dev, } EXPORT_SYMBOL(dev_printk); +void durable_name_printk(const char *level, const struct device *dev, + const char *fmt, ...) +{ + size_t dictlen; + va_list args; + char dict[288]; + + dictlen = dev_durable_name(dev, dict, sizeof(dict)); + + va_start(args, fmt); + vprintk_emit(0, level[1] - '0', dict, dictlen, fmt, args); + va_end(args); +} +EXPORT_SYMBOL(durable_name_printk); + #define define_dev_printk_level(func, kern_level) \ void func(const struct device *dev, const char *fmt, ...) \ { \ diff --git a/include/linux/dev_printk.h b/include/linux/dev_printk.h index 5aad06b4ca7b..502cf9fd7fe7 100644 --- a/include/linux/dev_printk.h +++ b/include/linux/dev_printk.h @@ -32,6 +32,11 @@ int dev_printk_emit(int level, const struct device *dev, const char *fmt, ...); __printf(3, 4) __cold void dev_printk(const char *level, const struct device *dev, const char *fmt, ...); + +__printf(3, 4) __cold +void durable_name_printk(const char *level, const struct device *dev, + const char *fmt, ...); + __printf(2, 3) __cold void _dev_emerg(const struct device *dev, const char *fmt, ...); __printf(2, 3) __cold From patchwork Fri Jul 24 17:17:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Asleson X-Patchwork-Id: 1335885 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-ide-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=W8tgfX1y; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BCwqs1tpgz9sR4 for ; Sat, 25 Jul 2020 03:17:29 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726984AbgGXRR2 (ORCPT ); Fri, 24 Jul 2020 13:17:28 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:58417 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726962AbgGXRR1 (ORCPT ); Fri, 24 Jul 2020 13:17:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1595611046; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eIjvNwQwRBmED5NqFfXN7K7BJEBPgapMv/+dcSKQmIk=; b=W8tgfX1yocLJkPEqON4tGOfb+rLKPg73yBRY/bpFX4m6CIz8Dr9P8CSv5b4cpyPOb79Ft1 Ao8ZKme+ZtHuco/ONhQuqXTmoDCObXKuJxoFnVugyKYD/668R2d0TwZC88k6usuqdiuTdl 4R+zNJDO/lWr1a8YcPkRmOBUaBG8zps= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-332-xGt-Xre7PqiCYDQkB42i_Q-1; Fri, 24 Jul 2020 13:17:23 -0400 X-MC-Unique: xGt-Xre7PqiCYDQkB42i_Q-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 1E9288005B0; Fri, 24 Jul 2020 17:17:22 +0000 (UTC) Received: from sulaco.redhat.com (unknown [10.3.128.8]) by smtp.corp.redhat.com (Postfix) with ESMTP id D269A79D01; Fri, 24 Jul 2020 17:17:20 +0000 (UTC) From: Tony Asleson To: linux-block@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, b.zolnierkie@samsung.com, axboe@kernel.dk Subject: [v4 08/11] libata: use durable_name_printk Date: Fri, 24 Jul 2020 12:17:03 -0500 Message-Id: <20200724171706.1550403-9-tasleson@redhat.com> In-Reply-To: <20200724171706.1550403-1-tasleson@redhat.com> References: <20200724171706.1550403-1-tasleson@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org Utilize durable_name_printk to associate the durable name with the log message via structured data. The user visible portion of the log message is unchanged. Signed-off-by: Tony Asleson --- drivers/ata/libata-core.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index beca5f91bb4c..468aa3f7eaad 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -6444,7 +6444,8 @@ void ata_port_printk(const struct ata_port *ap, const char *level, vaf.fmt = fmt; vaf.va = &args; - printk("%sata%u: %pV", level, ap->print_id, &vaf); + durable_name_printk(level, &ap->tdev, "ata%u: %pV", + ap->print_id, &vaf); va_end(args); } @@ -6462,11 +6463,11 @@ void ata_link_printk(const struct ata_link *link, const char *level, vaf.va = &args; if (sata_pmp_attached(link->ap) || link->ap->slave_link) - printk("%sata%u.%02u: %pV", - level, link->ap->print_id, link->pmp, &vaf); + durable_name_printk(level, &link->tdev, "ata%u.%02u: %pV", + link->ap->print_id, link->pmp, &vaf); else - printk("%sata%u: %pV", - level, link->ap->print_id, &vaf); + durable_name_printk(level, &link->tdev, "ata%u: %pV", + link->ap->print_id, &vaf); va_end(args); } @@ -6483,9 +6484,9 @@ void ata_dev_printk(const struct ata_device *dev, const char *level, vaf.fmt = fmt; vaf.va = &args; - printk("%sata%u.%02u: %pV", - level, dev->link->ap->print_id, dev->link->pmp + dev->devno, - &vaf); + durable_name_printk(level, &dev->tdev, "ata%u.%02u: %pV", + dev->link->ap->print_id, dev->link->pmp + dev->devno, + &vaf); va_end(args); } From patchwork Fri Jul 24 17:17:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Asleson X-Patchwork-Id: 1335887 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-ide-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=VE7384ie; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BCwqw2zklz9sRK for ; Sat, 25 Jul 2020 03:17:32 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726969AbgGXRRb (ORCPT ); Fri, 24 Jul 2020 13:17:31 -0400 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:58885 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726892AbgGXRR3 (ORCPT ); Fri, 24 Jul 2020 13:17:29 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1595611048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=L9NFv6U8TiufRPobb9Z4kCNESgyDTe0Yy+Q1ZLw1C2A=; b=VE7384ieaczJ2VwG64SlICWdnr03SRr4+s0qKaUevWBwLZD0cMHb4KKW/N0mAMyb4ZjOa/ zRt78/R+5E0+//83aDVH5R6aFQFWwzEG+1gqWIImp0Z2ewhYUzYjfpbNCrlr+PnLLZZLUS muFOKkPkBbmhqGNxwOmKsVKtxUYF0x8= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-311-Tvo4irP0O5SymP84XMfCiw-1; Fri, 24 Jul 2020 13:17:24 -0400 X-MC-Unique: Tvo4irP0O5SymP84XMfCiw-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 9B6928017FB; Fri, 24 Jul 2020 17:17:23 +0000 (UTC) Received: from sulaco.redhat.com (unknown [10.3.128.8]) by smtp.corp.redhat.com (Postfix) with ESMTP id 72D7F74F64; Fri, 24 Jul 2020 17:17:22 +0000 (UTC) From: Tony Asleson To: linux-block@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, b.zolnierkie@samsung.com, axboe@kernel.dk Subject: [v4 09/11] Add durable_name_printk_ratelimited Date: Fri, 24 Jul 2020 12:17:04 -0500 Message-Id: <20200724171706.1550403-10-tasleson@redhat.com> In-Reply-To: <20200724171706.1550403-1-tasleson@redhat.com> References: <20200724171706.1550403-1-tasleson@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org Create a rate limited macro for durable_name_printk so that we can use this for printk_ratelimited usage in the block layers and add the durable name key/value to the log message. Signed-off-by: Tony Asleson --- include/linux/dev_printk.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/linux/dev_printk.h b/include/linux/dev_printk.h index 502cf9fd7fe7..931977f5c85e 100644 --- a/include/linux/dev_printk.h +++ b/include/linux/dev_printk.h @@ -37,6 +37,15 @@ __printf(3, 4) __cold void durable_name_printk(const char *level, const struct device *dev, const char *fmt, ...); +#define durable_name_printk_ratelimited(level, dev, fmt, ...) \ +do { \ + static DEFINE_RATELIMIT_STATE(_rs, \ + DEFAULT_RATELIMIT_INTERVAL, \ + DEFAULT_RATELIMIT_BURST); \ + if (__ratelimit(&_rs)) \ + durable_name_printk(level, dev, fmt, ##__VA_ARGS__); \ +} while (0) + __printf(2, 3) __cold void _dev_emerg(const struct device *dev, const char *fmt, ...); __printf(2, 3) __cold From patchwork Fri Jul 24 17:17:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Asleson X-Patchwork-Id: 1335888 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-ide-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=c4/PR2pl; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BCwqx0f2Fz9sSn for ; Sat, 25 Jul 2020 03:17:33 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726704AbgGXRRa (ORCPT ); Fri, 24 Jul 2020 13:17:30 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:23873 "EHLO us-smtp-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726987AbgGXRR3 (ORCPT ); Fri, 24 Jul 2020 13:17:29 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1595611048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=xe0E3S9exdPhGHIrK2txdY7JFNUs5+KrQtc03x8Wv3I=; b=c4/PR2plVqAnA3zVKRews+NrIdCaow4aUKBGH9TUa6buN0oLrLjxL6sZqkf3y5YJ7n/gUp X7e4aSdMrx73bVHyHB8uOYGt84c3SVqZOBuF1f+VJgU+OgCLPEU3ha3TZloMlcNZMo4ZTN CfhT+GRwkpdOOBXxn4qwU0iYLIpm/o0= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-441-yg0wLr6wM-e88C_FVgUgOg-1; Fri, 24 Jul 2020 13:17:26 -0400 X-MC-Unique: yg0wLr6wM-e88C_FVgUgOg-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 441F780183C; Fri, 24 Jul 2020 17:17:25 +0000 (UTC) Received: from sulaco.redhat.com (unknown [10.3.128.8]) by smtp.corp.redhat.com (Postfix) with ESMTP id 026F274F64; Fri, 24 Jul 2020 17:17:23 +0000 (UTC) From: Tony Asleson To: linux-block@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, b.zolnierkie@samsung.com, axboe@kernel.dk Subject: [v4 10/11] print_req_error: Use durable_name_printk_ratelimited Date: Fri, 24 Jul 2020 12:17:05 -0500 Message-Id: <20200724171706.1550403-11-tasleson@redhat.com> In-Reply-To: <20200724171706.1550403-1-tasleson@redhat.com> References: <20200724171706.1550403-1-tasleson@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org Replace printk_ratelimited with one that adds the key/value durable name to log entry. Signed-off-by: Tony Asleson --- block/blk-core.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/block/blk-core.c b/block/blk-core.c index 9bfaee050c82..a1f35e3e21d8 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -213,12 +213,15 @@ EXPORT_SYMBOL_GPL(blk_status_to_errno); static void print_req_error(struct request *req, blk_status_t status, const char *caller) { + struct device *dev; int idx = (__force int)status; if (WARN_ON_ONCE(idx >= ARRAY_SIZE(blk_errors))) return; - printk_ratelimited(KERN_ERR + dev = (req->rq_disk) ? disk_to_dev(req->rq_disk) : NULL; + + durable_name_printk_ratelimited(KERN_ERR, dev, "%s: %s error, dev %s, sector %llu op 0x%x:(%s) flags 0x%x " "phys_seg %u prio class %u\n", caller, blk_errors[idx].name, From patchwork Fri Jul 24 17:17:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Asleson X-Patchwork-Id: 1335886 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-ide-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=g1QPxy0o; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BCwqw0fnqz9sR4 for ; Sat, 25 Jul 2020 03:17:32 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726987AbgGXRRb (ORCPT ); Fri, 24 Jul 2020 13:17:31 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:48269 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726992AbgGXRRa (ORCPT ); Fri, 24 Jul 2020 13:17:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1595611049; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EKtt2wh9uRF1tNryChAitkxqDvDxcbQGuMV2kP+9zv4=; b=g1QPxy0o22JQGmCmPaG9YkcQZSzCecrVsUWvSvlsM8rNVS5aaq6GfY7LDv5MmQNW1pzL6m qJJs/WI1fdN3NI6ZS9ymKupPZOu5hDkud8zsy1xZi29tjn2dLaxFl77LvC2LVsiVFNp4yS y1iGRhYh+SJDEvOTiMWVK1fXcVr5ugM= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-147-rmKe7uq6NXWrh0QIewwZJQ-1; Fri, 24 Jul 2020 13:17:28 -0400 X-MC-Unique: rmKe7uq6NXWrh0QIewwZJQ-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C13DC8017FB; Fri, 24 Jul 2020 17:17:26 +0000 (UTC) Received: from sulaco.redhat.com (unknown [10.3.128.8]) by smtp.corp.redhat.com (Postfix) with ESMTP id 987B274F64; Fri, 24 Jul 2020 17:17:25 +0000 (UTC) From: Tony Asleson To: linux-block@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, b.zolnierkie@samsung.com, axboe@kernel.dk Subject: [v4 11/11] buffer_io_error: Use durable_name_printk_ratelimited Date: Fri, 24 Jul 2020 12:17:06 -0500 Message-Id: <20200724171706.1550403-12-tasleson@redhat.com> In-Reply-To: <20200724171706.1550403-1-tasleson@redhat.com> References: <20200724171706.1550403-1-tasleson@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org Replace printk_ratelimited with one that adds the key/value durable name to log entry. Signed-off-by: Tony Asleson --- fs/buffer.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/fs/buffer.c b/fs/buffer.c index a60f60396cfa..f35eaaafce0e 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -133,10 +133,16 @@ __clear_page_buffers(struct page *page) static void buffer_io_error(struct buffer_head *bh, char *msg) { - if (!test_bit(BH_Quiet, &bh->b_state)) - printk_ratelimited(KERN_ERR + if (!test_bit(BH_Quiet, &bh->b_state)) { + struct device *gendev; + + gendev = (bh->b_bdev->bd_disk) ? + disk_to_dev(bh->b_bdev->bd_disk) : NULL; + + durable_name_printk_ratelimited(KERN_ERR, gendev, "Buffer I/O error on dev %pg, logical block %llu%s\n", bh->b_bdev, (unsigned long long)bh->b_blocknr, msg); + } } /*