From patchwork Wed May 13 21:36:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Asleson X-Patchwork-Id: 11547271 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5847A59D for ; Wed, 13 May 2020 21:36:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 10DB92054F for ; Wed, 13 May 2020 21:36:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="fFskSfAW" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729373AbgEMVg2 (ORCPT ); Wed, 13 May 2020 17:36:28 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:37451 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729345AbgEMVg1 (ORCPT ); Wed, 13 May 2020 17:36:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1589405786; 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=Z/s6vI/nmCH6b0CmF34V4hXpVkjbqBprb5r6kKm9AhU=; b=fFskSfAWNhh74wjvGJ0GKi92QB4sPtjKYK0odc5uC0d7nu/zhJGEM/RoPF0pkJCZaQtgcr E4R7OeIo1xR3YDD1KQGH8P9ieJ0tTkBTb4d9YMuVciFLSi5mHz/1c0Io8A3fCyOZ5W2j37 mif9/pS53mWsE9qUg7ChKyg1b7IlddI= 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-222-rW6S6VcKOSuZkPVYP1uK2g-1; Wed, 13 May 2020 17:36:25 -0400 X-MC-Unique: rW6S6VcKOSuZkPVYP1uK2g-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 733D080572B; Wed, 13 May 2020 21:36:24 +0000 (UTC) Received: from sulaco.redhat.com (unknown [10.3.128.23]) by smtp.corp.redhat.com (Postfix) with ESMTP id BBFE15D9E5; Wed, 13 May 2020 21:36:23 +0000 (UTC) From: Tony Asleson To: linux-scsi@vger.kernel.org, linux-block@vger.kernel.org Subject: [RFC PATCH v2 1/7] struct device: Add function callback durable_name Date: Wed, 13 May 2020 16:36:15 -0500 Message-Id: <20200513213621.470411-2-tasleson@redhat.com> In-Reply-To: <20200513213621.470411-1-tasleson@redhat.com> References: <20200513213621.470411-1-tasleson@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@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 dbb0f9130f42..86ea3acb1e1f 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -2281,6 +2281,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 fa04dfd22bbc..a9e5abbd2269 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -616,6 +616,8 @@ struct device { struct iommu_fwspec *iommu_fwspec; struct iommu_param *iommu_param; + int (*durable_name)(const struct device *dev, char *buff, size_t len); + bool offline_disabled:1; bool offline:1; bool of_node_reused:1; @@ -657,6 +659,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 Wed May 13 21:36:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Asleson X-Patchwork-Id: 11547283 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D830D139A for ; Wed, 13 May 2020 21:36:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9185420659 for ; Wed, 13 May 2020 21:36:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="TGsSCWtf" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729392AbgEMVgc (ORCPT ); Wed, 13 May 2020 17:36:32 -0400 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:31905 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729359AbgEMVg3 (ORCPT ); Wed, 13 May 2020 17:36:29 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1589405788; 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=2q8wNP5BfDbkqdgV480g/4dZ2snqC8+5OQT7xuYCGC8=; b=TGsSCWtfG95WuwofCyjKbUYvEapAEMA6EPc7vin31RzwfNFr+VWPMD4GCmEB1ord0y+4vO oAmvAUCQNMGPhjlcNgcSDVmPFQEPsLTWBuejgf0DLCGxRkr1TUYnjkbJd9x8GA5atRk/1Z m1Kb6ltAsXv/NTeCwS4GHBB2xxWkjKI= 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-69-ApFMHm3KOWuAOSRNWDobEg-1; Wed, 13 May 2020 17:36:26 -0400 X-MC-Unique: ApFMHm3KOWuAOSRNWDobEg-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8C1DB107ACF4; Wed, 13 May 2020 21:36:25 +0000 (UTC) Received: from sulaco.redhat.com (unknown [10.3.128.23]) by smtp.corp.redhat.com (Postfix) with ESMTP id C8F6A5D9E5; Wed, 13 May 2020 21:36:24 +0000 (UTC) From: Tony Asleson To: linux-scsi@vger.kernel.org, linux-block@vger.kernel.org Subject: [RFC PATCH v2 2/7] create_syslog_header: Add durable name Date: Wed, 13 May 2020 16:36:16 -0500 Message-Id: <20200513213621.470411-3-tasleson@redhat.com> In-Reply-To: <20200513213621.470411-1-tasleson@redhat.com> References: <20200513213621.470411-1-tasleson@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@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 86ea3acb1e1f..8c89b711d91d 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -3577,6 +3577,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; @@ -3619,6 +3620,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 Wed May 13 21:36:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Asleson X-Patchwork-Id: 11547279 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 35E58739 for ; Wed, 13 May 2020 21:36:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E5BE620659 for ; Wed, 13 May 2020 21:36:31 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="HcixQ6k9" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729409AbgEMVgb (ORCPT ); Wed, 13 May 2020 17:36:31 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:57951 "EHLO us-smtp-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728881AbgEMVg3 (ORCPT ); Wed, 13 May 2020 17:36:29 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1589405789; 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=UwIpCXRimK6nkSbPjNNgCftnS+rK1CtylodRWRJy1j4=; b=HcixQ6k9u2rnk8O2cYflMRNbMPjhQuz07hTWU7pis7d5kax7mbLVHr7SHe4Q4dGWumP7oO +z0VU7oORWG/argiWffOiijRPkBl+6PYJBqZK8lQpTa/0g+QurUu9fYsfLvcPLNAKp1R9c dmVyDW6m4qy5vKPCfgP58z/roqfuM4o= 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-428-aEQS2vveONa43IB6vSQRzw-1; Wed, 13 May 2020 17:36:27 -0400 X-MC-Unique: aEQS2vveONa43IB6vSQRzw-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8C9BC108BD0B; Wed, 13 May 2020 21:36:26 +0000 (UTC) Received: from sulaco.redhat.com (unknown [10.3.128.23]) by smtp.corp.redhat.com (Postfix) with ESMTP id E358A5D9E5; Wed, 13 May 2020 21:36:25 +0000 (UTC) From: Tony Asleson To: linux-scsi@vger.kernel.org, linux-block@vger.kernel.org Subject: [RFC PATCH v2 3/7] print_req_error: Use dev_printk Date: Wed, 13 May 2020 16:36:17 -0500 Message-Id: <20200513213621.470411-4-tasleson@redhat.com> In-Reply-To: <20200513213621.470411-1-tasleson@redhat.com> References: <20200513213621.470411-1-tasleson@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org 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 60dc9552ef8d..44bf92047031 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; + + dev_err_ratelimited(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 Wed May 13 21:36:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Asleson X-Patchwork-Id: 11547285 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 18024739 for ; Wed, 13 May 2020 21:36:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C305720659 for ; Wed, 13 May 2020 21:36:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="OpynUdj/" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729410AbgEMVgb (ORCPT ); Wed, 13 May 2020 17:36:31 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:44053 "EHLO us-smtp-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729392AbgEMVga (ORCPT ); Wed, 13 May 2020 17:36:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1589405789; 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=ByWLLIXWrua1rpkn2+ZI8vQo5UqpQKFPic9yOTP0TPg=; b=OpynUdj/Ra1f96HZ6//h+ZRrt3rXpr0faiJUfIyCWnq5801JRVpWdVJ3UKsBs6ozMVPWAQ CvN/HBOj8QfeVnuwRWcCQJYCA/QmNH5DCMETOxsx8Vs0Zyob/GlkM2GeZL5NKvg98XUGWM b0/HpTCPs2rUpqSHyxYQokwdJZP4Ng0= 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-212-cmAgnwGmMLCKn-2sKAAKaQ-1; Wed, 13 May 2020 17:36:28 -0400 X-MC-Unique: cmAgnwGmMLCKn-2sKAAKaQ-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 83A6A1B18BC3; Wed, 13 May 2020 21:36:27 +0000 (UTC) Received: from sulaco.redhat.com (unknown [10.3.128.23]) by smtp.corp.redhat.com (Postfix) with ESMTP id DF3785D9E5; Wed, 13 May 2020 21:36:26 +0000 (UTC) From: Tony Asleson To: linux-scsi@vger.kernel.org, linux-block@vger.kernel.org Subject: [RFC PATCH v2 4/7] buffer_io_error: Use dev_printk Date: Wed, 13 May 2020 16:36:18 -0500 Message-Id: <20200513213621.470411-5-tasleson@redhat.com> In-Reply-To: <20200513213621.470411-1-tasleson@redhat.com> References: <20200513213621.470411-1-tasleson@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org 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 b8d28370cfd7..e144f5bccd2f 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; + + dev_err_ratelimited(gendev, "Buffer I/O error on dev %pg, logical block %llu%s\n", bh->b_bdev, (unsigned long long)bh->b_blocknr, msg); + } } /* From patchwork Wed May 13 21:36:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Asleson X-Patchwork-Id: 11547299 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2F21A739 for ; Wed, 13 May 2020 21:36:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E6DBD206F5 for ; Wed, 13 May 2020 21:36:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="ZbLy3mLc" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729529AbgEMVgk (ORCPT ); Wed, 13 May 2020 17:36:40 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:39160 "EHLO us-smtp-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729483AbgEMVgg (ORCPT ); Wed, 13 May 2020 17:36:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1589405795; 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=Y2+b6an8Oose37xQfoDtn8tXCYrO95yhISh4EW9FuGk=; b=ZbLy3mLc/81HimcH/37KqgVyAH5vex9dpfrGFw9KRuxANhtc04NJyYdGaSUjbCCTjxulKW uX1/mnVvrVWtLHASlSZ/5/OrE+EU93hBgT0sYv0XGFHDlSl9dms8Kr0MN2W6SjyoaUmpJk P3XeBjiaiMrgQPsZelFsO7oWfCPiCIk= 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-254-sDeRDpkvPQaAWoakivOJ6A-1; Wed, 13 May 2020 17:36:29 -0400 X-MC-Unique: sDeRDpkvPQaAWoakivOJ6A-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 80BC5100CCC2; Wed, 13 May 2020 21:36:28 +0000 (UTC) Received: from sulaco.redhat.com (unknown [10.3.128.23]) by smtp.corp.redhat.com (Postfix) with ESMTP id D66A95D99A; Wed, 13 May 2020 21:36:27 +0000 (UTC) From: Tony Asleson To: linux-scsi@vger.kernel.org, linux-block@vger.kernel.org Subject: [RFC PATCH v2 5/7] ata_dev_printk: Use dev_printk Date: Wed, 13 May 2020 16:36:19 -0500 Message-Id: <20200513213621.470411-6-tasleson@redhat.com> In-Reply-To: <20200513213621.470411-1-tasleson@redhat.com> References: <20200513213621.470411-1-tasleson@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Utilize the dev_printk function which will add structured data to the log message. Signed-off-by: Tony Asleson --- drivers/ata/libata-core.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 42c8728f6117..16978d615a17 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -7301,6 +7301,7 @@ EXPORT_SYMBOL(ata_link_printk); void ata_dev_printk(const struct ata_device *dev, const char *level, const char *fmt, ...) { + const struct device *gendev; struct va_format vaf; va_list args; @@ -7309,9 +7310,12 @@ 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); + gendev = (dev->sdev) ? &dev->sdev->sdev_gendev : &dev->tdev; + + dev_printk(level, gendev, "ata%u.%02u: %pV", + dev->link->ap->print_id, + dev->link->pmp + dev->devno, + &vaf); va_end(args); } From patchwork Wed May 13 21:36:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Asleson X-Patchwork-Id: 11547293 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 49D51739 for ; Wed, 13 May 2020 21:36:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0E9A62054F for ; Wed, 13 May 2020 21:36:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="es7LDGHd" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729518AbgEMVgg (ORCPT ); Wed, 13 May 2020 17:36:36 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:25833 "EHLO us-smtp-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729418AbgEMVgf (ORCPT ); Wed, 13 May 2020 17:36:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1589405794; 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=iioQcBbajt6DsUMKLZoLl0V6Rvd1hdXit98PKWtkBAI=; b=es7LDGHdghcqrnExeTHurlp51N7I4bWk5tgGeJmgV2orDBr7rIik22kaLXKSBS41rq2jFO /bQfadjf0C5g6Xe7JVGtGds47To3bxCEicRVMjBaeqTAjpM8tB0ISMAP5SAwEyKyegCuUt NYofKndycmNghDKYdFabxAIoGoaRqJE= 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-183-vcL4IhL6NSCY0talxyAN3Q-1; Wed, 13 May 2020 17:36:30 -0400 X-MC-Unique: vcL4IhL6NSCY0talxyAN3Q-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8C179EC1A1; Wed, 13 May 2020 21:36:29 +0000 (UTC) Received: from sulaco.redhat.com (unknown [10.3.128.23]) by smtp.corp.redhat.com (Postfix) with ESMTP id D609B5D9E5; Wed, 13 May 2020 21:36:28 +0000 (UTC) From: Tony Asleson To: linux-scsi@vger.kernel.org, linux-block@vger.kernel.org Subject: [RFC PATCH v2 6/7] scsi: Add durable_name for dev_printk Date: Wed, 13 May 2020 16:36:20 -0500 Message-Id: <20200513213621.470411-7-tasleson@redhat.com> In-Reply-To: <20200513213621.470411-1-tasleson@redhat.com> References: <20200513213621.470411-1-tasleson@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@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 610ee41fa54c..482e41ec23c2 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -3121,3 +3121,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 677b5c5403d2..f09f5c94ebbd 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 2710a0e5ae6d..774f1a8910a2 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c @@ -3359,6 +3359,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 f8312a3e5b42..496774ff79fc 100644 --- a/include/scsi/scsi_device.h +++ b/include/scsi/scsi_device.h @@ -459,6 +459,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 Wed May 13 21:36:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Asleson X-Patchwork-Id: 11547301 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 386FF912 for ; Wed, 13 May 2020 21:36:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E8F7B2054F for ; Wed, 13 May 2020 21:36:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="X+QuiBnz" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729467AbgEMVgf (ORCPT ); Wed, 13 May 2020 17:36:35 -0400 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:45279 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729413AbgEMVge (ORCPT ); Wed, 13 May 2020 17:36:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1589405793; 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=jDh1PWkPuH4E+iC0pkUXTKMHgEo2Mi/ejIMG+oNRyqY=; b=X+QuiBnzeXJmgnGcCvmJFi7Oy+MRJAGNo6/rCfglSqTpj+5pbsixzcjYqM8Af3pqxCOuPK GIOxGDejlu5KyiMxXUpa6OjdIQGOWWMSAAARVUJthmdG8ta3Teezbn/1o2qAmO0wbuC9Ob 9cIm4tyn29DqvGYpTVQfhhohbaWCqIg= 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-95-EGvR7dZSNqWpmCmV0mSeFQ-1; Wed, 13 May 2020 17:36:31 -0400 X-MC-Unique: EGvR7dZSNqWpmCmV0mSeFQ-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 97A7E460; Wed, 13 May 2020 21:36:30 +0000 (UTC) Received: from sulaco.redhat.com (unknown [10.3.128.23]) by smtp.corp.redhat.com (Postfix) with ESMTP id DEAC35D9E5; Wed, 13 May 2020 21:36:29 +0000 (UTC) From: Tony Asleson To: linux-scsi@vger.kernel.org, linux-block@vger.kernel.org Subject: [RFC PATCH v2 7/7] nvme: Add durable name for dev_printk Date: Wed, 13 May 2020 16:36:21 -0500 Message-Id: <20200513213621.470411-8-tasleson@redhat.com> In-Reply-To: <20200513213621.470411-1-tasleson@redhat.com> References: <20200513213621.470411-1-tasleson@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org 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 a4d8c90ee7cc..7479c7e82200 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -2614,6 +2614,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[128]; + 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; @@ -3541,6 +3557,8 @@ static int 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);