On Fri, 12 Apr 2019, Halil Pasic wrote: > On Thu, 11 Apr 2019 20:25:01 +0200 (CEST) > Sebastian Ott <sebott@xxxxxxxxxxxxx> wrote: > > I don't think we should use this global DMA pool. I guess it's OK for > > stuff like airq (where we don't have a struct device at hand) but for > > CCW we should use the device we have. Yes, this way we waste some memory > > but all dma memory a device uses should fit in a page - so the wastage > > is not too much. > > > > Is what you envision an own gen_pool on for each subchannel (e.g. a > struct io_subchannel member)? Either that or if that's too much overhead simply map a page and create a struct containing the few dma areas for that device. > I'm struggling with understanding the expected benefits of a > per-subchannel pool/allocator. Can you please tell me what benefits do > you expect (over the current approach)? Logically DMA is a capability of a device and the whole DMA API is build around devices. Working around that just feels wrong. For practical matters: DMA debugging will complain about misuse of a specific device or driver. > I understand you idea is to keep the CIO global pool for stuff that can > not be tied to a single device (i.e. ariq). So the per device stuff would > also mean more code. Would you be OK with postponing this alleged > enhancement (i.e. implement it as a patch on top of this series)? I don't like it but it's just in-kernel usage which we can change at any time. So if it helps you to do it that way, why not..