From patchwork Wed Jul 11 10:31:56 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vasilis Liaskovitis X-Patchwork-Id: 170453 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 7EFD02C0088 for ; Wed, 11 Jul 2012 22:12:17 +1000 (EST) Received: from localhost ([::1]:42073 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SouEo-0005LK-4T for incoming@patchwork.ozlabs.org; Wed, 11 Jul 2012 06:33:42 -0400 Received: from eggs.gnu.org ([208.118.235.92]:44310) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SouDa-0003T1-Gr for qemu-devel@nongnu.org; Wed, 11 Jul 2012 06:32:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SouDT-0005rQ-US for qemu-devel@nongnu.org; Wed, 11 Jul 2012 06:32:26 -0400 Received: from mail-bk0-f45.google.com ([209.85.214.45]:52569) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SouDT-0005nz-NO for qemu-devel@nongnu.org; Wed, 11 Jul 2012 06:32:19 -0400 Received: by mail-bk0-f45.google.com with SMTP id ji1so712845bkc.4 for ; Wed, 11 Jul 2012 03:32:18 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references :x-gm-message-state; bh=m7qEiL/sNl2k4m2qs08jnNGL2WutTd6+95gDua2ZU68=; b=f4Cv4T0pGtvHbcw50UxPkMOH6VGYcQKWr9/lx2HXSnoPGhitOqNS3UBXsYaDhApuYi Uc9jzS2gHwR4wbyc+HsWfpo/eovlU9dxTp8+JwVpdO2oZbtUPswC1hIshobuz3lZL33a k/ULo6tfWK2RteFAFAy8QkpbKYVsZtH1YZNljd6faXiFrHxR6suzTSW6lbGeMigvoxJ+ MH83MX4L60crAENRPA5gxe7oEoccaRgwr2Z9za12o1JTwdZk41vghpw4noYgjBdtzz4c h7dbPfkdDsf1oHbERWP/bYZT92oee2u0NokmmLSrYgjznc8x5eG/HtXJVazNe2/Jj+o5 23vg== Received: by 10.204.156.10 with SMTP id u10mr2702363bkw.11.1342002738669; Wed, 11 Jul 2012 03:32:18 -0700 (PDT) Received: from dhcp-192-168-178-175.ri.profitbricks.localdomain ([62.217.45.26]) by mx.google.com with ESMTPS id e20sm794740bkv.10.2012.07.11.03.32.18 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 11 Jul 2012 03:32:18 -0700 (PDT) From: Vasilis Liaskovitis To: qemu-devel@nongnu.org, kvm@vger.kernel.org, seabios@seabios.org Date: Wed, 11 Jul 2012 12:31:56 +0200 Message-Id: <1342002726-18258-12-git-send-email-vasilis.liaskovitis@profitbricks.com> X-Mailer: git-send-email 1.7.9 In-Reply-To: <1342002726-18258-1-git-send-email-vasilis.liaskovitis@profitbricks.com> References: <1342002726-18258-1-git-send-email-vasilis.liaskovitis@profitbricks.com> X-Gm-Message-State: ALoCoQn0EhVbn3IDlt3HgEK2ivAKfP5V8CaSNtSYkmpIs0hvOQPXITLZ/QmMAGqrTXfeaakvRHFo X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.214.45 Cc: gleb@redhat.com, Vasilis Liaskovitis , kevin@koconnor.net, avi@redhat.com, anthony@codemonkey.ws, imammedo@redhat.com Subject: [Qemu-devel] [RFC PATCH v2 11/21] Implement dimm_add and dimm_del hmp/qmp commands X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Hot-add hmp syntax: dimm_add dimmid Hot-remove hmp syntax: dimm_del dimmid Respective qmp commands are "dimm-add", "dimm-del". Signed-off-by: Vasilis Liaskovitis --- hmp-commands.hx | 32 ++++++++++++++++++++++++++++++++ monitor.c | 11 +++++++++++ monitor.h | 3 +++ qmp-commands.hx | 39 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 85 insertions(+), 0 deletions(-) diff --git a/hmp-commands.hx b/hmp-commands.hx index f5d9d91..012c150 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -618,6 +618,38 @@ Add device. ETEXI { + .name = "dimm_del", + .args_type = "id:s", + .params = "id", + .help = "hot-remove memory (dimm device)", + .user_print = monitor_user_noop, + .mhandler.cmd_new = do_dimm_del, + }, + +STEXI +@item dimm_del @var{config} +@findex dimm_del + +Hot-remove dimm. +ETEXI + + { + .name = "dimm_add", + .args_type = "id:s", + .params = "id", + .help = "hot-add memory (dimm device)", + .user_print = monitor_user_noop, + .mhandler.cmd_new = do_dimm_add, + }, + +STEXI +@item dimm_add @var{config} +@findex dimm_add + +Hot-add dimm. +ETEXI + + { .name = "device_del", .args_type = "id:s", .params = "device", diff --git a/monitor.c b/monitor.c index f6107ba..d3d95a6 100644 --- a/monitor.c +++ b/monitor.c @@ -67,6 +67,7 @@ #include "qmp-commands.h" #include "hmp.h" #include "qemu-thread.h" +#include "hw/dimm.h" /* for pic/irq_info */ #if defined(TARGET_SPARC) @@ -4813,3 +4814,13 @@ int monitor_read_block_device_key(Monitor *mon, const char *device, return monitor_read_bdrv_key_start(mon, bs, completion_cb, opaque); } + +int do_dimm_add(Monitor *mon, const QDict *qdict, QObject **ret_data) +{ + return dimm_do(mon, qdict, true); +} + +int do_dimm_del(Monitor *mon, const QDict *qdict, QObject **ret_data) +{ + return dimm_do(mon, qdict, false); +} diff --git a/monitor.h b/monitor.h index 5f4de1b..afdd721 100644 --- a/monitor.h +++ b/monitor.h @@ -86,4 +86,7 @@ int qmp_qom_set(Monitor *mon, const QDict *qdict, QObject **ret); int qmp_qom_get(Monitor *mon, const QDict *qdict, QObject **ret); +int do_dimm_add(Monitor *mon, const QDict *qdict, QObject **ret_data); +int do_dimm_del(Monitor *mon, const QDict *qdict, QObject **ret_data); + #endif /* !MONITOR_H */ diff --git a/qmp-commands.hx b/qmp-commands.hx index 2e1a38e..7efd628 100644 --- a/qmp-commands.hx +++ b/qmp-commands.hx @@ -2209,3 +2209,42 @@ EQMP .args_type = "implements:s?,abstract:b?", .mhandler.cmd_new = qmp_marshal_input_qom_list_types, }, + { + .name = "dimm-add", + .args_type = "id:s", + .mhandler.cmd_new = do_dimm_add, + }, +SQMP +dimm-add +------------- + +Hot-add memory DIMM + +Will hotplug memory DIMMs with given id. + +Example: + +-> { "execute": "dimm-add", "arguments": { "id": "dimm0" } } +<- { "return": {} } + +EQMP + + { + .name = "dimm-del", + .args_type = "id:s", + .mhandler.cmd_new = do_dimm_del, + }, +SQMP +dimm-del +------------- + +Hot-remove memory DIMM + +Will hot-unplug memory DIMMs with given id. + +Example: + +-> { "execute": "dimm-del", "arguments": { "id": "dimm0" } } +<- { "return": {} } + +EQMP