From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Gleixner Subject: [patch V3 14/29] dm bufio: Simplify stack trace retrieval Date: Thu, 25 Apr 2019 11:45:07 +0200 Message-ID: <20190425094802.446326191@linutronix.de> References: <20190425094453.875139013@linutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: LKML Cc: Mike Snitzer , David Airlie , Catalin Marinas , dri-devel@lists.freedesktop.org, linux-mm@kvack.org, dm-devel@redhat.com, Alexander Potapenko , Christoph Lameter , Miroslav Benes , Christoph Hellwig , Alasdair Kergon , Marek Szyprowski , linux-arch@vger.kernel.org, x86@kernel.org, kasan-dev@googlegroups.com, David Rientjes , Andrey Ryabinin , Alexey Dobriyan , intel-gfx@lists.freedesktop.org, Johannes Thumshirn , Akinobu Mita , Steven Rostedt , Josef Bacik , Mike Rapoport , Andy Lutomirski , Josh Poimboeuf List-Id: linux-arch.vger.kernel.org UmVwbGFjZSB0aGUgaW5kaXJlY3Rpb24gdGhyb3VnaCBzdHJ1Y3Qgc3RhY2tfdHJhY2Ugd2l0aCBh biBpbnZvY2F0aW9uIG9mCnRoZSBzdG9yYWdlIGFycmF5IGJhc2VkIGludGVyZmFjZS4KClNpZ25l ZC1vZmYtYnk6IFRob21hcyBHbGVpeG5lciA8dGdseEBsaW51dHJvbml4LmRlPgpDYzogZG0tZGV2 ZWxAcmVkaGF0LmNvbQpDYzogTWlrZSBTbml0emVyIDxzbml0emVyQHJlZGhhdC5jb20+CkNjOiBB bGFzZGFpciBLZXJnb24gPGFna0ByZWRoYXQuY29tPgotLS0KIGRyaXZlcnMvbWQvZG0tYnVmaW8u YyB8ICAgMTUgKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCsp LCA5IGRlbGV0aW9ucygtKQoKLS0tIGEvZHJpdmVycy9tZC9kbS1idWZpby5jCisrKyBiL2RyaXZl cnMvbWQvZG0tYnVmaW8uYwpAQCAtMTUwLDcgKzE1MCw3IEBAIHN0cnVjdCBkbV9idWZmZXIgewog CXZvaWQgKCplbmRfaW8pKHN0cnVjdCBkbV9idWZmZXIgKiwgYmxrX3N0YXR1c190KTsKICNpZmRl ZiBDT05GSUdfRE1fREVCVUdfQkxPQ0tfU1RBQ0tfVFJBQ0lORwogI2RlZmluZSBNQVhfU1RBQ0sg MTAKLQlzdHJ1Y3Qgc3RhY2tfdHJhY2Ugc3RhY2tfdHJhY2U7CisJdW5zaWduZWQgaW50IHN0YWNr X2xlbjsKIAl1bnNpZ25lZCBsb25nIHN0YWNrX2VudHJpZXNbTUFYX1NUQUNLXTsKICNlbmRpZgog fTsKQEAgLTIzMiwxMSArMjMyLDcgQEAgc3RhdGljIERFRklORV9NVVRFWChkbV9idWZpb19jbGll bnRzX2xvYwogI2lmZGVmIENPTkZJR19ETV9ERUJVR19CTE9DS19TVEFDS19UUkFDSU5HCiBzdGF0 aWMgdm9pZCBidWZmZXJfcmVjb3JkX3N0YWNrKHN0cnVjdCBkbV9idWZmZXIgKmIpCiB7Ci0JYi0+ c3RhY2tfdHJhY2UubnJfZW50cmllcyA9IDA7Ci0JYi0+c3RhY2tfdHJhY2UubWF4X2VudHJpZXMg PSBNQVhfU1RBQ0s7Ci0JYi0+c3RhY2tfdHJhY2UuZW50cmllcyA9IGItPnN0YWNrX2VudHJpZXM7 Ci0JYi0+c3RhY2tfdHJhY2Uuc2tpcCA9IDI7Ci0Jc2F2ZV9zdGFja190cmFjZSgmYi0+c3RhY2tf dHJhY2UpOworCWItPnN0YWNrX2xlbiA9IHN0YWNrX3RyYWNlX3NhdmUoYi0+c3RhY2tfZW50cmll cywgTUFYX1NUQUNLLCAyKTsKIH0KICNlbmRpZgogCkBAIC00MzgsNyArNDM0LDcgQEAgc3RhdGlj IHN0cnVjdCBkbV9idWZmZXIgKmFsbG9jX2J1ZmZlcihzdAogCWFkanVzdF90b3RhbF9hbGxvY2F0 ZWQoYi0+ZGF0YV9tb2RlLCAobG9uZyljLT5ibG9ja19zaXplKTsKIAogI2lmZGVmIENPTkZJR19E TV9ERUJVR19CTE9DS19TVEFDS19UUkFDSU5HCi0JbWVtc2V0KCZiLT5zdGFja190cmFjZSwgMCwg c2l6ZW9mKGItPnN0YWNrX3RyYWNlKSk7CisJYi0+c3RhY2tfbGVuID0gMDsKICNlbmRpZgogCXJl dHVybiBiOwogfQpAQCAtMTUyMCw4ICsxNTE2LDkgQEAgc3RhdGljIHZvaWQgZHJvcF9idWZmZXJz KHN0cnVjdCBkbV9idWZpbwogCQkJRE1FUlIoImxlYWtlZCBidWZmZXIgJWxseCwgaG9sZCBjb3Vu dCAldSwgbGlzdCAlZCIsCiAJCQkgICAgICAodW5zaWduZWQgbG9uZyBsb25nKWItPmJsb2NrLCBi LT5ob2xkX2NvdW50LCBpKTsKICNpZmRlZiBDT05GSUdfRE1fREVCVUdfQkxPQ0tfU1RBQ0tfVFJB Q0lORwotCQkJcHJpbnRfc3RhY2tfdHJhY2UoJmItPnN0YWNrX3RyYWNlLCAxKTsKLQkJCWItPmhv bGRfY291bnQgPSAwOyAvKiBtYXJrIHVuY2xhaW1lZCB0byBhdm9pZCBCVUdfT04gYmVsb3cgKi8K KwkJCXN0YWNrX3RyYWNlX3ByaW50KGItPnN0YWNrX2VudHJpZXMsIGItPnN0YWNrX2xlbiwgMSk7 CisJCQkvKiBtYXJrIHVuY2xhaW1lZCB0byBhdm9pZCBCVUdfT04gYmVsb3cgKi8KKwkJCWItPmhv bGRfY291bnQgPSAwOwogI2VuZGlmCiAJCX0KIAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from Galois.linutronix.de ([146.0.238.70]:58028 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728956AbfDYKAj (ORCPT ); Thu, 25 Apr 2019 06:00:39 -0400 Message-ID: <20190425094802.446326191@linutronix.de> Date: Thu, 25 Apr 2019 11:45:07 +0200 From: Thomas Gleixner Subject: [patch V3 14/29] dm bufio: Simplify stack trace retrieval References: <20190425094453.875139013@linutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-arch-owner@vger.kernel.org List-ID: To: LKML Cc: Josh Poimboeuf , x86@kernel.org, Andy Lutomirski , dm-devel@redhat.com, Mike Snitzer , Alasdair Kergon , Steven Rostedt , Alexander Potapenko , Alexey Dobriyan , Andrew Morton , Christoph Lameter , Pekka Enberg , linux-mm@kvack.org, David Rientjes , Catalin Marinas , Dmitry Vyukov , Andrey Ryabinin , kasan-dev@googlegroups.com, Mike Rapoport , Akinobu Mita , Christoph Hellwig , iommu@lists.linux-foundation.org, Robin Murphy , Marek Szyprowski , Johannes Thumshirn , David Sterba , Chris Mason , Josef Bacik , linux-btrfs@vger.kernel.org, Daniel Vetter , intel-gfx@lists.freedesktop.org, Joonas Lahtinen , Maarten Lankhorst , dri-devel@lists.freedesktop.org, David Airlie , Jani Nikula , Rodrigo Vivi , Tom Zanussi , Miroslav Benes , linux-arch@vger.kernel.org Message-ID: <20190425094507.BJW5_WnpbE2WkxhxPu5AdicSmB6wnrBnH87Qcalc36A@z> Replace the indirection through struct stack_trace with an invocation of the storage array based interface. Signed-off-by: Thomas Gleixner Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon --- drivers/md/dm-bufio.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) --- a/drivers/md/dm-bufio.c +++ b/drivers/md/dm-bufio.c @@ -150,7 +150,7 @@ struct dm_buffer { void (*end_io)(struct dm_buffer *, blk_status_t); #ifdef CONFIG_DM_DEBUG_BLOCK_STACK_TRACING #define MAX_STACK 10 - struct stack_trace stack_trace; + unsigned int stack_len; unsigned long stack_entries[MAX_STACK]; #endif }; @@ -232,11 +232,7 @@ static DEFINE_MUTEX(dm_bufio_clients_loc #ifdef CONFIG_DM_DEBUG_BLOCK_STACK_TRACING static void buffer_record_stack(struct dm_buffer *b) { - b->stack_trace.nr_entries = 0; - b->stack_trace.max_entries = MAX_STACK; - b->stack_trace.entries = b->stack_entries; - b->stack_trace.skip = 2; - save_stack_trace(&b->stack_trace); + b->stack_len = stack_trace_save(b->stack_entries, MAX_STACK, 2); } #endif @@ -438,7 +434,7 @@ static struct dm_buffer *alloc_buffer(st adjust_total_allocated(b->data_mode, (long)c->block_size); #ifdef CONFIG_DM_DEBUG_BLOCK_STACK_TRACING - memset(&b->stack_trace, 0, sizeof(b->stack_trace)); + b->stack_len = 0; #endif return b; } @@ -1520,8 +1516,9 @@ static void drop_buffers(struct dm_bufio DMERR("leaked buffer %llx, hold count %u, list %d", (unsigned long long)b->block, b->hold_count, i); #ifdef CONFIG_DM_DEBUG_BLOCK_STACK_TRACING - print_stack_trace(&b->stack_trace, 1); - b->hold_count = 0; /* mark unclaimed to avoid BUG_ON below */ + stack_trace_print(b->stack_entries, b->stack_len, 1); + /* mark unclaimed to avoid BUG_ON below */ + b->hold_count = 0; #endif }