Will Deacon <will.dea...@arm.com> writes: > On Thu, Oct 18, 2012 at 03:19:06AM +0100, Rusty Russell wrote: >> We do have an alternate solution: masking out __GFP_HIGHMEM from the >> kmalloc of desc. If it fails, we will fall back to laying out the >> virtio request directly inside the ring; if it doesn't fit, we'll wait >> for the device to consume more buffers. > > Hmm, that will probably work for the vring but the zero-copy code for 9p may > just give us an address from userspace if I'm understanding it correctly. In > that case, we really have to do the translation as below (which is actually > much cleaner because everything is page-aligned). > >> > @@ -325,7 +326,7 @@ static int p9_get_mapped_pages(struct virtio_chan >> > *chan, >> > int count = nr_pages; >> > while (nr_pages) { >> > s = rest_of_page(data); >> > - pages[index++] = virt_to_page(data); >> > + pages[index++] = kmap_to_page(data); >> > data += s; >> > nr_pages--; >> > } > > So what do you reckon? How about I leave this hunk as a separate patch and > have a play masking out __GFP_HIGHMEM for the vring descriptor?
Yes, I think so. A scathing comment would be nice, too... Thanks, Rusty. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/