From: mdroth <mdroth@linux.vnet.ibm.com>
To: Amos Kong <akong@redhat.com>
Cc: jasowang@redhat.com, qemu-stable@nongnu.org, aliguori@us.ibm.com,
qemu-devel@nongnu.org, mst@redhat.com
Subject: Re: [Qemu-devel] [PATCH for-1.4] Revert "e1000: no need auto-negotiation if link was down"
Date: Fri, 1 Feb 2013 08:29:48 -0600 [thread overview]
Message-ID: <20130201142948.GA2379@vm> (raw)
In-Reply-To: <20130201072059.GA12824@t430s.nay.redhat.com>
On Fri, Feb 01, 2013 at 03:20:59PM +0800, Amos Kong wrote:
> On Thu, Jan 31, 2013 at 05:43:51PM -0600, Michael Roth wrote:
> > This reverts commit 84dd2120247a7d25ff1bb337de21c0e76816ad2d.
> >
> > I'm not sure what issue the original commit was meant to fix, or if
> > the logic is actually wrong, but it causes e1000 to stop working
> > after a guest issues a reset.
>
> Hi Michael,
>
> What's your test scenario?
Nothing special, I just started a guest with
-net nic,model=e1000 -net user
or
-net nic,model=e1000 -net tap
and networking stopped working (could not lease an IP, no outbound
traffic) after I rebooted.
>
> I tried this test with current qemu code, link status is not reseted
> to 'up' after step 3. Is it the problem you said?
I think it's related, but I'm not so much concerned with the qmp-visible
link status changing as I am with the guest.
> This problem also exists with current virtio (existed in the past) /
> rtl8139 (introduced in 83f58e570f21c3e7227e7fbef1fc0e18b5ed7ea9)
>
> 1) boot a guest with e1000 nic
> 2) set link down in monitor
> (hmp) set_link e1000.0 down
> 3) reset guest by 'system_reset' in monitor
> (hmp) system_reset
>
>
> My original patch is used to restore the link status after guest
> reboot(execute 'reboot' insider guest system).
> The link status should always be up after virtual 'hardware' reset
> (execute 'system_reset' in monitor).
You sure you don't have that backwards? It seems to me that your
original patch was meant to *prevent* the link status from changing
after a system reset, which makes sense from the perspective of a
qmp-issued "set_link down" meaning "unplug the cable".
>
> Thanks, Amos
>
> > >From what I can tell a guest with an e1000 nic has no way of changing
> > the link status, as far as it's NetClient peer is concerned, except
> > in the auto-negotiation path, so with this patch in place there's no
> > recovery after a reset, since the link goes down and stays that way.
> >
> > Revert this patch now to fix the bigger problem, and handle any
> > lingering issues with a follow-up.
> >
> > Reproduced/tested with qemu-jeos and Ubuntu 12.10.
> >
> > Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
> > ---
> > hw/e1000.c | 5 -----
> > 1 file changed, 5 deletions(-)
> >
> > diff --git a/hw/e1000.c b/hw/e1000.c
> > index ef06ca1..563a58f 100644
> > --- a/hw/e1000.c
> > +++ b/hw/e1000.c
> > @@ -166,11 +166,6 @@ static void
> > set_phy_ctrl(E1000State *s, int index, uint16_t val)
> > {
> > if ((val & MII_CR_AUTO_NEG_EN) && (val & MII_CR_RESTART_AUTO_NEG)) {
> > - /* no need auto-negotiation if link was down */
> > - if (s->nic->nc.link_down) {
> > - s->phy_reg[PHY_STATUS] |= MII_SR_AUTONEG_COMPLETE;
> > - return;
> > - }
> > s->nic->nc.link_down = true;
> > e1000_link_down(s);
> > s->phy_reg[PHY_STATUS] &= ~MII_SR_AUTONEG_COMPLETE;
> > --
> > 1.7.9.5
>
next prev parent reply other threads:[~2013-02-01 14:30 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1359675832-11999-1-git-send-email-mdroth@linux.vnet.ibm.com>
2013-02-01 7:20 ` [Qemu-devel] [PATCH for-1.4] Revert "e1000: no need auto-negotiation if link was down" Amos Kong
2013-02-01 7:53 ` Amos Kong
2013-02-01 14:49 ` mdroth
2013-02-01 15:52 ` Amos Kong
2013-02-01 14:29 ` mdroth [this message]
2013-02-01 15:56 ` Amos Kong
2013-02-01 14:56 ` Anthony Liguori
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=20130201142948.GA2379@vm \
--to=mdroth@linux.vnet.ibm.com \
--cc=akong@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=jasowang@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-stable@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).