I have been researching about this matter from quite a bit of time ago, but there are some things that I simply didn't found anywhere, reason why I am asking here. But first you have to understand what I'm trying to accoplish.
I had some years ago an idea about how to set up and use a platform. As I like to have my computer running 24/7, one of the things that most irritates me about computers these days, is all the times that you have to restart your machine due to Drivers installs or Windows updates, or anything else, so basically you have annoying downtimes here and there. Sometimes you may also need a reset due to some application crashing, where albeit the machine is still working and you technically have full control of it, you can't do anything practical, like for example, when an unstable game that freezes leaving the game screen on top of all, even on top of the Task Manager, so you can't see what Process you are forcing to close and end up screwing it anyways. This also applies to multiOS support, because while dual booting is still somewhat popular, I find it annoying. Specially if for some reason you have an specific need only covered by the other OS (For example, if I wanted to play games, I would need to restart to boot into Windows). Basically, there are a lot of events that brings downtime with them.
These reasons are why even thorough I am a simple desktop user (Bah, I'm closer to a power user), I find virtualization very interesing. The actual idea would be to have a solid Hypervisor like Xen, and everything else running on top of it. This means that instead of having to restart the computer to switch from Windows to Linux or viceversa, I could simply alt tab from one to another because I could run them simultaneously. It would also allow me to make full backups copies rather easy, as dealing with virtual hard disk is quite similar to have a CD collection in ISOs, and even I could use them simultaneously. Anyways, I find virtualizing everything a solid approach for 24/7 availability, and removes part of the lazyness of experimentation. On a world that is always-on, you feel than that hour or two that you may be installing Windows, downloading the last version of the Drivers, etc, is time you missed from doing actual things or at least being connected to MSN/Skype, or being able to browse a Forum to check if you got a reply to a Thread you made.
Heck, I even suppose that as while virtualizing you could deal with each hardware piece as if it was a simple resource, you could have two Keyboards and Mouses plugged into a single machine, then make a Virtual Machine that uses exclusively only a single Keyboard and Mouse, and effectively have a multiuser computer.
Indeed, virtualization seems extremely useful as you suddently become a sort of OS overseer. This has two downsides: One is performance. Virtualization adds some overhead, but as for most task you still have more than enough performance in any decent modern machine, you can pay for that overhead happily if it does something useful for you. The second, however, was a show stopper: Video Card was always a difficult matter when dealing with virtualization, so you couldn't expect to install Windows and play games on it like if you were running natively. Although even three years ago I recall hearing that it was possible to do gaming via very specific Hypervisor features (Xen supported VGA passthorough, that allowed a VM to use the Video Card), a new, proper feature appeared: IOMMU virtualization. Basically, it would also you to virtualize add-in cards, that could possibily allow each VM OS to use its own Drivers for it and the like. And it would, finally, allow full support of GPUs inside a VM, as everything would run virtualized. Even BitCoin miners found this useful.
That IOMMU virtualization, is called AMD-Vi on AMD side, and on Intel, VT-d. Now, the problem comes to Hardware support. This is the actual reason why I made this Thread.
As far that I know, in AMD Socket AM3 platform you need Chipset and BIOS support for AMD-Vi. Only the 890FX, 970, 990X and 990FX Chipsets supports it. However, besides Chipset support, you also need BIOS support in the form of an ACPI IVRS table. This is what many Motherboards seems to be missing, so even if you have Hardware support, you can NOT use it.
This is the sad truth, but it makes tons of sense. When AMD-Vi was released for the 890FX, the Chipset itself was aimed at the high end "enthusiast" market. As it seems that "enthusiast" these days means "gamer or overclocker that likes to spend big bucks for the looks" (Definition that does NOT include true power users), many Motherboard makers seems to not have spend development time on make sure than the BIOS got a proper ACPI IVRS table for a feature that few, if no Desktop user, will use. The result is that you google around, you will see several Threads with people asking if X or Y Motherboard got it, and most of them will never ever get a response. I suppose that with the proper tools and knowledge of what you're searching for, you could simply download the BIOS of the Motherboard you want, then check the BIN file yourself to see if it is there and got data on it. This is better that hopelessly spend time making Threads expecting that someone else will have tried it with your Motherboard.
What I didn't found info about, however, is what happened on APU platforms regarding AMD-Vi support. I don't know if it is supported by a specific Chipset, CPU, and much less regarding actual BIOS support. I also don't really know what is going on at the Intel side. I know that VT-d support is a CPU feature. It is supported by most Core i5, with the notable exception of series K models that are intended for "enthusiasts", that does NOT have this feature (While normal Core i5 2500 or 2600 have VT-d, 2500K and 2600K do not. This also applies to vPro and TXT support). I consider one of the most retarded market segmentation schemes ever: Instead of just paying more for the Unlocked Multiplier, that is the main feature of a K model, you're actually doing a tradeoff bewthem that and VT-d, so Intel thinks that if you're an overclocker you don't do serious virtualization. However, I have no idea about if you need Chipset/BIOS support for it and how widespread it is.
Any insight or experiencies?