Re: [Qemu-devel] [patch qemu] net: move queue number into NICPeers

2014-06-27 Thread Stefan Hajnoczi
On Mon, May 26, 2014 at 12:04:08PM +0200, Jiri Pirko wrote:
 It indicates the number of elements in ncs field and makes sense to have
 int inside NICPeers. Also in parse_netdev we do not need to access
 container and work with NICPeers only.
 
 Signed-off-by: Jiri Pirko j...@resnulli.us
 ---
  hw/core/qdev-properties-system.c | 3 +--
  hw/net/virtio-net.c  | 2 +-
  include/net/net.h| 2 +-
  net/net.c| 4 ++--
  4 files changed, 5 insertions(+), 6 deletions(-)

Thanks, applied to my net tree:
https://github.com/stefanha/qemu/commits/net

Stefan


pgpBUpz1DhfLw.pgp
Description: PGP signature


[Qemu-devel] [patch qemu] net: move queue number into NICPeers

2014-05-26 Thread Jiri Pirko
It indicates the number of elements in ncs field and makes sense to have
int inside NICPeers. Also in parse_netdev we do not need to access
container and work with NICPeers only.

Signed-off-by: Jiri Pirko j...@resnulli.us
---
 hw/core/qdev-properties-system.c | 3 +--
 hw/net/virtio-net.c  | 2 +-
 include/net/net.h| 2 +-
 net/net.c| 4 ++--
 4 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-system.c
