[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH COLO-Frame v16 32/35] net: Add notifier/callback
From: |
Jason Wang |
Subject: |
Re: [Qemu-devel] [PATCH COLO-Frame v16 32/35] net: Add notifier/callback for netdev init |
Date: |
Tue, 26 Apr 2016 14:48:06 +0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 |
On 04/08/2016 02:26 PM, zhanghailiang wrote:
> We can register some callback for this notifier,
> this will be used by COLO to register a callback which
> will add each netdev a buffer filter.
>
> Signed-off-by: zhanghailiang <address@hidden>
> Cc: Jason Wang <address@hidden>
> Cc: Yang Hongyang <address@hidden>
> ---
> v16:
> - Simplify the codes by using some helpers in QEMU
> v14:
> - New patch
> ---
> include/net/net.h | 3 +++
> net/net.c | 12 ++++++++++++
> 2 files changed, 15 insertions(+)
>
> diff --git a/include/net/net.h b/include/net/net.h
> index 73e4c46..d8abe7a 100644
> --- a/include/net/net.h
> +++ b/include/net/net.h
> @@ -8,6 +8,7 @@
> #include "net/queue.h"
> #include "migration/vmstate.h"
> #include "qapi-types.h"
> +#include "qemu/notify.h"
>
> #define MAX_QUEUE_NUM 1024
>
> @@ -176,6 +177,8 @@ struct NICInfo {
> int nvectors;
> };
>
> +void netdev_init_add_notifier(Notifier *notify);
> +
> extern int nb_nics;
> extern NICInfo nd_table[MAX_NICS];
> extern int default_net;
> diff --git a/net/net.c b/net/net.c
> index 0ad6217..6d846f4 100644
> --- a/net/net.c
> +++ b/net/net.c
> @@ -56,6 +56,9 @@
> static VMChangeStateEntry *net_change_state_entry;
> static QTAILQ_HEAD(, NetClientState) net_clients;
>
> +static NotifierList netdev_init_notifiers =
> + NOTIFIER_LIST_INITIALIZER(netdev_init_notifiers);
> +
> const char *host_net_devices[] = {
> "tap",
> "socket",
> @@ -931,6 +934,10 @@ static int net_init_nic(const NetClientOptions *opts,
> const char *name,
> return idx;
> }
>
> +void netdev_init_add_notifier(Notifier *notify)
> +{
> + notifier_list_add(&netdev_init_notifiers, notify);
> +}
Nitpick, like other notifier, we'd better have 'register' in the name of
this function, (e.g something like netdev_register_init_notifier()).
>
> static int (* const net_client_init_fun[NET_CLIENT_OPTIONS_KIND__MAX])(
> const NetClientOptions *opts,
> @@ -1017,6 +1024,11 @@ static int net_client_init1(const void *object, int
> is_netdev, Error **errp)
> }
> return -1;
> }
> + if (is_netdev) {
> + const Netdev *netdev = object;
> +
> + notifier_list_notify(&netdev_init_notifiers, netdev->id);
> + }
> return 0;
> }
>
- Re: [Qemu-devel] [PATCH COLO-Frame v16 21/35] qmp event: Add COLO_EXIT event to notify users while exited from COLO, (continued)
- [Qemu-devel] [PATCH COLO-Frame v16 19/35] COLO: Implement failover work for Primary VM, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 11/35] COLO: Load PVM's dirty pages into SVM's RAM cache temporarily, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 17/35] COLO failover: Introduce a new command to trigger a failover, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 18/35] COLO failover: Introduce state to record failover process, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 25/35] COLO: Update the global runstate after going into colo state, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 30/35] COLO: Split qemu_savevm_state_begin out of checkpoint process, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 32/35] net: Add notifier/callback for netdev init, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 15/35] COLO: Add checkpoint-delay parameter for migrate-set-parameters, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 08/35] COLO: Add a new RunState RUN_STATE_COLO, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 31/35] filter-buffer: Accept zero interval, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 29/35] COLO: Separate the process of saving/loading ram and device state, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 34/35] COLO: manage the status of buffer filters for PVM, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 35/35] COLO: Add block replication into colo process, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 33/35] COLO/filter: add each netdev a buffer filter, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 22/35] COLO failover: Shutdown related socket fd when do failover, zhanghailiang, 2016/04/08
- Re: [Qemu-devel] [PATCH COLO-Frame v16 for-2.7 00/35] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service (FT), Zhang Chen, 2016/04/08