From: Jason Wang <jasowang@redhat.com>
To: Vitaly Kuznetsov <vkuznets@redhat.com>
Cc: "Dexuan Cui" <decui@microsoft.com>,
"KY Srinivasan" <kys@microsoft.com>,
"devel@linuxdriverproject.org" <devel@linuxdriverproject.org>,
"Haiyang Zhang" <haiyangz@microsoft.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"Radim Krčmář" <rkrcmar@redhat.com>,
"Dan Carpenter" <dan.carpenter@oracle.com>
Subject: Re: [PATCH v3 3/3] Drivers: hv: vmbus: serialize Offer and Rescind offer
Date: Thu, 29 Jan 2015 10:18:39 +0008 [thread overview]
Message-ID: <1422526239.14137.3@smtp.corp.redhat.com> (raw)
In-Reply-To: <87egqf8316.fsf@vitty.brq.redhat.com>
On Wed, Jan 28, 2015 at 9:09 PM, Vitaly Kuznetsov <vkuznets@redhat.com>
wrote:
> Dexuan Cui <decui@microsoft.com> writes:
>
>>> -----Original Message-----
>>> From: Vitaly Kuznetsov [mailto:vkuznets@redhat.com]
>>> Sent: Wednesday, January 28, 2015 20:09 PM
>>> To: Dexuan Cui
>>> Cc: KY Srinivasan; devel@linuxdriverproject.org; Haiyang Zhang;
>>> linux-
>>> kernel@vger.kernel.org; Jason Wang; Radim Krčmář; Dan Carpenter
>>> Subject: Re: [PATCH v3 3/3] Drivers: hv: vmbus: serialize Offer
>>> and Rescind
>>> offer
>>>
>>> Dexuan Cui <decui@microsoft.com> writes:
>>>
>>> >> -----Original Message-----
>>> >> From: Vitaly Kuznetsov [mailto:vkuznets@redhat.com]
>>> >> Sent: Tuesday, January 20, 2015 23:45 PM
>>> >> To: KY Srinivasan; devel@linuxdriverproject.org
>>> >> Cc: Haiyang Zhang; linux-kernel@vger.kernel.org; Dexuan Cui;
>>> Jason Wang;
>>> >> Radim Krčmář; Dan Carpenter
>>> >> Subject: [PATCH v3 3/3] Drivers: hv: vmbus: serialize Offer and
>>> Rescind
>>> offer
>>> ...
>>> >
>>> > Hi Vitaly and all,
>>> > I have 2 questions:
>>> > In vmbus_process_offer(), in the cases of "goto err_free_chan",
>>> > should we consider the possibility a rescind message could be
>>> pending for
>>> > the new channel?
>>> > In the cases, because we don't run
>>> > "INIT_WORK(&newchannel->work, vmbus_process_rescind_offer); ",
>>> > vmbus_onoffer_rescind() will do nothing and as a result,
>>> > vmbus_process_rescind_offer() won't be invoked.
>>>
>>> Yes, but processing the rescind offer results in freeing the
>>> channel
>>> (and this processing supposes the channel wasn't freed before) so
>>> there is no difference... or is it?
>>>
>>> >
>>> > Question 2: in vmbus_process_offer(), in the case
>>> > vmbus_device_register() fails, we'll run
>>> > "list_del(&newchannel->listentry);" -- just after this line,
>>> > what will happen at this time if relid2channel() returns NULL
>>> > in vmbus_onoffer_rescind()?
>>> >
>>> > I think we'll lose the rescind message.
>>> >
>>>
>>> Yes, but same logic applies - we already freed the channes so no
>>> rescind
>>> proccessing required.
>> free_channel() and vmbus_process_rescind_offer() are different,
>> because
>> the latter does more work, e.g., sending the host a message
>> CHANNELMSG_RELID_RELEASED.
>>
>> In the cases of "goto err_free_chan" + "a pending rescind message",
>> the host may expect the message CHANNELMSG_RELID_RELEASED and
>> could reoffer the channel once the message is received.
>>
>> It would be better if the VM doesn't lose the rescind message
>> here. :-)
>
> Ah, I see, CHANNELMSG_RELID_RELEASED is expected from us in any
> case. I'll doing that in a separate patch is noone objects.
All the evil come from the un-serialized processing of message. I
wonder whether we can do all the processing in workqueue and then those
were automatically serialized.
>
> Thanks for the review,
>
>>
>>> If we still need to do something we need to
>>> add support for already freed channel to the rescind offer
>>> processing path.
>>>
>>
>> Thanks,
>> -- Dexuan
>
> --
> Vitaly
> --
> 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/
next prev parent reply other threads:[~2015-01-29 10:10 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-20 15:45 [PATCH v3 0/3] Drivers: hv: vmbus: protect Offer/Rescind offer processing Vitaly Kuznetsov
2015-01-20 15:45 ` [PATCH v3 1/3] Drivers: hv: check vmbus_device_create() return value in vmbus_process_offer() Vitaly Kuznetsov
2015-01-20 18:33 ` KY Srinivasan
2015-01-21 3:10 ` Jason Wang
2015-01-20 15:45 ` [PATCH v3 2/3] Drivers: hv: rename sc_lock to the more generic lock Vitaly Kuznetsov
2015-01-20 18:33 ` KY Srinivasan
2015-01-21 3:11 ` Jason Wang
2015-01-20 15:45 ` [PATCH v3 3/3] Drivers: hv: vmbus: serialize Offer and Rescind offer Vitaly Kuznetsov
2015-01-20 18:34 ` KY Srinivasan
2015-01-21 3:25 ` Jason Wang
2015-01-28 11:57 ` Dexuan Cui
2015-01-28 12:08 ` Vitaly Kuznetsov
2015-01-28 12:51 ` Dexuan Cui
2015-01-28 13:09 ` Vitaly Kuznetsov
2015-01-29 10:10 ` Jason Wang [this message]
[not found] ` <F792CF86EFE20D4AB8064279AFBA51C61EA9510B@SIXPRD3002MB028.064d.mgd.msft.net >
2015-01-29 10:09 ` Jason Wang
2015-01-30 4:21 ` Dexuan Cui
2015-02-01 18:17 ` KY Srinivasan
[not found] ` <F792CF86EFE20D4AB8064279AFBA51C61EA94FB7@SIXPRD3002MB028.064d.mgd.msft.net >
2015-01-29 10:07 ` Jason Wang
2015-02-01 18:12 ` KY Srinivasan
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=1422526239.14137.3@smtp.corp.redhat.com \
--to=jasowang@redhat.com \
--cc=dan.carpenter@oracle.com \
--cc=decui@microsoft.com \
--cc=devel@linuxdriverproject.org \
--cc=haiyangz@microsoft.com \
--cc=kys@microsoft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rkrcmar@redhat.com \
--cc=vkuznets@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome