From: Philippe Mathieu-Daudé
load_flt_binary() calls load_flat_file() -> page_set_flags().
page_set_flags() must be called with the mmap_lock held,
otherwise it aborts:
$ qemu-arm -L stm32/lib/ stm32/bin/busybox
qemu-arm: ../accel/tcg/user-exec.c:505: page_set_flags: Assertion
`have_mmap_l
From: Ilya Leoshkevich
Borrow the code for formatting the most frequent WIFEXITED() and
WIFSIGNALED() special cases from from the strace's printstatus().
Output examples:
474729 wait4(-1,0x7f00767ff0a0,0,(nil)) = 474733 (wstatus={WIFEXITED(s) &&
WEXITSTATUS(s) == 1})
475833 wait4(-1,0x
From: Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Ilya Leoshkevich
Message-ID: <20240807124306.52903-4-phi...@linaro.org>
Signed-off-by: Richard Henderson
---
linux-user/strace.c | 13 +
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/li
This collects some patches that I've edited prior to queueing,
and I thought I'd post them before doing the actual PR.
r~
Ilya Leoshkevich (1):
linux-user: Trace wait4()'s and waitpid()'s wstatus
Michael Vogt (2):
linux-user: add openat2 support in linux-user
linux-user: add strace suppo
From: Michael Vogt
This commit adds support for the `openat2()` syscall in the
`linux-user` userspace emulator.
It is implemented by extracting a new helper `maybe_do_fake_open()`
out of the exiting `do_guest_openat()` and share that with the
new `do_guest_openat2()`. Unfortunately we cannot jus
From: Philippe Mathieu-Daudé
Rather than 'raw param', display as pointer to get
"NULL" instead of "0x".
Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Richard Henderson
Reviewed-by: Ilya Leoshkevich
Message-ID: <20240807124306.52903-3-phi...@linaro.org>
Signed-off-by: Richard Hend
Comparing a string of 4 bytes only works in little-endian.
Adjust bulk bswap to only apply to the note payload.
Perform swapping of the note header manually; the magic
is defined so that it does not need a runtime swap.
Fixes: 83f990eb5adb ("linux-user/elfload: Parse NT_GNU_PROPERTY_TYPE_0 notes"
From: Philippe Mathieu-Daudé
When the %addr argument can not be accessed, a double comma
is logged (the final qemu_log call prepend a comma). Move
the comma from the final qemu_log to the preceeding switch
cases that had omitted it.
Signed-off-by: Philippe Mathieu-Daudé
Message-Id: <2024080712
From: Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé
Message-ID: <20240807124306.52903-6-phi...@linaro.org>
[rth: Do not dump output buffers.]
Signed-off-by: Richard Henderson
---
linux-user/strace.c| 17 +
linux-user/strace.list | 2 +-
2 files changed, 18 i
From: Michael Vogt
This commit adds support for the `openat2()` to `QEMU_STRACE`. It
will use the `openat2.h` header if available to create user
readable flags for the `resolve` argument but does not require
the header otherwise.
It also makes `copy_struct_from_user()` available via `qemu.h`
and
From: Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Ilya Leoshkevich
Message-ID: <20240807124306.52903-5-phi...@linaro.org>
Signed-off-by: Richard Henderson
---
linux-user/strace.c| 15 +++
linux-user/strace.list | 2 +-
2 files changed, 16 inserti
On 8/22/24 02:50, Philippe Mathieu-Daudé wrote:
Fix for https://gitlab.com/qemu-project/qemu/-/issues/2525
Supersedes: <20240821153836.67987-1-phi...@linaro.org>
Philippe Mathieu-Daudé (4):
accel/tcg: Make page_set_flags() documentation public
linux-user/flatload: Take mmap_lock in load_f
In tcg_out_qemu_ldst_i128, we need a non-zero index register,
which we then use as a base register in several address modes.
Since we always have TCG_REG_TMP2 available, use that.
In tcg_out_qemu_st, in the fallback when STDBRX is not available,
avoid clobbering TCG_REG_TMP1, which might be h.base
imx_fec models the same PHY as lan9118_phy. The code is almost the same with
imx_fec having more logging and tracing. Merge these improvements into
lan9118_phy and reuse in imx_fec to fix the code duplication.
Signed-off-by: Bernhard Beschow
---
include/hw/net/imx_fec.h | 7 +-
hw/net/imx_fec.
Prefer named constants over magic values for better readability.
Signed-off-by: Bernhard Beschow
---
include/hw/net/mii.h | 6 +
hw/net/lan9118_phy.c | 59 +++-
2 files changed, 43 insertions(+), 22 deletions(-)
diff --git a/include/hw/net/mii.h b/in
The real device advertises this mode and the device model already advertises
100 mbps half duplex and 10 mbps full+half duplex. So advertise this mode to
make the model more realistic.
Signed-off-by: Bernhard Beschow
---
hw/net/lan9118_phy.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions
hw/net/imx_fec and hw/net/lan9118 implement the same Ethernet PHY with similar
but not quite the same code. This series consolidates the implementations into
one to fix code duplication. It then continues to make the code more readable by
reusing some existing constants.
Having a dedicated module
A very similar implementation of the same device exists in imx_fec. Prepare for
a common implementation by extracting the code into its own files.
Signed-off-by: Bernhard Beschow
---
include/hw/net/lan9118_phy.h | 31
hw/net/lan9118.c | 133 ++---
On Sat, 2024-10-05 at 22:26 +0200, Ilya Leoshkevich wrote:
> On Sat, 2024-10-05 at 12:51 -0700, Richard Henderson wrote:
> > On 9/25/24 00:43, Ilya Leoshkevich wrote:
> > > On Tue, 2024-09-24 at 13:46 +0200, Richard Henderson wrote:
> > > > On 9/23/24 18:12, Ilya Leoshkevich wrote:
> > > > > Hi,
>
On Sat, 2024-10-05 at 12:51 -0700, Richard Henderson wrote:
> On 9/25/24 00:43, Ilya Leoshkevich wrote:
> > On Tue, 2024-09-24 at 13:46 +0200, Richard Henderson wrote:
> > > On 9/23/24 18:12, Ilya Leoshkevich wrote:
> > > > Hi,
> > > >
> > > > On reporting a breakpoint in a non-non-stop mode, GDB
Zero is the safe do-nothing value for callers to use.
Pass the value through from get_phys_addr.
Signed-off-by: Richard Henderson
---
target/arm/ptw.c | 11 ++-
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/target/arm/ptw.c b/target/arm/ptw.c
index 9af86da597..e92537d8f2
In Chapter 5, Interruptions, the group 3 exceptions lists
"Unaligned data reference trap" has higher priority than
"Data memory break trap".
Signed-off-by: Richard Henderson
---
target/hppa/mem_helper.c | 7 ++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/target/hppa/mem_hel
Pass memop through get_phys_addr_twostage with its
recursion with get_phys_addr_nogpc.
Signed-off-by: Richard Henderson
---
target/arm/ptw.c | 10 ++
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/target/arm/ptw.c b/target/arm/ptw.c
index 0445c3ccf3..f1fca086a4 100644
---
When we have a tlb miss, defer the alignment check to
the new tlb_fill_align hook. Move the existing alignment
check so that we only perform it with a tlb hit.
Signed-off-by: Richard Henderson
---
accel/tcg/cputlb.c | 89 +-
1 file changed, 49 inserti
Add the hook to struct TCGCPUOps. Add a default implementation
that recognizes alignment faults before page faults. Populate
all TCGCPUOps structures with the default implementation.
Signed-off-by: Richard Henderson
---
include/hw/core/tcg-cpu-ops.h | 25 +
accel/tcg/cp
There should be no "just in case"; the page is already
in the tlb, and known to be not readable.
Signed-off-by: Richard Henderson
---
accel/tcg/cputlb.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c
index 117b516739..fd6459b695 1
Fill in the tlb_fill_align hook. So far this is the same
as tlb_fill_align_first, except that we can pass memop to
get_phys_addr as well.
Signed-off-by: Richard Henderson
---
target/arm/internals.h | 3 +++
target/arm/cpu.c| 2 +-
target/arm/tcg/cpu-v7m.c| 2 +-
target/a
Now that we have the MemOp for the access, we can order
the alignment fault caused by memory type before the
permission fault for the page.
For subsequent page hits, permission and stage 2 checks
are known to pass, and so the TLB_CHECK_ALIGNED fault
raised in generic code is not mis-ordered.
Sign
Split out of mmu_lookup.
Signed-off-by: Richard Henderson
---
include/exec/memop.h | 24
accel/tcg/cputlb.c | 16 ++--
2 files changed, 26 insertions(+), 14 deletions(-)
diff --git a/include/exec/memop.h b/include/exec/memop.h
index f53bf618c6..b699bf7688
This function is specific to MemOp, not TCG in general.
Signed-off-by: Richard Henderson
---
include/exec/memop.h | 23 +++
include/tcg/tcg.h| 23 ---
2 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/include/exec/memop.h b/include/exec/
Signed-off-by: Richard Henderson
---
accel/tcg/cputlb.c | 33 ++---
1 file changed, 10 insertions(+), 23 deletions(-)
diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c
index fd6459b695..58960969f4 100644
--- a/accel/tcg/cputlb.c
+++ b/accel/tcg/cputlb.c
@@ -1220,25
Drop the 'else' so that ret is overridden with the
highest priority fault.
Signed-off-by: Richard Henderson
---
target/hppa/mem_helper.c | 8 +---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/target/hppa/mem_helper.c b/target/hppa/mem_helper.c
index f027c494e2..f71cedd7a9 10
Zero is the safe do-nothing value for callers to use.
Signed-off-by: Richard Henderson
---
target/arm/internals.h | 3 ++-
target/arm/ptw.c| 2 +-
target/arm/tcg/m_helper.c | 8
target/arm/tcg/tlb_helper.c | 2 +-
4 files changed, 8 insertions(+), 7 deletions(-)
diff
Pass the value through from get_phys_addr_nogpc.
Signed-off-by: Richard Henderson
---
target/arm/ptw.c | 6 --
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/target/arm/ptw.c b/target/arm/ptw.c
index f1fca086a4..238b2c92a9 100644
--- a/target/arm/ptw.c
+++ b/target/arm/ptw.c
@
Determine cache attributes, and thence Device vs Normal memory,
earlier in the function. We have an existing regime_is_stage2
if block into which this can be slotted.
Signed-off-by: Richard Henderson
---
target/arm/ptw.c | 49
1 file changed, 25
Fill in the tlb_fill_align hook, so that we can recognize
alignment exceptions in the correct priority order.
Signed-off-by: Richard Henderson
---
target/hppa/cpu.h| 3 +++
target/hppa/cpu.c| 2 +-
target/hppa/mem_helper.c | 16
3 files changed, 16 insertions(+
This new hook will allow targets to recognize an alignment
fault with the correct priority with respect to other faults
that can be raised by paging.
This should fix several hppa fault priority issues, most
importantly that access permissions come before alignment.
[ Helge, I find that my old hpp
Zero is the safe do-nothing value for callers to use.
Signed-off-by: Richard Henderson
---
target/arm/internals.h | 3 ++-
target/arm/helper.c| 4 ++--
target/arm/ptw.c | 2 +-
3 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/target/arm/internals.h b/target/arm/internals.
Rename to use "memop_" prefix, like other functions
that operate on MemOp.
Signed-off-by: Richard Henderson
---
include/exec/memop.h | 4 ++--
accel/tcg/cputlb.c | 4 ++--
accel/tcg/user-exec.c | 4 ++--
target/arm/tcg/translate-a64.c | 4 ++--
target/xtensa/transl
In Chapter 5, Interruptions, the group 3 exceptions lists
"Data memory access rights trap" in priority order ahead of
"Data memory protection ID trap".
Swap these checks in hppa_get_physical_address.
Signed-off-by: Richard Henderson
---
target/hppa/mem_helper.c | 12 ++--
1 file changed
Zero is the safe do-nothing value for callers to use.
Pass the value through from get_phys_addr_gpc and
get_phys_addr_with_space_nogpc.
Signed-off-by: Richard Henderson
---
target/arm/ptw.c | 14 --
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/target/arm/ptw.c b/targ
Just add the argument, unused at this point.
Zero is the safe do-nothing value for all callers.
Signed-off-by: Richard Henderson
---
target/hppa/cpu.h| 2 +-
target/hppa/int_helper.c | 2 +-
target/hppa/mem_helper.c | 9 +
target/hppa/op_helper.c | 2 +-
4 files changed, 8 inser
On 9/25/24 00:43, Ilya Leoshkevich wrote:
On Tue, 2024-09-24 at 13:46 +0200, Richard Henderson wrote:
On 9/23/24 18:12, Ilya Leoshkevich wrote:
Hi,
On reporting a breakpoint in a non-non-stop mode, GDB remotes must
stop
all threads. Currently qemu-user doesn't do that, breaking the
debugging s
Reviewed-by: Cédric Le Goater
Signed-off-by: Bernhard Beschow
---
hw/i2c/mpc_i2c.c | 20
1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/hw/i2c/mpc_i2c.c b/hw/i2c/mpc_i2c.c
index 3d79c15653..16f4309ea9 100644
--- a/hw/i2c/mpc_i2c.c
+++ b/hw/i2c/mpc_i2c.c
@@ -2
Allows to clearly mark code sections relying on this device type.
Reviewed-by: Cédric Le Goater
Signed-off-by: Bernhard Beschow
---
hw/ppc/e500.c | 2 +-
hw/intc/Kconfig | 4
hw/intc/meson.build | 3 +--
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/hw/ppc/e500.c
Reviewed-by: Cédric Le Goater
Signed-off-by: Bernhard Beschow
---
hw/block/pflash_cfi01.c | 21 -
1 file changed, 8 insertions(+), 13 deletions(-)
diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c
index 7b6ec64442..cf11dada29 100644
--- a/hw/block/pflash_cfi01.c
Prefer a macro rather than a string literal when instantiaging device models.
Reviewed-by: BALATON Zoltan
Signed-off-by: Bernhard Beschow
---
hw/pci-host/ppce500.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/pci-host/ppce500.c b/hw/pci-host/ppce500.c
index 97e5d47cec.
Reviewed-by: Cédric Le Goater
Signed-off-by: Bernhard Beschow
---
hw/gpio/mpc8xxx.c | 22 +-
1 file changed, 9 insertions(+), 13 deletions(-)
diff --git a/hw/gpio/mpc8xxx.c b/hw/gpio/mpc8xxx.c
index 63b7a5c881..de183c3be5 100644
--- a/hw/gpio/mpc8xxx.c
+++ b/hw/gpio/mpc8xxx.
Reviewed-by: Cédric Le Goater
Signed-off-by: Bernhard Beschow
---
hw/sd/sdhci.c | 62 +--
1 file changed, 26 insertions(+), 36 deletions(-)
diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c
index ed01499391..aa89513796 100644
--- a/hw/sd/sdhci.c
+++ b/hw
Reviewed-by: Cédric Le Goater
Signed-off-by: Bernhard Beschow
---
hw/ppc/mpc8544_guts.c | 20
1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/hw/ppc/mpc8544_guts.c b/hw/ppc/mpc8544_guts.c
index c02b34ccde..cf2317b3ab 100644
--- a/hw/ppc/mpc8544_guts.c
+++ b/hw
Populate this read-only register with some arbitrary values which avoids
U-Boot's get_clocks() to hang().
Signed-off-by: Bernhard Beschow
---
hw/ppc/mpc8544_guts.c | 12
1 file changed, 12 insertions(+)
diff --git a/hw/ppc/mpc8544_guts.c b/hw/ppc/mpc8544_guts.c
index e3540b0281..c0
Signed-off-by: Bernhard Beschow
---
hw/rtc/ds1338.c | 20
1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/hw/rtc/ds1338.c b/hw/rtc/ds1338.c
index a5fe221418..6de13caf99 100644
--- a/hw/rtc/ds1338.c
+++ b/hw/rtc/ds1338.c
@@ -14,7 +14,6 @@
#include "hw/i2c/i2c.h
Reviewed-by: Cédric Le Goater
Signed-off-by: Bernhard Beschow
---
hw/usb/hcd-ehci-sysbus.c | 118 +--
1 file changed, 50 insertions(+), 68 deletions(-)
diff --git a/hw/usb/hcd-ehci-sysbus.c b/hw/usb/hcd-ehci-sysbus.c
index 2b1652f7a8..87a3bebe3e 100644
--- a/
Reviewed-by: Cédric Le Goater
Signed-off-by: Bernhard Beschow
---
hw/pci-host/ppce500.c | 42 ++
1 file changed, 18 insertions(+), 24 deletions(-)
diff --git a/hw/pci-host/ppce500.c b/hw/pci-host/ppce500.c
index d7ff2ba778..1ce79ea20c 100644
--- a/hw/pci-
Reviewed-by: BALATON Zoltan
Signed-off-by: Bernhard Beschow
---
hw/ppc/e500.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
index 32996c188e..228287b457 100644
--- a/hw/ppc/e500.c
+++ b/hw/ppc/e500.c
@@ -825,7 +825,7 @@ static DeviceState
The firstenv variable is never read, so remove it. The env variable is then only
used inside the loop, so move it there to restrict its scope.
Signed-off-by: Bernhard Beschow
---
hw/ppc/e500.c | 9 +
1 file changed, 1 insertion(+), 8 deletions(-)
diff --git a/hw/ppc/e500.c b/hw/ppc/e500
This series is part of a bigger series exploring data-driven machine creation
using device tree blobs on top of the e500 machines [1]. It contains patches to
make this exploration easier which are also expected to provide value in
themselves.
The cleanup starts with the e500 machine class itself,
Reviewed-by: Cédric Le Goater
Signed-off-by: Bernhard Beschow
---
hw/i2c/smbus_eeprom.c | 19 ---
1 file changed, 8 insertions(+), 11 deletions(-)
diff --git a/hw/i2c/smbus_eeprom.c b/hw/i2c/smbus_eeprom.c
index 9e62c27a1a..1d4d9704bf 100644
--- a/hw/i2c/smbus_eeprom.c
+++ b/hw/
Avoids one downcast, making the code more type-safe.
Reviewed-by: Cédric Le Goater
Signed-off-by: Bernhard Beschow
---
hw/vfio/platform.c | 7 +++
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c
index a85c199c76..77bbfbf62c 100644
--- a/
The struct is allocated once with g_new0() but never free()'d. Fix the leakage
by adding an attribute to struct PPCE500MachineState which avoids the
allocation.
While at it remove the obsolete /*< private >*/ markers.
Signed-off-by: Bernhard Beschow
---
hw/ppc/e500.h | 9 +++--
hw/ppc/e500
Rather than accessing the attributes of TYPE_CCSR directly, use the SysBusDevice
API which exists exactly for that purpose. Furthermore, registering the memory
region with the SysBusDevice API makes it show up in QMP's `info qom-tree`
command.
Reviewed-by: BALATON Zoltan
Signed-off-by: Bernhard B
The CCSR space is just a container which is meant to be covered by platform
device memory regions. However, QEMU only implements a subset of these devices.
Add some logging to see which devices a guest attempts to access.
Signed-off-by: Bernhard Beschow
---
hw/ppc/ppce500_ccsr.c | 32 +++
Reviewed-by: Cédric Le Goater
Signed-off-by: Bernhard Beschow
---
hw/net/fsl_etsec/etsec.c | 22 +-
1 file changed, 9 insertions(+), 13 deletions(-)
diff --git a/hw/net/fsl_etsec/etsec.c b/hw/net/fsl_etsec/etsec.c
index 3fdd16ef2e..9bd886b996 100644
--- a/hw/net/fsl_etsec/et
Reviewed-by: BALATON Zoltan
Signed-off-by: Bernhard Beschow
---
hw/ppc/e500.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
index f68779a1ea..32996c188e 100644
--- a/hw/ppc/e500.c
+++ b/hw/ppc/e500.c
@@ -1008,7 +1008,7 @@ void ppce500_init(
When compiling a decompiled device tree blob created with dumpdtb, dtc complains
with:
/soc@e000/i2c@3000: incorrect #address-cells for I2C bus
/soc@e000/i2c@3000: incorrect #size-cells for I2C bus
Fix this by adding the missing device tree properties.
Reviewed-by: Cédric Le Goater
The device model already has a header file, so extract its implementation into
an accompanying source file like other e500 devices. While at it rename the
header file to reflect the name of the structure defined there.
This commit is also a preparation for the next commit.
Signed-off-by: Bernhard
Reviewed-by: Cédric Le Goater
Signed-off-by: Bernhard Beschow
---
hw/i2c/mpc_i2c.c| 9 +
hw/i2c/trace-events | 5 +
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/hw/i2c/mpc_i2c.c b/hw/i2c/mpc_i2c.c
index 2467d1a9aa..3d79c15653 100644
--- a/hw/i2c/mpc_i2c.c
+++ b
On 9/23/24 09:13, Ilya Leoshkevich wrote:
linux-user and bsd-user have the same implementation.
Move it to user-exec.c.
Signed-off-by: Ilya Leoshkevich
---
accel/tcg/user-exec.c | 5 +
bsd-user/main.c | 5 -
linux-user/main.c | 5 -
3 files changed, 5 insertions(+), 10
On 9/23/24 09:13, Ilya Leoshkevich wrote:
Allow static initialization of mutexes.
Signed-off-by: Ilya Leoshkevich
---
include/qemu/thread-posix.h | 6 ++
include/qemu/thread-win32.h | 6 ++
2 files changed, 12 insertions(+)
Reviewed-by: Richard Henderson
r~
On 9/23/24 09:13, Ilya Leoshkevich wrote:
Allow static initialization of condition variables.
Signed-off-by: Ilya Leoshkevich
---
include/qemu/thread-posix.h | 2 ++
include/qemu/thread-win32.h | 2 ++
2 files changed, 4 insertions(+)
Reviewed-by: Richard Henderson
r~
On 9/23/24 09:13, Ilya Leoshkevich wrote:
All linux-user cpu_loop() implementations contain the same sequence
of function calls. Factor them out so that they can be changed in one
place.
Signed-off-by: Ilya Leoshkevich
---
accel/tcg/user-exec.c | 12
bsd-user/aarch64
On 9/23/24 09:12, Ilya Leoshkevich wrote:
Move checking and setting allow_stop_reply into a function.
Signed-off-by: Ilya Leoshkevich
---
gdbstub/gdbstub.c | 15 +++
gdbstub/internals.h | 2 ++
gdbstub/system.c| 6 ++
gdbstub/user.c | 11 ---
4 files ch
On 9/23/24 09:12, Ilya Leoshkevich wrote:
Follow the convention that all the pieces of the global stub state must
be inside a single struct.
Signed-off-by: Ilya Leoshkevich
---
gdbstub/syscalls.c | 20 ++--
1 file changed, 10 insertions(+), 10 deletions(-)
Reviewed-by: Richa
On 9/23/24 09:12, Ilya Leoshkevich wrote:
Follow the convention that all the pieces of the global stub state must
be inside a single struct.
Signed-off-by: Ilya Leoshkevich
---
gdbstub/system.c | 12 ++--
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/gdbstub/system.c
On 9/23/24 09:12, Ilya Leoshkevich wrote:
It's user-only since commit a7e0f9bd2ace ("gdbstub: abstract target
specific details from gdb_put_packet_binary").
Signed-off-by: Ilya Leoshkevich
---
gdbstub/internals.h | 2 --
gdbstub/user.c | 2 +-
2 files changed, 1 insertion(+), 3 deletion
On 10/1/24 23:55, Ilya Leoshkevich wrote:
On Wed, 2024-08-07 at 14:43 +0200, Philippe Mathieu-Daudé wrote:
Signed-off-by: Philippe Mathieu-Daudé
---
linux-user/strace.c | 19 +++
linux-user/strace.list | 2 +-
2 files changed, 20 insertions(+), 1 deletion(-)
diff --git
On 10/2/24 00:54, Ilya Leoshkevich wrote:
On Wed, 2024-08-07 at 14:43 +0200, Philippe Mathieu-Daudé wrote:
When the %addr argument can not be accessed, a double comma
is logged (the final qemu_log call prepend a comma). Call
print_raw_param with last=1 to avoid the extra comma.
Remove spurious s
On 10/5/24 10:57, Richard Henderson wrote:
On 10/1/24 12:32, Ilya Leoshkevich wrote:
Borrow the code for formatting the most frequent WIFEXITED() and
WIFSIGNALED() special cases from from the strace's printstatus().
Output examples:
474729 wait4(-1,0x7f00767ff0a0,0,(nil)) = 474733 (wstatu
On 10/1/24 12:32, Ilya Leoshkevich wrote:
Borrow the code for formatting the most frequent WIFEXITED() and
WIFSIGNALED() special cases from from the strace's printstatus().
Output examples:
474729 wait4(-1,0x7f00767ff0a0,0,(nil)) = 474733 (wstatus={WIFEXITED(s) &&
WEXITSTATUS(s) == 1})
On 10/1/24 08:14, Michael Vogt wrote:
This is v9 of the openat2 support in linux-user. Thanks to Laurent for
spotting another missing tswap64() in v8 (and my appologies that I
overlooked this).
Looking forward to your feedback/ideas!
Thanks,
Michael
v8 -> v9
- use "tswap64()" in strace.c fo
On 10/5/24 10:34, Pierrick Bouvier wrote:
On 10/5/24 09:16, Michael Tokarev wrote:
05.10.2024 01:01, Pierrick Bouvier wrote:
Alex discovered that CMPXCHG128 was not enabled when building for
x86_64, resulting in slow execution for wide atomic instructions,
creating a huge contention when combin
On 10/5/24 09:16, Michael Tokarev wrote:
05.10.2024 01:01, Pierrick Bouvier wrote:
Alex discovered that CMPXCHG128 was not enabled when building for
x86_64, resulting in slow execution for wide atomic instructions,
creating a huge contention when combined with a high number of cpus
(found while
05.10.2024 19:48, Richard Henderson wrote:
Comparing a string of 4 bytes only works in little-endian.
Adjust bulk bswap to only apply to the note payload.
Perform swapping of the note header manually; the magic
is defined so that it does not need a runtime swap.
I think this is more confusing
On 10/4/24 07:24, Richard Henderson wrote:
I was hoping for a reorg of the target hooks that could allow the target to see
misalignment and permission check simultaneously, then the target chooses the order in
which the two faults are presented. Given how complicated tlb_fill is though, I don't
Comparing a string of 4 bytes only works in little-endian.
Adjust bulk bswap to only apply to the note payload.
Perform swapping of the note header manually; the magic
is defined so that it does not need a runtime swap.
Fixes: 83f990eb5adb ("linux-user/elfload: Parse NT_GNU_PROPERTY_TYPE_0 notes"
05.10.2024 19:22, Michael Tokarev wrote:
05.10.2024 19:20, Richard Henderson wrote:
No, it doesn't fail to link. That's why it took so long to notice.
It does here quite often during bisection between 9.0 and 9.1.
Lemme see..
So, it is just 2 steps:
$ git bisect start v9.0.0 v9.1.0 # at
05.10.2024 19:20, Richard Henderson wrote:
On 10/5/24 09:16, Michael Tokarev wrote:
Besides, in the current situation where CONFIG_CMPXCHG128 is not defined
due to this bug, the final link fails due to generated calls to -latomic, -
which might mean we have something else wrong.
No, it doesn't
On 10/5/24 09:16, Michael Tokarev wrote:
Besides, in the current situation where CONFIG_CMPXCHG128 is not defined
due to this bug, the final link fails due to generated calls to -latomic, -
which might mean we have something else wrong.
No, it doesn't fail to link. That's why it took so long t
05.10.2024 19:08, Michael Tokarev wrote:
05.10.2024 01:37, Pierrick Bouvier wrote:
s/mbmi1/mbmi/
When configuring with -Dx86_version >= 3, meson step works, but
compilation fails because option -mbmi1 is unknown.
Fixes: v9.0.0-1771-gef7d1adfa8 "meson: allow configuring the x86-64 baseline"
Re
05.10.2024 01:01, Pierrick Bouvier wrote:
Alex discovered that CMPXCHG128 was not enabled when building for
x86_64, resulting in slow execution for wide atomic instructions,
creating a huge contention when combined with a high number of cpus
(found while booting android aarch64 guest on x86_64 ho
05.10.2024 01:37, Pierrick Bouvier пишет:
s/mbmi1/mbmi/
When configuring with -Dx86_version >= 3, meson step works, but
compilation fails because option -mbmi1 is unknown.
Fixes: v9.0.0-1771-gef7d1adfa8 "meson: allow configuring the x86-64 baseline"
Revieved-by: Michael Tokarev
Thanks,
/mjt
Hi all,
Following the Zynq-7000 SoC Data Sheet's "Memory Map" section (referenced at
[1]),
We have identified the need to create placeholders for unimplemented devices
across the entire range of Zynq-7000 series boards.
This effort aims at ensuring maximum compatibility with different models
wi
diff --git a/hw/dma/xlnx-zynq-devcfg.c b/hw/dma/xlnx-zynq-devcfg.c
index b8544d0731..7170353a62 100644
--- a/hw/dma/xlnx-zynq-devcfg.c
+++ b/hw/dma/xlnx-zynq-devcfg.c
@@ -372,7 +372,7 @@ static void xlnx_zynq_devcfg_init(Object *obj)
s->regs_info, s->regs,
Add xilinx zynq board memory mapping is implemented in the device.
Remove a ignore_memory_transaction_failures concurrently.
Source: Zynq-7000 SoC Data Sheet: Overview, Chapter: Memory Map
See: https://www.mouser.com/datasheet/2/903/ds190_Zynq_7000_Overview-1595492.pdf
Signed-off-by: Chao Liu
-
There should be no "just in case"; the page is already
in the tlb, and known to be not readable.
Signed-off-by: Richard Henderson
---
accel/tcg/cputlb.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c
index 117b516739..fd6459b695 1
Just add the argument, unused at this point.
Zero is the safe do-nothing value for all callers.
Signed-off-by: Richard Henderson
---
target/hppa/cpu.h| 2 +-
target/hppa/int_helper.c | 2 +-
target/hppa/mem_helper.c | 9 +
target/hppa/op_helper.c | 2 +-
4 files changed, 8 inser
Pass memop through get_phys_addr_twostage with its
recursion with get_phys_addr_nogpc.
Signed-off-by: Richard Henderson
---
target/arm/ptw.c | 10 ++
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/target/arm/ptw.c b/target/arm/ptw.c
index 0445c3ccf3..f1fca086a4 100644
---
Fill in the tlb_fill_align hook, so that we can recognize
alignment exceptions in the correct priority order.
Signed-off-by: Richard Henderson
---
target/hppa/cpu.h| 3 +++
target/hppa/cpu.c| 2 +-
target/hppa/mem_helper.c | 16
3 files changed, 16 insertions(+
This new hook will allow targets to recognize an alignment
fault with the correct priority with respect to other faults
that can be raised by paging.
This should fix several hppa fault priority issues, most
importantly that access permissions come before alignment.
This should fix the documented
Zero is the safe do-nothing value for callers to use.
Pass the value through from get_phys_addr_gpc and
get_phys_addr_with_space_nogpc.
Signed-off-by: Richard Henderson
---
target/arm/ptw.c | 14 --
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/target/arm/ptw.c b/targ
1 - 100 of 127 matches
Mail list logo