RE: [PATCH 1/6] Drivers: hv: vmbus: Perform device register in the per-channel work element

KY Srinivasan
2015-03-12T14:16:28Z

> -----Original Message-----
> From: Greg KH [mailto:gregkh@linuxfoundation.org]
> Sent: Thursday, March 12, 2015 6:29 AM
> To: KY Srinivasan
> Cc: apw@canonical.com; devel@linuxdriverproject.org; olaf@aepfle.de;
> linux-kernel@vger.kernel.org
> Subject: Re: [PATCH 1/6] Drivers: hv: vmbus: Perform device register in the
> per-channel work element
>
> On Thu, Mar 12, 2015 at 01:12:29PM +0000, KY Srinivasan wrote:
> >
> >
> > > -----Original Message-----
> > > From: Greg KH [mailto:gregkh@linuxfoundation.org]
> > > Sent: Thursday, March 12, 2015 2:03 AM
> > > To: KY Srinivasan
> > > Cc: linux-kernel@vger.kernel.org; devel@linuxdriverproject.org;
> > > olaf@aepfle.de; apw@canonical.com; vkuznets@redhat.com
> > > Subject: Re: [PATCH 1/6] Drivers: hv: vmbus: Perform device register
> > > in the per-channel work element
> > >
> > > On Thu, Mar 12, 2015 at 10:02:24AM +0100, Greg KH wrote:
> > > > On Wed, Mar 11, 2015 at 06:56:54PM -0700, K. Y. Srinivasan wrote:
> > > > > This patch is a continuation of the rescind handling cleanup work.
> > > > > We cannot block in the global message handling work context
> > > > > especially if we are blocking waiting for the host to wake us
> > > > > up. I would like to thank Dexuan Cui <decui@microsoft.com> for
> > > > > observing
> > > this problem.
> > > > >
> > > > > The current Linux 4.0 RC3 tree is broken and this patch fixes the
> problem.
> > > > >
> > > > > Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
> > > > > ---
> > > > > drivers/hv/channel_mgmt.c | 143
> > > +++++++++++++++++++++++++++++++-------------
> > > > > drivers/hv/connection.c | 6 ++-
> > > > > drivers/hv/hyperv_vmbus.h | 2 +-
> > > > > 3 files changed, 107 insertions(+), 44 deletions(-)
> > > >
> > > > This is a very big patch so late in the -rc cycle. Is there some
> > > > patch that got merged in 4.0-rc1 that I should be reverting
> > > > instead to fix things up?
> > >
> > > Make that, "this is a very large patch set", not just one patch. I
> > > can't take all of these this late, sorry. Please just tell me what to revert.
> >
> > Greg,
> >
> > Would it be possible to pick up two patches. I could prune this down
> > to two. The two I want you to pick up are (in the order of importance):
> >
> > [PATCH 1/6] Drivers: hv: vmbus: Perform device register in the
> > per-channel work element [PATCH 2/6] Drivers: hv: hv_balloon: keep
> > locks balanced on add_memory() failure
> >
> > If you could pickup an additional patch that would be:
> >
> > [PATCH 6/6] Drivers: hv: vmbus: Fix a bug in rescind processing in
> > vmbus_close_internal()
> >
> > The first one is the most important one and if you can only pickup one, the
> first one is the one I want you to pick up.
>
> You aren't answering my question, what happened that caused these to
> become an error and break the 4.0-rc tree? Shouldn't I just revert a recent
> change here? Or has things always been broken and no one has noticed it
> before?

commit 2dd37cb81580dce6dfb8c5a7d5c37b904a188ae7

introduced the bug (committed on Feb 28th). This patch cleaned up
the rescind handling code.

The patches I sent a few days later:

Drivers: hv: vmbus: Perform device register in the
per-channel work element fixed it.

Drivers: hv: vmbus: Fix a bug in rescind processing in
vmbus_close_internal()

Fixed the bugs.

>
> I need a lot more information here please.
>
> Oh, and also, please wrap your email lines :)
>
> > The third one fixes a memory leak issue that occurs only under certain
> > conditions.
>
> You need to describe those "certian conditions" better.

When a channel that has been rescinded is closed, we will leak memory.
This bug was also introduced by:
commit 2dd37cb81580dce6dfb8c5a7d5c37b904a188ae7

>
> > We may have to revert more patches than applying the two patches that
> > would fix the most important issues.
>
> I can easly revert everything recently applied, which is much safer than
> adding more patches on top of things. In fact, I prefer to do that, so what git
> commit ids should I revert?

If you revert commit 2dd37cb81580dce6dfb8c5a7d5c37b904a188ae7
we should be fine in that we will have all the issues we have had
for a while with regards to rescind handling.

Regards,

K. Y