WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Re: [PATCH V2 1/3] Introduce log_start/log_stop in CPUPhysMe

To: Jan Kiszka <jan.kiszka@xxxxxxxxxxx>
Subject: [Xen-devel] Re: [PATCH V2 1/3] Introduce log_start/log_stop in CPUPhysMemoryClient
From: Anthony PERARD <anthony.perard@xxxxxxxxxx>
Date: Mon, 17 Jan 2011 18:25:43 +0000 (GMT)
Cc: Xen Devel <xen-devel@xxxxxxxxxxxxxxxxxxx>, QEMU-devel <qemu-devel@xxxxxxxxxx>
Delivery-date: Mon, 17 Jan 2011 10:27:09 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <4D34662F.7050904@xxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <1295028613-28237-1-git-send-email-anthony.perard@xxxxxxxxxx> <1295028613-28237-2-git-send-email-anthony.perard@xxxxxxxxxx> <4D34662F.7050904@xxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Alpine 1.10 (DEB 962 2008-03-14)
On Mon, 17 Jan 2011, Jan Kiszka wrote:

> On 2011-01-14 19:10, anthony.perard@xxxxxxxxxx wrote:
> > From: Anthony PERARD <anthony.perard@xxxxxxxxxx>
> >
> > In order to use log_start/log_stop with Xen as well in the vga code,
> > this two operations have been put in CPUPhysMemoryClient.
> >
> > The two new functions cpu_physical_log_start,cpu_physical_log_stop are
> > used in hw/vga.c and replace the kvm_log_start/stop. With this, vga does
> > no longer depends on kvm header.
>
> Basically, this looks good to me. Two remarks below.
>
> >
> > Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
> > ---
> >  cpu-all.h    |    6 ++++++
> >  cpu-common.h |    4 ++++
> >  exec.c       |   42 ++++++++++++++++++++++++++++++++++++++++++
> >  hw/vga.c     |   31 ++++++++++++++++---------------
> >  hw/vhost.c   |   16 ++++++++++++++++
> >  kvm-all.c    |    8 ++++++--
> >  kvm-stub.c   |   10 ----------
> >  kvm.h        |    3 ---
> >  8 files changed, 90 insertions(+), 30 deletions(-)
> >
> > diff --git a/exec.c b/exec.c
> > index c6ed96d..609ec88 100644
> > --- a/exec.c
> > +++ b/exec.c
> > @@ -1734,6 +1734,30 @@ static int cpu_notify_migration_log(int enable)
> >      return 0;
> >  }
> >
> > +static int cpu_notify_log_start(target_phys_addr_t start,
> > +                                ram_addr_t size)
> > +{
> > +    CPUPhysMemoryClient *client;
> > +    QLIST_FOREACH(client, &memory_client_list, list) {
> > +        int r = client->log_start(client, start, size);
> > +        if (r < 0)
> > +            return r;
> > +    }
> > +    return 0;
> > +}
> > +
> > +static int cpu_notify_log_stop(target_phys_addr_t start,
> > +                               ram_addr_t size)
> > +{
> > +    CPUPhysMemoryClient *client;
> > +    QLIST_FOREACH(client, &memory_client_list, list) {
> > +        int r = client->log_stop(client, start, size);
> > +        if (r < 0)
> > +            return r;
> > +    }
> > +    return 0;
> > +}
> > +
>
> I would make the new callbacks optional, i.e. only invoke them if the
> handler is non-NULL. Avoids stubs and branching to vhost.

Ok, I will do that.

> >  static void phys_page_for_each_1(CPUPhysMemoryClient *client,
> >                                   int level, void **lp)
> >  {
> > @@ -2073,6 +2097,24 @@ int 
> > cpu_physical_sync_dirty_bitmap(target_phys_addr_t start_addr,
> >      return ret;
> >  }
> >
> > +int cpu_physical_log_start(target_phys_addr_t start_addr,
> > +                           ram_addr_t size)
> > +{
> > +    int ret;
> > +
> > +    ret = cpu_notify_log_start(start_addr, size);
> > +    return ret;
> > +}
> > +
> > +int cpu_physical_log_stop(target_phys_addr_t start_addr,
> > +                          ram_addr_t size)
> > +{
> > +    int ret;
> > +
> > +    ret = cpu_notify_log_stop(start_addr, size);
> > +    return ret;
> > +}
> > +
>
> I consider this split-up between API frontend and cpu_notify_* backend
> as unneeded. But that's not your fault, you just follow the pre-existing
> pattern. Unless someone feels strong about this, you may just keep it.

Actually, I will remove it, and keep only the frontend fonction.

Thanks,

-- 
Anthony PERARD

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel