> "François Revol" <revol@xxxxxxx> wrote: > > > * Implemented the DMA and I/O requests/scheduler framework - for > > > now > > > in C++ only. It's a work in progress and not used anywhere yet. > > Btw, talking about DMA, I'm digging vm setup on 68k, and talked > > with > > Travis, the current code doesn't differentiate DMAble memory from > > "fast" ram, it just sees it as a single pool. > > While it shouldn't be a problem for PCI initiated DMA on x86, it > > will > > certainly be an issue for ISA DMA, and on other platforms (I > > suppose > > PPC just uses PCI style DMA, but...). > > Without going as deep as handling NUMA ranges with cpu affinities, > > it > > would be nice to have the vm know about it so it can respect the > > B_LOMEM and B_SLOWMEM flags. > > I don't really want to add support for those (although maybe we have > to > in architecture independent way), but we definitely need a > create_area() version that allows for address and alignment > restrictions. We also need this to correctly implement DMAResource. > > For platform wide but varying restrictions, something like B_LOMEM/ > B_SLOWMEM might be a good idea, even though I would prefer a way to > retrieve general DMA restrictions from the bus in question. > Right, but to support existing driver we should still handle this. The bus manager could have a call to allocate areas itself, since he knows the restrictions. I think solaris does it this way, or from the device, recalling from OSS code. François.