index 404cf18..3fd592c 100644
--- a/hw/core/qdev-properties-system.c
+++ b/hw/core/qdev-properties-system.c
@@ -180,7 +180,6 @@ PropertyInfo qdev_prop_chr = {
 static int parse_netdev(DeviceState *dev, const char *str, void **ptr)
 {
 NICPeers *peers_ptr = (NICPeers *)ptr;
-NICConf *conf = container_of(peers_ptr, NICConf, peers);
 NetClientState **ncs = peers_ptr-ncs;
 NetClientState *peers[MAX_QUEUE_NUM];
 int queues, i = 0;
@@ -219,7 +218,7 @@ static int parse_netdev(DeviceState *dev, const char *str, 
void **ptr)
 ncs[i]-queue_index = i;
 }
 
-conf-queues = queues;
+peers_ptr-queues = queues;
 
 return 0;
 
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index 940a7cf..b4cb277 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -1533,7 +1533,7 @@ static void virtio_net_device_realize(DeviceState *dev, 
Error **errp)
 
 virtio_init(vdev, virtio-net, VIRTIO_ID_NET, n-config_size);
 
-n-max_queues = MAX(n-nic_conf.queues, 1);
+n-max_queues = MAX(n-nic_conf.peers.queues, 1);
 n-vqs = g_malloc0(sizeof(VirtIONetQueue) * n-max_queues);
 n-vqs[0].rx_vq = virtio_add_queue(vdev, 256, virtio_net_handle_rx);
 n-curr_queues = 1;
diff --git a/include/net/net.h b/include/net/net.h
index 8166345..8a1db8a 100644
--- a/include/net/net.h
+++ b/include/net/net.h
@@ -24,13 +24,13 @@ struct MACAddr {
 
 typedef struct NICPeers {
 NetClientState *ncs[MAX_QUEUE_NUM];
+int32_t queues;
 } NICPeers;
 
 typedef struct NICConf {
 MACAddr macaddr;
 NICPeers peers;
 int32_t bootindex;
-int32_t queues;
 } NICConf;
 
 #define DEFINE_NIC_PROPERTIES(_state, _conf)\
diff --git a/net/net.c b/net/net.c
index 0ff2e40..0246818 100644
--- a/net/net.c
+++ b/net/net.c
@@ -233,7 +233,7 @@ NICState *qemu_new_nic(NetClientInfo *info,
 {
 NetClientState **peers = conf-peers.ncs;
 NICState *nic;
-int i, queues = MAX(1, conf-queues);
+int i, queues = MAX(1, conf-peers.queues);
 
 assert(info-type == NET_CLIENT_OPTIONS_KIND_NIC);
 assert(info-size = sizeof(NICState));
@@ -346,7 +346,7 @@ void qemu_del_net_client(NetClientState *nc)
 
 void qemu_del_nic(NICState *nic)
 {
-int i, queues = MAX(nic-conf-queues, 1);
+int i, queues = MAX(nic-conf-peers.queues, 1);
 
 /* If this is a peer NIC and peer has already been deleted, free it now. */
 if (nic-peer_deleted) {
-- 
1.9.0




Re: [Qemu-devel] [patch qemu] net: move queue number into NICPeers

2014-05-26 Thread Andreas Färber
Am 26.05.2014 12:04, schrieb Jiri Pirko:
 It indicates the number of elements in ncs field and makes sense to have
 int inside NICPeers. Also in parse_netdev we do not need to access
 container and work with NICPeers only.
 
 Signed-off-by: Jiri Pirko j...@resnulli.us
 ---
  hw/core/qdev-properties-system.c | 3 +--
  hw/net/virtio-net.c  | 2 +-
  include/net/net.h| 2 +-
  net/net.c| 4 ++--
  4 files changed, 5 insertions(+), 6 deletions(-)

Looks trivial on the qdev side. I'm assuming this will be handled
through the net tree.

Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg



Re: [Qemu-devel] [patch qemu] net: move queue number into NICPeers

2014-05-26 Thread Michael S. Tsirkin
On Mon, May 26, 2014 at 12:04:08PM +0200, Jiri Pirko wrote:
 It indicates the number of elements in ncs field and makes sense to have
 int inside NICPeers. Also in parse_netdev we do not need to access
 container and work with NICPeers only.
 
 Signed-off-by: Jiri Pirko j...@resnulli.us

Reviewed-by: Michael S. Tsirkin m...@redhat.com

Please note that at least for virtio these are combined
rx/tx queues. We probably should make this clear somewhere.

 ---
  hw/core/qdev-properties-system.c | 3 +--
  hw/net/virtio-net.c  | 2 +-
  include/net/net.h| 2 +-
  net/net.c| 4 ++--
  4 files changed, 5 insertions(+), 6 deletions(-)
 
 diff --git a/hw/core/qdev-properties-system.c 
 b/hw/core/qdev-properties-system.c
 index 404cf18..3fd592c 100644
 --- a/hw/core/qdev-properties-system.c
 +++ b/hw/core/qdev-properties-system.c
 @@ -180,7 +180,6 @@ PropertyInfo qdev_prop_chr = {
  static int parse_netdev(DeviceState *dev, const char *str, void **ptr)
  {
  NICPeers *peers_ptr = (NICPeers *)ptr;
 -NICConf *conf = container_of(peers_ptr, NICConf, peers);
  NetClientState **ncs = peers_ptr-ncs;
  NetClientState *peers[MAX_QUEUE_NUM];
  int queues, i = 0;
 @@ -219,7 +218,7 @@ static int parse_netdev(DeviceState *dev, const char 
 *str, void **ptr)
  ncs[i]-queue_index = i;
  }
  
 -conf-queues = queues;
 +peers_ptr-queues = queues;
  
  return 0;
  
 diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
 index 940a7cf..b4cb277 100644
 --- a/hw/net/virtio-net.c
 +++ b/hw/net/virtio-net.c
 @@ -1533,7 +1533,7 @@ static void virtio_net_device_realize(DeviceState *dev, 
 Error **errp)
  
  virtio_init(vdev, virtio-net, VIRTIO_ID_NET, n-config_size);
  
 -n-max_queues = MAX(n-nic_conf.queues, 1);
 +n-max_queues = MAX(n-nic_conf.peers.queues, 1);
  n-vqs = g_malloc0(sizeof(VirtIONetQueue) * n-max_queues);
  n-vqs[0].rx_vq = virtio_add_queue(vdev, 256, virtio_net_handle_rx);
  n-curr_queues = 1;
 diff --git a/include/net/net.h b/include/net/net.h
 index 8166345..8a1db8a 100644
 --- a/include/net/net.h
 +++ b/include/net/net.h
 @@ -24,13 +24,13 @@ struct MACAddr {
  
  typedef struct NICPeers {
  NetClientState *ncs[MAX_QUEUE_NUM];
 +int32_t queues;
  } NICPeers;
  
  typedef struct NICConf {
  MACAddr macaddr;
  NICPeers peers;
  int32_t bootindex;
 -int32_t queues;
  } NICConf;
  
  #define DEFINE_NIC_PROPERTIES(_state, _conf)\
 diff --git a/net/net.c b/net/net.c
 index 0ff2e40..0246818 100644
 --- a/net/net.c
 +++ b/net/net.c
 @@ -233,7 +233,7 @@ NICState *qemu_new_nic(NetClientInfo *info,
  {
  NetClientState **peers = conf-peers.ncs;
  NICState *nic;
 -int i, queues = MAX(1, conf-queues);
 +int i, queues = MAX(1, conf-peers.queues);
  
  assert(info-type == NET_CLIENT_OPTIONS_KIND_NIC);
  assert(info-size = sizeof(NICState));
 @@ -346,7 +346,7 @@ void qemu_del_net_client(NetClientState *nc)
  
  void qemu_del_nic(NICState *nic)
  {
 -int i, queues = MAX(nic-conf-queues, 1);
 +int i, queues = MAX(nic-conf-peers.queues, 1);
  
  /* If this is a peer NIC and peer has already been deleted, free it now. 
 */
  if (nic-peer_deleted) {
 -- 
 1.9.0