public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Alex Williamson <alex.williamson@redhat.com>
To: David Ahern <dsahern@gmail.com>
Cc: KVM mailing list <kvm@vger.kernel.org>
Subject: Re: pci passthrough - VF reset at boot is dropping assigned MAC
Date: Mon, 25 Apr 2011 11:30:59 -0600	[thread overview]
Message-ID: <1303752659.3431.31.camel@x201> (raw)
In-Reply-To: <4DB5A44F.6040304@gmail.com>

On Mon, 2011-04-25 at 10:41 -0600, David Ahern wrote:
> 
> On 04/25/11 10:37, Alex Williamson wrote:
> > On Mon, 2011-04-25 at 10:28 -0600, David Ahern wrote:
> >> Running qemu-kvm.git as of today (ffce28f, April 18, 2011) the virtual
> >> function passed to the VM is losing its assigned mac address. That is,
> >> prior to launching qemu-kvm, the following command is run to set the MAC
> >> address:
> >>
> >> ip link set dev eth2 vf 0 mac 02:12:34:56:79:20
> >>
> >> Yet, when the VM boots the MAC address is random which is what happens
> >> when the VF is reset. Looking through the commit logs between 0.13.0 --
> >> the version in Fedora 14 -- and latest git I found the following:
> >>
> >> commit d9488459ff2ab113293586c1c36b1679bb15deee
> >> Author: Alex Williamson <alex.williamson@redhat.com>
> >> Date:   Thu Mar 17 15:24:31 2011 -0600
> >>
> >>     device-assignment: Reset device on system reset
> >>
> >>     On system reset, we currently try to quiesce DMA by clearing the
> >>     command register.  This assumes that nothing re-enables bus master
> >>     support without first de-programming the device.  Use a bigger
> >>     hammer to help the guest not shoot itself by issuing a function
> >>     reset via sysfs on each system reset.
> >>
> >>     Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
> >>     Acked-by: Chris Wright <chrisw@redhat.com>
> >>     Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
> >>
> >>
> >> Is this the cause of the MAC address reset and is this behavior intended?
> > 
> > Ugh, I hope not, it's certainly not an intended side effect.  Can you
> > see if the problem still happens if you revert this patch?  If it does,
> 
> I commented out the write() in the reset function and indeed the mac
> address was not reset on VM boot.

Ok, here's what I see on my system:

# modprobe igbvf
# dmesg | grep "igbvf 0000\:01\:11.5\: Address\:"
igbvf 0000:01:11.5: Address: d2:c8:17:d6:97:f7
# modprobe -r igbvf
# echo 1 > /sys/bus/pci/devices/0000:01:11.5/reset
# modprobe igbvf
# dmesg | grep "igbvf 0000\:01\:11.5\: Address\:"
igbvf 0000:01:11.5: Address: d2:c8:17:d6:97:f7
igbvf 0000:01:11.5: Address: 4e:ee:2a:d8:12:7c

So yes, it does change.  However, if I set the VF mac instead of using a
randomly generated one, I get:

# modprobe -r igbvf
# ip link set eth2 vf 6 mac 02:00:10:91:73:01
# modprobe igbvf
# dmesg | grep "igbvf 0000\:01\:11.5\: Address\:"
igbvf 0000:01:11.5: Address: d2:c8:17:d6:97:f7
igbvf 0000:01:11.5: Address: 4e:ee:2a:d8:12:7c
igbvf 0000:01:11.5: Address: 02:00:10:91:73:01
# modprobe -r igbvf
# echo 1 > /sys/bus/pci/devices/0000:01:11.5/reset
# modprobe igbvf
# dmesg | grep "igbvf 0000\:01\:11.5\: Address\:"
igbvf 0000:01:11.5: Address: d2:c8:17:d6:97:f7
igbvf 0000:01:11.5: Address: 4e:ee:2a:d8:12:7c
igbvf 0000:01:11.5: Address: 02:00:10:91:73:01
igbvf 0000:01:11.5: Address: 02:00:10:91:73:01

So now it sticks.  You're going to get random mac addresses on the VFs
every time you reload the igb driver (ie. ever boot) anyway (at least
with these sr-iov cards), so if you need consistent macs, they probably
need to be set before launching the VM anyway.  Thanks,

Alex


  reply	other threads:[~2011-04-25 17:31 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-25 16:28 pci passthrough - VF reset at boot is dropping assigned MAC David Ahern
2011-04-25 16:37 ` Alex Williamson
2011-04-25 16:41   ` David Ahern
2011-04-25 17:30     ` Alex Williamson [this message]
2011-04-25 17:41       ` David Ahern
2011-04-25 18:04       ` David Ahern
2011-04-25 18:36         ` Alex Williamson
2011-04-25 19:12           ` David Ahern
2011-04-25 19:18             ` Alex Williamson
2011-04-25 20:29               ` David Ahern
2011-04-25 21:17                 ` David Ahern

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=1303752659.3431.31.camel@x201 \
    --to=alex.williamson@redhat.com \
    --cc=dsahern@gmail.com \
    --cc=kvm@vger.kernel.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