qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 80ae41: target-i386/cpu: Add missing flags to


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 80ae41: target-i386/cpu: Add missing flags to Haswell CPU ...
Date: Wed, 28 Nov 2012 14:00:17 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 80ae416058d8941824f450343781183618555415
      
https://github.com/qemu/qemu/commit/80ae416058d8941824f450343781183618555415
  Author: Eduardo Habkost <address@hidden>
  Date:   2012-11-26 (Mon, 26 Nov 2012)

  Changed paths:
    M target-i386/cpu.c

  Log Message:
  -----------
  target-i386/cpu: Add missing flags to Haswell CPU model

When adding the Haswell CPU model, I intended to make it a superset of the
features present on the SandyBridge model, but I have removed the SEP and
RDTSCP features from the feature list by mistake. This patch adds the
missing SEP and RDTSCP features (that are present on SandyBridge) to
Haswell.

Reported-by: Martin Kletzander <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>


  Commit: a0a7068104cc9908d0875404b0fa2ebf46e40f97
      
https://github.com/qemu/qemu/commit/a0a7068104cc9908d0875404b0fa2ebf46e40f97
  Author: Aurelien Jarno <address@hidden>
  Date:   2012-11-26 (Mon, 26 Nov 2012)

  Changed paths:
    M target-i386/cpu.c

  Log Message:
  -----------
  target-i386: Enable SSSE3 TCG support

SSSE3 support has been added to TCG more than 4 years ago in commit
4242b1bd8acc19aaaacffdaad4ac23213d72a72b. It has been disabled by
mistake in commit 551a2dec8fa55006a68393b9d6fb63577d2b3f1c.

Signed-off-by: Aurelien Jarno <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>


  Commit: d688e5239aad2a1f991147974832ce026f78c1a3
      
https://github.com/qemu/qemu/commit/d688e5239aad2a1f991147974832ce026f78c1a3
  Author: Peter Maydell <address@hidden>
  Date:   2012-11-26 (Mon, 26 Nov 2012)

  Changed paths:
    M hw/ide/macio.c

  Log Message:
  -----------
  hw/ide/macio: Fix segfault caused by NULL DMAContext*

Pass qemu_sglist_init the global dma_context_memory rather than a NULL
pointer; this fixes a segfault in dma_memory_map() when the guest
starts using DMA.

Reported-by: Amadeusz Sławiński <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: f0cc4aa8450376ca2aee3ebb09db71f9f2ff333b
      
https://github.com/qemu/qemu/commit/f0cc4aa8450376ca2aee3ebb09db71f9f2ff333b
  Author: Julio Guerra <address@hidden>
  Date:   2012-11-26 (Mon, 26 Nov 2012)

  Changed paths:
    M target-ppc/translate.c

  Log Message:
  -----------
  PPC: Fix missing TRACE exception

This patch fixes bug 1031698 :
https://bugs.launchpad.net/qemu/+bug/1031698

If we look at the (truncated) translation of the conditional branch
instruction in the test submitted in the bug post, the call to the
exception helper is missing in the "bne-false" chunk of translated
code :

IN:
bne-    0x1800278

OUT:
0xb544236d:  jne    0xb5442396

0xb5442373:  mov    %ebp,(%esp)
0xb5442376:  mov    $0x44,%ebx
0xb544237b:  mov    %ebx,0x4(%esp)
0xb544237f:  mov    $0x1800278,%ebx
0xb5442384:  mov    %ebx,0x25c(%ebp)
0xb544238a:  call   0x827475a
               ^^^^^^^^^^^^^^^^^^

0xb5442396:  mov    %ebp,(%esp)
0xb5442399:  mov    $0x44,%ebx
0xb544239e:  mov    %ebx,0x4(%esp)
0xb54423a2:  mov    $0x1800270,%ebx
0xb54423a7:  mov    %ebx,0x25c(%ebp)

Indeed, gen_exception(ctx, excp) called by gen_goto_tb (called by
gen_bcond) changes ctx->exception's value to excp's :

gen_bcond()
{
  gen_goto_tb(ctx, 0, ctx->nip + li - 4);
  /* ctx->exception value is POWERPC_EXCP_BRANCH */

  gen_goto_tb(ctx, 1, ctx->nip);
  /* ctx->exception now value is POWERPC_EXCP_TRACE */
}

