aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-03-10Merge remote-tracking branch 'remotes/kraxel/tags/pull-ui-20160309-1' into ↵Peter Maydell
staging add linux evdev support, vnc and console fixes. # gpg: Signature made Wed 09 Mar 2016 09:02:47 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" * remotes/kraxel/tags/pull-ui-20160309-1: ui/console: add escape sequence \e[5, 6n input-linux: add switch to enable auto-repeat events input-linux: add option to toggle grab on all devices input: linux evdev support vnc: send cursor when a new client is connecting Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-03-09ui/console: add escape sequence \e[5, 6nRen Kimura
Add support of escape sequence "\e[5n" and "\e[6n" to console. "\e[5n" reports status of console and it always succeed in virtual console. "\e[6n" reports now cursor position in console. Signed-off-by: Ren Kimura <rkx1209dev@gmail.com> Message-id: 1457466681-7714-2-git-send-email-rkx1209dev@gmail.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-03-09Merge remote-tracking branch 'remotes/thibault/tags/samuel-thibault' into ↵Peter Maydell
staging Add Samuel Thibault as slirp maintainer # gpg: Signature made Tue 08 Mar 2016 20:43:01 GMT using RSA key ID FB6B2F1D # gpg: Good signature from "Samuel Thibault <samuel.thibault@gnu.org>" # gpg: aka "Samuel Thibault <sthibault@debian.org>" # gpg: aka "Samuel Thibault <samuel.thibault@inria.fr>" # gpg: aka "Samuel Thibault <samuel.thibault@labri.fr>" # gpg: aka "Samuel Thibault <samuel.thibault@ens-lyon.org>" # gpg: WARNING: This key is not certified with sufficiently trusted signatures! # gpg: It is not certain that the signature belongs to the owner. # Primary key fingerprint: 900C B024 B679 31D4 0F82 304B D017 8C76 7D06 9EE6 # Subkey fingerprint: F632 74CD C630 0873 CB3D 29D9 E3E5 1CE8 FB6B 2F1D * remotes/thibault/tags/samuel-thibault: MAINTAINERS: Add Samuel Thibault as slirp maintainer Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-03-09Merge remote-tracking branch ↵Peter Maydell
'remotes/amit-migration/tags/migration-for-2.6-6' into staging migration: * add avx2 instruction optimization, speeds up zero-page checking on compatible architectures and compilers (gcc 4.9+) * add additional postcopy stats to 'info migrate' output # gpg: Signature made Tue 08 Mar 2016 11:29:48 GMT using RSA key ID 854083B6 # gpg: Good signature from "Amit Shah <amit@amitshah.net>" # gpg: aka "Amit Shah <amit@kernel.org>" # gpg: aka "Amit Shah <amitshah@gmx.net>" * remotes/amit-migration/tags/migration-for-2.6-6: cutils: add avx2 instruction optimization configure: detect ifunc and avx2 attribute Postcopy: Fix sync count in info migrate Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-03-09Merge remote-tracking branch 'remotes/kraxel/tags/pull-fw-cfg-20160308-1' ↵Peter Maydell
into staging acpi: add fw_cfg device node to dsdt # gpg: Signature made Tue 08 Mar 2016 11:15:42 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" * remotes/kraxel/tags/pull-fw-cfg-20160308-1: tests: update acpi test data fw_cfg: document ACPI device node information acpi: arm: add fw_cfg device node to dsdt acpi: pc: add fw_cfg device node to dsdt pc: fw_cfg: move ioport base constant to pc.h fw_cfg: expose control register size in fw_cfg.h Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-03-09Merge remote-tracking branch 'remotes/amit-virtio-rng/tags/rng-for-2.6-2' ↵Peter Maydell
into staging rng: use simpleq instead of gslist # gpg: Signature made Tue 08 Mar 2016 10:51:23 GMT using RSA key ID 854083B6 # gpg: Good signature from "Amit Shah <amit@amitshah.net>" # gpg: aka "Amit Shah <amit@kernel.org>" # gpg: aka "Amit Shah <amitshah@gmx.net>" * remotes/amit-virtio-rng/tags/rng-for-2.6-2: rng: switch request queue to QSIMPLEQ Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-03-08MAINTAINERS: Add Samuel Thibault as slirp maintainerSamuel Thibault
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Acked-by: Jan Kiszka <jan.kiszka@siemens.com>
2016-03-08cutils: add avx2 instruction optimizationLiang Li
buffer_find_nonzero_offset() is a hot function during live migration. Now it use SSE2 instructions for optimization. For platform supports AVX2 instructions, use AVX2 instructions for optimization can help to improve the performance of buffer_find_nonzero_offset() about 30% comparing to SSE2. Live migration can be faster with this optimization, the test result shows that for an 8GiB RAM idle guest just boots, this patch can help to shorten the total live migration time about 6%. This patch use the ifunc mechanism to select the proper function when running, for platform supports AVX2, execute the AVX2 instructions, else, execute the original instructions. Signed-off-by: Liang Li <liang.z.li@intel.com> Suggested-by: Paolo Bonzini <pbonzini@redhat.com> Suggested-by: Richard Henderson <rth@twiddle.net> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <1457416397-26671-3-git-send-email-liang.z.li@intel.com> Signed-off-by: Amit Shah <amit.shah@redhat.com>
2016-03-08configure: detect ifunc and avx2 attributeLiang Li
Detect if the compiler can support the ifun and avx2, if so, set CONFIG_AVX2_OPT which will be used to turn on the avx2 instruction optimization. Suggested-by: Paolo Bonzini <pbonzini@redhat.com> Suggested-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Liang Li <liang.z.li@intel.com> Message-Id: <1457416397-26671-2-git-send-email-liang.z.li@intel.com> Signed-off-by: Amit Shah <amit.shah@redhat.com>
2016-03-08Postcopy: Fix sync count in info migrateDr. David Alan Gilbert
I'd missed the sync count off in the postcopy case. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: zhanghailiang <zhang.zhanghailiang@huawei.com> Message-id: 1456394631-18010-1-git-send-email-dgilbert@redhat.com Message-Id: <1456394631-18010-1-git-send-email-dgilbert@redhat.com> Signed-off-by: Amit Shah <amit.shah@redhat.com>
2016-03-08input-linux: add switch to enable auto-repeat eventsGerd Hoffmann
Enable with "-input-linux /dev/input/${device},repeat=on". Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 1457087116-4379-4-git-send-email-kraxel@redhat.com
2016-03-08input-linux: add option to toggle grab on all devicesGerd Hoffmann
Maintain a list of all input devices. Add an option to make grab work across all devices (so toggling grab on the keybard can switch over the mouse too). Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 1457087116-4379-3-git-send-email-kraxel@redhat.com
2016-03-08input: linux evdev supportGerd Hoffmann
This patch adds support for reading input events directly from linux evdev devices and forward them to the guest. Unlike virtio-input-host which simply passes on all events to the guest without looking at them this will interpret the events and feed them into the qemu input subsystem. Therefore this is limited to what the qemu input subsystem and the emulated input devices are able to handle. Also there is no support for absolute coordinates (tablet/touchscreen). So we are talking here about basic mouse and keyboard support. The advantage is that it'll work without virtio-input drivers in the guest, the events are delivered to the usual ps/2 or usb input devices (depending on what the machine happens to have). And for keyboards qemu is able to switch the keyboard between guest and host on hotkey. The hotkey is hard-coded for now (both control keys), initialy the guest owns the keyboard. Probably most useful when assigning vga devices with vfio and using a physical monitor instead of vnc/spice/gtk as guest display. Usage: Add '-input-linux /dev/input/event<nr>' to the qemu command line. Note that udev has rules which populate /dev/input/by-{id,path} with static names, which might be more convinient to use. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 1457087116-4379-2-git-send-email-kraxel@redhat.com
2016-03-08tests: update acpi test dataGerd Hoffmann
using tests/acpi-test-data/rebuild-expected-aml.sh Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-03-08fw_cfg: document ACPI device node informationGabriel L. Somlo
Signed-off-by: Gabriel Somlo <somlo@cmu.edu> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Marc Marí <markmb@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Message-id: 1455906029-25565-6-git-send-email-somlo@cmu.edu Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-03-08acpi: arm: add fw_cfg device node to dsdtGabriel L. Somlo
Add a fw_cfg device node to the ACPI DSDT. This is mostly informational, as the authoritative fw_cfg MMIO region(s) are listed in the Device Tree. However, since we are building ACPI tables, we might as well be thorough while at it... Signed-off-by: Gabriel Somlo <somlo@cmu.edu> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Tested-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Marc Marí <markmb@redhat.com> Reviewed-by: Shannon Zhao <shannon.zhao@linaro.org> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Message-id: 1455906029-25565-5-git-send-email-somlo@cmu.edu Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-03-08acpi: pc: add fw_cfg device node to dsdtGabriel L. Somlo
Add a fw_cfg device node to the ACPI DSDT. While the guest-side firmware can't utilize this information (since it has to access the hard-coded fw_cfg device to extract ACPI tables to begin with), having fw_cfg listed in ACPI will help the guest kernel keep a more accurate inventory of in-use IO port regions. Signed-off-by: Gabriel Somlo <somlo@cmu.edu> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Marc Marí <markmb@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Message-id: 1455906029-25565-4-git-send-email-somlo@cmu.edu Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-03-08pc: fw_cfg: move ioport base constant to pc.hGabriel L. Somlo
Move BIOS_CFG_IOPORT define from pc.c to pc.h, and rename it to FW_CFG_IO_BASE. Cc: Marc Marí <markmb@redhat.com> Signed-off-by: Gabriel Somlo <somlo@cmu.edu> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Marc Marí <markmb@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Message-id: 1455906029-25565-3-git-send-email-somlo@cmu.edu Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-03-08Merge remote-tracking branch 'remotes/jasowang/tags/net-pull-request' into ↵Peter Maydell
staging # gpg: Signature made Tue 08 Mar 2016 07:46:08 GMT using RSA key ID 398D6211 # gpg: Good signature from "Jason Wang (Jason Wang on RedHat) <jasowang@redhat.com>" # gpg: WARNING: This key is not certified with sufficiently trusted signatures! # gpg: It is not certain that the signature belongs to the owner. # Primary key fingerprint: 215D 46F4 8246 689E C77F 3562 EF04 965B 398D 6211 * remotes/jasowang/tags/net-pull-request: net: check packet payload length filter-buffer: Add status_changed callback processing filter: Add 'status' property for filter object rocker: allow user to specify rocker world by property rocker: add name field into WorldOps ale let world specify its name rocker: return -ENOMEM in case of some world alloc fails rocker: forbid to change world type net: netmap: probe netmap interface for virtio-net header net: simplify net_init_tap_one logic MAINTAINERS: Add entries for include/net/ files net: filter: correctly remove filter from the list during finalization net: ne2000: check ring buffer control registers Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-03-08fw_cfg: expose control register size in fw_cfg.hGabriel L. Somlo
Expose the size of the control register (FW_CFG_CTL_SIZE) in fw_cfg.h. Add comment to fw_cfg_io_realize() pointing out that since the 8-bit data register is always subsumed by the 16-bit control register in the port I/O case, we use the control register width as the *total* width of the (classic, non-DMA) port I/O region reserved for the device. Cc: Marc Marí <markmb@redhat.com> Signed-off-by: Gabriel Somlo <somlo@cmu.edu> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Marc Marí <markmb@redhat.com> Message-id: 1455906029-25565-2-git-send-email-somlo@cmu.edu Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-03-08vnc: send cursor when a new client is connectingFrediano Ziglio
If you have hardware cursor and you are reconnecting the VNC client you need to send the cursor. Failing to do so make the cursor invisible till is changed. Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Message-id: 1456929142-14033-1-git-send-email-fziglio@redhat.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-03-08net: check packet payload lengthPrasad J Pandit
While computing IP checksum, 'net_checksum_calculate' reads payload length from the packet. It could exceed the given 'data' buffer size. Add a check to avoid it. Reported-by: Liu Ling <liuling-it@360.cn> Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org> Signed-off-by: Jason Wang <jasowang@redhat.com>
2016-03-08filter-buffer: Add status_changed callback processingzhanghailiang
While the status of filter-buffer changing from 'on' to 'off', it need to release all the buffered packets, and delete the related timer, while switch from 'off' to 'on', it need to resume the release packets timer. Here, we extract the process of setup timer into a new helper, which will be used in the new status_changed callback. Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com> Cc: Jason Wang <jasowang@redhat.com> Cc: Yang Hongyang <hongyang.yang@easystack.cn> Signed-off-by: Jason Wang <jasowang@redhat.com>
2016-03-08filter: Add 'status' property for filter objectzhanghailiang
With this property, users can control if this filter is 'on' or 'off'. The default behavior for filter is 'on'. For some types of filters, they may need to react to status changing, So here, we introduced status changing callback/notifier for filter class. We will skip the disabled ('off') filter when delivering packets in net layer. Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com> Cc: Jason Wang <jasowang@redhat.com> Cc: Yang Hongyang <hongyang.yang@easystack.cn> Signed-off-by: Jason Wang <jasowang@redhat.com>
2016-03-08rocker: allow user to specify rocker world by propertyJiri Pirko
Add property to specify rocker world. All ports will be assigned to this world. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
2016-03-08rocker: add name field into WorldOps ale let world specify its nameJiri Pirko
Also use this in world_name getter function. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
2016-03-08rocker: return -ENOMEM in case of some world alloc failsJiri Pirko
Until now, 0 is returned in this error case. Fix it ro return -ENOMEM. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
2016-03-08rocker: forbid to change world typeJiri Pirko
Port to world assignment should be permitted only by qemu user. Driver should not be able to do it, so forbid that possibility. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
2016-03-08net: netmap: probe netmap interface for virtio-net headerVincenzo Maffione
Previous implementation of has_ufo, has_vnet_hdr, has_vnet_hdr_len, etc. did not really probe for virtio-net header support for the netmap interface attached to the backend. These callbacks were correct for VALE ports, but incorrect for hardware NICs, pipes, monitors, etc. This patch fixes the implementation to work properly with all kinds of netmap ports. Signed-off-by: Vincenzo Maffione <v.maffione@gmail.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
2016-03-08net: simplify net_init_tap_one logicPaolo Bonzini
net_init_tap_one receives in vhostfdname a fd name from vhostfd= or vhostfds=, or NULL if there is no vhostfd=/vhostfds=. It is simpler to just check vhostfdname, than it is to check for vhostfd= or vhostfds=. This also calms down Coverity, which otherwise thinks that monitor_fd_param could dereference a NULL vhostfdname. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
2016-03-08MAINTAINERS: Add entries for include/net/ filesThomas Huth
The include/net/ files correspond to the files in the net/ directory, thus there should be corresponding entries in the MAINTAINERS file. Signed-off-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
2016-03-08net: filter: correctly remove filter from the list during finalizationJason Wang
Qemu may crash when we want to add two filters on the same netdev but the initialization of second fails (e.g missing parameters): ./qemu-system-x86_64 -netdev user,id=un0 \ -object filter-buffer,id=f0,netdev=un0,interval=10 \ -object filter-buffer,id=f1,netdev=un0 Segmentation fault (core dumped) This is because we don't check whether or not the filter was in the list of netdev. This patch fixes this. Cc: Yang Hongyang <hongyang.yang@easystack.cn> Reviewed-by: Yang Hongyang <hongyang.yang@easystack.cn> Signed-off-by: Jason Wang <jasowang@redhat.com>
2016-03-08net: ne2000: check ring buffer control registersPrasad J Pandit
Ne2000 NIC uses ring buffer of NE2000_MEM_SIZE(49152) bytes to process network packets. Registers PSTART & PSTOP define ring buffer size & location. Setting these registers to invalid values could lead to infinite loop or OOB r/w access issues. Add check to avoid it. Reported-by: Yang Hongke <yanghongke@huawei.com> Tested-by: Yang Hongke <yanghongke@huawei.com> Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org> Signed-off-by: Jason Wang <jasowang@redhat.com>
2016-03-08rng: switch request queue to QSIMPLEQLadi Prosek
QSIMPLEQ supports appending to tail in O(1) and is intrusive so it doesn't require extra memory allocations for the bookkeeping data. Suggested-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Ladi Prosek <lprosek@redhat.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Amit Shah <amit.shah@redhat.com> Message-Id: <1457010971-24771-1-git-send-email-lprosek@redhat.com> Signed-off-by: Amit Shah <amit.shah@redhat.com>
2016-03-08Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into stagingPeter Maydell
* RAMBlock vs. MemoryRegion cleanups from Fam * mru_section optimization from Fam * memory.txt improvements from Peter and Xiaoqiang * i8257 fix from Hervé * -daemonize fix * Cleanups and small fixes from Alex, Praneith, Wei # gpg: Signature made Mon 07 Mar 2016 17:08:59 GMT using RSA key ID 78C7AE83 # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" * remotes/bonzini/tags/for-upstream: scsi-bus: Remove tape command from scsi_req_xfer kvm/irqchip: use bitmap utility for gsi tracking MAINTAINERS: Add entry for include/sysemu/kvm*.h doc/memory.txt: correct description of MemoryRegionOps fields doc/memory.txt: correct a logic error icount: possible options for sleep are on or off exec: Introduce AddressSpaceDispatch.mru_section exec: Factor out section_covers_addr exec: Pass RAMBlock pointer to qemu_ram_free memory: Drop MemoryRegion.ram_addr memory: Implement memory_region_get_ram_addr with mr->ram_block memory: Move assignment to ram_block to memory_region_init_* exec: Return RAMBlock pointer from allocating functions i8257: fix Terminal Count status log: do not log if QEMU is daemonized but without -D Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-03-07scsi-bus: Remove tape command from scsi_req_xferAlex Pyrgiotis
Remove the RECOVER_BUFFERED_DATA command from the list of commands that are handled by scsi_req_xfer(). Given that this command is tape-specific, it should be handled only by scsi_stream_req_xfer(). Signed-off-by: Alex Pyrgiotis <apyrgio@arrikto.com> Message-Id: <1457365822-22435-1-git-send-email-apyrgio@arrikto.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-03-07kvm/irqchip: use bitmap utility for gsi trackingWei Yang
By using utilities in bitops and bitmap, this patch tries to make it more friendly to audience. No functional change. Signed-off-by: Wei Yang <richard.weiyang@gmail.com> Message-Id: <1457229445-25954-1-git-send-email-richard.weiyang@gmail.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-03-07MAINTAINERS: Add entry for include/sysemu/kvm*.hThomas Huth
The include/sysemu/kvm*.h header files should be part of the overall KVM section. Signed-off-by: Thomas Huth <thuth@redhat.com> Message-Id: <1456403605-26587-1-git-send-email-thuth@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-03-07doc/memory.txt: correct description of MemoryRegionOps fieldsPeter Maydell
Probably what happened was that when the API was being designed it started off with an 'aligned' field, and then later the field name and semantics were changed but the docs weren't updated to match. Similarly, cpu_register_io_memory() does not exist anymore, so clarify the documentation for .old_mmio. Reported-by: Cao jin <caoj.fnst@cn.fujitsu.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-03-07doc/memory.txt: correct a logic errorxiaoqiang zhao
In the regions overlap example, region B has a higher priority thus should has a larger priority number than C. Signed-off-by: xiaoqiang zhao <zxq_yx_007@163.com> Message-Id: <1456476051-15121-1-git-send-email-zxq_yx_007@163.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-03-07icount: possible options for sleep are on or offPranith Kumar
icount sleep takes on or off as options. A few places mention sleep=no which is not accepted. This patch corrects them. Signed-off-by: Pranith Kumar <bobby.prani@gmail.com> Message-Id: <1456499811-16819-1-git-send-email-bobby.prani@gmail.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-03-07exec: Introduce AddressSpaceDispatch.mru_sectionFam Zheng
Under heavy workloads the lookup will likely end up with the same MemoryRegionSection from last time. Using a pointer to cache the result, like ram_list.mru_block, significantly reduces cost of address_space_translate. During address space topology update, as->dispatch will be reallocated so the pointer is invalidated automatically. Perf reports a visible drop on the cpu usage, because phys_page_find is not called. Before: 2.35% qemu-system-x86_64 [.] phys_page_find 0.97% qemu-system-x86_64 [.] address_space_translate_internal 0.95% qemu-system-x86_64 [.] address_space_translate 0.55% qemu-system-x86_64 [.] address_space_lookup_region After: 0.97% qemu-system-x86_64 [.] address_space_translate_internal 0.97% qemu-system-x86_64 [.] address_space_lookup_region 0.84% qemu-system-x86_64 [.] address_space_translate Signed-off-by: Fam Zheng <famz@redhat.com> Message-Id: <1456813104-25902-8-git-send-email-famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-03-07exec: Factor out section_covers_addrFam Zheng
This will be shared by the next patch. Also add a comment explaining the unobvious condition on "size.hi". Signed-off-by: Fam Zheng <famz@redhat.com> Message-Id: <1456813104-25902-7-git-send-email-famz@redhat.com> [Small change to the comment. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-03-07exec: Pass RAMBlock pointer to qemu_ram_freeFam Zheng
The only caller now knows exactly which RAMBlock to free, so it's not necessary to do the lookup. Reviewed-by: Gonglei <arei.gonglei@huawei.com> Signed-off-by: Fam Zheng <famz@redhat.com> Message-Id: <1456813104-25902-6-git-send-email-famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-03-07memory: Drop MemoryRegion.ram_addrFam Zheng
All references to mr->ram_addr are replaced by memory_region_get_ram_addr(mr) (except for a few assertions that are replaced with mr->ram_block). Reviewed-by: Gonglei <arei.gonglei@huawei.com> Signed-off-by: Fam Zheng <famz@redhat.com> Message-Id: <1456813104-25902-5-git-send-email-famz@redhat.com> Acked-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-03-07memory: Implement memory_region_get_ram_addr with mr->ram_blockFam Zheng
Signed-off-by: Fam Zheng <famz@redhat.com> Message-Id: <1456813104-25902-4-git-send-email-famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-03-07memory: Move assignment to ram_block to memory_region_init_*Fam Zheng
We don't force "const" qualifiers with pointers in QEMU, but it's still good to keep a clean function interface. Assigning to mr->ram_block is in this sense ugly - one initializer mutating its owning object's state. Move it to memory_region_init_*, where mr->ram_addr is assigned. Reviewed-by: Gonglei <arei.gonglei@huawei.com> Signed-off-by: Fam Zheng <famz@redhat.com> Message-Id: <1456813104-25902-3-git-send-email-famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-03-07exec: Return RAMBlock pointer from allocating functionsFam Zheng
Previously we return RAMBlock.offset; now return the pointer to the whole structure. ram_block_add returns void now, error is completely passed with errp. Reviewed-by: Gonglei <arei.gonglei@huawei.com> Signed-off-by: Fam Zheng <famz@redhat.com> Message-Id: <1456813104-25902-2-git-send-email-famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-03-07i8257: fix Terminal Count statusHervé Poussineau
When a DMA transfer is done (ie all bytes have been transfered), the corresponding Terminal Count bit must be set in the status register. This bit is already cleared in i8257_read_cont and i8257_write_cont when required. This fixes (at least) floppy transfer in IBM 40p firmware, which checks in DMA controller if everything went fine. Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> Message-Id: <1456404332-31556-1-git-send-email-hpoussin@reactos.org> Reviewed-by: John Snow <jsnow@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-03-07log: do not log if QEMU is daemonized but without -DPaolo Bonzini
Commit 96c33a4 ("log: Redirect stderr to logfile if deamonized", 2016-02-22) wanted to move stderr of a daemonized QEMU to the file specified with -D. However, if -D was not passed, the patch had the side effect of not redirecting stderr to /dev/null. This happened because qemu_logfile was set to stderr rather than the expected value of NULL. The fix is simply in the "if" condition of do_qemu_set_log; the "if" for closing the file is also changed to match. Reported-by: Jan Tomko <jtomko@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>