Re: [BUG] Devices breaking due to CONFIG_ZONE_DEVICE

From: Dan Williams
Date: Sat Jan 23 2016 - 00:48:46 EST


On Fri, Jan 22, 2016 at 8:46 PM, Sudip Mukherjee
<sudipm.mukherjee@xxxxxxxxx> wrote:
> Hi All,
> Commit 033fbae988fc ("mm: ZONE_DEVICE for "device memory"") has
> introduced CONFIG_ZONE_DEVICE while sacrificing CONFIG_ZONE_DMA.
> Distributions like Ubuntu has started enabling CONFIG_ZONE_DEVICE and
> thus breaking parallel port. Please have a look at
> https://bugzilla.kernel.org/show_bug.cgi?id=110931 for the bug report.
>
> Apart from parallel port I can see some sound drivers will also break.
>
> Now what is the possible solution for this?

The tradeoff here is enabling direct-I/O for persistent memory vs
support for legacy devices.

One possible solution is to alias ZONE_DMA and ZONE_DEVICE. At early
boot if pmem is detected disable these legacy devices, or the reverse
disable DMA to persistent memory if a legacy device is detected. The
latter is a bit harder to do as I think we would want to make the
decision early during memory init before we would know if any parallel
ports or ISA sound cards are present.