Re: [patch v2] x86: allow ZONE_DMA to be configurable

From: David Rientjes
Date: Wed Apr 20 2011 - 22:32:12 EST


On Fri, 15 Apr 2011, H. Peter Anvin wrote:

> On 04/15/2011 04:42 AM, Clemens Ladisch wrote:
> > David Rientjes wrote:
> >> ZONE_DMA is unnecessary for a large number of machines that do not
> >> require addressing in the lower 16MB of memory because they do not use
> >> ISA devices with 16-bit address registers (plus one page byte register).
> >>
> >> This patch allows users to disable ZONE_DMA for x86 if they know they
> >> will not be using such devices with their kernel.
> >> ...
> >> config ZONE_DMA
> >> - def_bool y
> >> + bool "DMA memory allocation support" if EXPERT
> >
> > Better call it "ISA/LPC DMA memory allocation support".
> >
> >> + default y
> >
> > Does it make sense to have this without CONFIG_ISA_DMA_API?
> >
> >> + help
> >> + DMA memory allocation support allows old ISA devices with 16-bit
> >> + address registers to allocate memory within the first 16MB of
> >> + address space. Disable if no such devices will be used.
> >
> > "Old ISA devices" might be misleading because ISA does not imply actual
> > ISA slots; please mention LPC devices like the floppy controller and the
> > parallel port in ECP mode.
> >
>
> This isn't really a very good edit, as ZONE_DMA isn't inherently limited
> to ISA/LPC devices (and LPC devices which do LPC-native bus mastering
> DMA are not affected.) ZONE_DMA is used even for some PCI devices which
> have restrictions on the DMA address mask.
>

Peter, do you think we can merge this patch now? The discussion from
October resulted in the decision to rename CONFIG_EMBEDDED to
CONFIG_EXPERT and make CONFIG_GENERIC_ISA_DMA and CONFIG_ISA_DMA_API
configurable for x86. That's all been done via the -mm tree and is in the
latest git.

We've run without ZONE_DMA for a few years without issues (and, obviously,
this patch) on x86.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/