Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1207213 > unrolled thread

[PATCH 1/1] Drivers: hv: vmbus: fix init_vp_index() for reloading hv_netvsc

Started by"K. Y. Srinivasan" <kys@microsoft.com>
First post2015-08-14 00:50 +0200
Last post2015-08-14 03:40 +0200
Articles 4 — 4 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 1/1] Drivers: hv: vmbus: fix init_vp_index() for reloading hv_netvsc "K. Y. Srinivasan" <kys@microsoft.com> - 2015-08-14 00:50 +0200
    Re: [PATCH 1/1] Drivers: hv: vmbus: fix init_vp_index() for  reloading hv_netvsc James Bottomley <James.Bottomley@HansenPartnership.com> - 2015-08-14 01:10 +0200
      Re: [PATCH 1/1] Drivers: hv: vmbus: fix init_vp_index() for  reloading hv_netvsc Dan Carpenter <dan.carpenter@oracle.com> - 2015-08-14 01:30 +0200
      RE: [PATCH 1/1] Drivers: hv: vmbus: fix init_vp_index() for reloading  hv_netvsc KY Srinivasan <kys@microsoft.com> - 2015-08-14 03:40 +0200

#1207213 — [PATCH 1/1] Drivers: hv: vmbus: fix init_vp_index() for reloading hv_netvsc

From"K. Y. Srinivasan" <kys@microsoft.com>
Date2015-08-14 00:50 +0200
Subject[PATCH 1/1] Drivers: hv: vmbus: fix init_vp_index() for reloading hv_netvsc
Message-ID<pX9tT-ep-5@gated-at.bofh.it>
From: Dexuan Cui <decui@microsoft.com>

This fixes the recent commit 3b71107d73b16074afa7658f3f0fcf837aabfe24:
Drivers: hv: vmbus: Further improve CPU affiliation logic

Without the fix, reloading hv_netvsc hangs the guest.

Signed-off-by: Dexuan Cui <decui@microsoft.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
---
 drivers/hv/channel_mgmt.c |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
index 3ab4753..8a4105c 100644
--- a/drivers/hv/channel_mgmt.c
+++ b/drivers/hv/channel_mgmt.c
@@ -204,6 +204,8 @@ void hv_process_channel_removal(struct vmbus_channel *channel, u32 relid)
 		spin_lock_irqsave(&vmbus_connection.channel_lock, flags);
 		list_del(&channel->listentry);
 		spin_unlock_irqrestore(&vmbus_connection.channel_lock, flags);
+
+		primary_channel = channel;
 	} else {
 		primary_channel = channel->primary_channel;
 		spin_lock_irqsave(&primary_channel->lock, flags);
@@ -211,6 +213,14 @@ void hv_process_channel_removal(struct vmbus_channel *channel, u32 relid)
 		primary_channel->num_sc--;
 		spin_unlock_irqrestore(&primary_channel->lock, flags);
 	}
+
+	/*
+	 * We need to free the bit for init_vp_index() to work in the case
+	 * of sub-channel, when we reload drivers like hv_netvsc.
+	 */
+	cpumask_clear_cpu(channel->target_cpu,
+			  &primary_channel->alloced_cpus_in_node);
+
 	free_channel(channel);
 }
 
@@ -457,6 +467,13 @@ static void init_vp_index(struct vmbus_channel *channel, const uuid_le *type_gui
 			continue;
 		}
 
