<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bwlp/qemu.git/target-arm, branch spice_video_codecs</title>
<subtitle>Experimental fork of QEMU with video encoding patches</subtitle>
<id>https://git.openslx.org/bwlp/qemu.git/atom/target-arm?h=spice_video_codecs</id>
<link rel='self' href='https://git.openslx.org/bwlp/qemu.git/atom/target-arm?h=spice_video_codecs'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/'/>
<updated>2016-12-20T20:52:12+00:00</updated>
<entry>
<title>Move target-* CPU file into a target/ folder</title>
<updated>2016-12-20T20:52:12+00:00</updated>
<author>
<name>Thomas Huth</name>
</author>
<published>2016-10-11T06:56:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=fcf5ef2ab52c621a4617ebbef36bf43b4003f4c0'/>
<id>urn:sha1:fcf5ef2ab52c621a4617ebbef36bf43b4003f4c0</id>
<content type='text'>
We've currently got 18 architectures in QEMU, and thus 18 target-xxx
folders in the root folder of the QEMU source tree. More architectures
(e.g. RISC-V, AVR) are likely to be included soon, too, so the main
folder of the QEMU sources slowly gets quite overcrowded with the
target-xxx folders.
To disburden the main folder a little bit, let's move the target-xxx
folders into a dedicated target/ folder, so that target-xxx/ simply
becomes target/xxx/ instead.

Acked-by: Laurent Vivier &lt;laurent@vivier.eu&gt; [m68k part]
Acked-by: Bastian Koppelmann &lt;kbastian@mail.uni-paderborn.de&gt; [tricore part]
Acked-by: Michael Walle &lt;michael@walle.cc&gt; [lm32 part]
Acked-by: Cornelia Huck &lt;cornelia.huck@de.ibm.com&gt; [s390x part]
Reviewed-by: Christian Borntraeger &lt;borntraeger@de.ibm.com&gt; [s390x part]
Acked-by: Eduardo Habkost &lt;ehabkost@redhat.com&gt; [i386 part]
Acked-by: Artyom Tarasenko &lt;atar4qemu@gmail.com&gt; [sparc part]
Acked-by: Richard Henderson &lt;rth@twiddle.net&gt; [alpha part]
Acked-by: Max Filippov &lt;jcmvbkbc@gmail.com&gt; [xtensa part]
Reviewed-by: David Gibson &lt;david@gibson.dropbear.id.au&gt; [ppc part]
Acked-by: Edgar E. Iglesias &lt;edgar.iglesias@xilinx.com&gt; [cris&amp;microblaze part]
Acked-by: Guan Xuetao &lt;gxt@mprc.pku.edu.cn&gt; [unicore32 part]
Signed-off-by: Thomas Huth &lt;thuth@redhat.com&gt;
</content>
</entry>
<entry>
<title>target-arm/translate-a64: fix gen_load_exclusive</title>
<updated>2016-12-05T17:52:01+00:00</updated>
<author>
<name>Alex Bennée</name>
</author>
<published>2016-12-02T17:34:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=5460da501a57cd72eda6fec736d76539122e2f99'/>
<id>urn:sha1:5460da501a57cd72eda6fec736d76539122e2f99</id>
<content type='text'>
While testing rth's latest TCG patches with risu I found ldaxp was
broken. Investigating further I found it was broken by 1dd089d0 when
the cmpxchg atomic work was merged. As part of that change the code
attempted to be clever by doing a single 64 bit load and then shuffle
the data around to set the two 32 bit registers.

As I couldn't quite follow the endian magic I've simply partially
reverted the change to the original code gen_load_exclusive code. This
doesn't affect the cmpxchg functionality as that is all done on in
gen_store_exclusive part which is untouched.

I've also restored the comment that was removed (with a slight tweak
to mention cmpxchg).

Signed-off-by: Alex Bennée &lt;alex.bennee@linaro.org&gt;
Acked-by: Richard Henderson &lt;rth@twiddle.net&gt;
Message-id: 20161202173454.19179-1-alex.bennee@linaro.org
Signed-off-by: Peter Maydell &lt;peter.maydell@linaro.org&gt;
</content>
</entry>
<entry>
<title>Fix corruption of CPSR when SCTLR.EE is set</title>
<updated>2016-11-07T10:00:24+00:00</updated>
<author>
<name>Julian Brown</name>
</author>
<published>2016-11-07T10:00:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=3823b9db77e753041c04c161ac9f4d4cfc661520'/>
<id>urn:sha1:3823b9db77e753041c04c161ac9f4d4cfc661520</id>
<content type='text'>
Fix a typo in arm_cpu_do_interrupt_aarch32 (OR'ing with ~CPSR_E
instead of CPSR_E) which meant that when we took an interrupt with
SCTLR.EE set we would corrupt the CPSR.

