Received: (from majordomo@localhost) by oss.sgi.com (8.11.2/8.11.3) id f97BCrf12216 for linux-xfs-outgoing; Sun, 7 Oct 2001 04:12:53 -0700 Received: from tamaris.wanadoo.fr (smtp-rt-12.wanadoo.fr [193.252.19.60]) by oss.sgi.com (8.11.2/8.11.3) with SMTP id f97BCnD12193 for ; Sun, 7 Oct 2001 04:12:50 -0700 Received: from mel-rta7.wanadoo.fr (193.252.19.61) by tamaris.wanadoo.fr; 7 Oct 2001 13:12:43 +0200 Received: from [10.0.1.59] (193.253.217.166) by mel-rta7.wanadoo.fr; 7 Oct 2001 13:12:19 +0200 From: Benjamin Herrenschmidt To: Mikulas Patocka Cc: , Subject: Re: %u-order allocation failed Date: Sun, 7 Oct 2001 13:12:02 +0200 Message-Id: <20011007111202.17296@smtp.wanadoo.fr> In-Reply-To: References: X-Mailer: CTM PowerMail 3.0.8 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-linux-xfs@oss.sgi.com Precedence: bulk > >You are right. Code that allocates more than page and expects it to be >physicaly contignuous is broken by design. Even rewrite the driver or >allocate memory on boot. It will be very hard to audit all drivers for it. Well, the problem here is not code. Some piece of hardware just can't scatter gather, or in some case, they can, but the scatter/gather list itself has to be contiguous and can be larger than a page. The fact that kmalloc returns physically contiguous memory is a feature and can't be modified that easily. If you intend to do so, then you need different GFP flags, for example a GFP_CONTIGUOUS flag, and then make sure that drivers allocating DMA memory use that new flag. Ben.