Re: [PATCH v10 0/7] PCI: Linux kernel SR-IOV support

From: Avi Kivity
Date: Mon Mar 09 2009 - 09:46:19 EST


Yang, Sheng wrote:
Patches 2 and 3 of the patchset that enables SR/IOV in kvm [1] suggest
that at the config space is only partially implemented.

[1] http://thread.gmane.org/gmane.comp.emulators.kvm.devel/29034
Hi Avi

For kernel side, patch 2 is not necessary. Because kernel would read
VID/DID directly from pci_dev rather than configuration space, which have
been set properly already.

And very sorry, for the patch 3. We haven't known exactly what's happened.
I think the problem is caused by guest driver, but didn't confirm(and I
have some misunderstandings with ZhaoYu for I thought we are agree on the
reason, but after confirm with him, he didn't agree). I am doing more
investigations to find the real cause.

Found the reason of patch 3.

After insert guest driver module(vf driver), the driver would do a RMW to the command register to enable Bus Master bit(bit 2). And before that, MMIO bit have been set in the register. But without the patch 3, guest driver won't see the MMIO bit(bit 1), then just set 0x4 to the command register, with the side effect to unmap MMIO in QEmu. So patch 3 is needed(and what I thought before is right).

Unset the bit only affect the QEmu, which would unmap the mapping for MMIO. Kernel side don't need this, so it's OK.

Thanks for the explanations!

--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/