Signed-off-by: Julian Brown &lt;julian@codesourcery.com&gt;
Reviewed-by: Peter Maydell &lt;peter.maydell@linaro.org&gt;
Signed-off-by: Peter Maydell &lt;peter.maydell@linaro.org&gt;
</content>
</entry>
<entry>
<title>log: Add locking to large logging blocks</title>
<updated>2016-11-01T16:29:03+00:00</updated>
<author>
<name>Richard Henderson</name>
</author>
<published>2016-09-22T22:17:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=1ee73216f4ccd2f3b6eb818feb165b3cf5a1944c'/>
<id>urn:sha1:1ee73216f4ccd2f3b6eb818feb165b3cf5a1944c</id>
<content type='text'>
Reuse the existing locking provided by stdio to keep in_asm, cpu,
op, op_opt, op_ind, and out_asm as contiguous blocks.

While it isn't possible to interleave e.g. in_asm or op_opt logs
because of the TB lock protecting all code generation, it is
possible to interleave cpu logs, or to interleave a cpu dump with
an out_asm dump.

For mingw32, we appear to have no viable solution for this.  The locking
functions are not properly exported from the system runtime library.

Reviewed-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Signed-off-by: Richard Henderson &lt;rth@twiddle.net&gt;
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream-mttcg' into staging</title>
<updated>2016-10-31T15:29:12+00:00</updated>
<author>
<name>Peter Maydell</name>
</author>
<published>2016-10-31T15:29:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=6bc56d317f7b5004ea2d89d264bddc8b4d081700'/>
<id>urn:sha1:6bc56d317f7b5004ea2d89d264bddc8b4d081700</id>
<content type='text'>
Base patches for MTTCG enablement.

# gpg: Signature made Mon 31 Oct 2016 14:01:41 GMT
# gpg:                using RSA key 0xBFFBD25F78C7AE83
# gpg: Good signature from "Paolo Bonzini &lt;bonzini@gnu.org&gt;"
# gpg:                 aka "Paolo Bonzini &lt;pbonzini@redhat.com&gt;"
# Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
#      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83

* remotes/bonzini/tags/for-upstream-mttcg:
  tcg: move locking for tb_invalidate_phys_page_range up
  *_run_on_cpu: introduce run_on_cpu_data type
  cpus: re-factor out handle_icount_deadline
  tcg: cpus rm tcg_exec_all()
  tcg: move tcg_exec_all and helpers above thread fn
  target-arm/arm-powerctl: wake up sleeping CPUs
  tcg: protect translation related stuff with tb_lock.
  translate-all: Add assert_(memory|tb)_lock annotations
  linux-user/elfload: ensure mmap_lock() held while setting up
  tcg: comment on which functions have to be called with tb_lock held
  cpu-exec: include cpu_index in CPU_LOG_EXEC messages
  translate-all: add DEBUG_LOCKING asserts
  translate_all: DEBUG_FLUSH -&gt; DEBUG_TB_FLUSH
  cpus: make all_vcpus_paused() return bool

Signed-off-by: Peter Maydell &lt;peter.maydell@linaro.org&gt;
</content>
</entry>
<entry>
<title>target-arm/arm-powerctl: wake up sleeping CPUs</title>
<updated>2016-10-31T09:51:16+00:00</updated>
<author>
<name>Alex Bennée</name>
</author>
<published>2016-10-27T15:10:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=548ebcaf361443420a9f3ab0e2118c4d1f0a1b72'/>
<id>urn:sha1:548ebcaf361443420a9f3ab0e2118c4d1f0a1b72</id>
<content type='text'>
Testing with Alexander's bare metal syncronisation tests fails in MTTCG
leaving one CPU spinning forever waiting for the second CPU to wake up.
We simply need to kick the vCPU once we have processed the PSCI power on
call.

