There is performance implication for v1 plugins like rhv-upload-plugin
need to copy the bytes from imageio server on python side:
r = http.getresponse() ... return bytearray(r.read())
This is sad because on the C side we mempcpy the data again. So with
On Sat, Nov 23, 2019 at 06:11:47PM +0200, Nir Soffer wrote: that this patch
we avoid one copy of the two.
To avoid all unneeded copies, we need to change pread() to:
def pread(h, buf, offset):
So the python side we can do:
f.readinto(buf)
Or:
sock.recv_info(buf)
It does not work for HTTPResponse, so in this case we have to do:
buf[:] = r.read()
Since we work on v2 now, I think we should consider this change.
Right, we can consider this for v2, while leaving v1 callers alone.
An uglier alternative is:
def preadinto(h, buf, offset):
Matching python read() and readinto() interface.
So if I'm understand this correctly, is it true that Python would be writing directly to the C buffer allocated by nbdkit? This sounds like it would be beneficial. Would you like to do a patch for this? For v2 it's fine to just have: def pread(h, buf, offset) since that is the same as the C API. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-df lists disk usage of guests without needing to install any software inside the virtual machine. Supports Linux and Windows. http://people.redhat.com/~rjones/virt-df/