From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2E57EC433E2 for ; Wed, 16 Sep 2020 16:52:33 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A6B8F221F1 for ; Wed, 16 Sep 2020 16:52:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="XSVDRPgx" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A6B8F221F1 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:35180 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kIafW-0008Na-LF for qemu-devel@archiver.kernel.org; Wed, 16 Sep 2020 12:52:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59742) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kIaax-0002w8-Ts for qemu-devel@nongnu.org; Wed, 16 Sep 2020 12:47:48 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:43057) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kIaav-0004LV-RK for qemu-devel@nongnu.org; Wed, 16 Sep 2020 12:47:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600274864; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=sFzqHOtUwQwBJVf9FEMjNAH01pbNOFmOmPPMzHmrcKY=; b=XSVDRPgx6HWDE8dyC5S1JC9LqP0/1hUWozTDGTfk0wF2+Vj4vn1wxbN2URGHEVEZ8JOXXy T3qgFuFpQu+zWRkSQeLYamoHCNWXpB0Z0ki0+z5J32/yFdjouuX94ZOh9XUmARR/axhQH8 ZHW8UGFu/QIeDtnZ/WYZ5uJGWMBMfj8= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-536-2akhj_LLN-SDRFZFL9hQZg-1; Wed, 16 Sep 2020 12:47:43 -0400 X-MC-Unique: 2akhj_LLN-SDRFZFL9hQZg-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 43BD2873116 for ; Wed, 16 Sep 2020 16:47:42 +0000 (UTC) Received: from harajuku.usersys.redhat.com (unknown [10.40.195.7]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 511A4702E7; Wed, 16 Sep 2020 16:47:37 +0000 (UTC) Message-ID: Subject: [RFC DOCUMENT 03/12] kubevirt-and-kvm: Add Hotplug page From: Andrea Bolognani To: libvir-list@redhat.com, qemu-devel@nongnu.org Date: Wed, 16 Sep 2020 18:47:34 +0200 In-Reply-To: References: User-Agent: Evolution 3.36.5 (3.36.5-1.fc32) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=abologna@redhat.com X-Mimecast-Spam-Score: 0.001 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=63.128.21.124; envelope-from=abologna@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/16 02:35:56 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: vromanso@redhat.com, rmohr@redhat.com, crobinso@redhat.com Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" https://gitlab.com/abologna/kubevirt-and-kvm/-/blob/master/Hotplug.md # Hotplug In Kubernetes, pods are defined to be immutable, so it's not possible to perform hotplug of devices in the same way as with the traditional virtualization stack. This limitation is a result of KubeVirt's guiding principle of integrating with Kubernetes as much as possible and making VMs appear the same as containers from the user's point of view. There have been several attempts at lifting this restriction in Kubernetes over the years, but they have all been unsuccessful so far. ## Existing hotplug support When working with containers, changing the amount of resources associated with a pod will result in it being destroyed and a new pod with the updated resource allocation being created in its place. This works fine for containers, which are designed to be clonable and disposable, but when it comes to VMs they usually can't be destroyed on a whim and running multiple instances in parallel is generally not wise even when possible. ## Possible workarounds Until a proper hotplug API makes its way into Kubernetes, one possible way to implement hotplug could be to perform migration to a container compliant with the new allocation request, and only then perform the QEMU-level hotplug operation.