From patchwork Tue Mar 24 10:06:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ani Sinha X-Patchwork-Id: 1260549 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=nutanix.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=nutanix.com header.i=@nutanix.com header.a=rsa-sha256 header.s=proofpoint20171006 header.b=pZRKaeeE; dkim-atps=neutral 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 ozlabs.org (Postfix) with ESMTPS id 48mn4W66r3z9sNg for ; Tue, 24 Mar 2020 21:07:53 +1100 (AEDT) Received: from localhost ([::1]:45352 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jGgTO-00028C-Nu for incoming@patchwork.ozlabs.org; Tue, 24 Mar 2020 06:07:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49764) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jGgRn-0000Mw-09 for qemu-devel@nongnu.org; Tue, 24 Mar 2020 06:06:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jGgRj-0002E1-Si for qemu-devel@nongnu.org; Tue, 24 Mar 2020 06:06:10 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]:21720) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jGgRi-0002Ch-LT for qemu-devel@nongnu.org; Tue, 24 Mar 2020 06:06:07 -0400 Received: from pps.filterd (m0127843.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 02O9vbnE003002; Tue, 24 Mar 2020 03:06:03 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h=from : to : cc : subject : date : message-id : content-type : mime-version; s=proofpoint20171006; bh=doy13jONEA4WMrd7LOzXsH6f/wVNP8MuwLMagnCCaL8=; b=pZRKaeeEM01PUBCWTo+rXv32tBtg+8qfD0LbYuKNMHaYXmXlYvDi3Uu8J6ogXdcu0AYm TUtg9SEWXB5yxQdklS0DeMPFKzJIJsny6MLmP5bn0+lHuiUsJ3mAlAe9fjx5aqfKmbMT J+Wx3EJU/k/1osvuD9Au2dNaLf/ejpiPxvqU8QpLjh5NrL+oB/gOCVvtHri1WcPz5gnL vAEJsqjIxaobDFSBMzH1Guo/NUiznGr2ufi5w6tgBaL/0CVpwtiktWouKAWXmLpVVePF 4BPULNhMzt8bDQVre1nZqBUkmYTOpwUhXmM/QxJv0mY8GyDH9Nh+XUhw20k7GlSyvL5r NA== Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2174.outbound.protection.outlook.com [104.47.56.174]) by mx0b-002c1b01.pphosted.com with ESMTP id 2ywh1gwg7q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 24 Mar 2020 03:06:02 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f8kryUvkGQxiRP3EkT5fyMrL0o4FP+QX6cXI1CiNmdwT0RuCnvZspFeYwgUDpWk7mVdtsgNkktDiCVgDPkTxxf+dZOhbh7kdm+nPhN3TGTmdkIL+k1/Uz4Oajrq+FcUcGHgxy1A+FBYm9Rm9k4/RaAJCBtEpqX0vbyz8rYXZeH/3Td5K1UzDHXAZ4dkn0tjsPh9TD+e69v+O/t0ijhxb7eV29mkfLZNr51PvBQsYkoUis4vLSvvEfw00UMh6Ya6CrdPE/w0JMrvqba7xqa30N70sLEFFKCTkRLQNlvISkoKE/Ove7idmRViORMvDmm/lF6cRcaEUXa+DcS9pD40ODQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=doy13jONEA4WMrd7LOzXsH6f/wVNP8MuwLMagnCCaL8=; b=FKCipiC5DeGRi/YIvnBFmF/fn/UgEf9xfZy2E1WSk/cOogL1vdQtezCmEVZ+OdBGts0icsr+JYKJOTLFTYXLkSdN7iY7q+obfNxBG4DSewpOK2j1umvY3CUSKm9Wa1wYt0If45kWu/sf4Fbzr32AvT3qht0PdzjGxrPoTaoVP9vNlwzP+jV2vx3qI5IT1G8yOAkR7QwGcAKsOX2zqKy8Jyxj/RWVV1y6qcwhmGpSQKmiFhNWV7oMYUrkKPfXE382zzhTweeqYkpHWYmH6tay7fc+IuP15E251tZDa66xGz4POgHb12xVV88GkQfeyN+DYUC2kQ7Oc9rQ7sC6JcwFeg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none Received: from MN2PR02MB5742.namprd02.prod.outlook.com (2603:10b6:208:10d::27) by MN2PR02MB6063.namprd02.prod.outlook.com (2603:10b6:208:1be::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.22; Tue, 24 Mar 2020 10:06:00 +0000 Received: from MN2PR02MB5742.namprd02.prod.outlook.com ([fe80::200c:b06c:d8c6:42a]) by MN2PR02MB5742.namprd02.prod.outlook.com ([fe80::200c:b06c:d8c6:42a%7]) with mapi id 15.20.2835.021; Tue, 24 Mar 2020 10:06:00 +0000 From: Ani Sinha To: "qemu-devel@nongnu.org" Subject: Hot unplug disabling on pci-pci bridge Thread-Topic: Hot unplug disabling on pci-pci bridge Thread-Index: AQHWAcPRzLYB1LM9W0WB+EBPlKu+Mg== Date: Tue, 24 Mar 2020 10:06:00 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [192.146.154.3] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 5a3c5a4d-e09b-42d3-c25a-08d7cfdaf44f x-ms-traffictypediagnostic: MN2PR02MB6063: x-microsoft-antispam-prvs: x-proofpoint-crosstenant: true x-ms-oob-tlc-oobclassifiers: OLM:3631; x-forefront-prvs: 03524FBD26 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(396003)(376002)(346002)(366004)(136003)(39860400002)(81166006)(91956017)(2616005)(81156014)(66574012)(4326008)(8676002)(6512007)(8936002)(478600001)(966005)(71200400001)(6486002)(186003)(64756008)(36756003)(4743002)(6916009)(66476007)(76116006)(6506007)(66946007)(66616009)(26005)(33656002)(861006)(21615005)(86362001)(66446008)(2906002)(66556008)(44832011)(5660300002)(316002); DIR:OUT; SFP:1102; SCL:1; SRVR:MN2PR02MB6063; H:MN2PR02MB5742.namprd02.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; received-spf: None (protection.outlook.com: nutanix.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: xy0d0Ymq3SGSQIk6mqKEeMgVyuvdbNXNxjtEdTh8eOPzUfnCfnImbvcHsZ8ZFiFi2LoPOb4Djy5z8jsAtp6p0Aywepp9oj01GIwZnRSwDBiTeBPSh66do9ACXW4BQvuWQDxMrF9YRIQv1l9157UiIRpbbBc61+pGk6sYv6zULjbC35Y2MvkYPS06i15qhBSn585m68hVj5ygZyVf4q9Z6hRe8chOk1UPmqpup7MZbZq85UxqRZQ2PQiWUxoIXfrQNfZgzIuKgWpRA0k+xE2feXv2dJ6+wJJSdnvVc6fyoUbU/pyPv8lZWEJT8G3zLMDSB1bUppLEgZRzLAUF8uaW3mZ3fCKD6FyeOkMp1/IOqYV34AWNkfkNTwHOY3cYkZWdDFLE6NTD6uYRLscgr4XPYBPeaPl6+LYFKhxMiTGYXyVk3OAXX73QAeRA0cB1lVJX+XCLkXRclHMAzXeGfIRORDBNQDll9WGhYXsPEHHNZIlmLV1Nc+Ht6CfqTnG9y6ZRUIHHGdUKEsMKSfs6bNiJUQ== x-ms-exchange-antispam-messagedata: yQOHlmqJw1naBAxFiImpjJUMEpkCF00jk21FwdRMY1E16s5O0Cx4ilgBSvDoJQ4uP16ClBw+BPsOs8mBiqqg3O4pnMHqTeEZR8oCLCtIhlUEMxAu6XRCnCzUMiGfKcboleHX+rehUpYg4Ke4qvzrMQ== x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5a3c5a4d-e09b-42d3-c25a-08d7cfdaf44f X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Mar 2020 10:06:00.3243 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: MG9yPPWx3HfsEFsmFqW67sdiReAvtrx6Pe3hlCt9RR3lsBtbzJJbfOgoAjmZUsWGcpXRtuGXI7xZN/3TyXcf4A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR02MB6063 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.645 definitions=2020-03-24_02:2020-03-23, 2020-03-24 signatures=0 X-Proofpoint-Spam-Reason: safe X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] X-Received-From: 148.163.155.12 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: Laine Stump Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Hi All : I have been playing with Qemu trying to disable hot-unplug capability for conventional PCI. I have discussed this briefly on IRC and the plan is to have an option on the pci-pci bridge that would disable SHPC and ACPI hotplug capability for all the slots on that bus. I am _not_ trying to implement a per slot capability for conventional PCI as was previously posted for PCIE slots in this patch : https://lists.gnu.org/archive/html/qemu-devel/2020-03/msg01833.html (we do not need this atm). I am following the conversations which happened few weeks back here: https://lists.gnu.org/archive/html/qemu-devel/2020-02/msg00985.html To that end, I have been experimenting with Qemu using the patch I attach below. I have attached the virtio balloon driver with bus 1 which is attached to the pci bridge. Following is the libvirt 4.5 xml snippet which I am using:
I am using a windows guest and from the guest I can see that the balloon driver is indeed attached to the pci bridge (see attached screenshot). I still find Windows giving me an option to hot eject the pci balloon driver. So what am I doing wrong here? [cid:F2407B5B-BBB1-4A0C-91C4-975692E3BDE1] The Qemu patch I am experimenting with (which is currently a hack) is attached below. It is based off Qemu 2.12 and not the latest mainline. --- hw/pci-bridge/pci_bridge_dev.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) -- 1.9.4 diff --git a/hw/pci-bridge/pci_bridge_dev.c b/hw/pci-bridge/pci_bridge_dev.c index b2d861d..e706d49 100644 --- a/hw/pci-bridge/pci_bridge_dev.c +++ b/hw/pci-bridge/pci_bridge_dev.c @@ -58,7 +58,7 @@ static void pci_bridge_dev_realize(PCIDevice *dev, Error **errp) pci_bridge_initfn(dev, TYPE_PCI_BUS); - if (bridge_dev->flags & (1 << PCI_BRIDGE_DEV_F_SHPC_REQ)) { + if (0) {//bridge_dev->flags & (1 << PCI_BRIDGE_DEV_F_SHPC_REQ)) { dev->config[PCI_INTERRUPT_PIN] = 0x1; memory_region_init(&bridge_dev->bar, OBJECT(dev), "shpc-bar", shpc_bar_size(dev)); @@ -161,7 +161,7 @@ static Property pci_bridge_dev_properties[] = { DEFINE_PROP_ON_OFF_AUTO(PCI_BRIDGE_DEV_PROP_MSI, PCIBridgeDev, msi, ON_OFF_AUTO_AUTO), DEFINE_PROP_BIT(PCI_BRIDGE_DEV_PROP_SHPC, PCIBridgeDev, flags, - PCI_BRIDGE_DEV_F_SHPC_REQ, true), + PCI_BRIDGE_DEV_F_SHPC_REQ, false), DEFINE_PROP_END_OF_LIST(), }; @@ -181,7 +181,7 @@ static const VMStateDescription pci_bridge_dev_vmstate = { VMSTATE_END_OF_LIST() } }; - +#if 0 static void pci_bridge_dev_hotplug_cb(HotplugHandler *hotplug_dev, DeviceState *dev, Error **errp) { @@ -208,12 +208,12 @@ static void pci_bridge_dev_hot_unplug_request_cb(HotplugHandler *hotplug_dev, } shpc_device_hot_unplug_request_cb(hotplug_dev, dev, errp); } - +#endif static void pci_bridge_dev_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); - HotplugHandlerClass *hc = HOTPLUG_HANDLER_CLASS(klass); + //HotplugHandlerClass *hc = HOTPLUG_HANDLER_CLASS(klass); k->realize = pci_bridge_dev_realize; k->exit = pci_bridge_dev_exitfn; @@ -227,8 +227,8 @@ static void pci_bridge_dev_class_init(ObjectClass *klass, void *data) dc->props = pci_bridge_dev_properties; dc->vmsd = &pci_bridge_dev_vmstate; set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); - hc->plug = pci_bridge_dev_hotplug_cb; - hc->unplug_request = pci_bridge_dev_hot_unplug_request_cb; + //hc->plug = pci_bridge_dev_hotplug_cb; + //hc->unplug_request = pci_bridge_dev_hot_unplug_request_cb; } static const TypeInfo pci_bridge_dev_info = { @@ -238,7 +238,7 @@ static const TypeInfo pci_bridge_dev_info = { .class_init = pci_bridge_dev_class_init, .instance_finalize = pci_bridge_dev_instance_finalize, .interfaces = (InterfaceInfo[]) { - { TYPE_HOTPLUG_HANDLER }, + //{ TYPE_HOTPLUG_HANDLER }, { INTERFACE_CONVENTIONAL_PCI_DEVICE }, { } }