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
next prev parent 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