Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754755AbbLVR2m (ORCPT ); Tue, 22 Dec 2015 12:28:42 -0500 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:45047 "EHLO mx0b-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753270AbbLVR2j (ORCPT ); Tue, 22 Dec 2015 12:28:39 -0500 Subject: Re: IO errors after "block: remove bio_get_nr_vecs()" To: Junichi Nomura , Kent Overstreet , Tejun Heo References: <20151221065528.GA3873@htj.duckdns.org> <20151221193550.GM4026@mtj.duckdns.org> <20151221200721.GN4026@mtj.duckdns.org> <20151221210811.GO4026@mtj.duckdns.org> <20151222035944.GG20661@kmo-pixel> <20151222052611.GA10487@xzibit.linux.bs1.fc.nec.co.jp> CC: "Artem S. Tashkinov" , "Artem S. Tashkinov" , Christoph Hellwig , Ming Lin , Linus Torvalds , Steven Whitehouse , IDE-ML , Linux Kernel Mailing List , Ming Lei From: Jens Axboe Message-ID: <56798826.6000908@fb.com> Date: Tue, 22 Dec 2015 10:28:06 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <20151222052611.GA10487@xzibit.linux.bs1.fc.nec.co.jp> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [192.168.54.13] X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2015-12-22_13:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1235 Lines: 39 On 12/21/2015 10:26 PM, Junichi Nomura wrote: > On 12/22/15 12:59, Kent Overstreet wrote: >> reproduced it with 32 bit pae: >> >>> 1. Exclude memory above 4G line with boot param "max_addr=4G". >> >> doesn't work - max_addr=1G doesn't work either >> >>> 2. Disable highmem with "highmem=0". >> >> works! >> >>> 3. Try booting 64bit kernel. >> >> works > > blk_queue_bio() does split then bounce, which makes the segment > counting based on pages before bouncing and could go wrong. Good catch! The blk-mq parts aren't affected by this, the screw up only happened in the old IO path. I've added this with the appropriate tested-by from Artem, and CC stable and listed the commit that broke it: commit 54efd50bfd873e2dbf784e0b21a8027ba4299a3e Author: Kent Overstreet Date: Thu Apr 23 22:37:18 2015 -0700 block: make generic_make_request handle arbitrarily sized bios Thanks to all involved in nailing this down, it'll go out shortly. -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/