xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Sergey Tovpeko <tsv.devel@gmail.com>
To: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
Subject: switching passthrough GFX between several domains
Date: Thu, 11 Mar 2010 12:16:32 +0300	[thread overview]
Message-ID: <4B98B4F0.4070100@gmail.com> (raw)

Hello, everybody.

I've some success with gfx passthough and successfully run Windows XP 
with real nvidia 8400gs card inside.
Now, there are 2 running HVM domains in my configuration, and I want to 
switch real gfx between them, i.e allow only one VM to have access to 
the graphic card.

Firstly, I tried to switch real GFX by suspending one of the VM and 
giving the gfx to another VM.
But I found out that it's impossible to suspend VM with assigned PCI 
device:

  "Migration not permitted with assigned PCI device"

I agree that migration to another hardware is a problem, but why don't  
suspend/resume implemented for the same hardware?


I tried to unplug gfx card manually by doing this:

#xm pci-detach winxp 04:00.0

But with no success. Guest nvidia's driver said that:

Device NVIDIA GeForce 8400 GS couldn't stopped right now. Try to stop it 
later.

So, I couldn't release attached pci device.

Is any way to solve the task of switching gfx between different HVM domain?
I'm not sure, but what happened if I take off the graphic card manually by
* save the contents of the memory-mapped regions and io regions.
* forbit access to configuration space  from QEMU
* unmap access to the real MMIOs, PIOs from inside the hypervisor.

And then I'll reset this stuff and reinitialize them for the new VM. 
Will it work at all?
Of course, there will be a lot synchronization and transaction problems. 
But is it possible at all?


Thanks for your attention.

                 reply	other threads:[~2010-03-11  9:16 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=4B98B4F0.4070100@gmail.com \
    --to=tsv.devel@gmail.com \
    --cc=xen-devel@lists.xensource.com \
    /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;
as well as URLs for NNTP newsgroup(s).