All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dmitry Fleytman <dmitry@daynix.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: Cao jin <caoj.fnst@cn.fujitsu.com>,
	Marcel Apfelbaum <marcel@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	qemu-devel@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v3 8/8] vmxnet3: remove unnecessary internal msix state flag
Date: Thu, 6 Oct 2016 11:39:31 +0200	[thread overview]
Message-ID: <017DDFF7-F80A-4C07-B533-4BEBEEA641CE@daynix.com> (raw)
In-Reply-To: <878tu9ttzv.fsf@dusky.pond.sub.org>


> On 30 Sep 2016, at 15:08 PM, Markus Armbruster <armbru@redhat.com> wrote:
> 
> Cao jin <caoj.fnst@cn.fujitsu.com> writes:
> 
>> On 09/29/2016 10:42 PM, Markus Armbruster wrote:
>>> Cao jin <caoj.fnst@cn.fujitsu.com> writes:
>>> 
>> 
>>>>  static int vmxnet3_post_load(void *opaque, int version_id)
>>>>  {
>>>>      VMXNET3State *s = opaque;
>>>> -    PCIDevice *d = PCI_DEVICE(s);
>>>> 
>>>>      net_tx_pkt_init(&s->tx_pkt, PCI_DEVICE(s),
>>>>                      s->max_tx_frags, s->peer_has_vhdr);
>>>>      net_rx_pkt_init(&s->rx_pkt, s->peer_has_vhdr);
>>>> 
>>>> -    if (s->msix_used) {
>>>> -        if  (!vmxnet3_use_msix_vectors(s, VMXNET3_MAX_INTRS)) {
>>>> -            VMW_WRPRN("Failed to re-use MSI-X vectors");
>>>> -            msix_uninit(d, &s->msix_bar, &s->msix_bar);
>>>> -            s->msix_used = false;
>>>> -            return -1;
>>>> -        }
>>>> -    }
>>>> -
>>>>      vmxnet3_validate_queues(s);
>>>>      vmxnet3_validate_interrupts(s);
>>> 
>>> This hunk isn't obvious.  Can you explain the change?
>>> 
>> 
>> flag msix_used is used in VMStateDescription.post_Load().
>> 
>> 1st, I think msix's code here is not necessary, because in
>> destination, device has been realized before incoming migration, So I
>> don't know why re-use MSI-X vectors here. Dmitry, could help to
>> explain?
>> 
>> 2nd, this patch is going to remove this flag, so I removed the hunk.
> 
> We need to find out whether the call of vmxnet3_use_msix_vectors() is
> necessary.  I suspect it's not only not necessary, but actively wrong.
> 
> If that's true, removing becomes a bug fix that should be a separate
> patch.
> 
> If it's only unnecessary, the removal may stay in this patch, but it
> needs to be explained.  Separate patch might be easier to explain.  Your
> choice.
> 
> If it correct and necessary, then this patch needs to be changed not to
> drop it.  Instead, replace s->msix_used by msix_enabled(d) like you do
> elsewhere.
> 
> Dmitry, can you help us find out?

Hello,

Yes, from what I see, this call is wrong and leads to
reference leaks on device unload at migration target.
It should be removed.

Best regards,
Dmitry

  reply	other threads:[~2016-10-06  9:39 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-14  7:50 [Qemu-devel] [PATCH v3 0/8] Convert msix_init() to error Cao jin
2016-09-14  7:50 ` [Qemu-devel] [PATCH v3 1/8] msix: Follow CODING_STYLE Cao jin
2016-09-14  7:50 ` [Qemu-devel] [PATCH v3 2/8] hcd-xhci: check & correct param before using it Cao jin
2016-09-29 13:47   ` Markus Armbruster
2016-09-29 15:21     ` Gerd Hoffmann
2016-09-14  7:50 ` [Qemu-devel] [PATCH v3 3/8] pci: Convert msix_init() to Error and fix callers to check it Cao jin
2016-09-29 14:17   ` Markus Armbruster
2016-09-30  5:44     ` Cao jin
2016-09-30  7:01       ` Markus Armbruster
2016-09-30  7:07         ` Cao jin
2016-09-14  7:51 ` [Qemu-devel] [PATCH v3 4/8] megasas: change behaviour of msix switch Cao jin
2016-09-14  7:51 ` [Qemu-devel] [PATCH v3 5/8] hcd-xhci: " Cao jin
2016-09-29 14:32   ` Markus Armbruster
2016-09-29 15:22     ` Gerd Hoffmann
2016-09-14  7:51 ` [Qemu-devel] [PATCH v3 6/8] megasas: remove unnecessary megasas_use_msix() Cao jin
2016-09-29 14:35   ` Markus Armbruster
2016-09-30  6:09     ` Cao jin
2016-09-30  7:01       ` Markus Armbruster
2016-09-14  7:51 ` [Qemu-devel] [PATCH v3 7/8] megasas: undo the overwrites of msi user configuration Cao jin
2016-09-14  7:51 ` [Qemu-devel] [PATCH v3 8/8] vmxnet3: remove unnecessary internal msix state flag Cao jin
2016-09-29 14:42   ` Markus Armbruster
2016-09-30  6:58     ` Cao jin
2016-09-30 13:08       ` Markus Armbruster
2016-10-06  9:39         ` Dmitry Fleytman [this message]
2016-10-06 15:43           ` Dr. David Alan Gilbert
2016-10-06 19:33             ` Dmitry Fleytman
2016-10-11  3:35           ` Cao jin
2016-10-11  4:18             ` Dmitry Fleytman

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=017DDFF7-F80A-4C07-B533-4BEBEEA641CE@daynix.com \
    --to=dmitry@daynix.com \
    --cc=armbru@redhat.com \
    --cc=caoj.fnst@cn.fujitsu.com \
    --cc=jasowang@redhat.com \
    --cc=marcel@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.