* Re: [PATCH net-next,1/1] hv_netvsc: call dump_rndis_message() only in netvsc debug mode
2015-04-21 22:58 [PATCH net-next,1/1] hv_netvsc: call dump_rndis_message() only in netvsc debug mode sixiao
@ 2015-04-21 21:48 ` David Miller
2015-04-21 22:14 ` Simon Xiao
2015-04-22 8:52 ` [PATCH net-next, 1/1] " Vitaly Kuznetsov
1 sibling, 1 reply; 5+ messages in thread
From: David Miller @ 2015-04-21 21:48 UTC (permalink / raw)
To: sixiao; +Cc: kys, haiyangz, devel, netdev, linux-kernel
From: sixiao@microsoft.com
Date: Tue, 21 Apr 2015 15:58:05 -0700
> From: Simon Xiao <sixiao@microsoft.com>
>
> Signed-off-by: Simon Xiao <sixiao@microsoft.com>
> Reviewed-by: K. Y. Srinivasan <kys@microsoft.com>
> Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
I just gave you feedback on this patch in response to your
original submission, do not ignore it.
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: [PATCH net-next,1/1] hv_netvsc: call dump_rndis_message() only in netvsc debug mode
2015-04-21 21:48 ` David Miller
@ 2015-04-21 22:14 ` Simon Xiao
2015-04-22 0:30 ` David Miller
0 siblings, 1 reply; 5+ messages in thread
From: Simon Xiao @ 2015-04-21 22:14 UTC (permalink / raw)
To: David Miller; +Cc: KY Srinivasan, Haiyang Zhang, devel, netdev, linux-kernel
> -----Original Message-----
> From: David Miller [mailto:davem@davemloft.net]
> Sent: Tuesday, April 21, 2015 2:49 PM
> To: Simon Xiao
> Cc: KY Srinivasan; Haiyang Zhang; devel@linuxdriverproject.org;
> netdev@vger.kernel.org; linux-kernel@vger.kernel.org
> Subject: Re: [PATCH net-next,1/1] hv_netvsc: call dump_rndis_message() only in
> netvsc debug mode
>
> From: sixiao@microsoft.com
> Date: Tue, 21 Apr 2015 15:58:05 -0700
>
> > From: Simon Xiao <sixiao@microsoft.com>
> >
> > Signed-off-by: Simon Xiao <sixiao@microsoft.com>
> > Reviewed-by: K. Y. Srinivasan <kys@microsoft.com>
> > Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
>
> I just gave you feedback on this patch in response to your original submission,
> do not ignore it.
Thanks for your feedback, David.
In current netvsc driver, for each packet received, it will call dump_rndis_message()
to try to dump the rndis packet information by netdev_dbg().
In non-debug mode, dump_rndis_message() will not dump anything
but it still initialize some local variables and process the switch logic in the function
of dump_rndis_message(), which is unnecessary, especially in high network throughput situation.
My change is to have a run-time config flag to control the execution of dump_rndis_message()
and avoid above unnecessary cost in non-debug mode.
In the default case, it will be non-debug mode,
and rndis_filter_receive() will not call dump_rndis_message()
which saves the above extra cost for each packet received.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH net-next,1/1] hv_netvsc: call dump_rndis_message() only in netvsc debug mode
@ 2015-04-21 22:58 sixiao
2015-04-21 21:48 ` David Miller
2015-04-22 8:52 ` [PATCH net-next, 1/1] " Vitaly Kuznetsov
0 siblings, 2 replies; 5+ messages in thread
From: sixiao @ 2015-04-21 22:58 UTC (permalink / raw)
To: kys, haiyangz, devel, netdev, linux-kernel; +Cc: Simon Xiao
From: Simon Xiao <sixiao@microsoft.com>
Signed-off-by: Simon Xiao <sixiao@microsoft.com>
Reviewed-by: K. Y. Srinivasan <kys@microsoft.com>
Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
---
drivers/net/hyperv/hyperv_net.h | 3 +++
drivers/net/hyperv/netvsc_drv.c | 8 ++++++++
drivers/net/hyperv/rndis_filter.c | 3 ++-
3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h
index a10b316..c9be35e 100644
--- a/drivers/net/hyperv/hyperv_net.h
+++ b/drivers/net/hyperv/hyperv_net.h
@@ -28,6 +28,9 @@
#include <linux/hyperv.h>
#include <linux/rndis.h>
+/* flag for netvsc debug mode */
+extern int debug_mode;
+
/* RSS related */
#define OID_GEN_RECEIVE_SCALE_CAPABILITIES 0x00010203 /* query only */
#define OID_GEN_RECEIVE_SCALE_PARAMETERS 0x00010204 /* query and set */
diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c
index a3a9d38..7c41864 100644
--- a/drivers/net/hyperv/netvsc_drv.c
+++ b/drivers/net/hyperv/netvsc_drv.c
@@ -52,6 +52,10 @@ static int ring_size = 128;
module_param(ring_size, int, S_IRUGO);
MODULE_PARM_DESC(ring_size, "Ring buffer size (# of pages)");
+int debug_mode = 0;
+module_param(debug_mode, int, S_IRUGO);
+MODULE_PARM_DESC(debug_mode, "debug mode: zero(0) for non-debug mode; non-zero for debug mode");
+
static void do_set_multicast(struct work_struct *w)
{
struct net_device_context *ndevctx =
@@ -999,6 +1003,10 @@ static int __init netvsc_drv_init(void)
pr_info("Increased ring_size to %d (min allowed)\n",
ring_size);
}
+
+ if (debug_mode != 0)
+ pr_info("Run netvsc in debug mode");
+
return vmbus_driver_register(&netvsc_drv);
}
diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c
index 0d92efe..a3f43f6 100644
--- a/drivers/net/hyperv/rndis_filter.c
+++ b/drivers/net/hyperv/rndis_filter.c
@@ -429,7 +429,8 @@ int rndis_filter_receive(struct hv_device *dev,
rndis_msg = pkt->data;
- dump_rndis_message(dev, rndis_msg);
+ if (debug_mode != 0)
+ dump_rndis_message(dev, rndis_msg);
switch (rndis_msg->ndis_msg_type) {
case RNDIS_MSG_PACKET:
--
1.8.5.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH net-next,1/1] hv_netvsc: call dump_rndis_message() only in netvsc debug mode
2015-04-21 22:14 ` Simon Xiao
@ 2015-04-22 0:30 ` David Miller
0 siblings, 0 replies; 5+ messages in thread
From: David Miller @ 2015-04-22 0:30 UTC (permalink / raw)
To: sixiao; +Cc: kys, haiyangz, devel, netdev, linux-kernel
From: Simon Xiao <sixiao@microsoft.com>
Date: Tue, 21 Apr 2015 22:14:14 +0000
> In current netvsc driver, for each packet received, it will call
> dump_rndis_message() to try to dump the rndis packet information by
> netdev_dbg(). In non-debug mode, dump_rndis_message() will not dump
> anything but it still initialize some local variables and process
> the switch logic in the function of dump_rndis_message(), which is
> unnecessary, especially in high network throughput situation.
See NETIF_MSG_* and use it properly in your driver, read other drivers
and learn how to properly use it for things like this.
I'm not going to explain this a third time.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH net-next, 1/1] hv_netvsc: call dump_rndis_message() only in netvsc debug mode
2015-04-21 22:58 [PATCH net-next,1/1] hv_netvsc: call dump_rndis_message() only in netvsc debug mode sixiao
2015-04-21 21:48 ` David Miller
@ 2015-04-22 8:52 ` Vitaly Kuznetsov
1 sibling, 0 replies; 5+ messages in thread
From: Vitaly Kuznetsov @ 2015-04-22 8:52 UTC (permalink / raw)
To: sixiao; +Cc: kys, haiyangz, devel, netdev, linux-kernel
sixiao@microsoft.com writes:
> From: Simon Xiao <sixiao@microsoft.com>
>
> Signed-off-by: Simon Xiao <sixiao@microsoft.com>
> Reviewed-by: K. Y. Srinivasan <kys@microsoft.com>
> Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
I don't quite understand what problem is being solved here (and empty
commit message doesn't is not very helpful).
netdev_dbg() is not being printed by default and in case if floods logs
with too many messages you can change it to net_dbg_ratelimited(). We
already have dynamic debug and adding another module parameter shouldn't
be needed...
> ---
> drivers/net/hyperv/hyperv_net.h | 3 +++
> drivers/net/hyperv/netvsc_drv.c | 8 ++++++++
> drivers/net/hyperv/rndis_filter.c | 3 ++-
> 3 files changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h
> index a10b316..c9be35e 100644
> --- a/drivers/net/hyperv/hyperv_net.h
> +++ b/drivers/net/hyperv/hyperv_net.h
> @@ -28,6 +28,9 @@
> #include <linux/hyperv.h>
> #include <linux/rndis.h>
>
> +/* flag for netvsc debug mode */
> +extern int debug_mode;
> +
> /* RSS related */
> #define OID_GEN_RECEIVE_SCALE_CAPABILITIES 0x00010203 /* query only */
> #define OID_GEN_RECEIVE_SCALE_PARAMETERS 0x00010204 /* query and set */
> diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c
> index a3a9d38..7c41864 100644
> --- a/drivers/net/hyperv/netvsc_drv.c
> +++ b/drivers/net/hyperv/netvsc_drv.c
> @@ -52,6 +52,10 @@ static int ring_size = 128;
> module_param(ring_size, int, S_IRUGO);
> MODULE_PARM_DESC(ring_size, "Ring buffer size (# of pages)");
>
> +int debug_mode = 0;
> +module_param(debug_mode, int, S_IRUGO);
> +MODULE_PARM_DESC(debug_mode, "debug mode: zero(0) for non-debug mode; non-zero for debug mode");
> +
> static void do_set_multicast(struct work_struct *w)
> {
> struct net_device_context *ndevctx =
> @@ -999,6 +1003,10 @@ static int __init netvsc_drv_init(void)
> pr_info("Increased ring_size to %d (min allowed)\n",
> ring_size);
> }
> +
> + if (debug_mode != 0)
> + pr_info("Run netvsc in debug mode");
> +
> return vmbus_driver_register(&netvsc_drv);
> }
>
> diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c
> index 0d92efe..a3f43f6 100644
> --- a/drivers/net/hyperv/rndis_filter.c
> +++ b/drivers/net/hyperv/rndis_filter.c
> @@ -429,7 +429,8 @@ int rndis_filter_receive(struct hv_device *dev,
>
> rndis_msg = pkt->data;
>
> - dump_rndis_message(dev, rndis_msg);
> + if (debug_mode != 0)
> + dump_rndis_message(dev, rndis_msg);
>
> switch (rndis_msg->ndis_msg_type) {
> case RNDIS_MSG_PACKET:
--
Vitaly
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-04-22 8:53 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-21 22:58 [PATCH net-next,1/1] hv_netvsc: call dump_rndis_message() only in netvsc debug mode sixiao
2015-04-21 21:48 ` David Miller
2015-04-21 22:14 ` Simon Xiao
2015-04-22 0:30 ` David Miller
2015-04-22 8:52 ` [PATCH net-next, 1/1] " Vitaly Kuznetsov
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).