Making the following gen_goto_tb()'s test false during the second call :

if ((ctx->singlestep_enabled &
    (CPU_BRANCH_STEP | CPU_SINGLE_STEP)) &&
    ctx->exception == POWERPC_EXCP_BRANCH /* false...*/) {
   target_ulong tmp = ctx->nip;
   ctx->nip = dest;
   /* ... and this is the missing call */
   gen_exception(ctx, POWERPC_EXCP_TRACE);
   ctx->nip = tmp;
}

So the patch simply adds the missing matching case, fixing our problem.

Signed-off-by: Julio Guerra <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 752ced0488806830f18f96b60ae6f3d1fadfd089
      
https://github.com/qemu/qemu/commit/752ced0488806830f18f96b60ae6f3d1fadfd089
  Author: Alexey Kardashevskiy <address@hidden>
  Date:   2012-11-26 (Mon, 26 Nov 2012)

  Changed paths:
    M kvm-all.c

  Log Message:
  -----------
  kvm: fix incorrect length in a loop over kvm dirty pages map

QEMU allocates a map enough for 4k pages. However the system page size
can be 64K (for example on POWER) and the host kernel uses only a small
part of it as one big stores a dirty flag for 16 pages 4K each,
the hpratio variable stores this ratio and
the kvm_get_dirty_pages_log_range function handles it correctly.

However kvm_get_dirty_pages_log_range still goes beyond the data
provided by the host kernel which is not correct. It does not cause
errors at the moment as the whole bitmap is zeroed before doing KVM ioctl.

The patch reduces number of iterations over the map.

Signed-off-by: Alexey Kardashevskiy <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 70c68cf638b4cf44a42a937622deac3ad3c7833c
      
https://github.com/qemu/qemu/commit/70c68cf638b4cf44a42a937622deac3ad3c7833c
  Author: Alexey Kardashevskiy <address@hidden>
  Date:   2012-11-26 (Mon, 26 Nov 2012)

  Changed paths:
    M hw/spapr_pci.c

  Log Message:
  -----------
  pseries: Fix bug in PCI MSI allocation

In one of the recent reworks to the XICS code, a bug was introduced where
we use the wrong sense and allocate level interrupts instead of message
interrupts for PCI MSIs.  This patch fixes it.

Signed-off-by: Alexey Kardashevskiy <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: c4d88267ae76810420295a1682cf779c49f3ddec
      
https://github.com/qemu/qemu/commit/c4d88267ae76810420295a1682cf779c49f3ddec
  Author: Peter Maydell <address@hidden>
  Date:   2012-11-26 (Mon, 26 Nov 2012)

  Changed paths:
    M vl.c

  Log Message:
  -----------
  vl.c: Fix broken -usb option

Commit 094b287f0b accidentally broke the "-usb" command line
option, so it would have no effect if the user had not specified
any machine options at that point. (the return value from
'qemu_opts_find(qemu_find_opts("machine"), 0);' is NULL if there
are no user specified options, so it is only to be used for
looking up an option, not when trying to set one.) Similarly,
would '-usbdevice' no longer cause USB to default to enabled.

Fix this regression by using the same style of code for forcing
the usb=on machine option that we use for other aliases such as
'-enable-kvm'.

Signed-off-by: Peter Maydell <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 6e72719e721a40fe1224701ca10edc1caf0cd708
      
https://github.com/qemu/qemu/commit/6e72719e721a40fe1224701ca10edc1caf0cd708
  Author: Alexander Graf <address@hidden>
  Date:   2012-11-26 (Mon, 26 Nov 2012)

  Changed paths:
    M qemu-pixman.c

  Log Message:
  -----------
  fbdev: fix pixman compile on old pixman

My QEMU compile failed with the following error:

qemu-pixman.c: In function ‘qemu_pixman_get_type’:
qemu-pixman.c:24: error: ‘PIXMAN_TYPE_BGRA’ undeclared (first use in this 
function)
qemu-pixman.c:24: error: (Each undeclared identifier is reported only once
qemu-pixman.c:24: error: for each function it appears in.)

Guard the PIXMAN_TYPE_BGRA branch like in the case right above the failing
case, so that compilation is fixed. Functionality on such old pixman is a
different question ;-).

