On Mon, 2015-02-23 at 11:52 -0500, Boris Ostrovsky wrote:
On 02/23/2015 11:44 AM, Ian Campbell wrote:
On Mon, 2015-02-09 at 15:04 -0500, Boris Ostrovsky wrote:
What is the rationale for this change?
libxl is not the right place to handle hypervisor-specific details like
buffer management (most, if not all, of other services that libxl
provides push these sort of things to libxc).
It is acceptable for callers to do the buffer management themselves in
principal. The primary reason to do so would be high frequency calls
where the bouncing would be unacceptable overhead on every iteration
(i.e. it allows callers to preallocate a single buffer).
There aren't many such interfaces though and as you say most of them are
in libxc (as it happens).
Nonetheless the argument for this changw should be made in terms of the
interface not being called frequently and therefore being tolerant of
the bouncing overhead which simplifies things for the caller at the
expense of the performance.
That's assuming these interfaces are indeed tolerant of the performance
hit...