From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39489) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wu3Mk-0001jL-4y for qemu-devel@nongnu.org; Mon, 09 Jun 2014 13:28:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Wu3Md-00014j-SK for qemu-devel@nongnu.org; Mon, 09 Jun 2014 13:28:14 -0400 Received: from mx1.redhat.com ([209.132.183.28]:52053) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wu3Md-00014Q-J5 for qemu-devel@nongnu.org; Mon, 09 Jun 2014 13:28:07 -0400 From: Igor Mammedov Date: Mon, 9 Jun 2014 19:27:59 +0200 Message-Id: <1402334881-19310-1-git-send-email-imammedo@redhat.com> Subject: [Qemu-devel] [PATCH 0/2] pc: memory hotplug fixes List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: vasilis.liaskovitis@profitbricks.com, andrey@xdel.ru, mst@redhat.com Series is build on mst/pci tree that includes memory hotplug bits. patch 2/2, fixes incorrect address auto-allocation caused by wrong sorting order due to overflow in pc_dimm_addr_sort() comparator. Test-case is to build qemu with stderr trace backend and start qemu with following command line: echo mhp_pc_dimm_assigned_address > /tmp/mhp qemu-system-x86_64 -m 512,slots=62,maxmem=16G \ -object memory-backend-ram,id=m2,size=256M -object memory-backend-ram,id=m3,size=256M \ -object memory-backend-ram,id=m4,size=256M -object memory-backend-ram,id=m5,size=256M \ -object memory-backend-ram,id=m6,size=256M -object memory-backend-ram,id=m7,size=256M \ -object memory-backend-ram,id=m8,size=256M -object memory-backend-ram,id=m9,size=256M \ -object memory-backend-ram,id=m10,size=256M -object memory-backend-ram,id=m11,size=256M \ -object memory-backend-ram,id=m12,size=256M -object memory-backend-ram,id=m13,size=256M \ -device pc-dimm,id=d1,memdev=m1 -device pc-dimm,id=d2,memdev=m2 -device pc-dimm,id=d3,memdev=m3 \ -device pc-dimm,id=d4,memdev=m4 -device pc-dimm,id=d5,memdev=m5 -device pc-dimm,id=d6,memdev=m6 \ -device pc-dimm,id=d7,memdev=m7 -device pc-dimm,id=d8,memdev=m8 -device pc-dimm,id=d9,memdev=m9 \ -device pc-dimm,id=d10,memdev=m10 -device pc-dimm,id=d11,memdev=m11 -device pc-dimm,id=d12,memdev=m12 \ -device pc-dimm,id=d13,memdev=m13 \ -trace events=/tmp/mhp output with incorrect addesses would look like: mhp_pc_dimm_assigned_address 0x100000000 mhp_pc_dimm_assigned_address 0x110000000 mhp_pc_dimm_assigned_address 0x120000000 mhp_pc_dimm_assigned_address 0x130000000 mhp_pc_dimm_assigned_address 0x140000000 mhp_pc_dimm_assigned_address 0x150000000 mhp_pc_dimm_assigned_address 0x160000000 mhp_pc_dimm_assigned_address 0x170000000 mhp_pc_dimm_assigned_address 0x180000000 mhp_pc_dimm_assigned_address 0x180000000 mhp_pc_dimm_assigned_address 0x180000000 mhp_pc_dimm_assigned_address 0x180000000 mhp_pc_dimm_assigned_address 0x180000000 where last 5 dimms were assigned the same address. Igor Mammedov (2): pc: q35: acpi: report error to user on unsupported unplug request pc-dimm: fix large address sorting during auto-allocation hw/isa/lpc_ich9.c | 2 ++ hw/mem/pc-dimm.c | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) -- 1.9.3