Signed-off-by: Alexander Graf <address@hidden>


  Commit: 8c7c3c58e3e33c80d1eef1514db3c705a4de692e
      
https://github.com/qemu/qemu/commit/8c7c3c58e3e33c80d1eef1514db3c705a4de692e
  Author: Heinz Graalfs <address@hidden>
  Date:   2012-11-26 (Mon, 26 Nov 2012)

  Changed paths:
    M hw/s390-virtio.c

  Log Message:
  -----------
  s390: Fix ram_size updating in machine init

The global variable 'ram_size' is hidden by the local variable
declaration in s390_init(). Since we want to update the global
ram size in certain cases we must not use a local ram_size
variable.
- This fixes booting with unusual ram sizes like -m 67001
- This changes behaviour back to the situation before commit
  5f072e1f3075bd869e0ace9f2545a85992ac0084
  (create struct for machine initialization arguments)

Signed-off-by: Heinz Graalfs <address@hidden>
Reviewed-by: Eduardo Habkost <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 773de5c786a6050bbf3b33c0e29d1bd519a40b4b
      
https://github.com/qemu/qemu/commit/773de5c786a6050bbf3b33c0e29d1bd519a40b4b
  Author: Cornelia Huck <address@hidden>
  Date:   2012-11-26 (Mon, 26 Nov 2012)

  Changed paths:
    M hw/s390x/event-facility.c

  Log Message:
  -----------
  sclp: Fix uninitialized var in handle_write_event_buf().

Some gcc versions rightly complain about a possibly unitialized rc,
so let's move setting it before the QTAILQ_FOREACH().

Signed-off-by: Cornelia Huck <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>
Signed-off-by: Jens Freimann <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 02c6ccc6dde90dcbf5975b1cfe2ab199e525ec11
      
https://github.com/qemu/qemu/commit/02c6ccc6dde90dcbf5975b1cfe2ab199e525ec11
  Author: Alex Horn <address@hidden>
  Date:   2012-11-27 (Tue, 27 Nov 2012)

  Changed paths:
    M hw/mc146818rtc.c
    M tests/rtc-test.c

  Log Message:
  -----------
  rtc: Only call rtc_set_cmos when Register B SET flag is disabled.

This bug occurs when the SET flag of Register B is enabled. When an RTC
data register (i.e. any of the ten time/calender CMOS bytes) is set, the
data is (as expected) correctly stored in the cmos_data array. However,
since the SET flag is enabled, the function rtc_set_time is not invoked.
As a result, the field base_rtc in RTCState remains uninitialized. This
causes a problem on subsequent writes which can end up overwriting data.
To see this, consider writing data to Register A after having written
data to any of the RTC data registers; the following figure illustrates
the call stack for the Register A write operation:

 +- cmos_io_port_write
 +-- check_update_timer
 +---- get_next_alarm
 +------ rtc_update_time

In rtc_update_time, get_guest_rtc calculates the wrong time and
overwrites the previously written RTC data register values.

Signed-off-by: Alex Horn <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Anthony Liguori <address@hidden>


  Commit: 8ffaaba0e939f2a284bb23d1f6f7f9e2104a97e2
      
https://github.com/qemu/qemu/commit/8ffaaba0e939f2a284bb23d1f6f7f9e2104a97e2
  Author: Paolo Bonzini <address@hidden>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M nbd.c

  Log Message:
  -----------
  nbd: fix use of two uninitialized bytes when connecting to a named export

Reported-by: Michal Privoznik <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: f3313d23a061648c99609a4c127ed13c820f831d
      
https://github.com/qemu/qemu/commit/f3313d23a061648c99609a4c127ed13c820f831d
  Author: Michal Privoznik <address@hidden>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M blockdev-nbd.c

  Log Message:
  -----------
  nbd-server-add: Fix the default for 'writable'

The documentation to this monitor command tells, that 'writable'
argument is optional and defaults to false. However, the code sets
true as the default. But since some applications may already been
using this, it's safer to fix the code and not documentation which
would break those applications.

Signed-off-by: Michal Privoznik <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 8da1e18b0cf46b6c95c88bbad1cc50d6dd1bef4b
      
