Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Fri, 2 Aug 2002 12:08:25 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Fri, 2 Aug 2002 12:08:25 -0400 Received: from ns.virtualhost.dk ([195.184.98.160]:4274 "EHLO virtualhost.dk") by vger.kernel.org with ESMTP id ; Fri, 2 Aug 2002 12:08:10 -0400 Date: Fri, 2 Aug 2002 18:11:18 +0200 From: Jens Axboe To: Bartlomiej Zolnierkiewicz Cc: martin@dalecki.de, Stephen Lord , Linux Kernel Mailing List Subject: Re: A new ide warning message Message-ID: <20020802161118.GU3010@suse.de> References: <20020802142037.GT3010@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3440 Lines: 85 On Fri, Aug 02 2002, Bartlomiej Zolnierkiewicz wrote: > > On Fri, 2 Aug 2002, Jens Axboe wrote: > > > On Fri, Aug 02 2002, Bartlomiej Zolnierkiewicz wrote: > > > > > > On Fri, 2 Aug 2002, Jens Axboe wrote: > > > > > > > On Fri, Aug 02 2002, Jens Axboe wrote: > > > > > On Fri, Aug 02 2002, Marcin Dalecki wrote: > > > > > > U?ytkownik Stephen Lord napisa?: > > > > > > >In 2.5.30 I started getting these warning messages out ide during > > > > > > >the mount of an XFS filesystem: > > > > > > > > > > > > > >ide-dma: received 1 phys segments, build 2 > > > > > > > > > > > > > >Can anyone translate that into English please. > > > > > > > > > > > > It can be found in pcidma.c. > > > > > > It is repoting that we have one physical segment needed by > > > > > > the request in question but the sctter gather list allocation > > > > > > needed to break it up for mapping in two. > > > > > > > > > > You don't seem to realise that this is a BUG (somewhere, could even be > > > > > in the generic mapping functions)! blk_rq_map_sg() must never map a > > > > > request to more entries that rq->nr_segments, that's just very wrong. > > > > > > > > > > That's why I'm suspecting the recent pcidma changes. Just a feeling, I > > > > > have not looked at them. > > > > > > > > I'll take that back. Having looked at Adam's changes there are perfectly > > > > fine. I'm now putting my money on IDE breakage somewhere instead. It > > > > > > Look again Jens. Adam's changes made IDE queue handling inconsistent. > > > hint: 2 * 127 != 255 > > > > > > But noticed warning deals with design of ll_rw_blk.c. ;-) > > > (right now max_segment_size have to be max bv->bv_len aligned) > > > > Yeah that's true, actually was just saying that on linux-scsi > > yesterday/today. > > :-) > > > > Jens, please look at segment checking/counting code, it does it on > > > bv->bv_len (4kb most likely) not sector granuality... > > > > > > So for not 4kb aligned max_segment_size we will get new segment... > > > > > > Best fix will be to make block layer count sectors not bv->bv_len... > > > > Well I'm inclined to just make that page size granularity. It's like > > that in 2.4 as well (no guarentees that we will honor anything less than > > that granularity). > > Anyway it must be also something diffirent - __make_request() should have > noticed that rq has 2 segments not 1... this puzzles me a bit. Well yes, that's the whole bug this thread is about, and the puzzling bit as you say :-) I haven't even had time to look at Stephen's dump yet, one thing that did stand out immediately was that phys_segments was 1 even for the big 16 segment requests, which should not be with < 64k max segment size. It should indeed have been one. So it looks like a one-off or something in the generic dma mappers. Steve, make BIO_MAX_SECTORS 4k smaller for now and it should work. I think. > This case also shows limits of BIO_MAX_SECTORS again (Adam worked on > generic solution, but I don't know current state). There some devices > which set q->max_sectors to 64, i.e. broken ide-floppy driver ;-) I have code ready for this, I'll share starting next week. Need to finish lots of other stuff too :/ -- 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/