As the power control API is for system emulation only as is the
qemu_kick_cpu function we also ensure we only build arm-powerctl for
SoftMMU builds.

Tested-by: Alex Bennée &lt;alex.bennee@linaro.org&gt;
CC: Alexander Spyridakis &lt;a.spyridakis@virtualopensystems.com&gt;
Message-Id: &lt;1439220437-23957-20-git-send-email-fred.konrad@greensocs.com&gt;
Signed-off-by: Alex Bennée &lt;alex.bennee@linaro.org&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;

Message-Id: &lt;20161027151030.20863-11-alex.bennee@linaro.org&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>arm: Add an option to turn on/off vPMU support</title>
<updated>2016-10-28T14:51:27+00:00</updated>
<author>
<name>Wei Huang</name>
</author>
<published>2016-10-28T13:12:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=929e754d5a621cd53f30e69b766ccf381b58d124'/>
<id>urn:sha1:929e754d5a621cd53f30e69b766ccf381b58d124</id>
<content type='text'>
This patch adds a pmu=[on/off] option to enable/disable vPMU support
in guest vCPU. It allows virt tools, such as libvirt, to determine the
exsitence of vPMU and configure it. Note this option is only available
for cortex-a57/cortex-53/ host CPUs, but unavailable on ARMv7 and other
processors. Also even though "pmu=" option is available for TCG mode,
setting it doesn't turn PMU on.

Signed-off-by: Wei Huang &lt;wei@redhat.com&gt;
Reviewed-by: Andrew Jones &lt;drjones@redhat.com&gt;
Message-id: 1477463301-17175-2-git-send-email-wei@redhat.com
Reviewed-by: Peter Maydell &lt;peter.maydell@linaro.org&gt;
Signed-off-by: Peter Maydell &lt;peter.maydell@linaro.org&gt;
</content>
</entry>
<entry>
<title>target-arm: remove EXCP_STREX + cpu_exclusive_{test, info}</title>
<updated>2016-10-26T15:29:02+00:00</updated>
<author>
<name>Emilio G. Cota</name>
</author>
<published>2016-06-27T19:02:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=05188cc72f0399e99c92f608a8e7ca4c8e552c4b'/>
<id>urn:sha1:05188cc72f0399e99c92f608a8e7ca4c8e552c4b</id>
<content type='text'>
The exception is not emitted anymore; remove it and the associated
TCG variables.

Reviewed-by: Alex Bennée &lt;alex.bennee@linaro.org&gt;
Signed-off-by: Emilio G. Cota &lt;cota@braap.org&gt;
Signed-off-by: Richard Henderson &lt;rth@twiddle.net&gt;
Message-Id: &lt;1467054136-10430-31-git-send-email-cota@braap.org&gt;
</content>
</entry>
<entry>
<title>target-arm: emulate aarch64's LL/SC using cmpxchg helpers</title>
<updated>2016-10-26T15:29:02+00:00</updated>
<author>
<name>Emilio G. Cota</name>
</author>
<published>2016-06-27T19:02:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=1dd089d0eec060dcd8478735114d98421d414805'/>
<id>urn:sha1:1dd089d0eec060dcd8478735114d98421d414805</id>
<content type='text'>
Emulating LL/SC with cmpxchg is not correct, since it can
suffer from the ABA problem. Portable parallel code, however,
is written assuming only cmpxchg--and not LL/SC--is available.
This means that in practice emulating LL/SC with cmpxchg is
a viable alternative.

The appended emulates LL/SC pairs in aarch64 with cmpxchg helpers.
This works in both user and system mode. In usermode, it avoids
pausing all other CPUs to perform the LL/SC pair. The subsequent
performance and scalability improvement is significant, as the
plots below show. They plot the throughput of atomic_add-bench
compiled for ARM and executed on a 64-core x86 machine.

