Re: [libvirt] [Qemu-devel] QEMU interfaces for image streaming and post-copy block migration

2010-09-12 Thread Avi Kivity
On 09/07/2010 04:41 PM, Anthony Liguori wrote: Hi, We've got copy-on-read and image streaming working in QED and before going much further, I wanted to bounce some interfaces off of the libvirt folks to make sure our final interface makes sense. Here's the basic idea: Today, you can

Re: [libvirt] RFC [0/3]: A proposal for lock manager plugins

2010-09-12 Thread Saggi Mizrahi
Sorry for commenting so late but it was Rosh Hashana over here. Just to give you some pointers, sync_manager should also be zero config. host id, timeouts etc are not in a config. Host Id is decided when sync_manager starts, and timeouts are decided upon lease creation so that all the

Re: [libvirt] RFC [1/3]: The internal lock manager API

2010-09-12 Thread Saggi Mizrahi
On Fri, 2010-09-10 at 17:00 +0100, Daniel P. Berrange wrote: /** * virLockManager: * * A lock manager is a process that will supervise another * process. It will obtain hold locks/leases for resources * the supervised process uses */ typedef struct virLockManager virLockManager;

Re: [libvirt] [Qemu-devel] QEMU interfaces for image streaming and post-copy block migration

2010-09-12 Thread Avi Kivity
On 09/07/2010 05:57 PM, Anthony Liguori wrote: I agree that streaming should be generic, like block migration. The trivial generic implementation is: void bdrv_stream(BlockDriverState* bs) { for (sector = 0; sector bdrv_getlength(bs); sector += n) { if (!bdrv_is_allocated(bs,

Re: [libvirt] [Qemu-devel] QEMU interfaces for image streaming and post-copy block migration

2010-09-12 Thread Anthony Liguori
On 09/12/2010 07:41 AM, Avi Kivity wrote: On 09/07/2010 05:57 PM, Anthony Liguori wrote: I agree that streaming should be generic, like block migration. The trivial generic implementation is: void bdrv_stream(BlockDriverState* bs) { for (sector = 0; sector bdrv_getlength(bs); sector +=

Re: [libvirt] [Qemu-devel] QEMU interfaces for image streaming and post-copy block migration

2010-09-12 Thread Avi Kivity
On 09/12/2010 03:25 PM, Anthony Liguori wrote: On 09/12/2010 07:41 AM, Avi Kivity wrote: On 09/07/2010 05:57 PM, Anthony Liguori wrote: I agree that streaming should be generic, like block migration. The trivial generic implementation is: void bdrv_stream(BlockDriverState* bs) { for

Re: [libvirt] [Qemu-devel] QEMU interfaces for image streaming and post-copy block migration

2010-09-12 Thread Anthony Liguori
On 09/12/2010 08:40 AM, Avi Kivity wrote: Why would it serialize all I/O operations? It's just like another vcpu issuing reads. Because the block layer isn't re-entrant. What you basically do is: stream_step_three(): complete() stream_step_two(offset, length): bdrv_aio_readv(offset,

Re: [libvirt] [Qemu-devel] QEMU interfaces for image streaming and post-copy block migration

2010-09-12 Thread Anthony Liguori
On 09/12/2010 11:45 AM, Avi Kivity wrote: Streaming relies on copy-on-read to do the writing. Ah. You can avoid the copy-on-read implementation in the block format driver and do it completely in generic code. Copy on read takes advantage of temporal locality. You wouldn't want to stream

Re: [libvirt] [Qemu-devel] QEMU interfaces for image streaming and post-copy block migration

2010-09-12 Thread Avi Kivity
On 09/12/2010 07:19 PM, Anthony Liguori wrote: On 09/12/2010 11:45 AM, Avi Kivity wrote: Streaming relies on copy-on-read to do the writing. Ah. You can avoid the copy-on-read implementation in the block format driver and do it completely in generic code. Copy on read takes advantage of

Re: [libvirt] Remote access form windows - Java bindings

2010-09-12 Thread Gandhiraj Natarajan
Hi BK Yes, I am running on windows. Is there any difference between the jar files (linux and windows). How can i compile the source for windows. Thanks in advance  Regards, Gandhiraj Natarajan   --- On Sat, 11/9/10, Bryan Kearney bkear...@redhat.com wrote: From: Bryan Kearney