RE: [RFC PATCH 02/11] Drivers: hv: vmbus: Don't bind the offer&rescind works to a specific CPU

From: Michael Kelley
Date: Sat Mar 28 2020 - 23:43:33 EST


From: Andrea Parri <parri.andrea@xxxxxxxxx> Sent: Saturday, March 28, 2020 10:09 AM
>
> > In case we believe that OFFER -> RESCINF sequence is always ordered
> > by the host AND we don't care about other offers in the queue the
> > suggested locking is OK: we're guaranteed to process RESCIND after we
> > finished processing OFFER for the same channel. However, waiting for
> > 'offer_in_progress == 0' looks fishy so I'd suggest we at least add a
> > comment explaining that the wait is only needed to serialize us with
> > possible OFFER for the same channel - and nothing else. I'd personally
> > still slightly prefer the algorythm I suggested as it guarantees we take
> > channel_mutex with offer_in_progress == 0 -- even if there are no issues
> > we can think of today (not strongly though).
>
> Does it? offer_in_progress is incremented without channel_mutex...
>
> IAC, I have no objections to apply the changes you suggested. To avoid
> misunderstandings: vmbus_bus_suspend() presents a similar usage... Are
> you suggesting that I apply similar changes there?
>
> Alternatively: FWIW, the comment in vmbus_onoffer_rescind() does refer
> to "The offer msg and the corresponding rescind msg...". I am all ears
> if you have any concrete suggestions to improve these comments.
>

Given that waiting for 'offer_in_progress == 0' is the current code, I think
there's an argument to made for not changing it if the change isn't strictly
necessary. This patch set introduces enough change that *is* necessary. :-)

Michael