* [PATCH net-next, v2] hyperv: Increase the buffer length for netvsc_channel_cb()
@ 2014-08-13 18:03 Haiyang Zhang
2014-08-14 21:28 ` [PATCH net-next,v2] " David Miller
0 siblings, 1 reply; 3+ messages in thread
From: Haiyang Zhang @ 2014-08-13 18:03 UTC (permalink / raw)
To: davem, netdev; +Cc: olaf, jasowang, driverdev-devel, linux-kernel, haiyangz
When the buffer is too small for a packet from VMBus, a bigger buffer will be
allocated in netvsc_channel_cb() and retry reading the packet from VMBus.
Increasing this buffer size will reduce the retry overhead.
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Reviewed-by: Dexuan Cui <decui@microsoft.com>
---
drivers/net/hyperv/hyperv_net.h | 2 +-
drivers/net/hyperv/netvsc.c | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h
index d5e07de..b14a0ef 100644
--- a/drivers/net/hyperv/hyperv_net.h
+++ b/drivers/net/hyperv/hyperv_net.h
@@ -591,7 +591,7 @@ struct nvsp_message {
#define NETVSC_RECEIVE_BUFFER_ID 0xcafe
-#define NETVSC_PACKET_SIZE 2048
+#define NETVSC_PACKET_SIZE 4096
#define VRSS_SEND_TAB_SIZE 16
diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c
index 66979cf..45899f2 100644
--- a/drivers/net/hyperv/netvsc.c
+++ b/drivers/net/hyperv/netvsc.c
@@ -38,7 +38,7 @@ static struct netvsc_device *alloc_net_device(struct hv_device *device)
struct netvsc_device *net_device;
struct net_device *ndev = hv_get_drvdata(device);
- net_device = kzalloc(sizeof(struct netvsc_device), GFP_KERNEL);
+ net_device = vzalloc(sizeof(*net_device));
if (!net_device)
return NULL;
@@ -551,7 +551,7 @@ int netvsc_device_remove(struct hv_device *device)
if (net_device->sub_cb_buf)
vfree(net_device->sub_cb_buf);
- kfree(net_device);
+ vfree(net_device);
return 0;
}
@@ -1093,7 +1093,7 @@ close:
vmbus_close(device->channel);
cleanup:
- kfree(net_device);
+ vfree(net_device);
return ret;
}
--
1.7.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH net-next,v2] hyperv: Increase the buffer length for netvsc_channel_cb()
2014-08-13 18:03 [PATCH net-next, v2] hyperv: Increase the buffer length for netvsc_channel_cb() Haiyang Zhang
@ 2014-08-14 21:28 ` David Miller
2014-08-14 21:32 ` Haiyang Zhang
0 siblings, 1 reply; 3+ messages in thread
From: David Miller @ 2014-08-14 21:28 UTC (permalink / raw)
To: haiyangz; +Cc: olaf, netdev, jasowang, driverdev-devel, linux-kernel
From: Haiyang Zhang <haiyangz@microsoft.com>
Date: Wed, 13 Aug 2014 18:03:44 +0000
> When the buffer is too small for a packet from VMBus, a bigger buffer will be
> allocated in netvsc_channel_cb() and retry reading the packet from VMBus.
> Increasing this buffer size will reduce the retry overhead.
>
> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
> Reviewed-by: Dexuan Cui <decui@microsoft.com>
...
> - net_device = kzalloc(sizeof(struct netvsc_device), GFP_KERNEL);
> + net_device = vzalloc(sizeof(*net_device));
This isn't what I suggested that you do.
I said that the buffer inside of netvsc_device should be made an
indirect pointer and thus allocated seperately.
Thus you're still kzalloc() net_device, but net_device->cb_buffer
becomes "unsigned char *" and another allocation is made for it.
^ permalink raw reply [flat|nested] 3+ messages in thread
* RE: [PATCH net-next,v2] hyperv: Increase the buffer length for netvsc_channel_cb()
2014-08-14 21:28 ` [PATCH net-next,v2] " David Miller
@ 2014-08-14 21:32 ` Haiyang Zhang
0 siblings, 0 replies; 3+ messages in thread
From: Haiyang Zhang @ 2014-08-14 21:32 UTC (permalink / raw)
To: David Miller
Cc: netdev, KY Srinivasan, olaf, jasowang, linux-kernel, driverdev-devel
> -----Original Message-----
> From: David Miller [mailto:davem@redhat.com]
> Sent: Thursday, August 14, 2014 5:29 PM
> To: Haiyang Zhang
> Cc: netdev@vger.kernel.org; KY Srinivasan; olaf@aepfle.de;
> jasowang@redhat.com; linux-kernel@vger.kernel.org; driverdev-
> devel@linuxdriverproject.org
> Subject: Re: [PATCH net-next,v2] hyperv: Increase the buffer length for
> netvsc_channel_cb()
>
> From: Haiyang Zhang <haiyangz@microsoft.com>
> Date: Wed, 13 Aug 2014 18:03:44 +0000
>
> > When the buffer is too small for a packet from VMBus, a bigger buffer
> will be
> > allocated in netvsc_channel_cb() and retry reading the packet from
> VMBus.
> > Increasing this buffer size will reduce the retry overhead.
> >
> > Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
> > Reviewed-by: Dexuan Cui <decui@microsoft.com>
> ...
> > - net_device = kzalloc(sizeof(struct netvsc_device), GFP_KERNEL);
> > + net_device = vzalloc(sizeof(*net_device));
>
> This isn't what I suggested that you do.
>
> I said that the buffer inside of netvsc_device should be made an
> indirect pointer and thus allocated seperately.
>
> Thus you're still kzalloc() net_device, but net_device->cb_buffer
> becomes "unsigned char *" and another allocation is made for it.
I will change the patch to this way.
Thanks,
- Haiyang
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-08-14 21:32 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-13 18:03 [PATCH net-next, v2] hyperv: Increase the buffer length for netvsc_channel_cb() Haiyang Zhang
2014-08-14 21:28 ` [PATCH net-next,v2] " David Miller
2014-08-14 21:32 ` Haiyang Zhang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).