Hi-res plots: http://imgur.com/a/JVc8Y

                atomic_add-bench: 1000000 ops/thread, [0,1] range

  18 ++---------+----------+---------+----------+----------+----------+---++
     +cmpxchg +-E--+       +         +          +          +          +    |
  16 ++master +-H--+                                                      ++
     ||                                                                    |
  14 ++                                                                   ++
     | |                                                                   |
  12 ++|                                                                  ++
     | |                                                                   |
  10 ++++                                                                 ++
   8 ++E                                                                  ++
     |+++                                                                  |
   6 ++ |                                                                 ++
     |  |                                                                  |
   4 ++ |                                                                 ++
     |   |                                                                 |
   2 +H++E+---                                                            ++
     + |     +E++----+E+---+--+E+----++E+------+E+------+E++----+E+---+--+E|
   0 ++H-H----H-+-----H----+---------+----------+----------+----------+---++
     0          10         20        30         40         50         60
                                Number of threads

                atomic_add-bench: 1000000 ops/thread, [0,2] range

  18 ++---------+----------+---------+----------+----------+----------+---++
     +cmpxchg +-E--+       +         +          +          +          +    |
  16 ++master +-H--+                                                      ++
     | |                                                                   |
  14 ++E                                                                  ++
     | |                                                                   |
  12 ++|                                                                  ++
     |+++                                                                  |
  10 ++ |                                                                 ++
   8 ++ |                                                                 ++
     |  |                                                                  |
   6 ++ |                                                                 ++
     |   |                                                                 |
   4 ++  |                                                                ++
     |  +E+---                                                             |
   2 +H+     +E+-----+++              +++      +++   ---+E+-----+E+------+++
     +++        +    +E+---+--+E+----++E+------+E+---   ++++    +++   +  +E|
   0 ++H-H----H-+-----H----+---------+----------+----------+----------+---++
     0          10         20        30         40         50         60
                                Number of threads

               atomic_add-bench: 1000000 ops/thread, [0,128] range

  70 ++---------+----------+---------+----------+----------+----------+---++
     +cmpxchg +-E--+       +         +          +          +          +    |
  60 ++master +-H--+                  +++            ---+E+-----+E+------+E+
     |                        +E+------E-------+E+---                      |
     |                     ---        +++                                  |
  50 ++              +++---                                               ++
     |              -+E+                                                   |
  40 ++      +++----                                                      ++
     |        E-                                                           |
     |      --|                                                            |
  30 ++   -- +++                                                          ++
     |  +E+                                                                |
  20 ++E+                                                                 ++
     |E+                                                                   |
     |                                                                     |
  10 ++                                                                   ++
     +          +          +         +          +          +          +    |
   0 +HH-H----H-+-----H----+---------+----------+----------+----------+---++
     0          10         20        30         40         50         60
                                Number of threads

              atomic_add-bench: 1000000 ops/thread, [0,1024] range

  160 ++---------+---------+----------+---------+----------+----------+---++
      +cmpxchg +-E--+      +          +         +          +          +    |
  140 ++master +-H--+                                           +++      +++
      |                                                -+E+-----+E+-------E|
  120 ++                                       +++ ----                  +++
      |                                +++  ----E--                        |
  100 ++                              --E---   +++                        ++
      |                       +++ ---- +++                                 |
   80 ++                     --E--                                        ++
      |                  ---- +++                                          |
      |              -+E+                                                  |
   60 ++         ---- +++                                                 ++
      |      +E+-                                                          |
   40 ++   --                                                             ++
      |  +E+                                                               |
   20 +EE+                                                                ++
      +++        +         +          +         +          +          +    |
    0 +HH-H---H--+-----H---+----------+---------+----------+----------+---++
      0          10        20         30        40         50         60
                                Number of threads

[rth: Rearrange 128-bit cmpxchg helper.  Enforce alignment on LL.]

Signed-off-by: Emilio G. Cota &lt;cota@braap.org&gt;
Message-Id: &lt;1467054136-10430-28-git-send-email-cota@braap.org&gt;
Signed-off-by: Richard Henderson &lt;rth@twiddle.net&gt;
</content>
</entry>
<entry>
<title>target-arm: emulate SWP with atomic_xchg helper</title>
<updated>2016-10-26T15:29:02+00:00</updated>
<author>
<name>Emilio G. Cota</name>
</author>
<published>2016-06-27T19:02:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=cf12bce088f22b92bf62ffa0d7f6a3e951e355a9'/>
<id>urn:sha1:cf12bce088f22b92bf62ffa0d7f6a3e951e355a9</id>
<content type='text'>
Signed-off-by: Emilio G. Cota &lt;cota@braap.org&gt;
Message-Id: &lt;1467054136-10430-25-git-send-email-cota@braap.org&gt;
Signed-off-by: Richard Henderson &lt;rth@twiddle.net&gt;
</content>
</entry>
</feed>
