From: Richard Weinberger <richard@nod.at>
To: KY Srinivasan <kys@microsoft.com>,
Haiyang Zhang <haiyangz@microsoft.com>
Cc: "devel@linuxdriverproject.org" <devel@linuxdriverproject.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] hyperv: Add netpoll support
Date: Tue, 08 Jul 2014 20:39:01 +0200 [thread overview]
Message-ID: <53BC3AC5.6000203@nod.at> (raw)
In-Reply-To: <9fb91c2ee32a4a59a2bec54043a6b9fd@BY2PR03MB299.namprd03.prod.outlook.com>
Am 08.07.2014 20:01, schrieb KY Srinivasan:
>
>
>> -----Original Message-----
>> From: Richard Weinberger [mailto:richard@nod.at]
>> Sent: Tuesday, July 8, 2014 2:32 AM
>> To: KY Srinivasan; Haiyang Zhang
>> Cc: devel@linuxdriverproject.org; netdev@vger.kernel.org; linux-
>> kernel@vger.kernel.org; Richard Weinberger
>> Subject: [PATCH] hyperv: Add netpoll support
>>
>> In order to have at least a netconsole to debug kernel issues on Windows
>> Azure this patch implements netpoll support.
>> Sending packets is easy, netvsc_start_xmit() does already everything
>> needed.
>> To receive we need to trigger the channel callback which is usally called via
>> tasklet_schedule().
>>
>> Signed-off-by: Richard Weinberger <richard@nod.at>
>> ---
>> drivers/net/hyperv/netvsc_drv.c | 14 ++++++++++++++
>> 1 file changed, 14 insertions(+)
>>
>> diff --git a/drivers/net/hyperv/netvsc_drv.c
>> b/drivers/net/hyperv/netvsc_drv.c index 4fd71b7..367b71e 100644
>> --- a/drivers/net/hyperv/netvsc_drv.c
>> +++ b/drivers/net/hyperv/netvsc_drv.c
>> @@ -736,6 +736,17 @@ static int netvsc_set_mac_addr(struct net_device
>> *ndev, void *p)
>> return err;
>> }
>>
>> +#ifdef CONFIG_NET_POLL_CONTROLLER
>> +static void netvsc_poll_controller(struct net_device *net) {
>> + struct net_device_context *net_device_ctx = netdev_priv(net);
>> + struct hv_device *dev = net_device_ctx->device_ctx;
>> +
>> + local_bh_disable();
>> + netvsc_channel_cb(dev->channel);
>> + local_bh_enable();
>> +}
>> +#endif
>
> Each channel is bound to a specific VCPU in the guest and the channel callback is expected to be delivered on
> the VCPU the channel is bound to. This code is not satisfying that requirement.
But struct hv_device has only one channel attribute. How does this work with multiple VCPUs?
Anyways, what solution to you propose?
Thanks,
//richard
WARNING: multiple messages have this Message-ID (diff)
From: Richard Weinberger <richard@nod.at>
To: KY Srinivasan <kys@microsoft.com>,
Haiyang Zhang <haiyangz@microsoft.com>
Cc: "devel@linuxdriverproject.org" <devel@linuxdriverproject.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: Re: [PATCH] hyperv: Add netpoll support
Date: Tue, 08 Jul 2014 20:39:01 +0200 [thread overview]
Message-ID: <53BC3AC5.6000203@nod.at> (raw)
In-Reply-To: <9fb91c2ee32a4a59a2bec54043a6b9fd@BY2PR03MB299.namprd03.prod.outlook.com>
Am 08.07.2014 20:01, schrieb KY Srinivasan:
>
>
>> -----Original Message-----
>> From: Richard Weinberger [mailto:richard@nod.at]
>> Sent: Tuesday, July 8, 2014 2:32 AM
>> To: KY Srinivasan; Haiyang Zhang
>> Cc: devel@linuxdriverproject.org; netdev@vger.kernel.org; linux-
>> kernel@vger.kernel.org; Richard Weinberger
>> Subject: [PATCH] hyperv: Add netpoll support
>>
>> In order to have at least a netconsole to debug kernel issues on Windows
>> Azure this patch implements netpoll support.
>> Sending packets is easy, netvsc_start_xmit() does already everything
>> needed.
>> To receive we need to trigger the channel callback which is usally called via
>> tasklet_schedule().
>>
>> Signed-off-by: Richard Weinberger <richard@nod.at>
>> ---
>> drivers/net/hyperv/netvsc_drv.c | 14 ++++++++++++++
>> 1 file changed, 14 insertions(+)
>>
>> diff --git a/drivers/net/hyperv/netvsc_drv.c
>> b/drivers/net/hyperv/netvsc_drv.c index 4fd71b7..367b71e 100644
>> --- a/drivers/net/hyperv/netvsc_drv.c
>> +++ b/drivers/net/hyperv/netvsc_drv.c
>> @@ -736,6 +736,17 @@ static int netvsc_set_mac_addr(struct net_device
>> *ndev, void *p)
>> return err;
>> }
>>
>> +#ifdef CONFIG_NET_POLL_CONTROLLER
>> +static void netvsc_poll_controller(struct net_device *net) {
>> + struct net_device_context *net_device_ctx = netdev_priv(net);
>> + struct hv_device *dev = net_device_ctx->device_ctx;
>> +
>> + local_bh_disable();
>> + netvsc_channel_cb(dev->channel);
>> + local_bh_enable();
>> +}
>> +#endif
>
> Each channel is bound to a specific VCPU in the guest and the channel callback is expected to be delivered on
> the VCPU the channel is bound to. This code is not satisfying that requirement.
But struct hv_device has only one channel attribute. How does this work with multiple VCPUs?
Anyways, what solution to you propose?
Thanks,
//richard
next prev parent reply other threads:[~2014-07-08 18:39 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-08 9:32 [PATCH] hyperv: Add netpoll support Richard Weinberger
2014-07-08 17:55 ` Haiyang Zhang
2014-07-08 17:55 ` Haiyang Zhang
2014-07-08 18:40 ` Richard Weinberger
2014-07-08 18:40 ` Richard Weinberger
2014-07-08 18:51 ` Haiyang Zhang
2014-07-08 18:51 ` Haiyang Zhang
2014-07-08 18:01 ` KY Srinivasan
2014-07-08 18:01 ` KY Srinivasan
2014-07-08 18:39 ` Richard Weinberger [this message]
2014-07-08 18:39 ` Richard Weinberger
2014-07-08 20:03 ` KY Srinivasan
2014-07-08 20:03 ` KY Srinivasan
2014-07-08 20:16 ` Richard Weinberger
2014-07-08 20:16 ` Richard Weinberger
2014-07-08 22:47 ` Francois Romieu
2014-07-08 22:53 ` Richard Weinberger
2014-07-08 22:53 ` Richard Weinberger
2014-07-08 23:43 ` Francois Romieu
2014-07-08 23:43 ` Francois Romieu
2014-07-09 7:59 ` Richard Weinberger
2014-07-09 7:59 ` Richard Weinberger
2014-07-08 23:08 ` Richard Weinberger
2014-07-08 23:08 ` Richard Weinberger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53BC3AC5.6000203@nod.at \
--to=richard@nod.at \
--cc=devel@linuxdriverproject.org \
--cc=haiyangz@microsoft.com \
--cc=kys@microsoft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.