https://github.com/qemu/qemu/commit/8da1e18b0cf46b6c95c88bbad1cc50d6dd1bef4b
  Author: Peter Lieven <address@hidden>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M block/iscsi.c

  Log Message:
  -----------
  iscsi: fix segfault in url parsing

If an invalid URL is specified iscsi_get_error(iscsi) is called
with iscsi == NULL.

Signed-off-by: Peter Lieven <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: e829b0bb054ed3389e5b22dad61875e51674e629
      
https://github.com/qemu/qemu/commit/e829b0bb054ed3389e5b22dad61875e51674e629
  Author: Peter Lieven <address@hidden>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M block/iscsi.c

  Log Message:
  -----------
  iscsi: fix deadlock during login

If the connection is interrupted before the first login is successfully
completed qemu-kvm is waiting forever in qemu_aio_wait().

This is fixed by performing an sync login to the target. If the
connection breaks after the first successful login errors are
handled internally by libiscsi.

Signed-off-by: Peter Lieven <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: f807ecd5741325fe0d281199ff22cdda0acb6a7a
      
https://github.com/qemu/qemu/commit/f807ecd5741325fe0d281199ff22cdda0acb6a7a
  Author: Peter Lieven <address@hidden>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M block/iscsi.c

  Log Message:
  -----------
  iscsi: do not assume device is zero initialized

Without any complex checks we can't assume that an
iscsi target is initialized to zero.

Signed-off-by: Peter Lieven <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 474ee55a18765e7de8f0b2cc00db5d26286bb24d
      
https://github.com/qemu/qemu/commit/474ee55a18765e7de8f0b2cc00db5d26286bb24d
  Author: David Gibson <address@hidden>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M hw/virtio-scsi.c

  Log Message:
  -----------
  virtio-scsi: Fix some endian bugs with virtio-scsi

The virtio-scsi specification does not specify the correct endianness for
fields in the request structure.  It's therefore best to assume that it is
"guest native" endian since that's the (stupid and poorly defined) norm in
virtio.

However, the qemu device for virtio-scsi has no byteswaps at all, and so
will break if the guest has different endianness from the host.  This patch
fixes it by adding tswap() calls for the sense_len and resid fields in
the request structure.  In theory status_qualifier needs swaps as well,
but that field is never actually touched.  The tag field is a uint64_t, but
since its value is completely arbitrary, it might as well be uint8_t[8]
and so it does not need swapping.

Cc: Paolo Bonzini <address@hidden>
Cc: Paul 'Rusty' Russell <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 863d1050c96cff91dd478767c0da9cc288575919
      
https://github.com/qemu/qemu/commit/863d1050c96cff91dd478767c0da9cc288575919
  Author: David Gibson <address@hidden>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M hw/virtio-scsi.c

  Log Message:
  -----------
  virtio-scsi: Fix subtle (guest) endian bug

The virtio-scsi config space is, by specification, in guest endian (which
is ill-defined, but there you go).  In virtio_scsi_get_config() we set up
all the fields in there, using stl_raw().  Which is a problem for the
max_channel and max_target fields, which are 16-bit, not 32-bit.  For
little-endian targets we get away with it by accident, since the first
two bytes will still be correct, and the extra two bytes written (with
zeroes) will be overwritten correctly by the next store.

But for big-endian guests, this means the max_target field ends up as zero,
which means the guest will only recognize a single disk on the virtio-scsi
bus.  This patch fixes the problem.

Cc: Paolo Bonzini <address@hidden>
Cc: Paul 'Rusty' Russell <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: cbdd1999daf2341b33d3ba8036fd84898e1e7c31
      
https://github.com/qemu/qemu/commit/cbdd1999daf2341b33d3ba8036fd84898e1e7c31
  Author: Paolo Bonzini <address@hidden>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M Makefile.target
    M configure

  Log Message:
  -----------
  build: compile translate.o with -fno-gcse option on GCC 4.6.x and 4.7.[012]

These versions of GCC require insane (>2GB) amounts of memory to compile
translate.o.  As a countermeasure, disable the culprit optimization pass.
This should fix the buildbot failure for default_x86_64_fedora16.  Anyway
this is a good thing to do because people will try to compile 1.3 with
less than 2GB of memory and complain.

Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Anthony Liguori <address@hidden>


  Commit: f3d44eb53c10b4dddfb3762c3e005be38adfc0ed
      
