On Fri, 12 Apr 2019, Halil Pasic wrote:> On Thu, 11 Apr 2019 20:25:01 +0200 (CEST)
> Sebastian Ott <sebott at linux.ibm.com> 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..