]> Git Repo - qemu.git/log
qemu.git
6 years agoMerge remote-tracking branch 'remotes/ehabkost/tags/x86-next-pull-request' into staging
Peter Maydell [Thu, 1 Nov 2018 16:32:54 +0000 (16:32 +0000)]
Merge remote-tracking branch 'remotes/ehabkost/tags/x86-next-pull-request' into staging

x86 queue, 2018-10-30

* MSR-based feature support for
  MSR_IA32_ARCH_CAPABILITIES bits (Robert Hoo)
* Cascadelake-Server CPU model (Tao Xu)
* Add PKU on Skylake-Server CPU model (Tao Xu)
* Correct cpu_x86_cpuid(0xd) (Sebastian Andrzej Siewior)
* Remove dead code (Peter Maydell)

# gpg: Signature made Wed 31 Oct 2018 14:05:25 GMT
# gpg:                using RSA key 2807936F984DC5A6
# gpg: Good signature from "Eduardo Habkost <[email protected]>"
# Primary key fingerprint: 5A32 2FD5 ABC4 D3DB ACCF  D1AA 2807 936F 984D C5A6

* remotes/ehabkost/tags/x86-next-pull-request:
  i386: Add PKU on Skylake-Server CPU model
  i386: Add new model of Cascadelake-Server
  x86: define a new MSR based feature word -- FEATURE_WORDS_ARCH_CAPABILITIES
  x86: Data structure changes to support MSR based features
  kvm: Add support to KVM_GET_MSR_FEATURE_INDEX_LIST and KVM_GET_MSRS system ioctl
  target/i386: Remove #ifdeffed-out icebp debugging hack
  i386: correct cpu_x86_cpuid(0xd)

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/rth/tags/pull-tcg-20181031' into staging
Peter Maydell [Thu, 1 Nov 2018 15:04:36 +0000 (15:04 +0000)]
Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20181031' into staging

Track mmu_idx for which the TLB is clean and need not be flushed again.

# gpg: Signature made Wed 31 Oct 2018 12:19:31 GMT
# gpg:                using RSA key 64DF38E8AF7E215F
# gpg: Good signature from "Richard Henderson <[email protected]>"
# Primary key fingerprint: 7A48 1E78 868B 4DB6 A85A  05C0 64DF 38E8 AF7E 215F

* remotes/rth/tags/pull-tcg-20181031:
  cputlb: Remove tlb_c.pending_flushes
  cputlb: Filter flushes on already clean tlbs
  cputlb: Count "partial" and "elided" tlb flushes
  cputlb: Merge tlb_flush_page into tlb_flush_page_by_mmuidx
  cputlb: Merge tlb_flush_nocheck into tlb_flush_by_mmuidx_async_work
  cputlb: Move env->vtlb_index to env->tlb_d.vindex
  cputlb: Split large page tracking per mmu_idx
  cputlb: Move cpu->pending_tlb_flush to env->tlb_c.pending_flush
  cputlb: Remove tcg_enabled hack from tlb_flush_nocheck
  cputlb: Move tlb_lock to CPUTLBCommon

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/berrange/tags/misc-next-pull-request' into...
Peter Maydell [Thu, 1 Nov 2018 14:38:50 +0000 (14:38 +0000)]
Merge remote-tracking branch 'remotes/berrange/tags/misc-next-pull-request' into staging

Merge misc fixes

# gpg: Signature made Wed 31 Oct 2018 11:36:12 GMT
# gpg:                using RSA key BE86EBB415104FDF
# gpg: Good signature from "Daniel P. Berrange <[email protected]>"
# gpg:                 aka "Daniel P. Berrange <[email protected]>"
# Primary key fingerprint: DAF3 A6FD B26B 6291 2D0E  8E3F BE86 EBB4 1510 4FDF

* remotes/berrange/tags/misc-next-pull-request:
  scripts: report on author emails that are mangled by the mailing list
  block: drop moderated sheepdog mailing list from MAINTAINERS file

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/ehabkost/tags/python-next-pull-request' into...
Peter Maydell [Thu, 1 Nov 2018 13:24:51 +0000 (13:24 +0000)]
Merge remote-tracking branch 'remotes/ehabkost/tags/python-next-pull-request' into staging

Python queue, 2018-10-30

* Makefile rule for running acceptance tests
  (make check-acceptance) (Cleber Rosa)
* Make iotests compatible with Python 3
  (Max Reitz)
* device-crash-test whitelist update (Thomas Huth)
* Misc cleanups (Cleber Rosa)

# gpg: Signature made Wed 31 Oct 2018 00:28:39 GMT
# gpg:                using RSA key 2807936F984DC5A6
# gpg: Good signature from "Eduardo Habkost <[email protected]>"
# Primary key fingerprint: 5A32 2FD5 ABC4 D3DB ACCF  D1AA 2807 936F 984D C5A6

* remotes/ehabkost/tags/python-next-pull-request:
  scripts/qemu.py: use a more consistent docstring style
  scripts/decodetree.py: fix reference to attributes
  Travis support for the acceptance tests
  Acceptance tests: add make rule for running them
  Bootstrap Python venv for tests
  iotests: Unify log outputs between Python 2 and 3
  iotests: Modify imports for Python 3
  iotests: 'new' module replacement in 169
  iotests: Explicitly bequeath FDs in Python
  iotests: Different iterator behavior in Python 3
  iotests: Use // for Python integer division
  iotests: Use Python byte strings where appropriate
  iotests: Flush in iotests.py's QemuIoInteractive
  iotests: Make nbd-fault-injector flush
  scripts/device-crash-test: Remove devices that are not user_creatable anymore

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/stefanberger/tags/pull-tpm-2018-10-29-2' into...
Peter Maydell [Thu, 1 Nov 2018 12:08:10 +0000 (12:08 +0000)]
Merge remote-tracking branch 'remotes/stefanberger/tags/pull-tpm-2018-10-29-2' into staging

Merge tpm 2018/10/29 v2

# gpg: Signature made Tue 30 Oct 2018 21:40:24 GMT
# gpg:                using RSA key 75AD65802A0B4211
# gpg: Good signature from "Stefan Berger <[email protected]>"
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: B818 B9CA DF90 89C2 D5CE  C66B 75AD 6580 2A0B 4211

* remotes/stefanberger/tags/pull-tpm-2018-10-29-2:
  tpm: Zero-init structure to avoid uninitialized variables in valgrind log
  MAINTAINERS: Change my email address to the new domain
  docs: tpm: Mention implemented TPM CRB interface emulation and specs
  tests/tpm: Display if swtpm is not found or --tpm2 not supported
  tests/tpm: fix tpm_util_swtpm_has_tpm2()

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/xtensa/tags/20181030-xtensa' into staging
Peter Maydell [Wed, 31 Oct 2018 16:11:43 +0000 (16:11 +0000)]
Merge remote-tracking branch 'remotes/xtensa/tags/20181030-xtensa' into staging

target/xtensa: support for bFLT binaries

- add support for bFLT binaries for target/xtensa
- fix per-architecture target_flat.h customization
- fix initial stack pointer for bFLT

# gpg: Signature made Tue 30 Oct 2018 18:27:42 GMT
# gpg:                using RSA key 51F9CC91F83FA044
# gpg: Good signature from "Max Filippov <[email protected]>"
# gpg:                 aka "Max Filippov <[email protected]>"
# gpg:                 aka "Max Filippov <[email protected]>"
# Primary key fingerprint: 2B67 854B 98E5 327D CDEB  17D8 51F9 CC91 F83F A044

* remotes/xtensa/tags/20181030-xtensa:
  linux-user/flatload: fix initial stack pointer alignment
  linux-user: xtensa: enable bFLT support

Signed-off-by: Peter Maydell <[email protected]>
6 years agocputlb: Remove tlb_c.pending_flushes
Richard Henderson [Tue, 23 Oct 2018 05:58:03 +0000 (06:58 +0100)]
cputlb: Remove tlb_c.pending_flushes

This is essentially redundant with tlb_c.dirty.

Tested-by: Emilio G. Cota <[email protected]>
Reviewed-by: Emilio G. Cota <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
6 years agocputlb: Filter flushes on already clean tlbs
Richard Henderson [Sat, 20 Oct 2018 19:04:57 +0000 (12:04 -0700)]
cputlb: Filter flushes on already clean tlbs

Especially for guests with large numbers of tlbs, like ARM or PPC,
we may well not use all of them in between flush operations.
Remember which tlbs have been used since the last flush, and
avoid any useless flushing.