https://github.com/qemu/qemu/commit/f3d44eb53c10b4dddfb3762c3e005be38adfc0ed
  Author: Anthony Liguori <address@hidden>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M target-i386/cpu.c

  Log Message:
  -----------
  Merge remote-tracking branch 'afaerber/qom-cpu-1.3' into staging

* afaerber/qom-cpu-1.3:
  target-i386: Enable SSSE3 TCG support
  target-i386/cpu: Add missing flags to Haswell CPU model

Signed-off-by: Anthony Liguori <address@hidden>


  Commit: 7e68494b0be4310c48996e9334373ef5771e3d15
      
https://github.com/qemu/qemu/commit/7e68494b0be4310c48996e9334373ef5771e3d15
  Author: Anthony Liguori <address@hidden>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M hw/ide/macio.c
    M hw/spapr_pci.c
    M kvm-all.c
    M qemu-pixman.c
    M target-ppc/translate.c

  Log Message:
  -----------
  Merge remote-tracking branch 'agraf/ppc-for-upstream-1.3' into staging

* agraf/ppc-for-upstream-1.3:
  fbdev: fix pixman compile on old pixman
  vl.c: Fix broken -usb option
  pseries: Fix bug in PCI MSI allocation
  kvm: fix incorrect length in a loop over kvm dirty pages map
  PPC: Fix missing TRACE exception
  hw/ide/macio: Fix segfault caused by NULL DMAContext*

Signed-off-by: Anthony Liguori <address@hidden>


  Commit: 0a6b2ac0cf92a4411cce38a22703d7a34a5b3601
      
https://github.com/qemu/qemu/commit/0a6b2ac0cf92a4411cce38a22703d7a34a5b3601
  Author: Anthony Liguori <address@hidden>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M hw/s390-virtio.c
    M hw/s390x/event-facility.c

  Log Message:
  -----------
  Merge remote-tracking branch 'agraf/s390-for-upstream-1.3' into staging

* agraf/s390-for-upstream-1.3:
  sclp: Fix uninitialized var in handle_write_event_buf().
  s390: Fix ram_size updating in machine init

Signed-off-by: Anthony Liguori <address@hidden>


  Commit: e6451fd372bbac8123414a88ed6d3296b66d4b5d
      
https://github.com/qemu/qemu/commit/e6451fd372bbac8123414a88ed6d3296b66d4b5d
  Author: Anthony Liguori <address@hidden>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M block/iscsi.c
    M hw/virtio-scsi.c

  Log Message:
  -----------
  Merge remote-tracking branch 'bonzini/scsi-next' into staging

* bonzini/scsi-next:
  virtio-scsi: Fix subtle (guest) endian bug
  virtio-scsi: Fix some endian bugs with virtio-scsi
  iscsi: do not assume device is zero initialized
  iscsi: fix deadlock during login
  iscsi: fix segfault in url parsing

Signed-off-by: Anthony Liguori <address@hidden>


  Commit: 264ac41ca171c53eead7e037bc78babb3f0f1bc3
      
https://github.com/qemu/qemu/commit/264ac41ca171c53eead7e037bc78babb3f0f1bc3
  Author: Anthony Liguori <address@hidden>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M blockdev-nbd.c
    M nbd.c

  Log Message:
  -----------
  Merge remote-tracking branch 'bonzini/nbd-next' into staging

* bonzini/nbd-next:
  nbd-server-add: Fix the default for 'writable'
  nbd: fix use of two uninitialized bytes when connecting to a named export

Signed-off-by: Anthony Liguori <address@hidden>


  Commit: e9bff10f8db94912b1b0e6e2e3394cae02faf614
      
https://github.com/qemu/qemu/commit/e9bff10f8db94912b1b0e6e2e3394cae02faf614
  Author: Jan Kiszka <address@hidden>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M event_notifier-win32.c

  Log Message:
  -----------
  event notifier: Fix setup for win32

The event notifier state is only reset by test_and_clear. But we created
the windows event object with auto-reset, which subtly swallowed events.

Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Jan Kiszka <address@hidden>
Signed-off-by: Anthony Liguori <address@hidden>


Compare: https://github.com/qemu/qemu/compare/03a36f17d778...e9bff10f8db9

reply via email to

[Prev in Thread] Current Thread [Next in Thread]