Avi Kivity wrote:(Sorry for the delay) Since PCI was designed as a hardware solution it has all kinds of stuff specifically geared towards hardware constraints. Those constraints are different in a virtualized platform, so some things do not translate well to an optimal solution. Half of the stuff wouldn't be used, and the other half has some nasty baggage associated with it (like still requiring partial emulation in a PV environment). The point of PV, of course, is high performance guest/host interfaces, and PCI baggage just gets in the way in many respects. Once a particular guest's subsystem is HV aware we no longer strictly require legacy emulation. It should know how to talk to the host using whatever is appropriate. I aim to strip out all of those emulation points whenever possible. Once you do that, all of the PCI features that we would use drops to zero. On the flip side, we have full emulation if you want broader compatibility with legacy, at the expense of performance. Like what hardware? Like PCI hardware? What if the platform in question doesn't have PCI? Also note that devices don't have to look like emulated PCI devices per se to look like hardware to the guest-OS/user. That is just one way to do it. After having done it in the past, I disagree. But it sounds like you are lumping core-pv and io-pv together. To be clear, I am not. I agree that core-pv is invasive and not legacy friendly. io-pv is different, however, and generally can be retrofitted to an OS in the same way that support for an arbitrary device X over subsystem Y (PCI, usb, pv, etc) can be. e.g. you load a driver for the subsystem. I am ;) I see hanging our hats on PCI as creating a mess for KVM/virtio ;) I guess what I am really trying to say in all this is; I would be careful about painting KVM into a PCI corner. If you want to "render" a view of PV devices as PCI for platforms that can utilize it, there is probably not any harm in that. However, I believe having things be PCI centric, especially in the long term, will easily turn into a mistake for the project. I don't think its going to be as useful as you think it is, and then we might find ourselves in a "backwards compatibility maintenance" situation to support all these decisions. If the current architecture already is shaping up to be PCI neutral, great! (I haven't had a chance to follow lately). If not, I think we should reconsider before things get too messy. Regards, -Greg -
| Amit K. Arora | [RFC] Heads up on sys_fallocate() |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Linus Torvalds | Linux 2.6.25-rc4 |
| Greg KH | Linux 2.6.25.10 |
git: | |
| Gerrit Renker | [PATCH 15/37] dccp: Set per-connection CCIDs via socket options |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | [GIT]: Networking |
| Ilpo Järvinen | Re: Strange Application bug, race in MSG_PEEK complaints (was: Bug#513695: fetchma... |