Tested-by: Emilio G. Cota <[email protected]>
Reviewed-by: Emilio G. Cota <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
6 years agocputlb: Count "partial" and "elided" tlb flushes
Richard Henderson [Fri, 19 Oct 2018 21:36:43 +0000 (14:36 -0700)]
cputlb: Count "partial" and "elided" tlb flushes

Our only statistic so far was "full" tlb flushes, where all mmu_idx
are flushed at the same time.

Now count "partial" tlb flushes where sets of mmu_idx are flushed,
but the set is not maximal.  Account one per mmu_idx flushed, as
that is the unit of work performed.

We don't actually count elided flushes yet, but go ahead and change
the interface presented to the monitor all at once.

Tested-by: Emilio G. Cota <[email protected]>
Reviewed-by: Emilio G. Cota <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
6 years agocputlb: Merge tlb_flush_page into tlb_flush_page_by_mmuidx
Richard Henderson [Fri, 19 Oct 2018 21:25:09 +0000 (14:25 -0700)]
cputlb: Merge tlb_flush_page into tlb_flush_page_by_mmuidx

The difference between the two sets of APIs is now miniscule.

Tested-by: Emilio G. Cota <[email protected]>
Reviewed-by: Emilio G. Cota <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
6 years agocputlb: Merge tlb_flush_nocheck into tlb_flush_by_mmuidx_async_work
Richard Henderson [Tue, 23 Oct 2018 05:01:01 +0000 (06:01 +0100)]
cputlb: Merge tlb_flush_nocheck into tlb_flush_by_mmuidx_async_work

The difference between the two sets of APIs is now miniscule.

This allows tlb_flush, tlb_flush_all_cpus, and tlb_flush_all_cpus_synced
to be merged with their corresponding by_mmuidx functions as well.  For
accounting, consider mmu_idx_bitmask = ALL_MMUIDX_BITS to be a full flush.

Tested-by: Emilio G. Cota <[email protected]>
Reviewed-by: Emilio G. Cota <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
6 years agocputlb: Move env->vtlb_index to env->tlb_d.vindex
Richard Henderson [Fri, 19 Oct 2018 19:46:18 +0000 (12:46 -0700)]
cputlb: Move env->vtlb_index to env->tlb_d.vindex

The rest of the tlb victim cache is per-tlb,
the next use index should be as well.

Tested-by: Emilio G. Cota <[email protected]>
Reviewed-by: Emilio G. Cota <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
6 years agocputlb: Split large page tracking per mmu_idx
Richard Henderson [Wed, 17 Oct 2018 18:48:40 +0000 (11:48 -0700)]
cputlb: Split large page tracking per mmu_idx

The set of large pages in the kernel is probably not the same
as the set of large pages in the application.  Forcing one
range to cover both will flush more often than necessary.

This allows tlb_flush_page_async_work to flush just the one
mmu_idx implicated, which in turn allows us to remove
tlb_check_page_and_flush_by_mmuidx_async_work.

Tested-by: Emilio G. Cota <[email protected]>
Reviewed-by: Emilio G. Cota <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
6 years agocputlb: Move cpu->pending_tlb_flush to env->tlb_c.pending_flush
Richard Henderson [Sat, 20 Oct 2018 20:54:46 +0000 (13:54 -0700)]
cputlb: Move cpu->pending_tlb_flush to env->tlb_c.pending_flush

Protect it with the tlb_lock instead of using atomics.
The move puts it in or near the same cacheline as the lock;
using the lock means we don't need a second atomic operation
in order to perform the update.  Which makes it cheap to also
update pending_flush in tlb_flush_by_mmuidx_async_work.

Tested-by: Emilio G. Cota <[email protected]>
Reviewed-by: Emilio G. Cota <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
6 years agocputlb: Remove tcg_enabled hack from tlb_flush_nocheck
Richard Henderson [Sat, 20 Oct 2018 20:28:04 +0000 (13:28 -0700)]
cputlb: Remove tcg_enabled hack from tlb_flush_nocheck

The bugs this was working around were fixed with commits
022d6378c7fd  target/unicore32: remove tlb_flush from uc32_init_fn
6e11beecfde0  target/alpha: remove tlb_flush from alpha_cpu_initfn

Tested-by: Emilio G. Cota <[email protected]>
Reviewed-by: Emilio G. Cota <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
6 years agocputlb: Move tlb_lock to CPUTLBCommon
Richard Henderson [Tue, 23 Oct 2018 02:57:11 +0000 (03:57 +0100)]
cputlb: Move tlb_lock to CPUTLBCommon

This is the first of several moves to reduce the size of the
CPU_COMMON_TLB macro and improve some locality of refernce.

Tested-by: Emilio G. Cota <[email protected]>
Reviewed-by: Emilio G. Cota <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
6 years agoscripts: report on author emails that are mangled by the mailing list
Daniel P. Berrangé [Thu, 23 Aug 2018 10:21:43 +0000 (11:21 +0100)]
scripts: report on author emails that are mangled by the mailing list

In some cases the Author: email address in patches submitted to the
list gets mangled such that it says

    John Doe via Qemu-devel <[email protected]>

This change is a result of workarounds for DMARC policies.

Subsystem maintainers accepting patches need to catch these and fix
them before sending pull requests, so a checkpatch.pl test is highly
desirable.

Reviewed-by: Eric Blake <[email protected]>
Acked-by: Cornelia Huck <[email protected]>
Signed-off-by: Daniel P. Berrangé <[email protected]>
6 years agoblock: drop moderated sheepdog mailing list from MAINTAINERS file
Daniel P. Berrangé [Wed, 21 Mar 2018 15:25:57 +0000 (15:25 +0000)]
block: drop moderated sheepdog mailing list from MAINTAINERS file

The sheepdog mailing list is setup to stop and queue messages from
non-subscribers, pending moderator approval. Unfortunately it seems
that the moderation queue is not actively deadlt with. Even when messages
are approved, the sender is never added to the whitelist, so every
future mail the same sender continues to get stopped for moderation.

MAINTAINERS entries should be responsive and not uneccessarily block
mails from QEMU contributors, so drop the sheepdog mailing list.

Reviewed-by: Jeff Cody <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Signed-off-by: Daniel P. Berrangé <[email protected]>
6 years agoi386: Add PKU on Skylake-Server CPU model
Tao Xu [Mon, 29 Oct 2018 08:39:53 +0000 (16:39 +0800)]
i386: Add PKU on Skylake-Server CPU model

As the release document ref below link (page 13):
https://software.intel.com/sites/default/files/managed/c5/15/\
architecture-instruction-set-extensions-programming-reference.pdf

PKU is supported in Skylake Server (Only Server) and later, and
on Intel(R) Xeon(R) Processor Scalable Family. So PKU is supposed
to be in Skylake-Server CPU model. And PKU's CPUID has been
exposed to QEMU. But PKU can't be find in Skylake-Server CPU
model in the code. So this patch will fix this issue in
Skylake-Server CPU model.

