diff options
author | Jason Wang <jasowang@redhat.com> | 2013-02-22 23:15:06 +0800 |
---|---|---|
committer | Stefan Hajnoczi <stefanha@redhat.com> | 2013-02-27 16:10:47 +0100 |
commit | f6b26cf257232e5854c0e5c98a8685c625bf986e (patch) | |
tree | 68334c52f1cd34d9ffeaff5be764f1735c011da1 /include/net/net.h | |
parent | d26e445c80fddcc7483b83f3115e5067fef28fe6 (diff) | |
download | qemu-f6b26cf257232e5854c0e5c98a8685c625bf986e.tar.gz qemu-f6b26cf257232e5854c0e5c98a8685c625bf986e.tar.bz2 qemu-f6b26cf257232e5854c0e5c98a8685c625bf986e.zip |
net: reduce the unnecessary memory allocation of multiqueue
Edivaldo reports a problem that the array of NetClientState in NICState is too
large - MAX_QUEUE_NUM(1024) which will wastes memory even if multiqueue is not
used.
Instead of static arrays, solving this issue by allocating the queues on demand
for both the NetClientState array in NICState and VirtIONetQueue array in
VirtIONet.
Tested by myself, with single virtio-net-pci device. The memory allocation is
almost the same as when multiqueue is not merged.
Cc: Edivaldo de Araujo Pereira <edivaldoapereira@yahoo.com.br>
Cc: qemu-stable@nongnu.org
Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'include/net/net.h')
-rw-r--r-- | include/net/net.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/net/net.h b/include/net/net.h index 43a045e052..cb049a16a3 100644 --- a/include/net/net.h +++ b/include/net/net.h @@ -72,7 +72,7 @@ struct NetClientState { }; typedef struct NICState { - NetClientState ncs[MAX_QUEUE_NUM]; + NetClientState *ncs; NICConf *conf; void *opaque; bool peer_deleted; |