1. 26 6月, 2020 27 次提交
    • I
      numa: forbid '-numa node, mem' for 5.1 and newer machine types · 32a354dc
      Igor Mammedov 提交于
      Deprecation period is run out and it's a time to flip the switch
      introduced by cd5ff833.  Disable legacy option for new machine
      types (since 5.1) and amend documentation.
      
      '-numa node,memdev' shall be used instead of disabled option
      with new machine types.
      Signed-off-by: NIgor Mammedov <imammedo@redhat.com>
      Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
      Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
      Reviewed-by: NGreg Kurz <groug@kaod.org>
      Message-Id: <20200609135635.761587-1-imammedo@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      32a354dc
    • E
      osdep: Make MIN/MAX evaluate arguments only once · f9919116
      Eric Blake 提交于
      I'm not aware of any immediate bugs in qemu where a second runtime
      evaluation of the arguments to MIN() or MAX() causes a problem, but
      proactively preventing such abuse is easier than falling prey to an
      unintended case down the road.  At any rate, here's the conversation
      that sparked the current patch:
      https://lists.gnu.org/archive/html/qemu-devel/2018-12/msg05718.html
      
      Update the MIN/MAX macros to only evaluate their argument once at
      runtime; this uses typeof(1 ? (a) : (b)) to ensure that we are
      promoting the temporaries to the same type as the final comparison (we
      have to trigger type promotion, as typeof(bitfield) won't compile; and
      we can't use typeof((a) + (b)) or even typeof((a) + 0), as some of our
      uses of MAX are on void* pointers where such addition is undefined).
      
      However, we are unable to work around gcc refusing to compile ({}) in
      a constant context (such as the array length of a static variable),
      even when only used in the dead branch of a __builtin_choose_expr(),
      so we have to provide a second macro pair MIN_CONST and MAX_CONST for
      use when both arguments are known to be compile-time constants and
      where the result must also be usable as a constant; this second form
      evaluates arguments multiple times but that doesn't matter for
      constants.  By using a void expression as the expansion if a
      non-constant is presented to this second form, we can enlist the
      compiler to ensure the double evaluation is not attempted on
      non-constants.
      
      Alas, as both macros now rely on compiler intrinsics, they are no
      longer usable in preprocessor #if conditions; those will just have to
      be open-coded or the logic rewritten into #define or runtime 'if'
      conditions (but where the compiler dead-code-elimination will probably
      still apply).
      
      I tested that both gcc 10.1.1 and clang 10.0.0 produce errors for all
      forms of macro mis-use.  As the errors can sometimes be cryptic, I'm
      demonstrating the gcc output:
      
      Use of MIN when MIN_CONST is needed:
      
      In file included from /home/eblake/qemu/qemu-img.c:25:
      /home/eblake/qemu/include/qemu/osdep.h:249:5: error: braced-group within expression allowed only inside a function
        249 |     ({                                                  \
            |     ^
      /home/eblake/qemu/qemu-img.c:92:12: note: in expansion of macro ‘MIN’
         92 | char array[MIN(1, 2)] = "";
            |            ^~~
      
      Use of MIN_CONST when MIN is needed:
      
      /home/eblake/qemu/qemu-img.c: In function ‘is_allocated_sectors’:
      /home/eblake/qemu/qemu-img.c:1225:15: error: void value not ignored as it ought to be
       1225 |             i = MIN_CONST(i, n);
            |               ^
      
      Use of MIN in the preprocessor:
      
      In file included from /home/eblake/qemu/accel/tcg/translate-all.c:20:
      /home/eblake/qemu/accel/tcg/translate-all.c: In function ‘page_check_range’:
      /home/eblake/qemu/include/qemu/osdep.h:249:6: error: token "{" is not valid in preprocessor expressions
        249 |     ({                                                  \
            |      ^
      
      Fix the resulting callsites that used #if or computed a compile-time
      constant min or max to use the new macros.  cpu-defs.h is interesting,
      as CPU_TLB_DYN_MAX_BITS is sometimes used as a constant and sometimes
      dynamic.
      
      It may be worth improving glib's MIN/MAX definitions to be saner, but
      that is a task for another day.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      Reviewed-by: NPhilippe Mathieu-Daudé <philmd@redhat.com>
      Tested-by: NPhilippe Mathieu-Daudé <philmd@redhat.com>
      Message-Id: <20200625162602.700741-1-eblake@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      f9919116
    • T
      target/i386: Add notes for versioned CPU models · 47f0d11d
      Tao Xu 提交于
      Add which features are added or removed in this version.
      Signed-off-by: NTao Xu <tao3.xu@intel.com>
      Message-Id: <20200324051034.30541-1-tao3.xu@intel.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      47f0d11d
    • J
      target/i386: reimplement fpatan using floatx80 operations · ff57bb7b
      Joseph Myers 提交于
      The x87 fpatan emulation is currently based around conversion to
      double.  This is inherently unsuitable for a good emulation of any
      floatx80 operation.  Reimplement using the soft-float operations, as
      for other such instructions.
      Signed-off-by: NJoseph Myers <joseph@codesourcery.com>
      
      Message-Id: <alpine.DEB.2.21.2006230000340.24721@digraph.polyomino.org.uk>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      ff57bb7b
    • J
      target/i386: reimplement fyl2x using floatx80 operations · 1f18a1e6
      Joseph Myers 提交于
      The x87 fyl2x emulation is currently based around conversion to
      double.  This is inherently unsuitable for a good emulation of any
      floatx80 operation.  Reimplement using the soft-float operations,
      building on top of the reimplementation of fyl2xp1 and factoring out
      code to be shared between the two instructions.
      
      The included test assumes that the result in round-to-nearest mode
      should always be one of the two closest floating-point numbers to the
      mathematically exact result (including that it should be exact, in the
      exact cases which cover more cases than for fyl2xp1).
      Signed-off-by: NJoseph Myers <joseph@codesourcery.com>
      Message-Id: <alpine.DEB.2.21.2006172321530.20587@digraph.polyomino.org.uk>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      1f18a1e6
    • J
      target/i386: reimplement fyl2xp1 using floatx80 operations · 5eebc49d
      Joseph Myers 提交于
      The x87 fyl2xp1 emulation is currently based around conversion to
      double.  This is inherently unsuitable for a good emulation of any
      floatx80 operation, even before considering that it is a particularly
      naive implementation using double (adding 1 then using log rather than
      attempting a better emulation using log1p).
      
      Reimplement using the soft-float operations, as was done for f2xm1; as
      in that case, m68k has related operations but not exactly this one and
      it seemed safest to implement directly rather than reusing the m68k
      code to avoid accumulation of errors.
      
      A test is included with many randomly generated inputs.  The
      assumption of the test is that the result in round-to-nearest mode
      should always be one of the two closest floating-point numbers to the
      mathematical value of y * log2(x + 1); the implementation aims to do
      somewhat better than that (about 70 correct bits before rounding).  I
      haven't investigated how accurate hardware is.
      
      Intel manuals describe a narrower range of valid arguments to this
      instruction than AMD manuals.  The implementation accepts the wider
      range (it's needed anyway for the core code to be reusable in a
      subsequent patch reimplementing fyl2x), but the test only has inputs
      in the narrower range so that it's valid on hardware that may reject
      or produce poor results for inputs outside that range.
      
      Code in the previous implementation that sets C2 for some out-of-range
      arguments is not carried forward to the new implementation; C2 is
      undefined for this instruction and I suspect that code was just
      cut-and-pasted from the trigonometric instructions (fcos, fptan, fsin,
      fsincos) where C2 *is* defined to be set for out-of-range arguments.
      Signed-off-by: NJoseph Myers <joseph@codesourcery.com>
      
      Message-Id: <alpine.DEB.2.21.2006172320190.20587@digraph.polyomino.org.uk>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      5eebc49d
    • J
      target/i386: reimplement fprem, fprem1 using floatx80 operations · 5ef396e2
      Joseph Myers 提交于
      The x87 fprem and fprem1 emulation is currently based around
      conversion to double, which is inherently unsuitable for a good
      emulation of any floatx80 operation.  Reimplement using the soft-float
      floatx80 remainder operations.
      Signed-off-by: NJoseph Myers <joseph@codesourcery.com>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Message-Id: <alpine.DEB.2.21.2006081657200.23637@digraph.polyomino.org.uk>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      5ef396e2
    • J
      softfloat: return low bits of quotient from floatx80_modrem · 445810ec
      Joseph Myers 提交于
      Both x87 and m68k need the low parts of the quotient for their
      remainder operations.  Arrange for floatx80_modrem to track those bits
      and return them via a pointer.
      
      The architectures using float32_rem and float64_rem do not appear to
      need this information, so the *_rem interface is left unchanged and
      the information returned only from floatx80_modrem.  The logic used to
      determine the low 7 bits of the quotient for m68k
      (target/m68k/fpu_helper.c:make_quotient) appears completely bogus (it
      looks at the result of converting the remainder to integer, the
      quotient having been discarded by that point); this patch does not
      change that, but the m68k maintainers may wish to do so.
      Signed-off-by: NJoseph Myers <joseph@codesourcery.com>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Message-Id: <alpine.DEB.2.21.2006081656500.23637@digraph.polyomino.org.uk>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      445810ec
    • J
      softfloat: do not set denominator high bit for floatx80 remainder · 566601f1
      Joseph Myers 提交于
      The floatx80 remainder implementation unnecessarily sets the high bit
      of bSig explicitly.  By that point in the function, arguments that are
      invalid, zero, infinity or NaN have already been handled and
      subnormals have been through normalizeFloatx80Subnormal, so the high
      bit will already be set.  Remove the unnecessary code.
      Signed-off-by: NJoseph Myers <joseph@codesourcery.com>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Message-Id: <alpine.DEB.2.21.2006081656220.23637@digraph.polyomino.org.uk>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      566601f1
    • J
      softfloat: do not return pseudo-denormal from floatx80 remainder · b662495d
      Joseph Myers 提交于
      The floatx80 remainder implementation sometimes returns the numerator
      unchanged when the denominator is sufficiently larger than the
      numerator.  But if the value to be returned unchanged is a
      pseudo-denormal, that is incorrect.  Fix it to normalize the numerator
      in that case.
      Signed-off-by: NJoseph Myers <joseph@codesourcery.com>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Message-Id: <alpine.DEB.2.21.2006081655520.23637@digraph.polyomino.org.uk>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      b662495d
    • J
      softfloat: fix floatx80 remainder pseudo-denormal check for zero · 499a2f7b
      Joseph Myers 提交于
      The floatx80 remainder implementation ignores the high bit of the
      significand when checking whether an operand (numerator) with zero
      exponent is zero.  This means it mishandles a pseudo-denormal
      representation of 0x1p-16382L by treating it as zero.  Fix this by
      checking the whole significand instead.
      Signed-off-by: NJoseph Myers <joseph@codesourcery.com>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Message-Id: <alpine.DEB.2.21.2006081655180.23637@digraph.polyomino.org.uk>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      499a2f7b
    • J
      softfloat: merge floatx80_mod and floatx80_rem · 6b8b0136
      Joseph Myers 提交于
      The m68k-specific softfloat code includes a function floatx80_mod that
      is extremely similar to floatx80_rem, but computing the remainder
      based on truncating the quotient toward zero rather than rounding it
      to nearest integer.  This is also useful for emulating the x87 fprem
      and fprem1 instructions.  Change the floatx80_rem implementation into
      floatx80_modrem that can perform either operation, with both
      floatx80_rem and floatx80_mod as thin wrappers available for all
      targets.
      
      There does not appear to be any use for the _mod operation for other
      floating-point formats in QEMU (the only other architectures using
      _rem at all are linux-user/arm/nwfpe, for FPA emulation, and openrisc,
      for instructions that have been removed in the latest version of the
      architecture), so no change is made to the code for other formats.
      Signed-off-by: NJoseph Myers <joseph@codesourcery.com>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Message-Id: <alpine.DEB.2.21.2006081654280.23637@digraph.polyomino.org.uk>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      6b8b0136
    • J
      target/i386: reimplement f2xm1 using floatx80 operations · eca30647
      Joseph Myers 提交于
      The x87 f2xm1 emulation is currently based around conversion to
      double.  This is inherently unsuitable for a good emulation of any
      floatx80 operation, even before considering that it is a particularly
      naive implementation using double (computing with pow and then
      subtracting 1 rather than attempting a better emulation using expm1).
      
      Reimplement using the soft-float operations, including additions and
      multiplications with higher precision where appropriate to limit
      accumulation of errors.  I considered reusing some of the m68k code
      for transcendental operations, but the instructions don't generally
      correspond exactly to x87 operations (for example, m68k has 2^x and
      e^x - 1, but not 2^x - 1); to avoid possible accumulation of errors
      from applying multiple such operations each rounding to floatx80
      precision, I wrote a direct implementation of 2^x - 1 instead.  It
      would be possible in principle to make the implementation more
      efficient by doing the intermediate operations directly with
      significands, signs and exponents and not packing / unpacking floatx80
      format for each operation, but that would make it significantly more
      complicated and it's not clear that's worthwhile; the m68k emulation
      doesn't try to do that.
      
      A test is included with many randomly generated inputs.  The
      assumption of the test is that the result in round-to-nearest mode
      should always be one of the two closest floating-point numbers to the
      mathematical value of 2^x - 1; the implementation aims to do somewhat
      better than that (about 70 correct bits before rounding).  I haven't
      investigated how accurate hardware is.
      Signed-off-by: NJoseph Myers <joseph@codesourcery.com>
      
      Message-Id: <alpine.DEB.2.21.2006112341010.18393@digraph.polyomino.org.uk>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      eca30647
    • A
      xen: Actually fix build without passthrough · b00de3a5
      Anthony PERARD 提交于
      Fix typo.
      
      Fixes: acd0c941 ("xen: fix build without pci passthrough")
      Signed-off-by: NAnthony PERARD <anthony.perard@citrix.com>
      Message-Id: <20200619103115.254127-1-anthony.perard@citrix.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      b00de3a5
    • L
      Makefile: Install qemu-[qmp/ga]-ref.* into the directory "interop" · c13dba2c
      Liao Pingfang 提交于
      We need install qemu-[qmp/ga]-ref.* files into the subdirectory of qemu docs: interop.
      
      If we visit the following address and click the link to qemu-qmp-ref.html:
      https://www.qemu.org/docs/master/interop/bitmaps.html#basic-qmp-usage
      
      It will report following error:
      "
      Not Found
      The requested URL /docs/master/interop/qemu-qmp-ref.html was not found on this server.
      "
      Signed-off-by: NLiao Pingfang <liao.pingfang@zte.com.cn>
      Reviewed-by: NPhilippe Mathieu-Daudé <philmd@redhat.com>
      Message-Id: <1591663670-47712-1-git-send-email-wang.yi59@zte.com.cn>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      c13dba2c
    • T
      hw/scsi/megasas: Fix possible out-of-bounds array access in tracepoints · ee760ac8
      Thomas Huth 提交于
      Some tracepoints in megasas.c use a guest-controlled value as an index
      into the mfi_frame_desc[] array. Thus a malicious guest could cause an
      out-of-bounds error here. Fortunately, the impact is very low since this
      can only happen when the corresponding tracepoints have been enabled
      before, but the problem should be fixed anyway with a proper check.
      
      Buglink: https://bugs.launchpad.net/qemu/+bug/1882065Signed-off-by: NThomas Huth <thuth@redhat.com>
      Message-Id: <20200615072629.32321-1-thuth@redhat.com>
      Reviewed-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      ee760ac8
    • J
      docs/nvdimm: add description of alignment requirement of device dax · 5f509751
      Jingqi Liu 提交于
      For device dax (e.g., /dev/dax0.0), the NUM of 'align=NUM' option
      needs to match the alignment requirement of the device dax.
      It must be larger than or equal to the 'align' of device dax.
      Reviewed-by: NJoao Martins <joao.m.martins@oracle.com>
      Signed-off-by: NJingqi Liu <jingqi.liu@intel.com>
      Message-Id: <20200429085011.63752-3-jingqi.liu@intel.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      5f509751
    • J
      exec: fetch the alignment of Linux devdax pmem character device nodes · ce317be9
      Jingqi Liu 提交于
      If the backend file is devdax pmem character device, the alignment
      specified by the option 'align=NUM' in the '-object memory-backend-file'
      needs to match the alignment requirement of the devdax pmem character device.
      
      This patch uses the interfaces of libdaxctl to fetch the devdax pmem file
      'align', so that we can compare it with the NUM of 'align=NUM'.
      The NUM needs to be larger than or equal to the devdax pmem file 'align'.
      
      It also fixes the problem that mmap() returns failure in qemu_ram_mmap()
      when the NUM of 'align=NUM' is less than the devdax pmem file 'align'.
      Suggested-by: NDan Williams <dan.j.williams@intel.com>
      Reviewed-by: NJoao Martins <joao.m.martins@oracle.com>
      Signed-off-by: NJingqi Liu <jingqi.liu@intel.com>
      Message-Id: <20200429085011.63752-2-jingqi.liu@intel.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      ce317be9
    • J
      configure: add libdaxctl support · 21b2eca6
      Jingqi Liu 提交于
      Add a pair of configure options --{enable,disable}-libdaxctl to control
      whether QEMU is compiled with libdaxctl [1]. Libdaxctl is a utility
      library for managing the device dax subsystem.
      
      QEMU uses mmap(2) to maps vNVDIMM backends and aligns the mapping
      address to the page size (getpagesize(2)) by default. However, some
      types of backends may require an alignment different than the page
      size. The 'align' option is provided to memory-backend-file to allow
      users to specify the proper alignment.
      
      For device dax (e.g., /dev/dax0.0), the 'align' option needs to match
      the alignment requirement of the device dax, which can be fetched
      through the APIs of libdaxctl version 57 or up.
      
      [1] Libdaxctl is a part of ndctl project.
      The project's repository is: https://github.com/pmem/ndctl
      
      For more information about libdaxctl APIs, you can refer to the
      comments in source code of: pmem/ndctl/daxctl/lib/libdaxctl.c.
      Reviewed-by: NJoao Martins <joao.m.martins@oracle.com>
      Signed-off-by: NJingqi Liu <jingqi.liu@intel.com>
      Message-Id: <20200429085011.63752-4-jingqi.liu@intel.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      21b2eca6
    • P
      replay: synchronize on every virtual timer callback · 677a3bab
      Pavel Dovgalyuk 提交于
      Sometimes virtual timer callbacks depend on order
      of virtual timer processing and warping of virtual clock.
      Therefore every callback should be logged to make replay deterministic.
      This patch creates a checkpoint before every virtual timer callback.
      With these checkpoints virtual timers processing and clock warping
      events order is completely deterministic.
      Signed-off-by: NPavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
      Acked-by: NAlex Bennée <alex.bennee@linaro.org>
      
      --
      
      v2:
        - remove mutex lock/unlock for virtual clock checkpoint since it is
          not process any asynchronous events (commit ca9759c2)
        - bump record/replay log file version
      Message-Id: <159012932716.27256.8854065545365559921.stgit@pasha-ThinkPad-X280>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      677a3bab
    • P
      replay: notify the main loop when there are no instructions · 255ae6e2
      Pavel Dovgalyuk 提交于
      When QEMU is executed in console mode without any external event sources,
      main loop may sleep for a very long time. But in case of replay
      there is another event source - event log.
      This patch adds main loop notification when the vCPU loop has nothing
      to do and main loop should process the inputs from the event log.
      Signed-off-by: NPavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
      Message-Id: <159013007895.28110.2020104406699709721.stgit@pasha-ThinkPad-X280>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      255ae6e2
    • M
      memory: Revert "memory: accept mismatching sizes in memory_region_access_valid" · 5d971f9e
      Michael S. Tsirkin 提交于
      Memory API documentation documents valid .min_access_size and .max_access_size
      fields and explains that any access outside these boundaries is blocked.
      
      This is what devices seem to assume.
      
      However this is not what the implementation does: it simply
      ignores the boundaries unless there's an "accepts" callback.
      
      Naturally, this breaks a bunch of devices.
      
      Revert to the documented behaviour.
      
      Devices that want to allow any access can just drop the valid field,
      or add the impl field to have accesses converted to appropriate
      length.
      
      Cc: qemu-stable@nongnu.org
      Reviewed-by: NRichard Henderson <rth@twiddle.net>
      Fixes: CVE-2020-13754
      Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1842363
      Fixes: a014ed07 ("memory: accept mismatching sizes in memory_region_access_valid")
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      Message-Id: <20200610134731.1514409-1-mst@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      5d971f9e
    • P
      libqos: pci-pc: use 32-bit write for EJ register · 4b7c0683
      Paolo Bonzini 提交于
      The memory region ops have min_access_size == 4 so obey it.
      Tested-by: NThomas Huth <thuth@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      4b7c0683
    • P
      libqos: usb-hcd-ehci: use 32-bit write for config register · 89ed83d8
      Paolo Bonzini 提交于
      The memory region ops have min_access_size == 4 so obey it.
      Tested-by: NThomas Huth <thuth@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      89ed83d8
    • D
      util/getauxval: Porting to FreeBSD getauxval feature · ae2b7207
      David CARLIER 提交于
      From d7f9d40777d1ed7c9450b0be4f957da2993dfc72 Mon Sep 17 00:00:00 2001
      From: David Carlier <devnexen@gmail.com>
      Date: Fri, 12 Jun 2020 09:39:17 +0100
      Subject: [PATCH] util/getauxval: Porting to FreeBSD getauxval feature
      
      FreeBSD has a similar API for auxiliary vector.
      Signed-off-by: NDavid Carlier <devnexen@gmail.com>
      Message-Id: <CA+XhMqxTU6PUSQBpbA9VrS1QZfqgrCAKUCtUF-x2aF=fCMTDOw@mail.gmail.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      ae2b7207
    • J
      kvm: support to get/set dirty log initial-all-set capability · 494cd11d
      Jay Zhou 提交于
      Since the new capability KVM_DIRTY_LOG_INITIALLY_SET of
      KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2 has been introduced in the
      kernel, tweak the userspace side to detect and enable this
      capability.
      Signed-off-by: NJay Zhou <jianjay.zhou@huawei.com>
      Reviewed-by: NPeter Xu <peterx@redhat.com>
      Message-Id: <20200304025554.2159-1-jianjay.zhou@huawei.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      494cd11d
    • P
      Merge remote-tracking branch 'remotes/xtensa/tags/20200625-xtensa' into staging · 5acc270a
      Peter Maydell 提交于
      target/xtensa fixes for 5.1:
      
      - fix access to special registers missing in the core configuration;
      - fix simcall opcode behavior for new hardware;
      - drop gen_io_end call from xtensa translator.
      
      # gpg: Signature made Thu 25 Jun 2020 09:08:58 BST
      # gpg:                using RSA key 2B67854B98E5327DCDEB17D851F9CC91F83FA044
      # gpg:                issuer "jcmvbkbc@gmail.com"
      # gpg: Good signature from "Max Filippov <filippov@cadence.com>" [unknown]
      # gpg:                 aka "Max Filippov <max.filippov@cogentembedded.com>" [full]
      # gpg:                 aka "Max Filippov <jcmvbkbc@gmail.com>" [full]
      # Primary key fingerprint: 2B67 854B 98E5 327D CDEB  17D8 51F9 CC91 F83F A044
      
      * remotes/xtensa/tags/20200625-xtensa:
        target/xtensa: drop gen_io_end call
        target/xtensa: fix simcall for newer hardware
        target/xtensa: fetch HW version from configuration overlay
        target/xtensa: work around missing SR definitions
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      5acc270a
  2. 25 6月, 2020 13 次提交