Signed-off-by: Tao Xu <[email protected]>
Message-Id: <5014b57f834dcfa8fd3781504d98dcf063d54fde.1540801392[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agoi386: Add new model of Cascadelake-Server
Tao Xu [Wed, 19 Sep 2018 03:11:22 +0000 (11:11 +0800)]
i386: Add new model of Cascadelake-Server

New CPU models mostly inherit features from ancestor Skylake-Server,
while addin new features: AVX512_VNNI, Intel PT.
SSBD support for speculative execution
side channel mitigations.

Note:

On Cascadelake, some capabilities (RDCL_NO, IBRS_ALL, RSBA,
SKIP_L1DFL_VMENTRY and SSB_NO) are enumerated by MSR.
These features rely on MSR based feature support patch.
Will be added later after that patch's in.
http://lists.nongnu.org/archive/html/qemu-devel/2018-09/msg00074.html

Signed-off-by: Tao Xu <[email protected]>
Message-Id: <20180919031122[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agox86: define a new MSR based feature word -- FEATURE_WORDS_ARCH_CAPABILITIES
Robert Hoo [Mon, 15 Oct 2018 04:47:25 +0000 (12:47 +0800)]
x86: define a new MSR based feature word -- FEATURE_WORDS_ARCH_CAPABILITIES

Note RSBA is specially treated -- no matter host support it or not, qemu
pretends it is supported.

Signed-off-by: Robert Hoo <[email protected]>
Message-Id: <1539578845[email protected]>
[ehabkost: removed automatic enabling of RSBA]
Reviewed-by: Eduardo Habkost <[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agox86: Data structure changes to support MSR based features
Robert Hoo [Mon, 15 Oct 2018 04:47:24 +0000 (12:47 +0800)]
x86: Data structure changes to support MSR based features

Add FeatureWordType indicator in struct FeatureWordInfo.
Change feature_word_info[] accordingly.
Change existing functions that refer to feature_word_info[] accordingly.

Signed-off-by: Robert Hoo <[email protected]>
Message-Id: <1539578845[email protected]>
[ehabkost: fixed hvf_enabled() case]
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agokvm: Add support to KVM_GET_MSR_FEATURE_INDEX_LIST and KVM_GET_MSRS system ioctl
Robert Hoo [Mon, 15 Oct 2018 04:47:23 +0000 (12:47 +0800)]
kvm: Add support to KVM_GET_MSR_FEATURE_INDEX_LIST and KVM_GET_MSRS system ioctl

Add kvm_get_supported_feature_msrs() to get supported MSR feature index list.
Add kvm_arch_get_supported_msr_feature() to get each MSR features value.

Signed-off-by: Robert Hoo <[email protected]>
Message-Id: <1539578845[email protected]>
Reviewed-by: Eduardo Habkost <[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agotarget/i386: Remove #ifdeffed-out icebp debugging hack
Peter Maydell [Tue, 9 Oct 2018 18:33:14 +0000 (19:33 +0100)]
target/i386: Remove #ifdeffed-out icebp debugging hack

Remove a debugging hack which could be used to cause the
undocumented 'icebp' instruction to enable QEMU internal
debug logging. This code has always been #ifdeffed out
since it was introduced in commit aba9d61e34b9 in 2005;
judging by the rest of that commit (which is entirely
unrelated) it may have even been committed by accident.

(Note that WANT_ICEBP is not defined by default anyway.)

Signed-off-by: Peter Maydell <[email protected]>
Message-Id: <20181009183314[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agoi386: correct cpu_x86_cpuid(0xd)
Sebastian Andrzej Siewior [Fri, 28 Sep 2018 10:43:19 +0000 (12:43 +0200)]
i386: correct cpu_x86_cpuid(0xd)

Intel SDM says for CPUID function 0DH, sub-function 0:

| • ECX enumerates the size (in bytes) required by the XSAVE instruction for an
|   XSAVE area containing all the user state components supported by this
|   processor.
| • EBX enumerates the size (in bytes) required by the XSAVE instruction for an
|   XSAVE area containing all the user state components corresponding to bits
|   currently set in XCR0.

Signed-off-by: Sebastian Andrzej Siewior <[email protected]>
Message-Id: <20180928104319[email protected]>
Reviewed-by: Eduardo Habkost <[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agoscripts/qemu.py: use a more consistent docstring style
Cleber Rosa [Thu, 4 Oct 2018 16:18:51 +0000 (12:18 -0400)]
scripts/qemu.py: use a more consistent docstring style

Signed-off-by: Cleber Rosa <[email protected]>
Message-Id: <20181004161852[email protected]>
[ehabkost: reverted unintentional submodule update]
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agoscripts/decodetree.py: fix reference to attributes
Cleber Rosa [Thu, 4 Oct 2018 16:18:50 +0000 (12:18 -0400)]
scripts/decodetree.py: fix reference to attributes

Signed-off-by: Cleber Rosa <[email protected]>
Message-Id: <20181004161852[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agoTravis support for the acceptance tests
Cleber Rosa [Thu, 18 Oct 2018 15:31:34 +0000 (11:31 -0400)]
Travis support for the acceptance tests

This enables the execution of the acceptance tests on Travis.

Because the Travis environment is based on Ubuntu Trusty, it requires
the python3-pip and python3.4-venv packages.

Signed-off-by: Cleber Rosa <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Alex Bennée <[email protected]>
Acked-by: Stefan Hajnoczi <[email protected]>
Acked-by: Wainer dos Santos Moschetta <[email protected]>
Reviewed-by: Caio Carrara <[email protected]>
Message-Id: <20181018153134[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agoAcceptance tests: add make rule for running them
Cleber Rosa [Thu, 18 Oct 2018 15:31:33 +0000 (11:31 -0400)]
Acceptance tests: add make rule for running them

The acceptance (aka functional, aka Avocado-based) tests are
Python files located in "tests/acceptance" that need to be run
with the Avocado libs and test runner.

Let's provide a convenient way for QEMU developers to run them,
by making use of the tests-venv with the required setup.

Also, while the Avocado test runner will take care of creating a
location to save test results to, it was understood that it's better
if the results are kept within the build tree.

Signed-off-by: Cleber Rosa <[email protected]>
Acked-by: Stefan Hajnoczi <[email protected]>
Acked-by: Wainer dos Santos Moschetta <[email protected]>
Reviewed-by: Caio Carrara <[email protected]>
Message-Id: <20181018153134[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agoBootstrap Python venv for tests
Cleber Rosa [Thu, 18 Oct 2018 15:31:32 +0000 (11:31 -0400)]
Bootstrap Python venv for tests

A number of QEMU tests are written in Python, and may benefit
from an untainted Python venv.

By using make rules, tests that depend on specific Python libs
can set that rule as a requirement, along with rules that require
the presence or installation of specific libraries.

The tests/requirements.txt is supposed to contain the Python
requirements that should be added to the venv created by check-venv.

Signed-off-by: Cleber Rosa <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
Acked-by: Stefan Hajnoczi <[email protected]>
Acked-by: Wainer dos Santos Moschetta <[email protected]>
Reviewed-by: Caio Carrara <[email protected]>
Message-Id: <20181018153134[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agoiotests: Unify log outputs between Python 2 and 3
Max Reitz [Mon, 22 Oct 2018 13:53:07 +0000 (14:53 +0100)]
iotests: Unify log outputs between Python 2 and 3

When dumping an object into the log, there are differences between
Python 2 and 3.  First, unicode strings are prefixed by 'u' in Python 2
(they are no longer in 3, because unicode strings are the default
there).  Second, the order of keys in dicts may differ.  Third,
especially long numbers are longs in Python 2 and thus get an 'L'
suffix, which does not happen in Python 3.

We can get around all of these differences by dumping objects (lists and
dicts) in a language-independent format, namely JSON.  The JSON
generator even allows emitting dicts with their keys sorted
alphabetically.

This changes the output of all tests that use these logging functions
(dict keys are ordered now, strings in dicts are now enclosed in double
quotes instead of single quotes, the 'L' suffix of large integers is
dropped, and "true" and "false" are now in lower case).
The quote change necessitates a small change to a filter used in test
207.

Suggested-by: Eduardo Habkost <[email protected]>
Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Cleber Rosa <[email protected]>
Message-Id: <20181022135307[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agoiotests: Modify imports for Python 3
Max Reitz [Mon, 22 Oct 2018 13:53:06 +0000 (14:53 +0100)]
iotests: Modify imports for Python 3

There are two imports that need to be modified when running the iotests
under Python 3: One is StringIO, which no longer exists; instead, the
StringIO class comes from the io module, so import it from there (and
use the BytesIO class for Python 2).  The other is the ConfigParser,
which has just been renamed to configparser.

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Eduardo Habkost <[email protected]>
Reviewed-by: Cleber Rosa <[email protected]>
Message-Id: <20181022135307[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agoiotests: 'new' module replacement in 169
Max Reitz [Mon, 22 Oct 2018 13:53:05 +0000 (14:53 +0100)]
iotests: 'new' module replacement in 169

iotest 169 uses the 'new' module to add methods to a class.  This module
no longer exists in Python 3.  Instead, we can use a lambda.  Best of
all, this works in 2.7 just as well.

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Eduardo Habkost <[email protected]>
Reviewed-by: Cleber Rosa <[email protected]>
Message-Id: <20181022135307[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agoiotests: Explicitly bequeath FDs in Python
Max Reitz [Mon, 22 Oct 2018 13:53:04 +0000 (14:53 +0100)]
iotests: Explicitly bequeath FDs in Python

Python 3.4 introduced the inheritable attribute for FDs.  At the same
time, it changed the default so that all FDs are not inheritable by
default, that only inheritable FDs are inherited to subprocesses, and
only if close_fds is explicitly set to False.

Adhere to this by setting close_fds to False when working with
subprocesses that may want to inherit FDs, and by trying to
set_inheritable() on FDs that we do want to bequeath to them.

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Eduardo Habkost <[email protected]>
Reviewed-by: Cleber Rosa <[email protected]>
Message-Id: <20181022135307[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agoiotests: Different iterator behavior in Python 3
Max Reitz [Mon, 22 Oct 2018 13:53:03 +0000 (14:53 +0100)]
iotests: Different iterator behavior in Python 3

In Python 3, several functions now return iterators instead of lists.
This includes range(), items(), map(), and filter().  This means that if
we really want a list, we have to wrap those instances with list().  But
then again, the two instances where this is the case for map() and
filter(), there are shorter expressions which work without either
function.

On the other hand, sometimes we do just want an iterator, in which case
we have sometimes used xrange() and iteritems() which no longer exist in
Python 3.  Just change these calls to be range() and items(), works in
both Python 2 and 3, and is really what we want in 3 (which is what
matters).  But because it is so simple to do (and to find and remove
once we completely switch to Python 3), make range() be an alias for
xrange() in the two affected tests (044 and 163).

In one instance, we only wanted the first instance of the result of a
filter() call.  Instead of using next(filter()) which would work only in
Python 3, or list(filter())[0] which would work everywhere but is a bit
weird, this instance is changed to use a generator expression with a
next() wrapped around, which works both in 2.7 and 3.

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Eduardo Habkost <[email protected]>
Reviewed-by: Cleber Rosa <[email protected]>
Message-Id: <20181022135307[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agoiotests: Use // for Python integer division
Max Reitz [Mon, 22 Oct 2018 13:53:02 +0000 (14:53 +0100)]
iotests: Use // for Python integer division

In Python 3, / is always a floating-point division.  We usually do not
want this, and as Python 2.7 understands // as well, change all integer
divisions to use that.

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Eduardo Habkost <[email protected]>
Reviewed-by: Cleber Rosa <[email protected]>
Message-Id: <20181022135307[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agoiotests: Use Python byte strings where appropriate
Max Reitz [Mon, 22 Oct 2018 13:53:01 +0000 (14:53 +0100)]
iotests: Use Python byte strings where appropriate

Since byte strings are no longer the default in Python 3, we have to
explicitly use them where we need to, which is mostly when working with
structures.  It also means that we need to open a file in binary mode
when we want to use structures.

On the other hand, we have to accomodate for the fact that some
functions (still) work with byte strings but we want to use unicode
strings (in Python 3 at least, and it does not matter in Python 2).
This includes base64 encoding, but it is most notable when working with
the subprocess module: Either we set universal_newlines to True so that
the default streams are opened in text mode (hence this parameter is
aliased as "text" as of 3.7), or, if that is not possible, we have to
decode the output to a normal string.

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Eduardo Habkost <[email protected]>
Message-Id: <20181022135307[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agoiotests: Flush in iotests.py's QemuIoInteractive
Max Reitz [Mon, 22 Oct 2018 13:53:00 +0000 (14:53 +0100)]
iotests: Flush in iotests.py's QemuIoInteractive

After issuing a command, flush the pipe.  This does not change anything
in Python 2, but it makes a difference in Python 3.

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Eduardo Habkost <[email protected]>
Reviewed-by: Cleber Rosa <[email protected]>
Message-Id: <20181022135307[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agoiotests: Make nbd-fault-injector flush
Max Reitz [Mon, 22 Oct 2018 13:52:59 +0000 (14:52 +0100)]
iotests: Make nbd-fault-injector flush

When closing a connection, make the nbd-fault-injector flush the socket.
Without this, the output is a bit unreliable with Python 3.

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Eduardo Habkost <[email protected]>
Reviewed-by: Cleber Rosa <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Message-Id: <20181022135307[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agoscripts/device-crash-test: Remove devices that are not user_creatable anymore
Thomas Huth [Fri, 5 Oct 2018 08:44:27 +0000 (10:44 +0200)]
scripts/device-crash-test: Remove devices that are not user_creatable anymore

Devices that are derived from TYPE_SYS_BUS_DEVICE are not user_creatable
anymore by default, and some others have been marked as non-user_creatable
manually, so we can remove these devices from the "ignore"-list in the
device-crash-test script.

Signed-off-by: Thomas Huth <[email protected]>
Message-Id: <1538729067[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
6 years agotpm: Zero-init structure to avoid uninitialized variables in valgrind log
Stefan Berger [Tue, 30 Oct 2018 21:32:56 +0000 (17:32 -0400)]
tpm: Zero-init structure to avoid uninitialized variables in valgrind log

Zero-init the ptm_loc structure so that we don't have fields that
are not initialised.

Signed-off-by: Stefan Berger <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
6 years agoMAINTAINERS: Change my email address to the new domain
Stefan Berger [Tue, 30 Oct 2018 21:34:09 +0000 (17:34 -0400)]
MAINTAINERS: Change my email address to the new domain

My old email address will soon not work anymore, so change it to the
new domain.

Signed-off-by: Stefan Berger <[email protected]>
6 years agodocs: tpm: Mention implemented TPM CRB interface emulation and specs
Stefan Berger [Tue, 30 Oct 2018 21:33:53 +0000 (17:33 -0400)]
docs: tpm: Mention implemented TPM CRB interface emulation and specs

Add a few sentences about the implemented emulation of the TPM CRB
interface and its specification.

Signed-off-by: Stefan Berger <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
6 years agolinux-user/flatload: fix initial stack pointer alignment
Max Filippov [Wed, 24 Oct 2018 02:30:02 +0000 (19:30 -0700)]
linux-user/flatload: fix initial stack pointer alignment

Stack pointer alignment code incorrectly adds stack_size to sp instead
of subtracting it. It also does not take flat_argvp_envp_on_stack() into
account when calculating stack_size. This results in initial stack
pointer misalignment with certain set of command line arguments and
environment variables and correct alignment for the same binary with a
different set of arguments. This misalignment causes failures in the
following tests in the testsuite of gcc built for xtensa uclinux:

  gcc.dg/torture/vshuf-v64qi.c
  gcc.dg/torture/vshuf-v8sf.c
  gcc.dg/torture/vshuf-v8si.c

Reviewed-by: Laurent Vivier <[email protected]>
Signed-off-by: Max Filippov <[email protected]>
6 years agotests/tpm: Display if swtpm is not found or --tpm2 not supported
Marc-André Lureau [Wed, 3 Oct 2018 13:21:29 +0000 (17:21 +0400)]
tests/tpm: Display if swtpm is not found or --tpm2 not supported

If swtpm is not found in $PATH or --tpm2 isn't supported, we display
this in the test log. We cannot mark the test as skipped due to a bug in
certain versions of the gtester environment that interprets a skipped test
as failure.

Signed-off-by: Marc-André Lureau <[email protected]>
Reviewed-by: Stefan Berger <[email protected]>
Signed-off-by: Stefan Berger <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/vivier2/tags/qemu-trivial-for-3.1-pull-request...
Peter Maydell [Tue, 30 Oct 2018 15:49:55 +0000 (15:49 +0000)]
Merge remote-tracking branch 'remotes/vivier2/tags/qemu-trivial-for-3.1-pull-request' into staging

QEMU trivial patches collected between June and October 2018
(Thank you to Thomas Huth)

v2: fix 32bit build with updated patch (v3) from Philippe Mathieu-Daudé
    built in a 32bit debian sid chroot

# gpg: Signature made Tue 30 Oct 2018 11:23:01 GMT
# gpg:                using RSA key F30C38BD3F2FBE3C
# gpg: Good signature from "Laurent Vivier <[email protected]>"
# gpg:                 aka "Laurent Vivier <[email protected]>"
# gpg:                 aka "Laurent Vivier (Red Hat) <[email protected]>"
# Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F  5173 F30C 38BD 3F2F BE3C

* remotes/vivier2/tags/qemu-trivial-for-3.1-pull-request:
  milkymist-minimac2: Use qemu_log_mask(GUEST_ERROR) instead of error_report
  ppc: move at24c to its own CONFIG_ symbol
  hw/intc/gicv3: Remove useless parenthesis around DIV_ROUND_UP macro
  hw/pci-host: Remove useless parenthesis around DIV_ROUND_UP macro
  tests/bios-tables-test: Remove an useless cast
  xen: Use the PCI_DEVICE macro
  qobject: Catch another straggler for use of qdict_put_str()
  configure: Support pkg-config for zlib
  tests: Fix typos in comments and help message (found by codespell)
  cpu.h: fix a typo in comment
  linux-user: fix comment s/atomic_write/atomic_set/
  qemu-iotests: make 218 executable
  scripts/qemu.py: remove trailing quotes on docstring
  scripts/decodetree.py: remove unused imports
  docs/devel/testing.rst: add missing newlines after code block
  qemu-iotests: fix filename containing checks
  tests/tcg/README: fix location for lm32 tests
  memory.h: fix typos in comments
  vga_int: remove unused function protype
  configs/alpha: Remove unused CONFIG_PARALLEL_ISA switch

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/jnsnow/tags/bitmaps-pull-request' into staging
Peter Maydell [Tue, 30 Oct 2018 14:09:25 +0000 (14:09 +0000)]
Merge remote-tracking branch 'remotes/jnsnow/tags/bitmaps-pull-request' into staging

Pull request

# gpg: Signature made Mon 29 Oct 2018 21:24:08 GMT
# gpg:                using RSA key 7DEF8106AAFC390E
# gpg: Good signature from "John Snow (John Huston) <[email protected]>"
# Primary key fingerprint: FAEB 9711 A12C F475 812F  18F2 88A9 064D 1835 61EB
#      Subkey fingerprint: F9B7 ABDB BCAC DF95 BE76  CBD0 7DEF 8106 AAFC 390E

* remotes/jnsnow/tags/bitmaps-pull-request:
  iotests: 169: add cases for source vm resuming
  iotests: improve 169
  dirty-bitmaps: clean-up bitmaps loading and migration logic
  bitmap: Update count after a merge
  nbd: forbid use of frozen bitmaps
  block/backup: prohibit backup from using in use bitmaps
  block/dirty-bitmaps: prohibit enable/disable on locked/frozen bitmaps
  block/dirty-bitmaps: allow clear on disabled bitmaps
  block/dirty-bitmaps: fix merge permissions
  block/dirty-bitmaps: add user_locked status checker
  bloc/qcow2: drop dirty_bitmaps_loaded state variable
  block/qcow2: improve error message in qcow2_inactivate
  iotests: 169: drop deprecated 'autoload' parameter
  qapi: add transaction support for x-block-dirty-bitmap-merge
  blockdev: rename block-dirty-bitmap-clear transaction handlers
  dirty-bitmap: make it possible to restore bitmap after merge
  dirty-bitmap: rename bdrv_undo_clear_dirty_bitmap
  dirty-bitmap: switch assert-fails to errors in bdrv_merge_dirty_bitmap
  blockdev-backup: add bitmap argument

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/kraxel/tags/usb-20181029-pull-request' into...
Peter Maydell [Tue, 30 Oct 2018 13:32:38 +0000 (13:32 +0000)]
Merge remote-tracking branch 'remotes/kraxel/tags/usb-20181029-pull-request' into staging

usb: fixes for ohci and smart card emulation.

# gpg: Signature made Mon 29 Oct 2018 20:02:34 GMT
# gpg:                using RSA key 4CB6D8EED3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <[email protected]>"
# gpg:                 aka "Gerd Hoffmann <[email protected]>"
# gpg:                 aka "Gerd Hoffmann (private) <[email protected]>"
# Primary key fingerprint: A032 8CFF B93A 17A7 9901  FE7D 4CB6 D8EE D3E8 7138

* remotes/kraxel/tags/usb-20181029-pull-request:
  hw: ccid-card-emulated: cleanup resource when realize in error path
  hw: ccid-card-emulated: introduce clean_event_notifier
  usb: ohci: make num_ports to an unsinged integer

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/amarkovic/tags/mips-queue-october-2018-part...
Peter Maydell [Tue, 30 Oct 2018 10:45:49 +0000 (10:45 +0000)]
Merge remote-tracking branch 'remotes/amarkovic/tags/mips-queue-october-2018-part-4' into staging

MIPS queue for October 2018, part 4

# gpg: Signature made Mon 29 Oct 2018 15:11:32 GMT
# gpg:                using RSA key D4972A8967F75A65
# gpg: Good signature from "Aleksandar Markovic <[email protected]>"
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 8526 FBF1 5DA3 811F 4A01  DD75 D497 2A89 67F7 5A65

* remotes/amarkovic/tags/mips-queue-october-2018-part-4: (27 commits)
  linux-user: Add prctl() PR_SET_FP_MODE and PR_GET_FP_MODE implementations
  linux-user: Determine the desired FPU mode from MIPS.abiflags
  linux-user: Read and set FP ABI value from MIPS abiflags
  linux-user: Extract MIPS abiflags from ELF file
  linux-user: Extend image_info struct with MIPS fp_abi and interp_fp_abi fields
  elf: Define MIPS_ABI_FP_UNKNOWN macro
  target/mips: Amend MXU ASE overview note
  target/mips: Move MXU_EN check one level higher
  target/mips: Add emulation of MXU instructions S32LDD and S32LDDR
  target/mips: Add emulation of MXU instructions Q8MUL and Q8MULSU
  target/mips: Add emulation of MXU instruction D16MAC
  target/mips: Add emulation of MXU instruction D16MUL
  target/mips: Add emulation of MXU instruction S8LDD
  target/mips: Move MUL, S32M2I, S32I2M handling out of main MXU switch
  target/mips: Add emulation of MXU instructions S32I2M and S32M2I
  target/mips: Add emulation of non-MXU MULL within MXU decoding engine
  target/mips: Add bit encoding for MXU operand getting pattern 'optn3'
  target/mips: Add bit encoding for MXU operand getting pattern 'optn2'
  target/mips: Add bit encoding for MXU execute add/sub pattern 'eptn2'
  target/mips: Add bit encoding for MXU accumulate add/sub 2-bit pattern 'aptn2'
  ...

Signed-off-by: Peter Maydell <[email protected]>
6 years agomilkymist-minimac2: Use qemu_log_mask(GUEST_ERROR) instead of error_report
Philippe Mathieu-Daudé [Mon, 29 Oct 2018 13:00:34 +0000 (14:00 +0100)]
milkymist-minimac2: Use qemu_log_mask(GUEST_ERROR) instead of error_report

qemu_log_mask(GUEST_ERROR) is more appropriate:

  $ qemu -d help
  Log items (comma separated):
  guest_errors    log when the guest OS does something invalid (eg accessing a non-existent register)

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Acked-by: Michael Walle <[email protected]>
Message-Id: <20181029130034[email protected]>
Signed-off-by: Laurent Vivier <[email protected]>
6 years agoppc: move at24c to its own CONFIG_ symbol
Paolo Bonzini [Tue, 22 May 2018 19:17:43 +0000 (21:17 +0200)]
ppc: move at24c to its own CONFIG_ symbol

AT24c EEPROM is currently gated by CONFIG_I2C, and as such it is
being included in all emulators that use I2C, even if they do not
really need it.  Separate it and, since it was added for the e500
machines, add it to qemu-system-ppc and qemu-system-ppc64.

Signed-off-by: Paolo Bonzini <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Message-Id: <20180522191743[email protected]>
[lv: rebase]
Signed-off-by: Laurent Vivier <[email protected]>
6 years agoiotests: 169: add cases for source vm resuming
Vladimir Sementsov-Ogievskiy [Mon, 29 Oct 2018 20:23:17 +0000 (16:23 -0400)]
iotests: 169: add cases for source vm resuming

Test that we can resume source vm after [failed] migration, and bitmaps
are ok.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Signed-off-by: John Snow <[email protected]>
6 years agoiotests: improve 169
Vladimir Sementsov-Ogievskiy [Mon, 29 Oct 2018 20:23:17 +0000 (16:23 -0400)]
iotests: improve 169

Before previous patch, iotest 169 was actually broken for the case
test_persistent__not_migbitmap__offline_shared, while formally
passing.

After migration log of vm_b had message:

    qemu-system-x86_64: Could not reopen qcow2 layer: Bitmap already
    exists: bitmap0

which means that invalidation failed and bs->drv = NULL.

It was because we've loaded bitmap twice: on open and on invalidation.

Add code to 169, to catch such fails.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Signed-off-by: John Snow <[email protected]>
6 years agodirty-bitmaps: clean-up bitmaps loading and migration logic
Vladimir Sementsov-Ogievskiy [Mon, 29 Oct 2018 20:23:17 +0000 (16:23 -0400)]
dirty-bitmaps: clean-up bitmaps loading and migration logic

This patch aims to bring the following behavior:

1. We don't load bitmaps, when started in inactive mode. It's the case
of incoming migration. In this case we wait for bitmaps migration
through migration channel (if 'dirty-bitmaps' capability is enabled) or
for invalidation (to load bitmaps from the image).

2. We don't remove persistent bitmaps on inactivation. Instead, we only
remove bitmaps after storing. This is the only way to restore bitmaps,
if we decided to resume source after [failed] migration with
'dirty-bitmaps' capability enabled (which means, that bitmaps were not
stored).

3. We load bitmaps on open and any invalidation, it's ok for all cases:
  - normal open
  - migration target invalidation with dirty-bitmaps capability
    (bitmaps are migrating through migration channel, the are not
     stored, so they should have IN_USE flag set and will be skipped
     when loading. However, it would fail if bitmaps are read-only[1])
  - migration target invalidation without dirty-bitmaps capability
    (normal load of the bitmaps, if migrated with shared storage)
  - source invalidation with dirty-bitmaps capability
    (skip because IN_USE)
  - source invalidation without dirty-bitmaps capability
    (bitmaps were dropped, reload them)

[1]: to accurately handle this, migration of read-only bitmaps is
     explicitly forbidden in this patch.

New mechanism for not storing bitmaps when migrate with dirty-bitmaps
capability is introduced: migration filed in BdrvDirtyBitmap.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Signed-off-by: John Snow <[email protected]>
6 years agobitmap: Update count after a merge
Eric Blake [Mon, 29 Oct 2018 20:23:17 +0000 (16:23 -0400)]
bitmap: Update count after a merge

We need an accurate count of the number of bits set in a bitmap
after a merge. In particular, since the merge operation short-circuits
a merge from an empty source, if you have bitmaps A, B, and C where
B started empty, then merge C into B, and B into A, an inaccurate
count meant that A did not get the contents of C.

In the worst case, we may falsely regard the bitmap as empty when
it has had new writes merged into it.

Fixes: be58721db
CC: [email protected]
Signed-off-by: Eric Blake <[email protected]>
Signed-off-by: John Snow <[email protected]>
Reviewed-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Message-id: 20181002233314[email protected]
Signed-off-by: John Snow <[email protected]>
6 years agonbd: forbid use of frozen bitmaps
John Snow [Mon, 29 Oct 2018 20:23:16 +0000 (16:23 -0400)]
nbd: forbid use of frozen bitmaps

Whether it's "locked" or "frozen", it's in use and should
not be allowed for the purposes of this operation.

Signed-off-by: John Snow <[email protected]>
Reviewed-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Message-id: 20181002230218[email protected]
Signed-off-by: John Snow <[email protected]>
6 years agoblock/backup: prohibit backup from using in use bitmaps
John Snow [Mon, 29 Oct 2018 20:23:16 +0000 (16:23 -0400)]
block/backup: prohibit backup from using in use bitmaps

If the bitmap is frozen, we shouldn't touch it.

Signed-off-by: John Snow <[email protected]>
Reviewed-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Message-id: 20181002230218[email protected]
Signed-off-by: John Snow <[email protected]>
6 years agoblock/dirty-bitmaps: prohibit enable/disable on locked/frozen bitmaps
John Snow [Mon, 29 Oct 2018 20:23:16 +0000 (16:23 -0400)]
block/dirty-bitmaps: prohibit enable/disable on locked/frozen bitmaps

We're not being consistent about this. If it's in use by an operation,
the user should not be able to change the behavior of that bitmap.

Signed-off-by: John Snow <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Message-id: 20181002230218[email protected]
Signed-off-by: John Snow <[email protected]>
6 years agoblock/dirty-bitmaps: allow clear on disabled bitmaps
John Snow [Mon, 29 Oct 2018 20:23:16 +0000 (16:23 -0400)]
block/dirty-bitmaps: allow clear on disabled bitmaps

Similarly to merge, it's OK to allow clear operations on disabled
bitmaps, as this condition only means that they are not recording
new writes. We are free to clear it if the user requests it.

Signed-off-by: John Snow <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Message-id: 20181002230218[email protected]
Signed-off-by: John Snow <[email protected]>
6 years agoblock/dirty-bitmaps: fix merge permissions
John Snow [Mon, 29 Oct 2018 20:23:16 +0000 (16:23 -0400)]
block/dirty-bitmaps: fix merge permissions

In prior commits that made merge transactionable, we removed the
assertion that merge cannot operate on disabled bitmaps. In addition,
we want to make sure that we are prohibiting merges to "locked" bitmaps.

Use the new user_locked function to check.

Reported-by: Eric Blake <[email protected]>
Signed-off-by: John Snow <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Message-id: 20181002230218[email protected]
Signed-off-by: John Snow <[email protected]>
6 years agoblock/dirty-bitmaps: add user_locked status checker
John Snow [Mon, 29 Oct 2018 20:23:16 +0000 (16:23 -0400)]
block/dirty-bitmaps: add user_locked status checker

Instead of both frozen and qmp_locked checks, wrap it into one check.
frozen implies the bitmap is split in two (for backup), and shouldn't
be modified. qmp_locked implies it's being used by another operation,
like being exported over NBD. In both cases it means we shouldn't allow
the user to modify it in any meaningful way.

Replace any usages where we check both frozen and qmp_locked with the
new check.

Signed-off-by: John Snow <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Message-id: 20181002230218[email protected]
[w/edits Suggested-By: Vladimir Sementsov-Ogievskiy <[email protected]>]
Signed-off-by: John Snow <[email protected]>
6 years agobloc/qcow2: drop dirty_bitmaps_loaded state variable
Vladimir Sementsov-Ogievskiy [Mon, 29 Oct 2018 20:23:15 +0000 (16:23 -0400)]
bloc/qcow2: drop dirty_bitmaps_loaded state variable

This variable doesn't work as it should, because it is actually cleared
in qcow2_co_invalidate_cache() by memset(). Drop it, as the following
patch will introduce new behavior.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Reviewed-by: John Snow <[email protected]>
Signed-off-by: John Snow <[email protected]>
6 years agoblock/qcow2: improve error message in qcow2_inactivate
Vladimir Sementsov-Ogievskiy [Mon, 29 Oct 2018 20:23:15 +0000 (16:23 -0400)]
block/qcow2: improve error message in qcow2_inactivate

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
[Maintainer edit -- touched up error message. --js]
Reviewed-by: John Snow <[email protected]>
Signed-off-by: John Snow <[email protected]>
6 years agoiotests: 169: drop deprecated 'autoload' parameter
Vladimir Sementsov-Ogievskiy [Mon, 29 Oct 2018 20:23:15 +0000 (16:23 -0400)]
iotests: 169: drop deprecated 'autoload' parameter

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Reviewed-by: John Snow <[email protected]>
Signed-off-by: John Snow <[email protected]>
6 years agoqapi: add transaction support for x-block-dirty-bitmap-merge
Vladimir Sementsov-Ogievskiy [Mon, 29 Oct 2018 20:23:15 +0000 (16:23 -0400)]
qapi: add transaction support for x-block-dirty-bitmap-merge

New action is like clean action: do the whole thing in .prepare and
undo in .abort. This behavior for bitmap-changing actions is needed
because backup job actions use bitmap in .prepare.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Reviewed-by: John Snow <[email protected]>
6 years agoblockdev: rename block-dirty-bitmap-clear transaction handlers
Vladimir Sementsov-Ogievskiy [Mon, 29 Oct 2018 20:23:15 +0000 (16:23 -0400)]
blockdev: rename block-dirty-bitmap-clear transaction handlers

Rename block-dirty-bitmap-clear transaction handlers to reuse them for
x-block-dirty-bitmap-merge transaction in the following patch.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Reviewed-by: John Snow <[email protected]>
6 years agodirty-bitmap: make it possible to restore bitmap after merge
Vladimir Sementsov-Ogievskiy [Mon, 29 Oct 2018 20:23:15 +0000 (16:23 -0400)]
dirty-bitmap: make it possible to restore bitmap after merge

Add backup parameter to bdrv_merge_dirty_bitmap() to be used then with
bdrv_restore_dirty_bitmap() if it needed to restore the bitmap after
merge operation.

This is needed to implement bitmap merge transaction action in further
commit.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Reviewed-by: John Snow <[email protected]>
6 years agodirty-bitmap: rename bdrv_undo_clear_dirty_bitmap
Vladimir Sementsov-Ogievskiy [Mon, 29 Oct 2018 20:23:14 +0000 (16:23 -0400)]
dirty-bitmap: rename bdrv_undo_clear_dirty_bitmap

Use more generic names to reuse the function for bitmap merge in the
following commit.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Reviewed-by: John Snow <[email protected]>
6 years agodirty-bitmap: switch assert-fails to errors in bdrv_merge_dirty_bitmap
Vladimir Sementsov-Ogievskiy [Mon, 29 Oct 2018 20:23:14 +0000 (16:23 -0400)]
dirty-bitmap: switch assert-fails to errors in bdrv_merge_dirty_bitmap

Move checks from qmp_x_block_dirty_bitmap_merge() to
bdrv_merge_dirty_bitmap(), to share them with dirty bitmap merge
transaction action in future commit.

Note: for now, only qmp_x_block_dirty_bitmap_merge() calls
bdrv_merge_dirty_bitmap().

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Reviewed-by: John Snow <[email protected]>
6 years agoblockdev-backup: add bitmap argument
John Snow [Mon, 29 Oct 2018 20:23:14 +0000 (16:23 -0400)]
blockdev-backup: add bitmap argument

It is only an oversight that we don't allow incremental backup with
blockdev-backup. Add the bitmap argument which enables this.

Signed-off-by: John Snow <[email protected]>
Message-id: 20180830211605[email protected]
Signed-off-by: John Snow <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/kraxel/tags/ui-20181029-pull-request' into...
Peter Maydell [Mon, 29 Oct 2018 18:24:11 +0000 (18:24 +0000)]
Merge remote-tracking branch 'remotes/kraxel/tags/ui-20181029-pull-request' into staging

ui: sdl+spice tweaks.

# gpg: Signature made Mon 29 Oct 2018 14:18:21 GMT
# gpg:                using RSA key 4CB6D8EED3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <[email protected]>"
# gpg:                 aka "Gerd Hoffmann <[email protected]>"
# gpg:                 aka "Gerd Hoffmann (private) <[email protected]>"
# Primary key fingerprint: A032 8CFF B93A 17A7 9901  FE7D 4CB6 D8EE D3E8 7138

* remotes/kraxel/tags/ui-20181029-pull-request:
  spice: prepare for upcoming spice-server change
  SDL: set a hint to not bypass the window compositor

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging
Peter Maydell [Mon, 29 Oct 2018 17:03:27 +0000 (17:03 +0000)]
Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging

Pull request

No changelog-worthy entries, just small tweaks.

# gpg: Signature made Mon 29 Oct 2018 13:55:54 GMT
# gpg:                using RSA key 9CA4ABB381AB73C8
# gpg: Good signature from "Stefan Hajnoczi <[email protected]>"
# gpg:                 aka "Stefan Hajnoczi <[email protected]>"
# Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35  775A 9CA4 ABB3 81AB 73C8

* remotes/stefanha/tags/block-pull-request:
  nvdimm: Add docs hint for Linux driver name
  util: aio-posix: fix a typo

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/kraxel/tags/audio-20181029-pull-request' into...
Peter Maydell [Mon, 29 Oct 2018 15:15:14 +0000 (15:15 +0000)]
Merge remote-tracking branch 'remotes/kraxel/tags/audio-20181029-pull-request' into staging

audio: qom cleanups.

# gpg: Signature made Mon 29 Oct 2018 13:37:09 GMT
# gpg:                using RSA key 4CB6D8EED3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <[email protected]>"
# gpg:                 aka "Gerd Hoffmann <[email protected]>"
# gpg:                 aka "Gerd Hoffmann (private) <[email protected]>"
# Primary key fingerprint: A032 8CFF B93A 17A7 9901  FE7D 4CB6 D8EE D3E8 7138

* remotes/kraxel/tags/audio-20181029-pull-request:
  audio: use TYPE_MV88W8618_AUDIO instead of hardcoded string
  audio: use object link instead of qdev property to pass wm8750 reference
  audio: use TYPE_WM8750 instead of a hardcoded string
  hw: AC97: make it more QOMconventional

Signed-off-by: Peter Maydell <[email protected]>
6 years agolinux-user: Add prctl() PR_SET_FP_MODE and PR_GET_FP_MODE implementations
Stefan Markovic [Fri, 26 Oct 2018 11:17:43 +0000 (13:17 +0200)]
linux-user: Add prctl() PR_SET_FP_MODE and PR_GET_FP_MODE implementations

Implement MIPS specific prctl() PR_SET_FP_MODE and PR_GET_FP_MODE emulation.

Reviewed-by: Aleksandar Markovic <[email protected]>
Signed-off-by: Stefan Markovic <[email protected]>
6 years agolinux-user: Determine the desired FPU mode from MIPS.abiflags
Stefan Markovic [Tue, 23 Oct 2018 09:44:36 +0000 (11:44 +0200)]
linux-user: Determine the desired FPU mode from MIPS.abiflags

Floating-point mode is calculated from MIPS.abiflags FP ABI value
(based on kernel implementation). Illegal combinations are rejected.

Reviewed-by: Aleksandar Markovic <[email protected]>
Signed-off-by: Stefan Markovic <[email protected]>
6 years agolinux-user: Read and set FP ABI value from MIPS abiflags
Stefan Markovic [Tue, 23 Oct 2018 07:19:10 +0000 (09:19 +0200)]
linux-user: Read and set FP ABI value from MIPS abiflags

Set fp_abi and interp_fp_abi values to current fp_abi value read from
MIPS.abiflags.

Reviewed-by: Aleksandar Markovic <[email protected]>
Signed-off-by: Stefan Markovic <[email protected]>
6 years agolinux-user: Extract MIPS abiflags from ELF file
Stefan Markovic [Mon, 22 Oct 2018 14:42:27 +0000 (16:42 +0200)]
linux-user: Extract MIPS abiflags from ELF file

Read MIPS.abiflags section from ELF file into Mips_elf_abiflags_v0 struct.

Reviewed-by: Aleksandar Markovic <[email protected]>
Signed-off-by: Stefan Markovic <[email protected]>
6 years agolinux-user: Extend image_info struct with MIPS fp_abi and interp_fp_abi fields
Stefan Markovic [Mon, 22 Oct 2018 14:43:40 +0000 (16:43 +0200)]
linux-user: Extend image_info struct with MIPS fp_abi and interp_fp_abi fields

Add MIPS specific image_info struct fields fp_abi and interp_fp_abi
to store executable and interpreter fp_abi values (based on kernel
struct arch_elf_state in mips/include/asm/elf.h).

Reviewed-by: Aleksandar Markovic <[email protected]>
Signed-off-by: Stefan Markovic <[email protected]>
6 years agoelf: Define MIPS_ABI_FP_UNKNOWN macro
Stefan Markovic [Fri, 26 Oct 2018 13:28:07 +0000 (15:28 +0200)]
elf: Define MIPS_ABI_FP_UNKNOWN macro

Add MIPS_ABI_FP_UNKNOWN as QEMU internal value to represent
unknown fp_abi (based on kernel mips/include/asm/elf.h definition)

Reviewed-by: Aleksandar Markovic <[email protected]>
Signed-off-by: Stefan Markovic <[email protected]>
6 years agospice: prepare for upcoming spice-server change
Gerd Hoffmann [Fri, 12 Oct 2018 11:45:51 +0000 (13:45 +0200)]
spice: prepare for upcoming spice-server change

Future spice-server versions will call the client_monitors_config
callback with the monitors list filtered to only include the monitors
of the given display channel (aka QXLInstance).  Luckily this is easily
detectable at runtime, so we can prepare for that in advance and also
make qemu compatible with both old and new spice-server versions.

While being at it also use the console index instead of head number as
array index.  The later doesn't work correctly in case multiple display
devices are present.

Cc: [email protected]
Signed-off-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Lukáš Hrázký <[email protected]>
Message-id: 20181012114551[email protected]

6 years agoSDL: set a hint to not bypass the window compositor
Sebastian Krzyszkowiak [Wed, 24 Oct 2018 14:37:48 +0000 (16:37 +0200)]
SDL: set a hint to not bypass the window compositor

Without that, window effects in KWin get suspended as soon as any
qemu-sdl window becomes visible. While the SDL default makes sense
for games, it's not really suitable for QEMU.

Signed-off-by: Sebastian Krzyszkowiak <[email protected]>
Message-id: 20181024143748[email protected]
Signed-off-by: Gerd Hoffmann <[email protected]>
6 years agonvdimm: Add docs hint for Linux driver name
Kees Cook [Thu, 18 Oct 2018 20:13:51 +0000 (13:13 -0700)]
nvdimm: Add docs hint for Linux driver name

I spent way too much time trying to figure out why the emulated NVDIMM
was missing under Linux. In an effort to help others who might be looking
for these kinds of things in the future, include a hint.

Signed-off-by: Kees Cook <[email protected]>
Message-id: 20181018201351.GA25286@beast
Signed-off-by: Stefan Hajnoczi <[email protected]>
6 years agoutil: aio-posix: fix a typo
Li Qiang [Mon, 8 Oct 2018 02:16:12 +0000 (19:16 -0700)]
util: aio-posix: fix a typo

Cc: [email protected]
Signed-off-by: Li Qiang <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Reviewed-by: Fam Zheng <[email protected]>
Message-id: 1538964972[email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
6 years agotarget/mips: Amend MXU ASE overview note
Aleksandar Markovic [Wed, 24 Oct 2018 12:12:34 +0000 (14:12 +0200)]
target/mips: Amend MXU ASE overview note

Add prefix, suffix, operation descriptions, and other corrections
and amendments to the comment that describes MXU ASE.

Reviewed-by: Stefan Markovic <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
6 years agotarget/mips: Move MXU_EN check one level higher
Aleksandar Markovic [Wed, 24 Oct 2018 11:06:36 +0000 (13:06 +0200)]
target/mips: Move MXU_EN check one level higher

Move MXU_EN check to the main MXU decoding function, to avoid code
repetition.

Reviewed-by: Stefan Markovic <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
6 years agotarget/mips: Add emulation of MXU instructions S32LDD and S32LDDR
Craig Janeczek [Thu, 18 Oct 2018 20:45:39 +0000 (22:45 +0200)]
target/mips: Add emulation of MXU instructions S32LDD and S32LDDR

Add support for emulating the S32LDD and S32LDDR MXU instructions.

Reviewed-by: Aleksandar Markovic <[email protected]>
Signed-off-by: Craig Janeczek <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
6 years agotarget/mips: Add emulation of MXU instructions Q8MUL and Q8MULSU
Craig Janeczek [Thu, 18 Oct 2018 20:38:25 +0000 (22:38 +0200)]
target/mips: Add emulation of MXU instructions Q8MUL and Q8MULSU

Adds support for emulating the Q8MUL and Q8MULSU MXU instructions.

Reviewed-by: Aleksandar Markovic <[email protected]>
Signed-off-by: Craig Janeczek <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
6 years agotarget/mips: Add emulation of MXU instruction D16MAC
Craig Janeczek [Thu, 18 Oct 2018 20:18:03 +0000 (22:18 +0200)]
target/mips: Add emulation of MXU instruction D16MAC

Add support for emulating the D16MAC MXU instruction.

Reviewed-by: Aleksandar Markovic <[email protected]>
Signed-off-by: Craig Janeczek <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
6 years agotarget/mips: Add emulation of MXU instruction D16MUL
Craig Janeczek [Thu, 18 Oct 2018 20:03:06 +0000 (22:03 +0200)]
target/mips: Add emulation of MXU instruction D16MUL

Add support for emulating the D16MUL MXU instruction.

Reviewed-by: Aleksandar Markovic <[email protected]>
Signed-off-by: Craig Janeczek <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
6 years agotarget/mips: Add emulation of MXU instruction S8LDD
Craig Janeczek [Thu, 18 Oct 2018 19:45:26 +0000 (21:45 +0200)]
target/mips: Add emulation of MXU instruction S8LDD

Add support for emulating the S8LDD MXU instruction.

Reviewed-by: Aleksandar Markovic <[email protected]>
Signed-off-by: Craig Janeczek <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
6 years agotarget/mips: Move MUL, S32M2I, S32I2M handling out of main MXU switch
Aleksandar Markovic [Tue, 23 Oct 2018 15:50:49 +0000 (17:50 +0200)]
target/mips: Move MUL, S32M2I, S32I2M handling out of main MXU switch

Move MUL, S32M2I, S32I2M handling out of switch. These are all
instructions that do not depend on MXU_EN flag of MXU_CR.

Reviewed-by: Stefan Markovic <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
6 years agotarget/mips: Add emulation of MXU instructions S32I2M and S32M2I
Craig Janeczek [Thu, 18 Oct 2018 19:32:20 +0000 (21:32 +0200)]
target/mips: Add emulation of MXU instructions S32I2M and S32M2I

Add support for emulating the S32I2M and S32M2I MXU instructions.
This commit also contains utility functions for reading/writing
to MXU registers. This is required for overall MXU instruction
support.

Reviewed-by: Aleksandar Markovic <[email protected]>
Signed-off-by: Craig Janeczek <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
6 years agotarget/mips: Add emulation of non-MXU MULL within MXU decoding engine
Craig Janeczek [Fri, 19 Oct 2018 15:49:19 +0000 (17:49 +0200)]
target/mips: Add emulation of non-MXU MULL within MXU decoding engine

Add emulation of non-MXU MULL within MXU decoding engine.

Reviewed-by: Aleksandar Markovic <[email protected]>
Signed-off-by: Craig Janeczek <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
6 years agotarget/mips: Add bit encoding for MXU operand getting pattern 'optn3'
Craig Janeczek [Fri, 19 Oct 2018 15:34:28 +0000 (17:34 +0200)]
target/mips: Add bit encoding for MXU operand getting pattern 'optn3'

Add bit encoding for MXU operand getting pattern 'optn3'.

Reviewed-by: Stefan Markovic <[email protected]>
Signed-off-by: Craig Janeczek <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
6 years agotarget/mips: Add bit encoding for MXU operand getting pattern 'optn2'
Craig Janeczek [Fri, 19 Oct 2018 15:33:36 +0000 (17:33 +0200)]
target/mips: Add bit encoding for MXU operand getting pattern 'optn2'

Add bit encoding for MXU operand getting pattern 'optn2'.

Reviewed-by: Stefan Markovic <[email protected]>
Signed-off-by: Craig Janeczek <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
6 years agotarget/mips: Add bit encoding for MXU execute add/sub pattern 'eptn2'
Aleksandar Markovic [Tue, 23 Oct 2018 14:42:40 +0000 (16:42 +0200)]
target/mips: Add bit encoding for MXU execute add/sub pattern 'eptn2'

Add bit encoding for MXU execute 2-bit add/subtract pattern 'eptn2'.

Reviewed-by: Stefan Markovic <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
6 years agotarget/mips: Add bit encoding for MXU accumulate add/sub 2-bit pattern 'aptn2'
Craig Janeczek [Fri, 19 Oct 2018 15:25:26 +0000 (17:25 +0200)]
target/mips: Add bit encoding for MXU accumulate add/sub 2-bit pattern 'aptn2'

Add bit encoding for MXU accumulate add/subtract 2-bit pattern
'aptn2'.

Reviewed-by: Stefan Markovic <[email protected]>
Signed-off-by: Craig Janeczek <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
6 years agotarget/mips: Add bit encoding for MXU accumulate add/sub 1-bit pattern 'aptn1'
Aleksandar Markovic [Tue, 23 Oct 2018 14:47:58 +0000 (16:47 +0200)]
target/mips: Add bit encoding for MXU accumulate add/sub 1-bit pattern 'aptn1'

Add bit encoding for MXU accumulate add/subtract 1-bit pattern
'aptn1'.

Reviewed-by: Stefan Markovic <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
6 years agotarget/mips: Add MXU decoding engine
Aleksandar Markovic [Thu, 18 Oct 2018 15:54:48 +0000 (17:54 +0200)]
target/mips: Add MXU decoding engine

Add MXU decoding engine: add handlers for all instruction pools,
and main decode handler. The handlers, for now, for the purpose
of this patch, contain only sceleton in the form of a single
switch statement.

Reviewed-by: Stefan Markovic <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
6 years agotarget/mips: Add and integrate MXU decoding engine placeholder
Aleksandar Markovic [Thu, 18 Oct 2018 12:40:20 +0000 (14:40 +0200)]
target/mips: Add and integrate MXU decoding engine placeholder

Provide the placeholder and add the invocation logic for MXU
decoding engine.

Reviewed-by: Stefan Markovic <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
This page took 0.092504 seconds and 4 git commands to generate.