qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 6/7] vhost_net: Add NetClientInfo prepare callback


From: Jason Wang
Subject: Re: [PATCH v3 6/7] vhost_net: Add NetClientInfo prepare callback
Date: Thu, 4 Aug 2022 12:45:56 +0800
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.11.0


在 2022/8/4 01:18, Eugenio Pérez 写道:
This is used by the backend to perform actions before the device is
started.

In particular, vdpa will use it to isolate CVQ in its own ASID if
possible, and start SVQ unconditionally only in CVQ.

Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
---
  include/net/net.h  | 2 ++
  hw/net/vhost_net.c | 4 ++++
  2 files changed, 6 insertions(+)

diff --git a/include/net/net.h b/include/net/net.h
index a8d47309cd..efa6448886 100644
--- a/include/net/net.h
+++ b/include/net/net.h
@@ -44,6 +44,7 @@ typedef struct NICConf {
typedef void (NetPoll)(NetClientState *, bool enable);
  typedef bool (NetCanReceive)(NetClientState *);
+typedef void (NetPrepare)(NetClientState *);
  typedef int (NetLoad)(NetClientState *);
  typedef ssize_t (NetReceive)(NetClientState *, const uint8_t *, size_t);
  typedef ssize_t (NetReceiveIOV)(NetClientState *, const struct iovec *, int);
@@ -72,6 +73,7 @@ typedef struct NetClientInfo {
      NetReceive *receive_raw;
      NetReceiveIOV *receive_iov;
      NetCanReceive *can_receive;
+    NetPrepare *prepare;
      NetLoad *load;
      NetCleanup *cleanup;
      LinkStatusChanged *link_status_changed;
diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c
index a9bf72dcda..bbbb6d759b 100644
--- a/hw/net/vhost_net.c
+++ b/hw/net/vhost_net.c
@@ -244,6 +244,10 @@ static int vhost_net_start_one(struct vhost_net *net,
      struct vhost_vring_file file = { };
      int r;
+ if (net->nc->info->prepare) {
+        net->nc->info->prepare(net->nc);
+    }


Any chance we can reuse load()?

Thanks


+
      r = vhost_dev_enable_notifiers(&net->dev, dev);
      if (r < 0) {
          goto fail_notifiers;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]