From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47587) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZA05k-0001pF-Lr for qemu-devel@nongnu.org; Tue, 30 Jun 2015 14:17:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZA05f-0001n2-Hy for qemu-devel@nongnu.org; Tue, 30 Jun 2015 14:17:08 -0400 Received: from mail-yk0-x231.google.com ([2607:f8b0:4002:c07::231]:33131) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZA05f-0001mY-B8 for qemu-devel@nongnu.org; Tue, 30 Jun 2015 14:17:03 -0400 Received: by ykdv136 with SMTP id v136so16789260ykd.0 for ; Tue, 30 Jun 2015 11:17:01 -0700 (PDT) From: Don Slutz Message-ID: <5592DD1A.2010804@Gmail.com> Date: Tue, 30 Jun 2015 14:16:58 -0400 MIME-Version: 1.0 References: <1435102773-3498-1-git-send-email-Don.Slutz@Gmail.com> In-Reply-To: <1435102773-3498-1-git-send-email-Don.Slutz@Gmail.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [ping][PATCH v8 0/8] Add limited support of VMware's hyper-call rpc List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Markus Armbruster , Luiz Capitulino , Anthony Liguori , Paolo Bonzini , =?windows-1252?Q?Andreas_F=E4rber?= , Richard Henderson Ping On 06/23/15 19:39, Don Slutz wrote: > Changes v7 to v8: > Rebase to master > > Drop patch #1 since commit 965eb2fcdfe919ecced6c34803535ad32dc1249c > fixed this. > > Paolo Bonzini > Ok to pull v7 1,2,3, and 9. > Added Acked-by: Paolo Bonzini > Moved v7 #9 to v8 #3 > > Eric Blake > s/it's/its/ > Done > No space after **. > Done > Don't know if any static checkers will complain about the break being > dead code. > Dropped break since this is the last case. > Would it help if struct keyValue declared 'const char *key_data'? > It does, so switch to this. > This cast is spurious (foreach_dynamic_vmport_rpc_device) > Dropped all casts using this routine. > Do you want g_malloc0, or g_new0? > Switched to g_new0. > Adjust /* FIXME should check for... > Added "Or cause an error to be raised." > > Michael S. Tsirkin > To me it looks like this will break cross-version migration > Dropped code to always add the new device. > Add code to check for vmport enabled. > Quite possibly but personally I'm confused. > No partial PULL request sent. > > > Changes v6 to v7: > Rebase to master > > Fixed a bug caused by commit c3c1bb99d1c11978d9ce94d1bdcf0705378c1459 now patch #1 > > Added patch #2 to switch to using trace in vm,port.c. > > Delay call on g_strndup till after key length check. > > Switched e-mail address in MAINTAINERS. > > Eric Blake > Why not assert(find) instead of leaving it to the comment? > Switch to assert. > Is it worth marking arg const here and in the VMPortRpcFind struct > Switch to const. > I'd rather abort() if someone compiled with -NDEBUG > Done. > Still mismatches on ---- line length (several sites). > Done > > > Changes v5 to v6: > > Rebase to master > > Eric Blake > Returning a non-dictionary is not extensible. > Added new type VmportGuestInfoValue. > s/VmportGuestInfo/VmportGuestInfoKey/ > s/type/struct/ > Issues with examples > Fixed. > > > Changes v4 to v5: > > Paolo Bonzini > What is VMPORT_SHORT about? > Dropped this. > Why not use a bool in CPUX86State? > Took his sugestion and moved to a bool in X86CPU. > > Changes v3 to v4: > > Paolo Bonzini on "vmort_rpc: Add QMP access to vmport_rpc" > Does this compile on non-x86 targets? > Nope. Fixed. > > Changes v2 to v3: > > s/2.3/2.4 > > Changes v1 to v2: > > Added live migration code. > Adjust data structures for migration. > Switch to GHashTable. > > Eric Blake > s/spawened/spawned/ > Done > s/traceing/tracing/ > Done > Change "error_set(errp, ERROR_CLASS_GENERIC_ERROR, " to > "error_setg(errp, " > Done > Why two commands (inject-vmport-reboot, inject-vmport-halt)? > Switched to inject-vmport-action. > format=base64 "bug" statements. > Dropped. > > Much more on format=base64: > > If there is a bug it is in GLIB. However the Glib reference manual > refers to RFC 1421 and RFC 2045 and MIME encoding. Based on all > that (which seems to match: > > http://en.wikipedia.org/wiki/Base64 > > ) MIME states that all characters outside the (base64) alphabet are > to be ignored. Testing shows that g_base64_decode() does this. > > The confusion is that most non-MIME uses reject a base64 string that > contain characters outside the alphabet. I was just following the > other uses of base64 in this file. > > DataFormat refers to RFC 3548, which has the info: > > " > Implementations MUST reject the encoding if it contains > characters outside the base alphabet when interpreting base > encoded data, unless the specification referring to this document > explicitly states otherwise. Such specifications may, as MIME > does, instead state that characters outside the base encoding > alphabet should simply be ignored when interpreting data ("be > liberal in what you accept"). > " > > So with GLIB going the MIME way, I do not think this is a QEMU bug > (you could consider this a GLIB bug, but the document I found says > that GLIB goes the MIME way and so does not reject anything). > > --- > > > The support included is enough to allow VMware tools to install in a > guest and provide guestinfo support. guestinfo support is provided > by what is known as VMware RPC support. > > One of the better on-line references is: > > https://sites.google.com/site/chitchatvmback/backdoor > > As a place to get more accurate information by studying: > > http://open-vm-tools.sourceforge.net/ > > With vmware tools installed, you can do: > > ------------------------------------------------------------------------------- > Last login: Fri Jan 30 16:03:08 2015 > [root@C63-min-tools ~]# vmtoolsd --cmd "info-get guestinfo.joejoel" > No value found > [root@C63-min-tools ~]# vmtoolsd --cmd "info-set guestinfo.joejoel bar" > > [root@C63-min-tools ~]# vmtoolsd --cmd "info-get guestinfo.joejoel" > bar > [root@C63-min-tools ~]# > ------------------------------------------------------------------------------- > > to access guest info. QMP access is also provided. > > The live migration code is still in progress. > > Don Slutz (8): > vmport: Switch to trace > vmport: Fix vmport_cmd_ram_size > MAINTAINERS: add VMware port > vmport_rpc: Add the object vmport_rpc > vmport_rpc: Add limited support of VMware's hyper-call rpc > vmport_rpc: Add QMP access to vmport_rpc object. > vmport_rpc: Add migration > vmport: Add VMware all ring hack > > MAINTAINERS | 7 + > hw/i386/pc.c | 26 +- > hw/i386/pc_piix.c | 2 +- > hw/i386/pc_q35.c | 2 +- > hw/misc/Makefile.objs | 1 + > hw/misc/vmport.c | 16 +- > hw/misc/vmport_rpc.c | 1461 ++++++++++++++++++++++++++++++++++++++++++++++ > include/hw/i386/pc.h | 8 +- > monitor.c | 24 + > qapi-schema.json | 101 ++++ > qmp-commands.hx | 119 ++++ > target-i386/cpu-qom.h | 3 + > target-i386/seg_helper.c | 9 + > trace-events | 27 + > 14 files changed, 1793 insertions(+), 13 deletions(-) > create mode 100644 hw/misc/vmport_rpc.c >