~tizen.org/tizen-qemu-arm-static/+git/tizen-qemu-arm-static-origin:devel-py2

Last commit made on 2024-04-18
Get this branch:
git clone -b devel-py2 https://git.launchpad.net/~tizen.org/tizen-qemu-arm-static/+git/tizen-qemu-arm-static-origin

Branch merges

Branch information

Recent commits

9890ea0... by xuhy <email address hidden>

Upgrade version to 4.2.1.tizen20240418

Change-Id: I8cf1b38cc7f7061f5c37341e25f28e383f803e3f

d39f72b... by wanchao-xu <email address hidden>

Merge branch 'sandbox/xuwc/devel-riscv-py2' into devel-py2

Change-Id: I4afa9c5351396b4aa3a45713523b38de970dbe4a
Signed-off-by: wanchao-xu <email address hidden>

e021b47... by wanchao-xu <email address hidden>

Fix the build error on opensuse42.1
  * glib2-devel version is 2.44 on opensuse.

Change-Id: I390ae0a0c42f4b187f7e7929ee437172f3bf834c

af1cd7f... by wanchao-xu <email address hidden>

Fix the install error of debian and packaging.

Change-Id: I03f7edd406f1845ecebef08fd78c1a979c09d745
Signed-off-by: wanchao-xu <email address hidden>

58302af... by wanchao-xu <email address hidden>

Update debian and packaging

Change-Id: I8df3ead2d1f3a5207b3327159bdcaa0337a541cb
Signed-off-by: wanchao-xu <email address hidden>

836194a... by Hyunggi Lee <email address hidden>

tcg: use QTree instead of GTree

qemu-user can hang in a multi-threaded fork. One common
reason is that when creating a TB, between fork and exec
we manipulate a GTree whose memory allocator (GSlice) is
not fork-safe.

Although POSIX does not mandate it, the system's allocator
(e.g. tcmalloc, libc malloc) is probably fork-safe.

Fix some of these hangs by using QTree, which uses the system's
allocator regardless of the Glib version that we used at
configuration time.

Tested with the test program in the original bug report, i.e.:

Fixes: #285

Change-Id: I61bbe16ee5b639615a54f5afad0fa084c63c9b42
Signed-off-by: Emilio Cota <email address hidden>

ca0948b... by Hyunggi Lee <email address hidden>

util: import GTree as QTree

The only reason to add this implementation is to control the memory allocator
used. Some users (e.g. TCG) cannot work reliably in multi-threaded
environments (e.g. forking in user-mode) with GTree's allocator, GSlice.
See https://gitlab.com/qemu-project/qemu/-/issues/285 for details.

Importing GTree is a temporary workaround until GTree migrates away
from GSlice.

This implementation is identical to that in glib v2.75.0, except that
we don't import recent additions to the API nor deprecated API calls,
none of which are used in QEMU.

I've imported tests from glib and added a benchmark just to
make sure that performance is similar. Note: it cannot be identical
because (1) we are not using GSlice, (2) we use different compilation flags
(e.g. -fPIC) and (3) we're linking statically.

$ cat /proc/cpuinfo| grep 'model name' | head -1
model name : AMD Ryzen 7 PRO 5850U with Radeon Graphics
$ echo '0' | sudo tee /sys/devices/system/cpu/cpufreq/boost
$ tests/bench/qtree-bench

 Tree Op 32 1024 4096 131072
 1048576
------------------------------------------------------------------------------------------------
GTree Lookup 83.23 43.08 25.31 19.40
   16.22
QTree Lookup 113.42 (1.36x) 53.83 (1.25x) 28.38 (1.12x) 17.64
(0.91x) 13.04 (0.80x)
GTree Insert 44.23 29.37 25.83 19.49
   17.03
QTree Insert 46.87 (1.06x) 25.62 (0.87x) 24.29 (0.94x) 16.83
(0.86x) 12.97 (0.76x)
GTree Remove 53.27 35.15 31.43 24.64
   16.70
QTree Remove 57.32 (1.08x) 41.76 (1.19x) 38.37 (1.22x) 29.30
(1.19x) 15.07 (0.90x)
GTree RemoveAll 135.44 127.52 126.72 120.11
   64.34
QTree RemoveAll 127.15 (0.94x) 110.37 (0.87x) 107.97 (0.85x) 97.13
(0.81x) 55.10 (0.86x)
GTree Traverse 277.71 276.09 272.78 246.72
   98.47
QTree Traverse 370.33 (1.33x) 411.97 (1.49x) 400.23 (1.47x) 262.82
(1.07x) 78.52 (0.80x)
------------------------------------------------------------------------------------------------

As a sanity check, the same benchmark when Glib's version
is >= (i.e. QTree == GTree):

 Tree Op 32 1024 4096 131072
 1048576
------------------------------------------------------------------------------------------------
GTree Lookup 82.72 43.09 24.18 19.73
   16.09
QTree Lookup 81.82 (0.99x) 43.10 (1.00x) 24.20 (1.00x) 19.76
(1.00x) 16.26 (1.01x)
GTree Insert 45.07 29.62 26.34 19.90
   17.18
QTree Insert 45.72 (1.01x) 29.60 (1.00x) 26.38 (1.00x) 19.71
(0.99x) 17.20 (1.00x)
GTree Remove 54.48 35.36 31.77 24.97
   16.95
QTree Remove 54.46 (1.00x) 35.32 (1.00x) 31.77 (1.00x) 24.91
(1.00x) 17.15 (1.01x)
GTree RemoveAll 140.68 127.36 125.43 121.45
   68.20
QTree RemoveAll 140.65 (1.00x) 127.64 (1.00x) 125.01 (1.00x) 121.73
(1.00x) 67.06 (0.98x)
GTree Traverse 278.68 276.05 266.75 251.65
  104.93
QTree Traverse 278.31 (1.00x) 275.78 (1.00x) 266.42 (1.00x) 247.89
(0.99x) 104.58 (1.00x)
------------------------------------------------------------------------------------------------

Related: #285

Change-Id: I5eee4511a911a39a9c4739fee3df78d8d0414233
Signed-off-by: Emilio Cota <email address hidden>

37a2fd2... by "biao716.wang" <email address hidden>

Fix .NET SEHException issue refer to https://gitlab.com/qemu-project/qemu/-/issues/271

Change-Id: Ia8218fd963075448b55b7a5a705c6f35a722ada4
Signed-off-by: biao716.wang <email address hidden>

2feb467... by Julien Isorce <email address hidden>

binfmt: translate symbolic links correctly with realpath

Change-Id: Ic0eeac9de40a8e1082c83b442829ac28f68bff04
Signed-off-by: Julien Isorce <email address hidden>
Signed-off-by: Yury Usishchev <email address hidden>

9bf1785... by wanchao-xu <email address hidden>

Remove imported patches from packaging.

Change-Id: I55df320a869c984bdc7eb1f80aa5a4f3f0466d46