summaryrefslogtreecommitdiffstats
path: root/monitor.c
Commit message (Collapse)AuthorAgeFilesLines
* monitor: add PPC BookE SPRsScott Wood2011-05-091-1/+70
| | | | | | | | | | Read them via KVM_GET_SREGS in kvm_arch_get_registers(), and display them in "info registers". Also get CR and PID from the existing KVM_GET_REGS. Signed-off-by: Scott Wood <scottwood@freescale.com> Signed-off-by: Alexander Graf <agraf@suse.de>
* Replace cpu_physical_memory_rw were possibleStefan Weil2011-04-121-5/+4
| | | | | | | | | | | | Using cpu_physical_memory_read, cpu_physical_memory_write and ldub_phys improves readability and allows removing some type casts. lduw_phys and ldl_phys were not used because both require aligned addresses. Therefore it is not possible to simply replace existing calls by one of these functions. Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* monitor: Remove some type casts which are no longer neededStefan Weil2011-04-121-30/+18
| | | | | | | | | All other type casts in calls of cpu_physical_memory_read are used by hardware emulations and will be fixed by separate patches. Cc: Blue Swirl <blauwirbel@gmail.com> Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* Parse SDR1 on mtspr instead of at translate timeDavid Gibson2011-04-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | On ppc machines with hash table MMUs, the special purpose register SDR1 contains both the base address of the encoded size (hashed) page tables. At present, we interpret the SDR1 value within the address translation path. But because the encodings of the size for 32-bit and 64-bit are different this makes for a confusing branch on the MMU type with a bunch of curly shifts and masks in the middle of the translate path. This patch cleans things up by moving the interpretation on SDR1 into the helper function handling the write to the register. This leaves a simple pre-sanitized base address and mask for the hash table in the CPUState structure which is easier to work with in the translation path. This makes the translation path more readable. It addresses the FIXME comment currently in the mtsdr1 helper, by validating the SDR1 value during interpretation. Finally it opens the way for emulating a pSeries-style partition where the hash table used for translation is not mapped into the guests's RAM. Signed-off-by: David Gibson <dwg@au1.ibm.com> Signed-off-by: Alexander Graf <agraf@suse.de>
* Make VNC support optionalJes Sorensen2011-03-221-12/+10
| | | | | | | Per default VNC is enabled. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* Merge remote branch 'qemu-kvm/uq/master' into stagingAnthony Liguori2011-03-211-4/+11
|\
| * Expose thread_id in info cpusJan Kiszka2011-03-161-0/+4
| | | | | | | | | | | | | | | | | | | | | | Based on patch by Glauber Costa: To allow management applications like libvirt to apply CPU affinities to the VCPU threads, expose their ID via info cpus. This patch provides the pre-existing and used interface from qemu-kvm. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
| * x86: Optionally avoid injecting AO MCEs while others are pendingJan Kiszka2011-03-151-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | Allow to tell cpu_x86_inject_mce that it should ignore Action Optional MCE events when the target VCPU is still processing another one. This will be used by KVM soon. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> CC: Huang Ying <ying.huang@intel.com> CC: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> CC: Jin Dongming <jin.dongming@np.css.fujitsu.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
| * x86: Refine error reporting of MCE injection servicesJan Kiszka2011-03-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | As this service is used by the human monitor, make sure that errors get reported to the right channel, and also raise the verbosity. This requires to move Monitor typedef in qemu-common.h to resolve the include dependency. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> CC: Huang Ying <ying.huang@intel.com> CC: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> CC: Jin Dongming <jin.dongming@np.css.fujitsu.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
| * x86: Small cleanups of MCE helpersJan Kiszka2011-03-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | Fix some code style issues, use proper headers, and align to cpu_x86 naming scheme. No functional changes. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> CC: Huang Ying <ying.huang@intel.com> CC: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> CC: Jin Dongming <jin.dongming@np.css.fujitsu.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
* | change all other clock references to use nanosecond resolution accessorsPaolo Bonzini2011-03-211-2/+2
|/ | | | | | | | | | | | | | | | | | | | | | This was done with: sed -i 's/qemu_get_clock\>/qemu_get_clock_ns/' \ $(git grep -l 'qemu_get_clock\>' ) sed -i 's/qemu_new_timer\>/qemu_new_timer_ns/' \ $(git grep -l 'qemu_new_timer\>' ) after checking that get_clock and new_timer never occur twice on the same line. There were no missed occurrences; however, even if there had been, they would have been caught by the compiler. There was exactly one false positive in qemu_run_timers: - current_time = qemu_get_clock (clock); + current_time = qemu_get_clock_ns (clock); which is of course not in this patch. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* Improve vm_stop reason declarationsJan Kiszka2011-02-141-2/+2
| | | | | | | | | | Define and use dedicated constants for vm_stop reasons, they actually have nothing to do with the EXCP_* defines used so far. At this chance, specify more detailed reasons so that VM state change handlers can evaluate them. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
* add qemu_chr_set_echoPaolo Bonzini2011-02-011-0/+1
| | | | | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* Merge remote branch 'qemu-kvm/uq/master' into stagingAnthony Liguori2011-02-011-2/+5
|\ | | | | | | | | | | aliguori: fix build with !defined(KVM_CAP_ASYNC_PF) Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
| * Add "broadcast" option for mce commandJin Dongming2011-01-211-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the following test case is injected with mce command, maybe user could not get the expected result. DATA command cpu bank status mcg_status addr misc (qemu) mce 1 1 0xbd00000000000000 0x05 0x1234 0x8c Expected Result panic type: "Fatal Machine check" That is because each mce command can only inject the given cpu and could not inject mce interrupt to other cpus. So user will get the following result: panic type: "Fatal machine check on current CPU" "broadcast" option is used for injecting dummy data into other cpus. Injecting mce with this option the expected result could be gotten. Usage: Broadcast[on] command broadcast cpu bank status mcg_status addr misc (qemu) mce -b 1 1 0xbd00000000000000 0x05 0x1234 0x8c Broadcast[off] command cpu bank status mcg_status addr misc (qemu) mce 1 1 0xbd00000000000000 0x05 0x1234 0x8c Signed-off-by: Jin Dongming <jin.dongming@np.css.fujitsu.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
* | Merge remote branch 'spice/spice.v29.pull' into stagingAnthony Liguori2011-02-011-2/+29
|\ \ | | | | | | | | | | | | Conflicts: trace-events
| * | vnc/spice: fix "never" and "now" expire_timeMarc-André Lureau2011-01-241-2/+2
| | |
| * | spice/vnc: client migration.Gerd Hoffmann2011-01-241-0/+27
| |/ | | | | | | | | | | | | | | | | | | | | | | Handle spice client migration, i.e. inform a spice client connected about the new host and connection parameters, so it can move over the connection automatically. The monitor command has a not-yet used protocol argument simliar to set_password and expire_password commands. This allows to add a simliar feature to vnc in the future. Daniel Berrange plans to work on this. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* | vnc: Fix password expiration through 'change vnc ""' (v2)Anthony Liguori2011-02-011-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 52c18be9e99dabe295321153fda7fce9f76647ac introduced a regression in the change vnc password command that changed the behavior of setting the VNC password to an empty string from disabling login to disabling authentication. This commit refactors the code to eliminate this overloaded semantics in vnc_display_password and instead introduces the vnc_display_disable_login. The monitor implementation then determines the behavior of an empty or missing string. Recently, a set_password command was added that allows both the Spice and VNC password to be set. This command has not shown up in a release yet so the behavior is not yet defined. This patch proposes that an empty password be treated as an empty password with no special handling. For specifically disabling login, I believe a new command should be introduced instead of overloading semantics. I'm not sure how Spice handles this but I would recommend that we have Spice and VNC have consistent semantics here for the 0.14.0 release. Reported-by: Neil Wilson <neil@aldur.co.uk> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> --- v1 -> v2 - Add a proper return to make sure that login is really disabled instead of relying on the VNC server to treat empty passwords specially
* | monitor: use after free in do_wav_capture()Isaku Yamahata2011-01-251-1/+2
| | | | | | | | | | | | | | use after free in do_wav_capture() on the error path. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* | Make strtosz() return int64_t instead of ssize_tJes Sorensen2011-01-241-1/+1
|/ | | | | | | | | strtosz() needs to return a 64 bit type even on 32 bit architectures. Otherwise qemu-img will fail to create disk images >= 2GB Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
* monitor: fix a typoBlue Swirl2011-01-151-2/+2
| | | | | | | | Fix usage of wrong variable, spotted by clang: /src/qemu/monitor.c:2278:36: warning: The left operand of '&' is a garbage value prot = pde & (PG_USER_MASK | PG_RW_MASK | Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Merge branch 'spice.v23.pull' of git://anongit.freedesktop.org/spice/qemuAurelien Jarno2010-12-271-0/+130
|\ | | | | | | | | | | | | | | | | | | | | * 'spice.v23.pull' of git://anongit.freedesktop.org/spice/qemu: vnc/spice: add set_passwd monitor command. vnc: support password expire vnc: auth reject cleanup spice: add qmp 'query-spice' and hmp 'info spice' commands. spice: connection events. spice: add qxl device spice: add qxl vgabios binary.
| * vnc/spice: add set_passwd monitor command.Gerd Hoffmann2010-12-091-0/+100
| | | | | | | | | | | | | | | | This patch adds new set_password and expire_password monitor commands which allows to change and expire the password for spice and vnc connections. See the doc update patch chunk for details. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
| * spice: add qmp 'query-spice' and hmp 'info spice' commands.Gerd Hoffmann2010-12-091-0/+20
| | | | | | | | | | | | | | | | The patch adds a 'query-spice' monitor command which returns informations about the spice server configuration and also a list of channel connections. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
| * spice: connection events.Gerd Hoffmann2010-12-091-0/+10
| | | | | | | | | | | | | | | | | | | | This patch adds support for connection events to spice. The events are quite simliar to the vnc events. Unlike vnc spice uses multiple tcp channels though. qemu will report every single tcp connection (aka spice channel). If you want track spice sessions only you can filter for the main channel (channel-type == 1). Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* | Sparc: implement monitor command 'info tlb'Blue Swirl2010-12-191-1/+10
| | | | | | | | | | | | Use existing dump_mmu() to implement monitor command 'info tlb'. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* | Merge remote branch 'qmp/for-anthony' into stagingAnthony Liguori2010-12-171-48/+38
|\ \
| * | QMP: Simplify monitor_json_emitter()Luiz Capitulino2010-12-061-4/+2
| | | | | | | | | | | | | | | | | | Use the ternary operator instead of an if (also fixes bad indentation). Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
| * | QMP: Drop dead codeLuiz Capitulino2010-12-061-40/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The first if/else clause in handler_audit() makes no sense for two reasons: 1. this function is now called only by QMP code, so testing if it's a QMP call makes no sense anymore 2. the else clause first asserts that there's no error in the monitor object, then it tries to free it! Just drop it. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
| * | QMP: Fix default response regressionLuiz Capitulino2010-12-061-4/+2
| |/ | | | | | | | | | | | | | | | | | | | | Commit 030db6e89d dropped do_info() usage from QMP and introduced qmp_call_query_cmd(). However, the new function doesn't emit QMP's default OK response when the handler doesn't return data. Fix that by also calling monitor_protocol_emitter() when ret_data == NULL, so that the default response is emitted. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
* | monitor: implement x86 info mem for PAE and long modesBlue Swirl2010-12-111-12/+164
| | | | | | | | | | | | | | | | | | 'info mem' didn't show correct information for PAE mode and x86_64 long mode. Fix by implementing the output for missing modes. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* | monitor: implement x86 info tlb for PAE and long modesBlue Swirl2010-12-111-11/+140
|/ | | | | | | | | | 'info tlb' didn't show correct information for PAE mode and x86_64 long mode. Implement the missing modes. Also print NX bit for PAE and long modes. Fix off-by-one error in 32 bit mode mask. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* QMP: Introduce Human Monitor passthrough commandLuiz Capitulino2010-11-171-0/+38
| | | | | | | | | This command allows QMP clients to execute HMP commands. Please, check the documentation added to the qmp-commands.hx file for additional details about the interface and its limitations. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
* Remove obsolete 'f' double parameter typeJes Sorensen2010-11-031-17/+1
| | | | | | | | 'f' double is no longer used, and we should be using floating point variables to store byte sizes. Remove it. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* Add support for 'o' octet (bytes) format as monitor parameter.Jes Sorensen2010-11-031-0/+29
| | | | | | | | Octet format relies on strtosz which supports K/k, M/m, G/g, T/t suffixes and unit support for humans, like 1.3G Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* monitor: Ignore "." and ".." when completing file name.Kusanagi Kouichi2010-10-221-0/+5
| | | | | Signed-off-by: Kusanagi Kouichi <slash@ac.auone-net.jp> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
* trace: print a warning if user tries to enable an unknown trace eventBlue Swirl2010-10-131-1/+5
| | | | | | | | | | | | There was no warning if a bad trace event name was given to 'trace-event' command, thus the user could think that the command was successful even if this was not the case. Print a warning if the user tries to enable a trace event which is not known. Acked-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Merge remote branch 'qmp/for-anthony' into stagingAnthony Liguori2010-10-051-134/+232
|\
| * Monitor: Rename the qemu-monitor.hx fileLuiz Capitulino2010-10-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | Let's be consistent and call it hmp-commands.hx, so that we have qmp-commands.hx for QMP and hmp-commands.hx for HMP. Please, note that this commit doesn't touch qemu-monitor.texi. All texi files have the qemu- prefix and I don't think it's worth changing that. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
| * QMP: Introduce qmp_call_cmd()Luiz Capitulino2010-10-011-24/+15
| | | | | | | | | | | | | | Calls a QObject handler and emits the QMP response, also drops monitor_call_handler() which is now unused. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
| * Monitor: Directly call QObject handlersLuiz Capitulino2010-10-011-1/+9
| | | | | | | | | | | | | | This avoids handle_user_command() calling monitor_call_handler(), which is currently shared with QMP. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
| * Monitor: Rename monitor_handler_is_async()Luiz Capitulino2010-10-011-5/+5
| | | | | | | | | | | | | | Let's follow the convention introduced by the previous commit and call it handler_is_async(). Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
| * Monitor: Rename monitor_handler_ported()Luiz Capitulino2010-10-011-3/+3
| | | | | | | | | | | | | | | | That name makes no sense anymore, as dispatch tables have been split, a better name is handler_is_qobject(), which really communicates the handler's type. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
| * Monitor: Drop monitor_cmd_user_only()Luiz Capitulino2010-10-011-5/+0
| | | | | | | | | | | | | | This function was only needed when QMP and HMP were sharing dispatch tables, this is no longer true so just drop it. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
| * Monitor: Drop QMP info from the qemu-monitor.hx fileLuiz Capitulino2010-10-011-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QMP has its own dispatch table and documentation file (qmp-commands.hx), we can now drop the following QMP specific info from qemu-monitor.hx: o SQMP/EQMP sections o The qmp_capabilities command o The query-commands command However, note that QObject handlers entries are not being removed. This will only happen when we introduce a proper QMP call interface. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
| * QMP: Small cleanup in handle_qmp_command()Luiz Capitulino2010-10-011-8/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QMP has its own dispatch tables, we can now drop the following checks: o 'info' command: this command doesn't exist in QMP's dispatch table, the right thing will happen when it's issued by a client (ie. command not found error) o monitor_handler_ported(): all QMP handlers are 'ported', no need to check for that o monitor_cmd_user_only(): no HMP handler will exist in QMP's dispatch tables, that's why we have split them after all :-) Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
| * QMP: Simplify do_info_commands()Luiz Capitulino2010-10-011-9/+4
| | | | | | | | | | | | | | We now iterate over QMP's dispatch tables, no need to check for QMP-only handlers anymore. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
| * QMP: Introduce query commands dispatch tableLuiz Capitulino2010-10-011-2/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | The new table is a copy of HMP's table, containing only QObject handlers. In the near future HMP will be making QMP calls and then we will be able to drop QObject handlers from HMP's table. From now on, QMP and HMP have different query command dispatch tables. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
| * QMP: Introduce command dispatch tableLuiz Capitulino2010-10-011-2/+9
| | | | | | | | | | | | | | | | | | | | Also update QMP functions to use it. The table is generated from the qmp-commands.hx file. From now on, QMP and HMP have different command dispatch tables. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
OpenPOWER on IntegriCloud