From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47744) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zqytw-0005ku-Fa for qemu-devel@nongnu.org; Tue, 27 Oct 2015 03:42:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zqytt-0004Az-8z for qemu-devel@nongnu.org; Tue, 27 Oct 2015 03:42:36 -0400 Received: from mx1.redhat.com ([209.132.183.28]:54086) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zqytt-0004Av-38 for qemu-devel@nongnu.org; Tue, 27 Oct 2015 03:42:33 -0400 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (Postfix) with ESMTPS id C47BC8E221 for ; Tue, 27 Oct 2015 07:42:32 +0000 (UTC) Date: Tue, 27 Oct 2015 08:42:31 +0100 From: Igor Mammedov Message-ID: <20151027084231.3200260a@nial.brq.redhat.com> In-Reply-To: <1445604926-65453-1-git-send-email-imammedo@redhat.com> References: <1445604926-65453-1-git-send-email-imammedo@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] pc: memhp: do not emit inserting event for coldplugged DIMMs List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: mst@redhat.com On Fri, 23 Oct 2015 14:55:26 +0200 Igor Mammedov wrote: > currently acpi_memory_plug_cb() sets is_inserting for > cold- and hot-plugged DIMMs as result ASL MHPD.MSCN() > method issues device check even for every coldplugged > DIMM. There isn't much harm in it but if we try to > unplug such DIMM, OSPM will issue device check > intstead of device eject event. So OSPM won't eject > memory module as expected and it will try to eject it > only when another memory device is hot-(un)plugged. > > As a fix do not set 'is_inserting' event and do not > issue SCI for cold-plugged DIMMs as they are > enumerated and activated by OSPM during guest's boot. > > Signed-off-by: Igor Mammedov ping > --- > hw/acpi/memory_hotplug.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/hw/acpi/memory_hotplug.c b/hw/acpi/memory_hotplug.c > index 2ff0d5c..ce428df 100644 > --- a/hw/acpi/memory_hotplug.c > +++ b/hw/acpi/memory_hotplug.c > @@ -238,10 +238,12 @@ void acpi_memory_plug_cb(ACPIREGS *ar, qemu_irq irq, MemHotplugState *mem_st, > > mdev->dimm = dev; > mdev->is_enabled = true; > - mdev->is_inserting = true; > + if (dev->hotplugged) { > + mdev->is_inserting = true; > > - /* do ACPI magic */ > - acpi_send_gpe_event(ar, irq, ACPI_MEMORY_HOTPLUG_STATUS); > + /* do ACPI magic */ > + acpi_send_gpe_event(ar, irq, ACPI_MEMORY_HOTPLUG_STATUS); > + } > return; > } >