Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-08 Thread Wei Wang
On 06/07/2018 02:32 PM, Peter Xu wrote: Btw, the migration_state_notifiers is already there, but seems not really used (I only tracked spice-core.c called add_migration_state_change_notifier). I thought adding new migration states can reuse all that we have. What's your real concern about that?

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-08 Thread Wei Wang
On 06/08/2018 10:17 AM, Peter Xu wrote: On Thu, Jun 07, 2018 at 07:59:22PM +0800, Wei Wang wrote: Not necessarily _need_ to share it, I meant it can be shared using qemu command line. Live migration doesn't happen all the time, and that optimization doesn't run that long, if users want to have

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-07 Thread Peter Xu
On Fri, Jun 08, 2018 at 05:49:26AM +0300, Michael S. Tsirkin wrote: > On Fri, Jun 08, 2018 at 10:34:25AM +0800, Peter Xu wrote: > > On Fri, Jun 08, 2018 at 04:58:21AM +0300, Michael S. Tsirkin wrote: > > > On Fri, Jun 08, 2018 at 09:37:23AM +0800, Peter Xu wrote: > > > > > > Asked since I see this

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-07 Thread Michael S. Tsirkin
On Fri, Jun 08, 2018 at 10:34:25AM +0800, Peter Xu wrote: > On Fri, Jun 08, 2018 at 04:58:21AM +0300, Michael S. Tsirkin wrote: > > On Fri, Jun 08, 2018 at 09:37:23AM +0800, Peter Xu wrote: > > > > > Asked since I see this in virtio spec (v1.0, though I guess it won't > > > > > change) in chapter

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-07 Thread Peter Xu
On Fri, Jun 08, 2018 at 04:58:21AM +0300, Michael S. Tsirkin wrote: > On Fri, Jun 08, 2018 at 09:37:23AM +0800, Peter Xu wrote: > > > > Asked since I see this in virtio spec (v1.0, though I guess it won't > > > > change) in chapter "2.2.1 Driver Requirements: Feature Bits": > > > > > > > > "The

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-07 Thread Peter Xu
On Thu, Jun 07, 2018 at 07:59:22PM +0800, Wei Wang wrote: > On 06/07/2018 02:32 PM, Peter Xu wrote: > > On Thu, Jun 07, 2018 at 01:24:29PM +0800, Wei Wang wrote: > > > On 06/06/2018 07:02 PM, Peter Xu wrote: > > > > On Wed, Jun 06, 2018 at 06:04:23PM +0800, Wei Wang wrote: > > > > > On 06/06/2018

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-07 Thread Peter Xu
On Fri, Jun 08, 2018 at 09:37:23AM +0800, Peter Xu wrote: [...] > > > Asked since I see this in virtio spec (v1.0, though I guess it won't > > > change) in chapter "2.2.1 Driver Requirements: Feature Bits": > > > > > > "The driver MUST NOT accept a feature which the device did not offer" > > >

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-07 Thread Michael S. Tsirkin
On Fri, Jun 08, 2018 at 09:37:23AM +0800, Peter Xu wrote: > > > Asked since I see this in virtio spec (v1.0, though I guess it won't > > > change) in chapter "2.2.1 Driver Requirements: Feature Bits": > > > > > > "The driver MUST NOT accept a feature which the device did not offer" > > > > > >

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-07 Thread Peter Xu
On Thu, Jun 07, 2018 at 08:01:42PM +0800, Wei Wang wrote: > On 06/07/2018 02:58 PM, Peter Xu wrote: > > On Thu, Jun 07, 2018 at 01:29:22PM +0800, Wei Wang wrote: > > > > > > [...] > > > > > > > +static const VMStateDescription > > > > > > > vmstate_virtio_balloon_free_page_report = { > > > > > >

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-07 Thread Wei Wang
On 06/07/2018 02:58 PM, Peter Xu wrote: On Thu, Jun 07, 2018 at 01:29:22PM +0800, Wei Wang wrote: [...] +static const VMStateDescription vmstate_virtio_balloon_free_page_report = { +.name = "virtio-balloon-device/free-page-report", +.version_id = 1, +.minimum_version_id = 1, +

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-07 Thread Wei Wang
On 06/07/2018 02:32 PM, Peter Xu wrote: On Thu, Jun 07, 2018 at 01:24:29PM +0800, Wei Wang wrote: On 06/06/2018 07:02 PM, Peter Xu wrote: On Wed, Jun 06, 2018 at 06:04:23PM +0800, Wei Wang wrote: On 06/06/2018 01:42 PM, Peter Xu wrote: IMHO migration states do not suite here. IMHO bitmap

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-07 Thread Peter Xu
On Thu, Jun 07, 2018 at 01:29:22PM +0800, Wei Wang wrote: > On 06/07/2018 11:17 AM, Peter Xu wrote: > > On Wed, Jun 06, 2018 at 06:11:50PM +0800, Wei Wang wrote: > > > > I got similar comments from Michael, and it will be > > while (1) { > > lock; > > func(); > > unlock(); > > } > > > > All the

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-07 Thread Peter Xu
On Thu, Jun 07, 2018 at 01:24:29PM +0800, Wei Wang wrote: > On 06/06/2018 07:02 PM, Peter Xu wrote: > > On Wed, Jun 06, 2018 at 06:04:23PM +0800, Wei Wang wrote: > > > On 06/06/2018 01:42 PM, Peter Xu wrote: > > > > IMHO migration states do not suite here. IMHO bitmap syncing is too > > > >

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-06 Thread Wei Wang
On 06/07/2018 11:17 AM, Peter Xu wrote: On Wed, Jun 06, 2018 at 06:11:50PM +0800, Wei Wang wrote: I got similar comments from Michael, and it will be while (1) { lock; func(); unlock(); } All the unlock inside the body will be gone. Ok I think I have more question on this part... Actually

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-06 Thread Wei Wang
On 06/06/2018 07:02 PM, Peter Xu wrote: On Wed, Jun 06, 2018 at 06:04:23PM +0800, Wei Wang wrote: On 06/06/2018 01:42 PM, Peter Xu wrote: IMHO migration states do not suite here. IMHO bitmap syncing is too frequently an operation, especially at the end of a precopy migration. If you really

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-06 Thread Peter Xu
On Wed, Jun 06, 2018 at 06:11:50PM +0800, Wei Wang wrote: > On 06/06/2018 02:43 PM, Peter Xu wrote: > > On Tue, Apr 24, 2018 at 02:13:47PM +0800, Wei Wang wrote: > > > > [...] > > > > +if (elem->out_num) { > > +size = iov_to_buf(elem->out_sg, elem->out_num, 0, , > >

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-06 Thread Peter Xu
On Wed, Jun 06, 2018 at 06:04:23PM +0800, Wei Wang wrote: > On 06/06/2018 01:42 PM, Peter Xu wrote: > > > > IMHO migration states do not suite here. IMHO bitmap syncing is too > > frequently an operation, especially at the end of a precopy migration. > > If you really want to introduce some

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-06 Thread Wei Wang
On 06/06/2018 02:43 PM, Peter Xu wrote: On Tue, Apr 24, 2018 at 02:13:47PM +0800, Wei Wang wrote: [...] +if (elem->out_num) { +size = iov_to_buf(elem->out_sg, elem->out_num, 0, , sizeof(id)); +virtqueue_push(vq, elem, size); Silly question: is this sending the

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-06 Thread Wei Wang
On 06/06/2018 01:42 PM, Peter Xu wrote: IMHO migration states do not suite here. IMHO bitmap syncing is too frequently an operation, especially at the end of a precopy migration. If you really want to introduce some notifiers, I would prefer something new rather than fiddling around with

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-06 Thread Peter Xu
On Tue, Apr 24, 2018 at 02:13:47PM +0800, Wei Wang wrote: [...] > +static void virtio_balloon_poll_free_page_hints(void *opaque) > +{ > +VirtQueueElement *elem; > +VirtIOBalloon *dev = opaque; > +VirtIODevice *vdev = VIRTIO_DEVICE(dev); > +VirtQueue *vq = dev->free_page_vq; > +

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-05 Thread Peter Xu
On Tue, Jun 05, 2018 at 09:22:51PM +0800, Wei Wang wrote: > On 06/05/2018 02:58 PM, Peter Xu wrote: > > On Mon, Jun 04, 2018 at 04:04:51PM +0800, Wei Wang wrote: > > > On 05/30/2018 08:47 PM, Michael S. Tsirkin wrote: > > > > On Wed, May 30, 2018 at 05:12:09PM +0800, Wei Wang wrote: > > > > > On

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-05 Thread Wei Wang
On 06/05/2018 02:58 PM, Peter Xu wrote: On Mon, Jun 04, 2018 at 04:04:51PM +0800, Wei Wang wrote: On 05/30/2018 08:47 PM, Michael S. Tsirkin wrote: On Wed, May 30, 2018 at 05:12:09PM +0800, Wei Wang wrote: On 05/29/2018 11:24 PM, Michael S. Tsirkin wrote: On Tue, Apr 24, 2018 at 02:13:47PM

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-05 Thread Peter Xu
On Mon, Jun 04, 2018 at 04:04:51PM +0800, Wei Wang wrote: > On 05/30/2018 08:47 PM, Michael S. Tsirkin wrote: > > On Wed, May 30, 2018 at 05:12:09PM +0800, Wei Wang wrote: > > > On 05/29/2018 11:24 PM, Michael S. Tsirkin wrote: > > > > On Tue, Apr 24, 2018 at 02:13:47PM +0800, Wei Wang wrote: > >

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-06-04 Thread Wei Wang
On 05/30/2018 08:47 PM, Michael S. Tsirkin wrote: On Wed, May 30, 2018 at 05:12:09PM +0800, Wei Wang wrote: On 05/29/2018 11:24 PM, Michael S. Tsirkin wrote: On Tue, Apr 24, 2018 at 02:13:47PM +0800, Wei Wang wrote: +/* + * Balloon will report pages which were free at the time of this call.

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-05-31 Thread Wei Wang
On 06/01/2018 01:42 AM, Michael S. Tsirkin wrote: On Thu, May 31, 2018 at 10:27:00AM +0800, Wei Wang wrote: On 05/30/2018 08:47 PM, Michael S. Tsirkin wrote: On Wed, May 30, 2018 at 05:12:09PM +0800, Wei Wang wrote: On 05/29/2018 11:24 PM, Michael S. Tsirkin wrote: On Tue, Apr 24, 2018 at

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-05-31 Thread Michael S. Tsirkin
On Thu, May 31, 2018 at 10:27:00AM +0800, Wei Wang wrote: > On 05/30/2018 08:47 PM, Michael S. Tsirkin wrote: > > On Wed, May 30, 2018 at 05:12:09PM +0800, Wei Wang wrote: > > > On 05/29/2018 11:24 PM, Michael S. Tsirkin wrote: > > > > On Tue, Apr 24, 2018 at 02:13:47PM +0800, Wei Wang wrote: > >

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-05-30 Thread Wei Wang
On 05/30/2018 08:47 PM, Michael S. Tsirkin wrote: On Wed, May 30, 2018 at 05:12:09PM +0800, Wei Wang wrote: On 05/29/2018 11:24 PM, Michael S. Tsirkin wrote: On Tue, Apr 24, 2018 at 02:13:47PM +0800, Wei Wang wrote: +/* + * Balloon will report pages which were free at the time of this call.

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-05-30 Thread Michael S. Tsirkin
On Wed, May 30, 2018 at 05:12:09PM +0800, Wei Wang wrote: > On 05/29/2018 11:24 PM, Michael S. Tsirkin wrote: > > On Tue, Apr 24, 2018 at 02:13:47PM +0800, Wei Wang wrote: > > > +/* > > > + * Balloon will report pages which were free at the time of this call. > > > As the > > > + * reporting

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-05-30 Thread Wei Wang
On 05/29/2018 11:24 PM, Michael S. Tsirkin wrote: On Tue, Apr 24, 2018 at 02:13:47PM +0800, Wei Wang wrote: +/* + * Balloon will report pages which were free at the time of this call. As the + * reporting happens asynchronously, dirty bit logging must be enabled before + * this call is made. +

Re: [Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-05-29 Thread Michael S. Tsirkin
On Tue, Apr 24, 2018 at 02:13:47PM +0800, Wei Wang wrote: > The new feature enables the virtio-balloon device to receive hints of > guest free pages from the free page vq. > > balloon_free_page_start - start guest free page hint reporting. > balloon_free_page_stop - stop guest free page hint

[Qemu-devel] [PATCH v7 4/5] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT

2018-04-24 Thread Wei Wang
The new feature enables the virtio-balloon device to receive hints of guest free pages from the free page vq. balloon_free_page_start - start guest free page hint reporting. balloon_free_page_stop - stop guest free page hint reporting. Note: balloon will report pages which were free at the time