On Tue, Jan 13, 2009 at 05:33:03PM +0100, Arnd Bergmann wrote: > On Tuesday 13 January 2009, Ira Snyder wrote: > > On Tue, Jan 13, 2009 at 01:02:52PM +1030, Rusty Russell wrote: > > > > > > Interesting system: the guest being able to access the > > > host's memory but not (fully) vice-versa makes this a > > > little different from the current implementations where > > > that was assumed. virtio assumes that the guest will > > > publish buffers and someone else (ie. the host) will access them. > > > > The guest system /could/ publish all of its RAM, but with 256MB per > > board, 19 boards per cPCI crate, that's way too much for a 32-bit PC to > > map into it's memory space. That's the real reason I use the 1MB > > windows. I could make them bigger (16MB would be fine, I think), but I > > doubt it would make much of a difference to the implementation. > > The way we do it in the existing driver for cell, both sides export > just a little part of their memory to the other side, and they > also both get access to one channel of the DMA engine, which is > enough to transfer larger data sections, as the DMA engine has > access to all the memory on both sides.
So do you program one channel of the DMA engine from the host side and another channel from the guest side? I tried to avoid having the host program the DMA controller at all. Using the DMAEngine API on the guest did better than I could achieve by programming the registers manually. I didn't use chaining or any of the fancier features in my tests, though. Ira _______________________________________________ Linuxppc-dev mailing list [email protected] https://ozlabs.org/mailman/listinfo/linuxppc-dev
