Re: [PATCH V2 2/3] powerpc: Add support for swiotlb on 32-bit

From: Jeremy Fitzhardinge
Date: Thu May 21 2009 - 16:19:14 EST


Becky Bruce wrote:
I can work with that, but it's going to be a bit inefficient, as I actually need the dma_addr_t, not the phys_addr_t, so I'll have to convert. In every case, this is a conversion I've already done and that I need in the calling code as well. Can we pass in both the phys_addr_t and the dma_addr_t?

The Xen implementation would needs to do the phys to bus conversion page by page anyway, so it wouldn't help much. But it also wouldn't hurt.

How expensive is the phys-to-bus conversion on power? Is it worth making the interface more complex for? Would passing phys+bus mean that we wouldn't also need to pass dev?

We have both in every case but one, which is in swiotlb_map_page where we call address_needs_mapping() without calling range_needs_mapping. It's not actually clear to me that we need that check, though. Can someone explain what case that was designed to catch?

It called them together a little earlier in the function, and the phys address is still available.

I guess the test is checking for a bad implementation of map_single(). I found a single instance of someone reporting the message (in 2.6.11, when swiotlb was ia64-specific: http://lkml.org/lkml/2008/3/3/249). panic() is an odd way to handle an error (even an one which is an implementation bug), but I guess it's better than scribbling on the wrong memory.

J
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/