Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp200555ybl; Tue, 7 Jan 2020 04:48:20 -0800 (PST) X-Google-Smtp-Source: APXvYqxeArgPB4Rb3AS9mN89mWTXzPy44hJxdpTsUSIpTAsmM9V1jvFvFNGkyp3Y3J2cfhLEUKW1 X-Received: by 2002:a05:6830:1607:: with SMTP id g7mr121814820otr.320.1578401300510; Tue, 07 Jan 2020 04:48:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1578401300; cv=none; d=google.com; s=arc-20160816; b=GW5IBwDtJEqFuPDpyHSlnlMEwo66hIo/DA4HL03wUj4oTWUyXP5Cd8Yoxi9YxM+MYu owcIwRzfGx5XsVVwwgqUTRmumvaVoJZxpjYoWvVwts6CG/S+yp45hvEDDeux6PtYkQx8 NKKMj47V6Nd2ZJSkeOVG9e6M6C26MgiiBBkiJI20AlJ2gVA2X1FDpetNGKb2UdznGfcE tEhbHCuc65nNvlsWTW28BTyFKaEGLL/Sc3hYsuT9vufoKVWuvRDA5Vu+AuOWLK8tnsS1 oroKlMgwduiMz899tFp/HIErzSbUbAn7DpnwgVkrAaX9jz5ooK+PIGlUw4T0QYv4Vhnr fx1g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=8PR6blzvkB8SglpJfQT+RrOlt95zYQCk8HEV2njqBwo=; b=ndM6cIM06HksVn0kZZE5cXl4sgycj1qcSC+FKnpdjw0kLYo+tv0YjajMe5i5ZPeICs JR81SFzN8DXUSRF4gaa6yVUJqBsZ9sp3TI0qqXEhkFvWI7rUNfTYZj2gr0V8itrShswg 7S61TuT8DxtA5wM7gNSDxJlH4VxRrYBOhD4W9yjJ+G8KEDmY3uaANb/9aeDR7/pU/liZ kLVjX2agWEnIfYB/B/VNB2INAIqBcl78EQ4xS6VlkX2hMNFLI7tPny0E6vGNQI01an15 c3PUb0N54lIRMk1nkxoygNDyurTq6xs8DkfEfc+ZMGAF6ltXgFgfSL6xIR/9U1ipp71M VwNw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=jaIXUUHN; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e24si5337233oti.247.2020.01.07.04.48.07; Tue, 07 Jan 2020 04:48:20 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=jaIXUUHN; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727958AbgAGMrM (ORCPT + 99 others); Tue, 7 Jan 2020 07:47:12 -0500 Received: from mail-pj1-f68.google.com ([209.85.216.68]:40447 "EHLO mail-pj1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726937AbgAGMrL (ORCPT ); Tue, 7 Jan 2020 07:47:11 -0500 Received: by mail-pj1-f68.google.com with SMTP id bg7so9226404pjb.5; Tue, 07 Jan 2020 04:47:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=8PR6blzvkB8SglpJfQT+RrOlt95zYQCk8HEV2njqBwo=; b=jaIXUUHN0j3PCiVPXUW6bXJGdHIDjdS39RtdW3vDFM/lnwtTYpSfV7wN/8WtY5x1q5 Qie7bQKR/ktUd7PRnyDzdKoXWQik027b7zkiiSetDkItvyAu4n9VK6ZZAgMIilnwEidh VIs2ajd1oNWJ6I5gRO1KowZ7wZICclu/0wBBfbjn2m6Ty4+zXkbbh6zlxCTnjHa7u5zC 0qSiXVGHmbZn6zJZUAIA5ZMyHAtLFc8Xxl1D3h4LHENd4uFqCBcLUvhy9EKKTfN87yC5 rcpuyojls5PjEKJPFldbj73VNgSx8tPxC6s2h3HcvUPaYFXluZGQGHqpPGn0QdAPXziO /PLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=8PR6blzvkB8SglpJfQT+RrOlt95zYQCk8HEV2njqBwo=; b=tfz/Vm5kYQ/Fz2FGqMYeP1ZXMsAKI2iR1x25xcFjJ+ZG7YUgeceuowa/IkI+pG6+kO WTEVTguBKjrGu5sTR0UA5oBGF286vF/F9IezASTJRHEelS0YYYmbHpWXgq+bGG/kgKpy Is4lpCqm8uajQLCXmQEA94JYG82M4W8NpaC71IN0pICz0INOHlU6RvJ4Frq5UY2VSAKx 0yaZNnouf9ZjO4B4+9kWFIeFjNKK508yDhRo8kwjN/SB/cqX3cNO/1wVame8QbZT6iBr zAp9mZR2mhjukQdXT7KE+CkxBuDJS26VNZEp7OFDufJI43ZngphTz6rEglQlxDev0EQJ YnJg== X-Gm-Message-State: APjAAAUvUfcb/HADskQlfuP8CrfhsoidMRp4epQ9ZBEH58nleEQTw0WX P9t7/aukruJ+F28O6IukGdA= X-Received: by 2002:a17:90a:30a4:: with SMTP id h33mr48911402pjb.50.1578401230840; Tue, 07 Jan 2020 04:47:10 -0800 (PST) Received: from localhost ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id c15sm30391291pja.30.2020.01.07.04.47.09 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 07 Jan 2020 04:47:09 -0800 (PST) Date: Tue, 7 Jan 2020 04:47:08 -0800 From: Guenter Roeck To: Ming Lei Cc: Jens Axboe , linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Chris Mason Subject: Re: [PATCH] block: fix splitting segments Message-ID: <20200107124708.GA20285@roeck-us.net> References: <20191229023230.28940-1-ming.lei@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191229023230.28940-1-ming.lei@redhat.com> User-Agent: Mutt/1.9.4 (2018-02-28) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On Sun, Dec 29, 2019 at 10:32:30AM +0800, Ming Lei wrote: > There are two issues in get_max_segment_size(): > > 1) the default segment boudary mask is bypassed, and some devices still > require segment to not cross the default 4G boundary > > 2) the segment start address isn't taken into account when checking > segment boundary limit > > Fixes the two issues. > > Fixes: dcebd755926b ("block: use bio_for_each_bvec() to compute multi-page bvec count") > Signed-off-by: Ming Lei This patch, pushed into mainline as "block: fix splitting segments on boundary masks", results in the following crash when booting 'versatilepb' in qemu from disk. Bisect log is attached. Detailed log is at https://kerneltests.org/builders/qemu-arm-master/builds/1410/steps/qemubuildcommand/logs/stdio Guenter --- Crash: kernel BUG at block/bio.c:1885! Internal error: Oops - BUG: 0 [#1] ARM Modules linked in: CPU: 0 PID: 1 Comm: init Not tainted 5.5.0-rc5 #1 Hardware name: ARM-Versatile (Device Tree Support) PC is at bio_split+0x10c/0x15c LR is at __blk_queue_split+0x378/0x628 ... [] (bio_split) from [] (__blk_queue_split+0x378/0x628) [] (__blk_queue_split) from [] (blk_mq_make_request+0x6c/0x7e4) [] (blk_mq_make_request) from [] (generic_make_request+0xec/0x340) [] (generic_make_request) from [] (submit_bio+0x4c/0x170) [] (submit_bio) from [] (ext4_mpage_readpages+0x54c/0x8e0) [] (ext4_mpage_readpages) from [] (ext4_readpages+0x40/0x50) [] (ext4_readpages) from [] (read_pages+0x50/0x13c) [] (read_pages) from [] (__do_page_cache_readahead+0x1a8/0x1f0) [] (__do_page_cache_readahead) from [] (filemap_fault+0x440/0x8f4) [] (filemap_fault) from [] (ext4_filemap_fault+0x28/0x3c) [] (ext4_filemap_fault) from [] (__do_fault+0x3c/0x1c0) [] (__do_fault) from [] (handle_mm_fault+0x284/0xaf4) [] (handle_mm_fault) from [] (do_page_fault+0x114/0x2e0) [] (do_page_fault) from [] (do_DataAbort+0x38/0xbc) [] (do_DataAbort) from [] (__dabt_svc+0x5c/0xa0) Exception stack(0xc783be28 to 0xc783be70) be20: b6f81898 00000760 00000000 00000055 00000051 c0af3068 be40: c71f7a00 c71f7800 b6f51000 c71df320 c7954c80 00000006 00000000 c783be78 be60: c01a099c c07a4bb4 20000153 ffffffff [] (__dabt_svc) from [] (__clear_user_std+0x34/0x68) [] (__clear_user_std) from [] (clear_user+0x40/0x50) [] (clear_user) from [] (load_elf_binary+0x1354/0x13c4) [] (load_elf_binary) from [] (search_binary_handler.part.4+0x58/0x1fc) [] (search_binary_handler.part.4) from [] (__do_execve_file+0x780/0x9a4) [] (__do_execve_file) from [] (do_execve+0x28/0x30) [] (do_execve) from [] (try_to_run_init_process+0xc/0x3c) [] (try_to_run_init_process) from [] (kernel_init+0x88/0xf0) [] (kernel_init) from [] (ret_from_fork+0x14/0x24) ... WARNING: CPU: 0 PID: 1 at kernel/exit.c:719 do_exit+0x54/0xb5c Modules linked in: CPU: 0 PID: 1 Comm: init Tainted: G D 5.5.0-rc5 #1 Hardware name: ARM-Versatile (Device Tree Support) [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (__warn+0xe4/0x108) [] (__warn) from [] (warn_slowpath_fmt+0xa8/0xb8) [] (warn_slowpath_fmt) from [] (do_exit+0x54/0xb5c) [] (do_exit) from [] (die+0x1a0/0x274) [] (die) from [] (do_undefinstr+0xac/0x258) [] (do_undefinstr) from [] (__und_svc_finish+0x0/0x48) Exception stack(0xc783b950 to 0xc783b998) b940: c7226a80 00000000 00000c00 c7bebe00 b960: 00000000 c783b9e4 00000000 c7226a80 00007000 00000060 c7beb848 c783b9f0 b980: 00000060 c783b9a0 c03c24c8 c03b716c 60000153 ffffffff [] (__und_svc_finish) from [] (bio_split+0x10c/0x15c) [] (bio_split) from [] (__blk_queue_split+0x378/0x628) [] (__blk_queue_split) from [] (blk_mq_make_request+0x6c/0x7e4) [] (blk_mq_make_request) from [] (generic_make_request+0xec/0x340) [] (generic_make_request) from [] (submit_bio+0x4c/0x170) [] (submit_bio) from [] (ext4_mpage_readpages+0x54c/0x8e0) [] (ext4_mpage_readpages) from [] (ext4_readpages+0x40/0x50) [] (ext4_readpages) from [] (read_pages+0x50/0x13c) [] (read_pages) from [] (__do_page_cache_readahead+0x1a8/0x1f0) [] (__do_page_cache_readahead) from [] (filemap_fault+0x440/0x8f4) [] (filemap_fault) from [] (ext4_filemap_fault+0x28/0x3c) [] (ext4_filemap_fault) from [] (__do_fault+0x3c/0x1c0) [] (__do_fault) from [] (handle_mm_fault+0x284/0xaf4) [] (handle_mm_fault) from [] (do_page_fault+0x114/0x2e0) [] (do_page_fault) from [] (do_DataAbort+0x38/0xbc) [] (do_DataAbort) from [] (__dabt_svc+0x5c/0xa0) Exception stack(0xc783be28 to 0xc783be70) be20: b6f81898 00000760 00000000 00000055 00000051 c0af3068 be40: c71f7a00 c71f7800 b6f51000 c71df320 c7954c80 00000006 00000000 c783be78 be60: c01a099c c07a4bb4 20000153 ffffffff [] (__dabt_svc) from [] (__clear_user_std+0x34/0x68) [] (__clear_user_std) from [] (clear_user+0x40/0x50) [] (clear_user) from [] (load_elf_binary+0x1354/0x13c4) [] (load_elf_binary) from [] (search_binary_handler.part.4+0x58/0x1fc) [] (search_binary_handler.part.4) from [] (__do_execve_file+0x780/0x9a4) [] (__do_execve_file) from [] (do_execve+0x28/0x30) [] (do_execve) from [] (try_to_run_init_process+0xc/0x3c) [] (try_to_run_init_process) from [] (kernel_init+0x88/0xf0) [] (kernel_init) from [] (ret_from_fork+0x14/0x24) Exception stack(0xc783bfb0 to 0xc783bff8) bfa0: 00000000 00000000 00000000 00000000 bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 bfe0: 00000000 00000000 00000000 00000000 00000013 00000000 irq event stamp: 159876 hardirqs last enabled at (159875): [] ktime_get+0x74/0x16c hardirqs last disabled at (159876): [] __und_svc+0x5c/0x70 softirqs last enabled at (159728): [] __do_softirq+0x308/0x4bc softirqs last disabled at (159697): [] irq_exit+0x150/0x178 ---[ end trace 42dd349d5c0726c1 ]--- BUG: sleeping function called from invalid context at ./include/linux/cgroup-defs.h:747 in_atomic(): 0, irqs_disabled(): 128, non_block: 0, pid: 1, name: init INFO: lockdep is turned off. irq event stamp: 159876 hardirqs last enabled at (159875): [] ktime_get+0x74/0x16c hardirqs last disabled at (159876): [] __und_svc+0x5c/0x70 softirqs last enabled at (159728): [] __do_softirq+0x308/0x4bc softirqs last disabled at (159697): [] irq_exit+0x150/0x178 CPU: 0 PID: 1 Comm: init Tainted: G D W 5.5.0-rc5 #1 Hardware name: ARM-Versatile (Device Tree Support) [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (___might_sleep+0x1a8/0x2bc) [] (___might_sleep) from [] (exit_signals+0x28/0x134) [] (exit_signals) from [] (do_exit+0xc8/0xb5c) [] (do_exit) from [] (die+0x1a0/0x274) [] (die) from [] (do_undefinstr+0xac/0x258) [] (do_undefinstr) from [] (__und_svc_finish+0x0/0x48) Exception stack(0xc783b950 to 0xc783b998) b940: c7226a80 00000000 00000c00 c7bebe00 b960: 00000000 c783b9e4 00000000 c7226a80 00007000 00000060 c7beb848 c783b9f0 b980: 00000060 c783b9a0 c03c24c8 c03b716c 60000153 ffffffff [] (__und_svc_finish) from [] (bio_split+0x10c/0x15c) [] (bio_split) from [] (__blk_queue_split+0x378/0x628) [] (__blk_queue_split) from [] (blk_mq_make_request+0x6c/0x7e4) [] (blk_mq_make_request) from [] (generic_make_request+0xec/0x340) [] (generic_make_request) from [] (submit_bio+0x4c/0x170) [] (submit_bio) from [] (ext4_mpage_readpages+0x54c/0x8e0) [] (ext4_mpage_readpages) from [] (ext4_readpages+0x40/0x50) [] (ext4_readpages) from [] (read_pages+0x50/0x13c) [] (read_pages) from [] (__do_page_cache_readahead+0x1a8/0x1f0) [] (__do_page_cache_readahead) from [] (filemap_fault+0x440/0x8f4) [] (filemap_fault) from [] (ext4_filemap_fault+0x28/0x3c) [] (ext4_filemap_fault) from [] (__do_fault+0x3c/0x1c0) [] (__do_fault) from [] (handle_mm_fault+0x284/0xaf4) [] (handle_mm_fault) from [] (do_page_fault+0x114/0x2e0) [] (do_page_fault) from [] (do_DataAbort+0x38/0xbc) [] (do_DataAbort) from [] (__dabt_svc+0x5c/0xa0) Exception stack(0xc783be28 to 0xc783be70) be20: b6f81898 00000760 00000000 00000055 00000051 c0af3068 be40: c71f7a00 c71f7800 b6f51000 c71df320 c7954c80 00000006 00000000 c783be78 be60: c01a099c c07a4bb4 20000153 ffffffff [] (__dabt_svc) from [] (__clear_user_std+0x34/0x68) [] (__clear_user_std) from [] (clear_user+0x40/0x50) [] (clear_user) from [] (load_elf_binary+0x1354/0x13c4) [] (load_elf_binary) from [] (search_binary_handler.part.4+0x58/0x1fc) [] (search_binary_handler.part.4) from [] (__do_execve_file+0x780/0x9a4) [] (__do_execve_file) from [] (do_execve+0x28/0x30) [] (do_execve) from [] (try_to_run_init_process+0xc/0x3c) [] (try_to_run_init_process) from [] (kernel_init+0x88/0xf0) [] (kernel_init) from [] (ret_from_fork+0x14/0x24) Exception stack(0xc783bfb0 to 0xc783bff8) bfa0: 00000000 00000000 00000000 00000000 bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 bfe0: 00000000 00000000 00000000 00000000 00000013 00000000 Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b --- bisect log: # bad: [ae6088216ce4b99b3a4aaaccd2eb2dd40d473d42] Merge tag 'trace-v5.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace # good: [738d2902773e30939a982c8df7a7f94293659810] Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net git bisect start 'HEAD' '738d2902773e' # bad: [84029fd04c201a4c7e0b07ba262664900f47c6f5] memcg: account security cred as well to kmemcg git bisect bad 84029fd04c201a4c7e0b07ba262664900f47c6f5 # good: [e35d0165908ad2d2bdb76773ef77b551763eedbd] Merge tag 'sound-5.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound git bisect good e35d0165908ad2d2bdb76773ef77b551763eedbd # bad: [3a562aee727a7bfbb3a37b1aa934118397dad701] Merge tag 'for-5.5-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux git bisect bad 3a562aee727a7bfbb3a37b1aa934118397dad701 # good: [bed723519a72c0f68fbfaf68ed5bf55d04e46566] Merge tag 'kbuild-fixes-v5.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild git bisect good bed723519a72c0f68fbfaf68ed5bf55d04e46566 # bad: [b6b4aafc99d7c8dbf7d9429bf054b591daab1ad0] Merge tag 'block-5.5-20200103' of git://git.kernel.dk/linux-block git bisect bad b6b4aafc99d7c8dbf7d9429bf054b591daab1ad0 # bad: [429120f3df2dba2bf3a4a19f4212a53ecefc7102] block: fix splitting segments on boundary masks git bisect bad 429120f3df2dba2bf3a4a19f4212a53ecefc7102 # good: [85a8ce62c2eabe28b9d76ca4eecf37922402df93] block: add bio_truncate to fix guard_bio_eod git bisect good 85a8ce62c2eabe28b9d76ca4eecf37922402df93 # first bad commit: [429120f3df2dba2bf3a4a19f4212a53ecefc7102] block: fix splitting segments on boundary masks