+		/*
+		 * NOTE: in the case of sub-channel, we clear the sub-channel
+		 * related bit(s) in primary->alloced_cpus_in_node in
+		 * hv_process_channel_removal(), so when we reload drivers
+		 * like hv_netvsc in SMP guest, here we're able to re-allocate
+		 * bit from primary->alloced_cpus_in_node.
+		 */
 		if (!cpumask_test_cpu(cur_cpu,
 				&primary->alloced_cpus_in_node)) {
 			cpumask_set_cpu(cur_cpu,
-- 
1.7.4.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1207225 — Re: [PATCH 1/1] Drivers: hv: vmbus: fix init_vp_index() for reloading hv_netvsc

FromJames Bottomley <James.Bottomley@HansenPartnership.com>
Date2015-08-14 01:10 +0200
SubjectRe: [PATCH 1/1] Drivers: hv: vmbus: fix init_vp_index() for reloading hv_netvsc
Message-ID<pX9Nf-QH-11@gated-at.bofh.it>
In reply to#1207213
On Thu, 2015-08-13 at 17:07 -0700, K. Y. Srinivasan wrote:
> From: Dexuan Cui <decui@microsoft.com>
> 
> This fixes the recent commit 3b71107d73b16074afa7658f3f0fcf837aabfe24:

Which tree is this in?  upstream linus is giving me bad object on that
id.


> Drivers: hv: vmbus: Further improve CPU affiliation logic
> 
> Without the fix, reloading hv_netvsc hangs the guest.

The reason for looking for the commit id was to see if cc to stable was
necessary, is it?

James

> Signed-off-by: Dexuan Cui <decui@microsoft.com>
> Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
> ---
>  drivers/hv/channel_mgmt.c |   17 +++++++++++++++++
>  1 files changed, 17 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
> index 3ab4753..8a4105c 100644
> --- a/drivers/hv/channel_mgmt.c
> +++ b/drivers/hv/channel_mgmt.c
> @@ -204,6 +204,8 @@ void hv_process_channel_removal(struct vmbus_channel *channel, u32 relid)
>  		spin_lock_irqsave(&vmbus_connection.channel_lock, flags);
>  		list_del(&channel->listentry);
>  		spin_unlock_irqrestore(&vmbus_connection.channel_lock, flags);
> +
> +		primary_channel = channel;
>  	} else {
>  		primary_channel = channel->primary_channel;
>  		spin_lock_irqsave(&primary_channel->lock, flags);
> @@ -211,6 +213,14 @@ void hv_process_channel_removal(struct vmbus_channel *channel, u32 relid)
>  		primary_channel->num_sc--;
>  		spin_unlock_irqrestore(&primary_channel->lock, flags);
>  	}
> +
> +	/*
> +	 * We need to free the bit for init_vp_index() to work in the case
> +	 * of sub-channel, when we reload drivers like hv_netvsc.
> +	 */
> +	cpumask_clear_cpu(channel->target_cpu,
> +			  &primary_channel->alloced_cpus_in_node);
> +
>  	free_channel(channel);
>  }
>  
> @@ -457,6 +467,13 @@ static void init_vp_index(struct vmbus_channel *channel, const uuid_le *type_gui
>  			continue;
>  		}
>  
> +		/*
> +		 * NOTE: in the case of sub-channel, we clear the sub-channel
> +		 * related bit(s) in primary->alloced_cpus_in_node in
> +		 * hv_process_channel_removal(), so when we reload drivers
> +		 * like hv_netvsc in SMP guest, here we're able to re-allocate
> +		 * bit from primary->alloced_cpus_in_node.
> +		 */
>  		if (!cpumask_test_cpu(cur_cpu,
>  				&primary->alloced_cpus_in_node)) {
>  			cpumask_set_cpu(cur_cpu,



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1207240 — Re: [PATCH 1/1] Drivers: hv: vmbus: fix init_vp_index() for reloading hv_netvsc

FromDan Carpenter <dan.carpenter@oracle.com>
Date2015-08-14 01:30 +0200
SubjectRe: [PATCH 1/1] Drivers: hv: vmbus: fix init_vp_index() for reloading hv_netvsc
Message-ID<pXa6B-1d6-11@gated-at.bofh.it>
In reply to#1207225
On Thu, Aug 13, 2015 at 04:09:10PM -0700, James Bottomley wrote:
> On Thu, 2015-08-13 at 17:07 -0700, K. Y. Srinivasan wrote:
> > From: Dexuan Cui <decui@microsoft.com>
> > 
> > This fixes the recent commit 3b71107d73b16074afa7658f3f0fcf837aabfe24:
> 
> Which tree is this in?  upstream linus is giving me bad object on that
> id.
> 

It's in Greg's char-misc-next tree.  I like to have the commit id so I
can look at buggy patches.

regards,
dan carpenter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1207279 — RE: [PATCH 1/1] Drivers: hv: vmbus: fix init_vp_index() for reloading hv_netvsc

FromKY Srinivasan <kys@microsoft.com>
Date2015-08-14 03:40 +0200
SubjectRE: [PATCH 1/1] Drivers: hv: vmbus: fix init_vp_index() for reloading hv_netvsc
Message-ID<pXc8p-44A-5@gated-at.bofh.it>
In reply to#1207225
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSmFtZXMgQm90dG9tbGV5
IFttYWlsdG86SmFtZXMuQm90dG9tbGV5QEhhbnNlblBhcnRuZXJzaGlwLmNvbV0NCj4gU2VudDog
VGh1cnNkYXksIEF1Z3VzdCAxMywgMjAxNSA0OjA5IFBNDQo+IFRvOiBLWSBTcmluaXZhc2FuIDxr
eXNAbWljcm9zb2Z0LmNvbT4NCj4gQ2M6IGdyZWdraEBsaW51eGZvdW5kYXRpb24ub3JnOyBsaW51
eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOw0KPiBkZXZlbEBsaW51eGRyaXZlcnByb2plY3Qub3Jn
OyBvaGVyaW5nQHN1c2UuY29tOw0KPiBqYm90dG9tbGV5QHBhcmFsbGVscy5jb207IGhjaEBpbmZy
YWRlYWQub3JnOyBsaW51eC1zY3NpQHZnZXIua2VybmVsLm9yZzsNCj4gYXB3QGNhbm9uaWNhbC5j
b207IHZrdXpuZXRzQHJlZGhhdC5jb207IGphc293YW5nQHJlZGhhdC5jb207DQo+IERleHVhbiBD
dWkgPGRlY3VpQG1pY3Jvc29mdC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggMS8xXSBEcml2
ZXJzOiBodjogdm1idXM6IGZpeCBpbml0X3ZwX2luZGV4KCkgZm9yIHJlbG9hZGluZw0KPiBodl9u
ZXR2c2MNCj4gDQo+IE9uIFRodSwgMjAxNS0wOC0xMyBhdCAxNzowNyAtMDcwMCwgSy4gWS4gU3Jp
bml2YXNhbiB3cm90ZToNCj4gPiBGcm9tOiBEZXh1YW4gQ3VpIDxkZWN1aUBtaWNyb3NvZnQuY29t
Pg0KPiA+DQo+ID4gVGhpcyBmaXhlcyB0aGUgcmVjZW50IGNvbW1pdCAzYjcxMTA3ZDczYjE2MDc0
YWZhNzY1OGYzZjBmY2Y4MzdhYWJmZTI0Og0KPiANCj4gV2hpY2ggdHJlZSBpcyB0aGlzIGluPyAg
dXBzdHJlYW0gbGludXMgaXMgZ2l2aW5nIG1lIGJhZCBvYmplY3Qgb24gdGhhdA0KPiBpZC4NCg0K
R3JlZydzIGNoYXItbWlzYyB0cmVlLg0KPiANCj4gDQo+ID4gRHJpdmVyczogaHY6IHZtYnVzOiBG
dXJ0aGVyIGltcHJvdmUgQ1BVIGFmZmlsaWF0aW9uIGxvZ2ljDQo+ID4NCj4gPiBXaXRob3V0IHRo
ZSBmaXgsIHJlbG9hZGluZyBodl9uZXR2c2MgaGFuZ3MgdGhlIGd1ZXN0Lg0KPiANCj4gVGhlIHJl
YXNvbiBmb3IgbG9va2luZyBmb3IgdGhlIGNvbW1pdCBpZCB3YXMgdG8gc2VlIGlmIGNjIHRvIHN0
YWJsZSB3YXMNCj4gbmVjZXNzYXJ5LCBpcyBpdD8NClRoZSBvZmZlbmRpbmcgcGF0Y2ggd2FzIGNv
bW1pdHRlZCBvbiBBdWd1c3QgNXRoIGFuZCBjYyB0byBzdGFibGUgd2FzIG5vdCBuZWNlc3Nhcnku
DQoNCksuIFkNCj4gDQo+IEphbWVzDQo+IA0KPiA+IFNpZ25lZC1vZmYtYnk6IERleHVhbiBDdWkg
PGRlY3VpQG1pY3Jvc29mdC5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogSy4gWS4gU3Jpbml2YXNh
biA8a3lzQG1pY3Jvc29mdC5jb20+DQo+ID4gLS0tDQo+ID4gIGRyaXZlcnMvaHYvY2hhbm5lbF9t
Z210LmMgfCAgIDE3ICsrKysrKysrKysrKysrKysrDQo+ID4gIDEgZmlsZXMgY2hhbmdlZCwgMTcg
aW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2
ZXJzL2h2L2NoYW5uZWxfbWdtdC5jIGIvZHJpdmVycy9odi9jaGFubmVsX21nbXQuYw0KPiA+IGlu
ZGV4IDNhYjQ3NTMuLjhhNDEwNWMgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9odi9jaGFubmVs
X21nbXQuYw0KPiA+ICsrKyBiL2RyaXZlcnMvaHYvY2hhbm5lbF9tZ210LmMNCj4gPiBAQCAtMjA0
LDYgKzIwNCw4IEBAIHZvaWQgaHZfcHJvY2Vzc19jaGFubmVsX3JlbW92YWwoc3RydWN0DQo+IHZt
YnVzX2NoYW5uZWwgKmNoYW5uZWwsIHUzMiByZWxpZCkNCj4gPiAgCQlzcGluX2xvY2tfaXJxc2F2
ZSgmdm1idXNfY29ubmVjdGlvbi5jaGFubmVsX2xvY2ssIGZsYWdzKTsNCj4gPiAgCQlsaXN0X2Rl
bCgmY2hhbm5lbC0+bGlzdGVudHJ5KTsNCj4gPiAgCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2
bWJ1c19jb25uZWN0aW9uLmNoYW5uZWxfbG9jaywNCj4gZmxhZ3MpOw0KPiA+ICsNCj4gPiArCQlw
cmltYXJ5X2NoYW5uZWwgPSBjaGFubmVsOw0KPiA+ICAJfSBlbHNlIHsNCj4gPiAgCQlwcmltYXJ5
X2NoYW5uZWwgPSBjaGFubmVsLT5wcmltYXJ5X2NoYW5uZWw7DQo+ID4gIAkJc3Bpbl9sb2NrX2ly
cXNhdmUoJnByaW1hcnlfY2hhbm5lbC0+bG9jaywgZmxhZ3MpOw0KPiA+IEBAIC0yMTEsNiArMjEz
LDE0IEBAIHZvaWQgaHZfcHJvY2Vzc19jaGFubmVsX3JlbW92YWwoc3RydWN0DQo+IHZtYnVzX2No
YW5uZWwgKmNoYW5uZWwsIHUzMiByZWxpZCkNCj4gPiAgCQlwcmltYXJ5X2NoYW5uZWwtPm51bV9z
Yy0tOw0KPiA+ICAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaW1hcnlfY2hhbm5lbC0+bG9j
aywgZmxhZ3MpOw0KPiA+ICAJfQ0KPiA+ICsNCj4gPiArCS8qDQo+ID4gKwkgKiBXZSBuZWVkIHRv
IGZyZWUgdGhlIGJpdCBmb3IgaW5pdF92cF9pbmRleCgpIHRvIHdvcmsgaW4gdGhlIGNhc2UNCj4g
PiArCSAqIG9mIHN1Yi1jaGFubmVsLCB3aGVuIHdlIHJlbG9hZCBkcml2ZXJzIGxpa2UgaHZfbmV0
dnNjLg0KPiA+ICsJICovDQo+ID4gKwljcHVtYXNrX2NsZWFyX2NwdShjaGFubmVsLT50YXJnZXRf
Y3B1LA0KPiA+ICsJCQkgICZwcmltYXJ5X2NoYW5uZWwtPmFsbG9jZWRfY3B1c19pbl9ub2RlKTsN
Cj4gPiArDQo+ID4gIAlmcmVlX2NoYW5uZWwoY2hhbm5lbCk7DQo+ID4gIH0NCj4gPg0KPiA+IEBA
IC00NTcsNiArNDY3LDEzIEBAIHN0YXRpYyB2b2lkIGluaXRfdnBfaW5kZXgoc3RydWN0IHZtYnVz
X2NoYW5uZWwNCj4gKmNoYW5uZWwsIGNvbnN0IHV1aWRfbGUgKnR5cGVfZ3VpDQo+ID4gIAkJCWNv
bnRpbnVlOw0KPiA+ICAJCX0NCj4gPg0KPiA+ICsJCS8qDQo+ID4gKwkJICogTk9URTogaW4gdGhl
IGNhc2Ugb2Ygc3ViLWNoYW5uZWwsIHdlIGNsZWFyIHRoZSBzdWItY2hhbm5lbA0KPiA+ICsJCSAq
IHJlbGF0ZWQgYml0KHMpIGluIHByaW1hcnktPmFsbG9jZWRfY3B1c19pbl9ub2RlIGluDQo+ID4g
KwkJICogaHZfcHJvY2Vzc19jaGFubmVsX3JlbW92YWwoKSwgc28gd2hlbiB3ZSByZWxvYWQNCj4g
ZHJpdmVycw0KPiA+ICsJCSAqIGxpa2UgaHZfbmV0dnNjIGluIFNNUCBndWVzdCwgaGVyZSB3ZSdy
ZSBhYmxlIHRvIHJlLWFsbG9jYXRlDQo+ID4gKwkJICogYml0IGZyb20gcHJpbWFyeS0+YWxsb2Nl
ZF9jcHVzX2luX25vZGUuDQo+ID4gKwkJICovDQo+ID4gIAkJaWYgKCFjcHVtYXNrX3Rlc3RfY3B1
KGN1cl9jcHUsDQo+ID4gIAkJCQkmcHJpbWFyeS0+YWxsb2NlZF9jcHVzX2luX25vZGUpKSB7DQo+
ID4gIAkJCWNwdW1hc2tfc2V0X2NwdShjdXJfY3B1LA0KPiANCj4gDQoNCg==
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web