On Fri, Jan 22, 2016 at 9:47 PM, Dan Williams <dan.j.willi...@intel.com> wrote: > On Fri, Jan 22, 2016 at 8:46 PM, Sudip Mukherjee > <sudipm.mukher...@gmail.com> 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.
...another option that might be cleaner is to teach GFP_DMA to get memory from a different mechanism. I.e. don't use the mm-zone infrastructure to organize that small 16MB pool of memory.