Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1207213 > unrolled thread
| Started by | "K. Y. Srinivasan" <kys@microsoft.com> |
|---|---|
| First post | 2015-08-14 00:50 +0200 |
| Last post | 2015-08-14 03:40 +0200 |
| Articles | 4 — 4 participants |
Back to article view | Back to linux.kernel
[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
| From | "K. Y. Srinivasan" <kys@microsoft.com> |
|---|---|
| Date | 2015-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]
| From | James Bottomley <James.Bottomley@HansenPartnership.com> |
|---|---|
| Date | 2015-08-14 01:10 +0200 |
| Subject | Re: [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]
| From | Dan Carpenter <dan.carpenter@oracle.com> |
|---|---|
| Date | 2015-08-14 01:30 +0200 |
| Subject | Re: [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]
| From | KY Srinivasan <kys@microsoft.com> |
|---|---|
| Date | 2015-08-14 03:40 +0200 |
| Subject | RE: [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