summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote branch 'upstream/stable-0.12' into stable-0.12Avi Kivity2010-01-171-0/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * upstream/stable-0.12: (27 commits) Update version and changelog for release Update SeaBIOS to 0.5.1 Qemu's internal TFTP server breaks lock-step-iness of TFTP osdep.c: Fix accept4 fallback pc: add rombar to compat properties for pc-0.10 and pc-0.11 pci: allow loading roms via fw_cfg. roms: rework rom loading via fw fw_cfg: rom loader tweaks. roms: minor fixes and cleanups. pc: add machine type for 0.12 loader: more ignores for rom intended to be loaded by the bios vnc_refresh: return if vd->timer is NULL QMP: Don't free async event's 'data' Handle TFTP ERROR from client dmg: fix ->open failure virtio-pci: thinko fix pc-bios: Update README (SeaBIOS) vmware_vga: Check cursor dimensions passed from guest to avoid buffer overflow remove pending exception on vcpu reset. Fix CPU topology initialization ... Conflicts: hw/pc.c hw/pci.h qemu-options.hx Signed-off-by: Avi Kivity <avi@redhat.com>
| * MCE: Fix bug of IA32_MCG_STATUS after system resetHuang Ying2010-01-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Now, if we inject a fatal MCE into guest OS, for example Linux, Linux will go panic and then reboot. But if we inject another MCE now, system will reset directly instead of go panic firstly, because MCG_STATUS.MCIP is set to 1 and not cleared after reboot. This is does not follow the behavior in real hardware. This patch fixes this via set env->mcg_status to 0 during system reset. Signed-off-by: Huang Ying <ying.huang@intel.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit af364b418cc57c53275c76ee5e0e0645908605b9)
* | Reinstate cpuid vendor override when kvm is enabledAvi Kivity2009-12-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | Due to upstream qemu changes we no longer expose the host cpu vendor id to the guest. This leads to failures when the syscall/sysenter instructions are used in compatibility mode. Change the default to override when kvm is enabled. Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
* | Merge commit '910628f39676ee65211727245809eec7ca4d75f5' into stable-0.12-mergeAvi Kivity2009-12-141-9/+11
|\| | | | | | | | | | | | | | | | | | | | | | | | | * commit '910628f39676ee65211727245809eec7ca4d75f5': target-i386: Update CPUID feature set for TCG s390: typo fix s390: fix build on 32 bit host Update Changelog and VERSION for 0.12.0-rc2 Conflicts: target-i386/helper.c Signed-off-by: Avi Kivity <avi@redhat.com>
| * target-i386: Update CPUID feature set for TCGAndre Przywara2009-12-131-13/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | The CPUID features QEMU presented to the guest were not up-to-date with QEMU's emulated feature set. Add the missing bits of recent (and not so recent) additions to QEMU's emulation engine. For stability reasons only the user mode usable bits are exposed for now, features like Monitor or CR8LEG are left out. Signed-off-by: Andre Przywara <andre.przywara@amd.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit f1e00a9cf326acc1f2386a72525af8859852e1df)
* | Merge commit 'c99d32efe6970493c44fe410ee4a4aafc1a35428' into stable-0.12-mergeAvi Kivity2009-12-141-15/+31
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'c99d32efe6970493c44fe410ee4a4aafc1a35428': msix: function mask support msix: macro rename for function mask support cpuid: Fix multicore setup on Intel kvm: x86: Fix initial kvm_has_msr_star Update OpenBIOS images to r640 Update version to -rc1 Conflicts: hw/msix.c Signed-off-by: Avi Kivity <avi@redhat.com>
| * cpuid: Fix multicore setup on IntelAndre Przywara2009-12-071-15/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The multicore CPUID code detects whether the guest is an Intel or an AMD CPU, because the Linux kernel is picky about the CmpLegacy bit. KVM by default passes through the host's vendor, which was not catched by the code. So fork out the vendor determining bits into a separate function to be used from both places and always get the real vendor. This fixes KVM's multicore setup on Intel CPUs. Signed-off-by: Andre Przywara <andre.przywara@amd.com> Reported-by: Dietmar Maurer <dietmar@proxmox.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 6d9fef1a02e6efd51e9ebd0130651ca61f75839b)
* | Merge commit '59f2689d9082f2f631253c810f73cd22290144a9' into upstream-mergeAvi Kivity2009-11-221-1/+0
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '59f2689d9082f2f631253c810f73cd22290144a9': Added readonly flag to -drive command qcow2: Allow qcow2 disk images with size zero (x86/Sparc/PPC)-user: fix cpu_copy IDE: Fix reset handling user: move CPU reset call to main.c for x86/PPC/Sparc PPC: rename cpu_ppc_reset to cpu_reset for consistency Sparc64/x86: remove unneeded calls to device reset PPC: remove unneeded calls to device reset sparc32 (mostly): remove unneeded calls to device reset v3: don't call reset functions on cpu initialization vga: fix line comparison vga: Respect Line Compare Register in text modes Conflicts: qemu-config.c Signed-off-by: Avi Kivity <avi@redhat.com>
| * user: move CPU reset call to main.c for x86/PPC/SparcBlue Swirl2009-11-071-3/+0
| | | | | | | | Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
| * v3: don't call reset functions on cpu initializationGlauber Costa2009-11-071-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is absolutely no need to call reset functions when initializing devices. Since we are already registering them, calling qemu_system_reset() should suffice. Actually, it is what happens when we reboot the machine, and using the same process instead of a special case semantics will even allow us to find bugs easier. Furthermore, the fact that we initialize things like the cpu quite early, leads to the need to introduce synchronization stuff like qemu_system_cond. This patch removes it entirely. All we need to do is call qemu_system_reset() only when we're already sure the system is up and running I tested it with qemu (with and without io-thread) and qemu-kvm, and it seems to be doing okay - although qemu-kvm uses a slightly different patch. [ v2: user mode still needs cpu_reset, so put it in ifdef. ] [ v3: leave qemu_system_cond for now. ] Signed-off-by: Glauber Costa <glommer@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* | Merge commit 'e5cc6429dee00f3170bb6a18600d6d29b854b7d9' into upstream-mergeAvi Kivity2009-10-051-5/+4
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'e5cc6429dee00f3170bb6a18600d6d29b854b7d9': (35 commits) x86: mcg_cap is never 0 x86: send mce_banks as an array x86: mce_banks always have the same size x86: add fpregs_format_vmstate x86: add pending_irq_vmstate to the state x86: add fptag_vmstate to the state x86: fpus is uint16_t not unsigned int x86: fpuc is uint16_t not unsigned int x86: make a20_mask int32_t x86: hflags is not modified at all, just save it directly vmstate: remove i2c_slave_load/save vmstate: port lm832x device lm832x: make fields to have the same types that they are saved/loaded vmstate: add support for arrays of pointers vmstate: port twl92230 device twl92230: change pwrbtn_state to uint8_t vmstate: port tmp105 device tmp105: change len and alorm to uint8_t vmstate: create VMSTATE_INT16_ARRAY vmstate: port ssd0303 device ... Conflicts: target-i386/machine.c Signed-off-by: Avi Kivity <avi@redhat.com>
| * x86: mce_banks always have the same sizeJuan Quintela2009-10-051-2/+1
| | | | | | | | | | | | | | | | mce_banks is always MCE_BANKS_DEF * 4 in size, value never change CC: Huang Ying <ying.huang@intel.com> Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
| * x86: make a20_mask int32_tJuan Quintela2009-10-051-3/+3
| | | | | | | | | | | | | | | | | | | | This makes the savevm code correct, and sign extensins gives us exactly what we need (namely, sign extend to 64 bits when used with 64bit addresess. Once there, change 0x100000 for 1 << 20, that maks all a20 use the same syntax. Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
| * Revert "Get rid of _t suffix"Anthony Liguori2009-10-011-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | In the very least, a change like this requires discussion on the list. The naming convention is goofy and it causes a massive merge problem. Something like this _must_ be presented on the list first so people can provide input and cope with it. This reverts commit 99a0949b720a0936da2052cb9a46db04ffc6db29. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
| * Get rid of _t suffixmalc2009-10-011-11/+11
| | | | | | | | | | | | | | Some not so obvious bits, slirp and Xen were left alone for the time being. Signed-off-by: malc <av1474@comtv.ru>
| * i386: Drop redundant kvm_enabled testJan Kiszka2009-09-121-2/+1
| | | | | | | | | | | | | | cpu_synchronize_state already does this. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* | MCE: Relay UCR MCE to guestHuang Ying2009-09-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | UCR (uncorrected recovery) MCE is supported in recent Intel CPUs, where some hardware error such as some memory error can be reported without PCC (processor context corrupted). To recover from such MCE, the corresponding memory will be unmapped, and all processes accessing the memory will be killed via SIGBUS. For KVM, if QEMU/KVM is killed, all guest processes will be killed too. So we relay SIGBUS from host OS to guest system via a UCR MCE injection. Then guest OS can isolate corresponding memory and kill necessary guest processes only. SIGBUS sent to main thread (not VCPU threads) will be broadcast to all VCPU threads as UCR MCE. Signed-off-by: Huang Ying <ying.huang@intel.com> Signed-off-by: Avi Kivity <avi@redhat.com>
* | Merge commit '72cf2d4f0e181d0d3a3122e04129c58a95da713e' into upstream-mergeMarcelo Tosatti2009-09-141-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '72cf2d4f0e181d0d3a3122e04129c58a95da713e': Fix sys-queue.h conflict for good Try to fix BSD breakage by 806b60248218bd5f74a8b070f5a99a864e8e51c6 Include sys-queue.h early to override system queue definitions on BSD Unbreak BSD: use qemu_fdatasync instead of fdatasync Use proper format conversion specifier when printing size_t value audio: remove lsbindex/popcount in favour of host-utils's ctz32 alsa: poll mode handling oss: poll mode handling audio: poll mode infrastructure gus: Do not manually free the state, qdev does it for us oss: Unbreak mmaping the ability to mmap oss fd on Linux Conflicts: exec.c kvm.h sysemu.h vl.c Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
| * Fix sys-queue.h conflict for goodBlue Swirl2009-09-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Our file sys-queue.h is a copy of the BSD file, but there are some additions and it's not entirely compatible. Because of that, there have been conflicts with system headers on BSD systems. Some hacks have been introduced in the commits 15cc9235840a22c289edbe064a9b3c19c5f49896, f40d753718c72693c5f520f0d9899f6e50395e94, 96555a96d724016e13190b28cffa3bc929ac60dc and 3990d09adf4463eca200ad964cc55643c33feb50 but the fixes were fragile. Solution: Avoid the conflict entirely by renaming the functions and the file. Revert the previous hacks. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* | Merge commit '2637c754ccdb286890ed2a8d0d1da775dbd062af' into upstream-mergeMarcelo Tosatti2009-09-141-2/+1
|\| | | | | | | | | | | | | | | | | | | | | | | * commit '2637c754ccdb286890ed2a8d0d1da775dbd062af': kvm_arch_get_registers() shouldn't be called directly vmstate: port cirrus_vga device vmstate: port serial device Conflicts: target-i386/helper.c Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
| * kvm_arch_get_registers() shouldn't be called directlyGleb Natapov2009-09-111-1/+1
| | | | | | | | | | | | | | | | Direct call to kvm_arch_get_registers() bypass logic in cpu_synchronize_state() Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | Call kvm_cpu_synchronize_state() on target vcpuGleb Natapov2009-09-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | regs_modified logic doesn't work if io thread calls kvm_cpu_synchronize_state() since kvm_arch_get_registers() returns only after vcpu thread is back to kernel. Setting regs_modified to 1 at this stage causes loading of wrong vcpu state on the next vcpu_run(). Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
* | Merge commit '3a38d437ca60ce19ee92dbabbe6e672e9ba3c529' into upstream-mergeAvi Kivity2009-08-291-15/+82
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '3a38d437ca60ce19ee92dbabbe6e672e9ba3c529': Add isa_reserve_irq(). isa bus irq changes and fixes. hw/eepro100.c: Use extended TBD only where applicable pci-hotplug: initialize dinfo to NULL in pci_device_hot_add block/vdi.c: Fix several bugs introduce kvm64 CPU allow overriding of CPUID level on command line set CPUID bits to present cores and threads topology push CPUID level to 4 to allow Intel multicore decoding extend -smp parsing to include cores= and threads= options add file descriptor migration Add sparse to new feature convention Conflicts: hw/pc.c Signed-off-by: Avi Kivity <avi@redhat.com>
| * introduce kvm64 CPUAndre Przywara2009-08-271-0/+26
| | | | | | | | | | | | | | | | | | | | In addition to the TCG based qemu64 type let's introduce a kvm64 CPU type, which is the least common denominator of all KVM-capable x86-CPUs (based on Intel Pentium 4 Prescott). It can be used as a base type for migration. Signed-off-by: Andre Przywara <andre.przywara@amd.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
| * allow overriding of CPUID level on command lineAndre Przywara2009-08-271-10/+29
| | | | | | | | | | | | | | | | | | | | | | | | The CPUID level determines how many CPUID leafs are exposed to the guest. Some features (like multi-core) cannot be propagated without the proper level, but guests maybe confused by bogus entries in some leafs. So add level= and xlevel= to the list of -cpu options to allow the user to override the default settings. While at it, merge unnecessary local variables into one and allow hexadecimal arguments. Signed-off-by: Andre Przywara <andre.przywara@amd.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
| * set CPUID bits to present cores and threads topologyAndre Przywara2009-08-271-3/+25
| | | | | | | | | | | | | | | | | | | | | | Controlled by the enhanced -smp option set the CPUID bits to present the guest the desired topology. This is vendor specific, but (with the exception of the CMP_LEGACY bit) not conflicting, so we set all bits everytime. There is no real multithreading support for AMD CPUs, so report cores instead. Signed-off-by: Andre Przywara <andre.przywara@amd.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
| * push CPUID level to 4 to allow Intel multicore decodingAndre Przywara2009-08-271-2/+2
| | | | | | | | | | | | | | | | Intel CPUs store the number of cores in CPUID leaf 4. So push the maxleaf value to 4 to allow the guests access to this leaf. Signed-off-by: Andre Przywara <andre.przywara@amd.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | Merge commit '4a1418e07bdcfaa3177739e04707ecaec75d89e1' into upstream-mergeAvi Kivity2009-08-241-15/+0
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '4a1418e07bdcfaa3177739e04707ecaec75d89e1': Unbreak large mem support by removing kqemu Add a configure switch to enable / disable all user targets. I felt compelled to do it for symmetry, mostly it is useful to disable user targets when you don't want to build them. Migration via unix sockets. Conflicts: Makefile.target exec.c osdep.c vl.c Signed-off-by: Avi Kivity <avi@redhat.com>
| * Unbreak large mem support by removing kqemuAnthony Liguori2009-08-241-15/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | kqemu introduces a number of restrictions on the i386 target. The worst is that it prevents large memory from working in the default build. Furthermore, kqemu is fundamentally flawed in a number of ways. It relies on the TSC as a time source which will not be reliable on a multiple processor system in userspace. Since most modern processors are multicore, this severely limits the utility of kqemu. kvm is a viable alternative for people looking to accelerate qemu and has the benefit of being supported by the upstream Linux kernel. If someone can implement work arounds to remove the restrictions introduced by kqemu, I'm happy to avoid and/or revert this patch. N.B. kqemu will still function in the 0.11 series but this patch removes it from the 0.12 series. Paul, please Ack or Nack this patch. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | Merge commit '452e475196a3f8b6b96d16bbaca727ebc1278a97' into upstream-mergeAvi Kivity2009-07-281-5/+4
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '452e475196a3f8b6b96d16bbaca727ebc1278a97': (55 commits) introduce on_vcpu qemu-io: reject invalid pattern qemu-io: Rework alloc command qmu-img: fix qemu-img convert to generate a valid image when the source referenced a backing file vmdk: Fix backing file handling use struct initializer for audio.c Add save/restore support to the LSI logic SCSI device model. Handle BH's queued by AIO completions in qemu_aio_flush() Fake dirty loggin when it's not there Use correct input constant Fix warning in kvm-all.c Set PVR in sregs Enable PPC KVM for non-embedded Sparc32: convert Sun4c interrupt controller to qdev Sparc32: convert SBI to qdev Fix CONFIG_PROFILER Sparc32/64: use 64 bit type for memory size qdev: add 64 bit type Sparc64: refactor kernel init Sparc64: refactor CPU init ... Conflicts: kvm-all.c Signed-off-by: Avi Kivity <avi@redhat.com>
| * Only allow -cpu host when KVM is enabledAnthony Liguori2009-07-161-4/+3
| | | | | | | | | | | | -cpu host is not at all useful when using tcg. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
| * Initialize cpuid variablesAnthony Liguori2009-07-161-1/+1
| | | | | | | | | | | | This causes a build break when !KVM. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | Merge commit '0ba99fc6a188988f11361cb41eba7c1afce346d4' into upstream-mergeAvi Kivity2009-07-281-4/+2
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '0ba99fc6a188988f11361cb41eba7c1afce346d4': (46 commits) configure already knows what TARGET_BASE_ARCH we need, no need to put the logic in Makefile.target already defined several lines before in block-obj-y Remove unused Makefile variable use nwfpe-obj-y for consistence use block-nested-y for files inside block/ Remove duplicated definition fix sparc not solaris build fix XEN Build fix for bad macaddr of e1000 in Windows 2003 server with original MS driver qdev: es1370+ac97 description qdev/compat: virtio-net-pci 0.10 compatibility. qdev: print device id in "info pci". qdev/compat: virtio-console-pci 0.10 compatibility. qdev: add id= support for pci nics. qdev/compat: virtio-blk-pci 0.10 compatibility. qdev: add user-specified identifier to devices. qdev/compat: add pc-0.10 machine type. qdev: add no_user, alias and desc qdev/compat: compat property infrastructure. qdev: factor out driver search to qdev_find_info() ... Conflicts: Makefile.target Signed-off-by: Avi Kivity <avi@redhat.com>
| * omit 3DNOW! CPUID bits from qemu64 CPU modelAndre Przywara2009-07-161-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | Since we recently do not disable 3DNOW! support anymore, we should avoid setting the bits in the default qemu64 CPU model to ease migration. TCG does not support it anyway and even AMD deprecates it's usage nowadays. If you want to use it in KVM, use the phenom, athlon or host CPU model. Signed-off-by: Andre Przywara <andre.przywara@amd.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
| * Update to a hopefully more future proof FSF addressBlue Swirl2009-07-161-2/+1
| | | | | | | | Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* | Merge commit 'e1e8f35a4f59d82ab9a5361c3990c8dadd2e7678' into upstream-mergeAvi Kivity2009-07-281-0/+30
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'e1e8f35a4f59d82ab9a5361c3990c8dadd2e7678': bios: Fix multiple calls into smbios_load_ex gdbstub: x86: Support for setting segment registers gdbstub: x86: Refactor register access gdbstub: Add vCont support slirp: Fix default netmask to 255.255.255.0 Conflicts: pc-bios/bios.bin (dropped) Signed-off-by: Avi Kivity <avi@redhat.com>
| * gdbstub: x86: Support for setting segment registersJan Kiszka2009-07-161-0/+30
| | | | | | | | | | | | | | | | | | | | This allows to set segment registers via gdb also in system emulation mode. Basic sanity checks are applied and nothing is changed if they fail. But screwing up the target via this interface will never be complicated, so I avoided being too paranoid here. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | Add MCE simulation support to qemu/kvmHuang Ying2009-07-201-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | KVM ioctls are used to initialize MCE simulation and inject MCE. The real MCE simulation is implemented in Linux kernel. The Kernel part has been merged. ChangeLog: v7: - Re-based on qemu-kvm.git/next branch v6: - Re-based on latest qemu-kvm.git v5: - Re-based on latest qemu-kvm.git v3: - Re-based on qemu/tcg MCE support patch v2: - Use new kernel MCE capability exportion interface. Signed-off-by: Huang Ying <ying.huang@intel.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
* | Merge commit '79c4f6b08009a1d23177c2be8bd003253cf3686a' into upstream-mergeAvi Kivity2009-07-121-0/+70
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '79c4f6b08009a1d23177c2be8bd003253cf3686a': QEMU: MCE: Add MCE simulation to qemu/tcg getrlimit conversion mix-up wrap path for access syscall 64-bit clean socketcall syscall pipe argument should not be signed configure: remove bogus linux-user check linux-user/syscall.c: remove warning: ‘array’ may be used uninitialized in this function linux-user: check some parameters for some socket syscalls. linux-user: increment MAX_ARG_PAGES Conflicts: qemu-monitor.hx Signed-off-by: Avi Kivity <avi@redhat.com>
| * QEMU: MCE: Add MCE simulation to qemu/tcgHuang Ying2009-07-091-0/+70
| | | | | | | | | | | | | | | | | | | | | | - MCE features are initialized when VCPU is intialized according to CPUID. - A monitor command "mce" is added to inject a MCE. - A new interrupt mask: CPU_INTERRUPT_MCE is added to inject the MCE. aliguori: fix build for linux-user Signed-off-by: Huang Ying <ying.huang@intel.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | Merge commit '600309b6108484a60be4a84cfe68e6b8d645799c' into upstream-mergeAvi Kivity2009-07-051-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '600309b6108484a60be4a84cfe68e6b8d645799c': Rename target_cpu to target_arch2 monitor: Fix typo in documentation target-mips: fix MADD and MSUB/MSUBU instructions Fix hxtool. Use ctz64 in favor of ffsll Respect the standard Use pstrcpy and pstrcat to avoid OpenBSD linker warning Suppress a GCC warning Fix breakage by obsolete _P() for good Fix sdl_zoom compile problems on OpenBSD Fix missing strnlen problems Fix typo Remove bogus -Werror Conflicts: configure Signed-off-by: Avi Kivity <avi@redhat.com>
| * Suppress a GCC warningBlue Swirl2009-07-011-1/+1
| | | | | | | | Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* | Add X2APIC support.Gleb Natapov2009-07-051-1/+1
| | | | | | | | | | | | | | | | | | Add "x2apic" string to extended features name array to be recognizable by -cpu cputype,+x2apic command line option. If kvm kernel module does not support x2apic the option will be trimmed from cpuid. Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
* | Merge commit '671e4676076fb62860986decd44440d97bcc872d' into upstream-mergeAvi Kivity2009-06-301-1/+4
|\| | | | | | | | | | | | | | | | | | | * commit '671e4676076fb62860986decd44440d97bcc872d': remove CPUID host hacks Conflicts: target-i386/helper.c Signed-off-by: Avi Kivity <avi@redhat.com>
| * remove CPUID host hacksAndre Przywara2009-06-291-22/+5
| | | | | | | | | | | | | | | | | | | | KVM provides an in-kernel feature to disable CPUID bits that are not present in the current host. So there is no need here to duplicate this work. Additionally allows 3DNow! on capable processors, since the restriction seems to apply to QEMU/TCG only. Signed-off-by: Andre Przywara <andre.przywara@amd.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* | Merge commit '6c1f42fe83bf9bc14a7a6cc5afd8dad83ee25c74' into upstream-mergeAvi Kivity2009-06-301-19/+71
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '6c1f42fe83bf9bc14a7a6cc5afd8dad83ee25c74': fix KVMs GET_SUPPORTED_CPUID feature usage CPUID Fn8000_0001.EAX is family/model/stepping, not features introduce -cpu host target allow hypervisor CPUID bit to be overriden support colon in filenames Prefer ncurses over curses slirp: Basic VLAN client info_str slirp: Make hostfwd_add/remove multi-instance-aware net: Provide VLAN client lookup helper slirp: Enable multi-instance support for the smb service slirp: Improve error handling in slirp_smb slirp: Use shell to erase smb directory slirp: Save/restore bootp client states slirp: Enable multiple instances slirp: Allocate/free stack instance dynamically slirp: Use internal state in interface slirp: Factor out internal state structure slirp: Drop link_up checks from if_output and slirp_socket_can_recv slirp: Clean up timeout handling around slirp_select_fill/poll slirp: Drop redundant checks from slirp_output Conflicts: target-i386/helper.c Signed-off-by: Avi Kivity <avi@redhat.com>
| * fix KVMs GET_SUPPORTED_CPUID feature usageAndre Przywara2009-06-291-29/+0
| | | | | | | | | | | | | | | | | | | | | | | | If we want to trim the user provided CPUID bits for KVM to be not greater than that of the host, we should not remove the bits _after_ we sent them to the kernel. This fixes the masking of features that are not present on the host by moving the trim function and it's call from helper.c to kvm.c. It helps to use -cpu host. Signed-off-by: Andre Przywara <andre.przywara@amd.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
| * CPUID Fn8000_0001.EAX is family/model/stepping, not featuresAndre Przywara2009-06-291-1/+1
| | | | | | | | | | Signed-off-by: Andre Przywara <andre.przywara@amd.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
| * introduce -cpu host targetAndre Przywara2009-06-291-6/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | Although the guest's CPUID bits can be controlled in a fine grained way in QEMU, a simple way to inject the host CPU is missing. This is handy for KVM desktop virtualization, where one wants the guest to support the full host feature set. Introduce another CPU type called 'host', which will propagate the host's CPUID bits to the guest. Unwanted bits can still be turned off by using the existing syntax (-cpu host,-skinit) Signed-off-by: Andre Przywara <andre.przywara@amd.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
| * allow hypervisor CPUID bit to be overridenAndre Przywara2009-06-291-12/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | KVM defaults to the hypervisor CPUID bit to be set, whereas pure QEMU clears it. On some occasions one wants to set or clear it the other way round (for instance to get HyperV running inside a guest). Move the bit-set to be done before the command line parsing and enable it by default. One can disable it by using: -cpu qemu64,-hypervisor Fix some whitespace damage on the way. Signed-off-by: Andre Przywara <andre.przywara@amd.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>