public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: John Byrd via pve-devel <pve-devel@lists.proxmox.com>
To: pve-devel@lists.proxmox.com
Cc: John Byrd <johnwbyrd@gmail.com>
Subject: [pve-devel] Feature concept: "demanding" qemu vms
Date: Tue, 7 Jan 2025 12:28:20 -0800	[thread overview]
Message-ID: <mailman.90.1736281724.441.pve-devel@lists.proxmox.com> (raw)

[-- Attachment #1: Type: message/rfc822, Size: 6971 bytes --]

From: John Byrd <johnwbyrd@gmail.com>
To: pve-devel@lists.proxmox.com
Subject: Feature concept: "demanding" qemu vms
Date: Tue, 7 Jan 2025 12:28:20 -0800
Message-ID: <CAGDY=3OxXappMQk=gwOMV5VpENryb7=Lr=mOsKGr6gbLkje=nQ@mail.gmail.com>

Greetings pve-devel, I'm a long-time user and fan and Perl hacker.

I use Proxmox as my hypervisor and daily driver on a workstation-class
PC, with a high-end Nvidia PCI card attached via PCI passthrough,
keyboard, mouse, and a couple other USB peripherals.

For development purposes, I need to switch occasionally between the
virtual machine that has control of the display and the USB input
devices.  In other to do this, I have to manually shut down the VM
that controls these devices, manually reassign them to a different VM,
and then bring that VM back up.

It strikes me that we could mark a particular qemu instance as
"demanding."  In this case, demanding would imply that the VM would,
before turning on, verify that all its PCI and USB resources were
available and ready for use.  If not, the demanding instance would
gracefully shut down other instances that are currently using the PCI
and USB devices, release them from their current owners, and reassign
them to the demanding VM, before turning it on.

Consider for a moment what this feature implies.  Functionally, it
means that Proxmox could replace dual-booting PC workstations with
multiple operating systems, with no chance whatsoever that the
operating systems would conflict.  The user experience would be the
same as dual booting -- all your USB devices and graphics cards would
work the same as if your OS were installed on metal.  And, Proxmox
takes care of the complexity of switching the local USB and PCI
devices when you change between "demanding" virtual machines.

Anyway, it would save me some pain to go ahead and implement this
feature in some form, just for myself.  And I think that Proxmox's
scripting interface would be sufficient to do this without integration
with the Proxmox API or UI.  However, it strikes me that such a
feature might be useful to a lot of people, so I figured I'd ask here
before I ran off and wrote the code to do it.

1. Do you think such a feature would be useful to a lot of people?
2. What approach would you use to implement such a feature as an
integral part of the core functionality of the Proxmox API and UI?
3. What approach would you use to implement such a feature as a
non-integral part of the API and UI?

Many thanks for your wisdom and insights.  If I can get some good
advice, I will follow it in implementing this feature, as per the
developer documentation and submission guidelines.

Your devoted fan,

John Byrd
www.johnbyrd.com


[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

                 reply	other threads:[~2025-01-07 20:28 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=mailman.90.1736281724.441.pve-devel@lists.proxmox.com \
    --to=pve-devel@lists.proxmox.com \
    --cc=johnwbyrd@gmail.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
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal