qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 942069: target/ppc: initialize 'val' union in


From: Richard Henderson
Subject: [Qemu-commits] [qemu/qemu] 942069: target/ppc: initialize 'val' union in kvm_get_one_...
Date: Thu, 05 May 2022 21:17:10 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 942069e0d2164e8c88a55f36a117a196a3920dc5
      
https://github.com/qemu/qemu/commit/942069e0d2164e8c88a55f36a117a196a3920dc5
  Author: Daniel Henrique Barboza <danielhb413@gmail.com>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/kvm.c

  Log Message:
  -----------
  target/ppc: initialize 'val' union in kvm_get_one_spr()

Valgrind isn't convinced that we are initializing the values we assign
to env->spr[spr] because it doesn't understand that the 'val' union is
being written by the kvm_vcpu_ioctl() that follows (via struct
kvm_one_reg).

This results in Valgrind complaining about uninitialized values every
time we use env->spr in a conditional, like this instance:

==707578== Thread 1:
==707578== Conditional jump or move depends on uninitialised value(s)
==707578==    at 0xA10A40: hreg_compute_hflags_value (helper_regs.c:106)
==707578==    by 0xA10C9F: hreg_compute_hflags (helper_regs.c:173)
==707578==    by 0xA110F7: hreg_store_msr (helper_regs.c:262)
==707578==    by 0xA051A3: ppc_cpu_reset (cpu_init.c:7168)
==707578==    by 0xD4730F: device_transitional_reset (qdev.c:799)
==707578==    by 0xD4A11B: resettable_phase_hold (resettable.c:182)
==707578==    by 0xD49A77: resettable_assert_reset (resettable.c:60)
==707578==    by 0xD4994B: resettable_reset (resettable.c:45)
==707578==    by 0xD458BB: device_cold_reset (qdev.c:296)
==707578==    by 0x48FBC7: cpu_reset (cpu-common.c:114)
==707578==    by 0x97B5EB: spapr_reset_vcpu (spapr_cpu_core.c:38)
==707578==    by 0x97BABB: spapr_cpu_core_reset (spapr_cpu_core.c:209)
==707578==  Uninitialised value was created by a stack allocation
==707578==    at 0xB11F08: kvm_get_one_spr (kvm.c:543)

Initializing 'val' has no impact in the logic and makes Valgrind output
more bearable.

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Message-Id: <20220331001717.616938-2-danielhb413@gmail.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: 59411579b2ce0010442154f604d7062566c10040
      
https://github.com/qemu/qemu/commit/59411579b2ce0010442154f604d7062566c10040
  Author: Daniel Henrique Barboza <danielhb413@gmail.com>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/kvm.c

  Log Message:
  -----------
  target/ppc: init 'lpcr' in kvmppc_enable_cap_large_decr()

'lpcr' is used as an input of kvm_get_one_reg(). Valgrind doesn't
understand that and it returns warnings as such for this function:

==55240== Thread 1:
==55240== Conditional jump or move depends on uninitialised value(s)
==55240==    at 0xB011E4: kvmppc_enable_cap_large_decr (kvm.c:2546)
==55240==    by 0x92F28F: cap_large_decr_cpu_apply (spapr_caps.c:523)
==55240==    by 0x930C37: spapr_caps_cpu_apply (spapr_caps.c:921)
==55240==    by 0x955D3B: spapr_reset_vcpu (spapr_cpu_core.c:73)
==55240==    by 0x95612B: spapr_cpu_core_reset (spapr_cpu_core.c:209)
==55240==    by 0x95619B: spapr_cpu_core_reset_handler (spapr_cpu_core.c:218)
==55240==    by 0xD3605F: qemu_devices_reset (reset.c:69)
==55240==    by 0x92112B: spapr_machine_reset (spapr.c:1641)
==55240==    by 0x4FBD63: qemu_system_reset (runstate.c:444)
==55240==    by 0x62812B: qdev_machine_creation_done (machine.c:1247)
==55240==    by 0x5064C3: qemu_machine_creation_done (vl.c:2725)
==55240==    by 0x5065DF: qmp_x_exit_preconfig (vl.c:2748)
==55240==  Uninitialised value was created by a stack allocation
==55240==    at 0xB01158: kvmppc_enable_cap_large_decr (kvm.c:2540)

Init 'lpcr' to avoid this warning.

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220331001717.616938-3-danielhb413@gmail.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: b339427cfc90f7cd158f36eb0cb301c15f582d50
      
https://github.com/qemu/qemu/commit/b339427cfc90f7cd158f36eb0cb301c15f582d50
  Author: Daniel Henrique Barboza <danielhb413@gmail.com>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/kvm.c

  Log Message:
  -----------
  target/ppc: init 'sregs' in kvmppc_put_books_sregs()

Init 'sregs' to avoid Valgrind complaints about uninitialized bytes
from kvmppc_put_books_sregs():

==54059== Thread 3:
==54059== Syscall param ioctl(generic) points to uninitialised byte(s)
==54059==    at 0x55864E4: ioctl (in /usr/lib64/libc.so.6)
==54059==    by 0xD1FA23: kvm_vcpu_ioctl (kvm-all.c:3053)
==54059==    by 0xAFB18B: kvmppc_put_books_sregs (kvm.c:891)
==54059==    by 0xAFB47B: kvm_arch_put_registers (kvm.c:949)
==54059==    by 0xD1EDA7: do_kvm_cpu_synchronize_post_init (kvm-all.c:2766)
==54059==    by 0x481AF3: process_queued_cpu_work (cpus-common.c:343)
==54059==    by 0x4EF247: qemu_wait_io_event_common (cpus.c:412)
==54059==    by 0x4EF343: qemu_wait_io_event (cpus.c:436)
==54059==    by 0xD21E83: kvm_vcpu_thread_fn (kvm-accel-ops.c:54)
==54059==    by 0xFFEBF3: qemu_thread_start (qemu-thread-posix.c:556)
==54059==    by 0x54E6DC3: start_thread (in /usr/lib64/libc.so.6)
==54059==    by 0x5596C9F: clone (in /usr/lib64/libc.so.6)
==54059==  Address 0x799d1cc is on thread 3's stack
==54059==  in frame #2, created by kvmppc_put_books_sregs (kvm.c:851)
==54059==  Uninitialised value was created by a stack allocation
==54059==    at 0xAFAEB0: kvmppc_put_books_sregs (kvm.c:851)

This happens because Valgrind does not consider the 'sregs'
initialization done by kvm_vcpu_ioctl() at the end of the function.

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220331001717.616938-4-danielhb413@gmail.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: 55baf4b584709fb4d675741a4c3bd15cb0b49c91
      
https://github.com/qemu/qemu/commit/55baf4b584709fb4d675741a4c3bd15cb0b49c91
  Author: Daniel Henrique Barboza <danielhb413@gmail.com>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/kvm.c

  Log Message:
  -----------
  target/ppc: init 'rmmu_info' in kvm_get_radix_page_info()

Init the struct to avoid Valgrind complaints about unitialized bytes,
such as this one:

==39549== Syscall param ioctl(generic) points to uninitialised byte(s)
==39549==    at 0x55864E4: ioctl (in /usr/lib64/libc.so.6)
==39549==    by 0xD1F7EF: kvm_vm_ioctl (kvm-all.c:3035)
==39549==    by 0xAF8F5B: kvm_get_radix_page_info (kvm.c:276)
==39549==    by 0xB00533: kvmppc_host_cpu_class_init (kvm.c:2369)
==39549==    by 0xD3DCE7: type_initialize (object.c:366)
==39549==    by 0xD3FACF: object_class_foreach_tramp (object.c:1071)
==39549==    by 0x502757B: g_hash_table_foreach (in 
/usr/lib64/libglib-2.0.so.0.7000.5)
==39549==    by 0xD3FC1B: object_class_foreach (object.c:1093)
==39549==    by 0xB0141F: kvm_ppc_register_host_cpu_type (kvm.c:2613)
==39549==    by 0xAF87E7: kvm_arch_init (kvm.c:157)
==39549==    by 0xD1E2A7: kvm_init (kvm-all.c:2595)
==39549==    by 0x8E6E93: accel_init_machine (accel-softmmu.c:39)
==39549==  Address 0x1fff00e208 is on thread 1's stack
==39549==  in frame #2, created by kvm_get_radix_page_info (kvm.c:267)
==39549==  Uninitialised value was created by a stack allocation
==39549==    at 0xAF8EE8: kvm_get_radix_page_info (kvm.c:267)

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220331001717.616938-5-danielhb413@gmail.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: 1220ab3ee2bff4a3932cd40e09553ee6bbfaa8a4
      
https://github.com/qemu/qemu/commit/1220ab3ee2bff4a3932cd40e09553ee6bbfaa8a4
  Author: Bin Meng <bin.meng@windriver.com>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/helper_regs.c

  Log Message:
  -----------
  target/ppc: Fix BookE debug interrupt generation

Per E500 core reference manual [1], chapter 8.4.4 "Branch Taken Debug
Event" and chapter 8.4.5 "Instruction Complete Debug Event":

  "A branch taken debug event occurs if both MSR[DE] and DBCR0[BRT]
  are set ... Branch taken debug events are not recognized if MSR[DE]
  is cleared when the branch instruction executes."

  "An instruction complete debug event occurs when any instruction
  completes execution so long as MSR[DE] and DBCR0[ICMP] are both
  set ... Instruction complete debug events are not recognized if
  MSR[DE] is cleared at the time of the instruction execution."

Current codes do not check MSR.DE bit before setting HFLAGS_SE and
HFLAGS_BE flag, which would cause the immediate debug interrupt to
be generated, e.g.: when DBCR0.ICMP bit is set by guest software
and MSR.DE is not set.

[1] https://www.nxp.com/docs/en/reference-manual/E500CORERM.pdf

Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Fabiano Rosas <farosas@linux.ibm.com>
Reviewed-by: Lucas Mateus Castro <lucas.araujo@eldorado.org.br>
Message-Id: <20220421011729.1148727-1-bmeng.cn@gmail.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: 97252353c1f6ecbb54385c9272378b5788749a16
      
https://github.com/qemu/qemu/commit/97252353c1f6ecbb54385c9272378b5788749a16
  Author: Murilo Opsfelder Araujo <muriloo@linux.ibm.com>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M hw/virtio/vhost-user.c

  Log Message:
  -----------
  vhost-user: Use correct macro name TARGET_PPC64

The correct name of the macro is TARGET_PPC64.

Fixes: 27598393a232 ("Lift max memory slots limit imposed by vhost-user")
Reported-by: Fabiano Rosas <farosas@linux.ibm.com>
Signed-off-by: Murilo Opsfelder Araujo <muriloo@linux.ibm.com>
Cc: Raphael Norwitz <raphael.norwitz@nutanix.com>
Cc: Peter Turschmid <peter.turschm@nutanix.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Message-Id: <20220503180108.34506-1-muriloo@linux.ibm.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: a66257a287f6e2832fb6ecd7587da4933b39cfc4
      
https://github.com/qemu/qemu/commit/a66257a287f6e2832fb6ecd7587da4933b39cfc4
  Author: Frederic Barrat <fbarrat@linux.ibm.com>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M hw/intc/xive.c
    M hw/intc/xive2.c

  Log Message:
  -----------
  ppc/xive: Always recompute the PIPR when pushing an OS context

The Post Interrupt Priority Register (PIPR) is not restored like the
other OS-context related fields of the TIMA when pushing an OS context
on the CPU. It's not needed because it can be calculated from the
Interrupt Pending Buffer (IPB), which is saved and restored. The PIPR
must therefore always be recomputed when pushing an OS context.

This patch fixes a path on P9 and P10 where it was not done. If there
was a pending interrupt when the OS context was pulled, the IPB was
saved correctly. When pushing back the context, the code in
xive_tctx_need_resend() was checking for a interrupt raised while the
context was not on the CPU, saved in the NVT. If one was found, then
it was merged with the saved IPB and the PIPR updated and everything
was fine. However, if there was no interrupt found in the NVT, then
xive_tctx_ipb_update() was not being called and the PIPR was not
updated. This patch fixes it by always calling xive_tctx_ipb_update().

Note that on P10 (xive2.c) and because of the above, there's no longer
any need to check the CPPR value so it can go away.

Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220429071620.177142-2-fbarrat@linux.ibm.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: f65772118718bd8c04dde2618c2c272ae2fe8939
      
https://github.com/qemu/qemu/commit/f65772118718bd8c04dde2618c2c272ae2fe8939
  Author: Frederic Barrat <fbarrat@linux.ibm.com>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M hw/intc/xive.c
    M hw/intc/xive2.c
    M include/hw/ppc/xive.h

  Log Message:
  -----------
  ppc/xive: Update the state of the External interrupt signal

When pulling or pushing an OS context from/to a CPU, we should
re-evaluate the state of the External interrupt signal. Otherwise, we
can end up catching the External interrupt exception in hypervisor
mode, which is unexpected.

The problem is best illustrated with the following scenario:

1. an External interrupt is raised while the guest is on the CPU.

2. before the guest can ack the External interrupt, an hypervisor
interrupt is raised, for example the Hypervisor Decrementer or
Hypervisor Virtualization interrupt. The hypervisor interrupt forces
the guest to exit while the External interrupt is still pending.

3. the hypervisor handles the hypervisor interrupt. At this point, the
External interrupt is still pending. So it's very likely to be
delivered while the hypervisor is running. That's unexpected and can
result in an infinite loop where the hypervisor catches the External
interrupt, looks for an interrupt in its hypervisor queue, doesn't
find any, exits the interrupt handler with the External interrupt
still raised, repeat...

The fix is simply to always lower the External interrupt signal when
pulling an OS context. It means it needs to be raised again when
re-pushing the OS context. Fortunately, it's already the case, as we
now always call xive_tctx_ipb_update(), which will raise the signal if
needed.

Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220429071620.177142-3-fbarrat@linux.ibm.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: 208d803326416b43e51e3476826813869050a350
      
https://github.com/qemu/qemu/commit/208d803326416b43e51e3476826813869050a350
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.c
    M target/ppc/cpu.h
    M target/ppc/fpu_helper.c

  Log Message:
  -----------
  target/ppc: Remove fpscr_* macros from cpu.h

fpscr_* defined macros are hiding the usage of *env behind them.
Substitute the usage of these macros with `env->fpscr & FP_*` to make
the code cleaner.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Message-Id: <20220504210541.115256-2-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: 92984c96df27d9f5bb783846c0cc2ccc8068a7a7
      
https://github.com/qemu/qemu/commit/92984c96df27d9f5bb783846c0cc2ccc8068a7a7
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.h

  Log Message:
  -----------
  target/ppc: Remove unused msr_* macros

Some msr_* macros are not used anywhere. Remove them as part of
the work to remove all hidden usage of *env.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Message-Id: <20220504210541.115256-3-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: d41ccf6eea918ec121cd38eda6e2526b446013f4
      
https://github.com/qemu/qemu/commit/d41ccf6eea918ec121cd38eda6e2526b446013f4
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M hw/ppc/pegasos2.c
    M hw/ppc/spapr.c
    M target/ppc/cpu.h
    M target/ppc/cpu_init.c
    M target/ppc/excp_helper.c
    M target/ppc/mem_helper.c
    M target/ppc/mmu-radix64.c
    M target/ppc/mmu_common.c

  Log Message:
  -----------
  target/ppc: Remove msr_pr macro

msr_pr macro hides the usage of env->msr, which is a bad behavior
Substitute it with FIELD_EX64 calls that explicitly use env->msr
as a parameter.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504210541.115256-4-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: 1922322ce43091cfb004a4da8d5851b3630718f1
      
https://github.com/qemu/qemu/commit/1922322ce43091cfb004a4da8d5851b3630718f1
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.h
    M target/ppc/cpu_init.c
    M target/ppc/gdbstub.c
    M target/ppc/mem_helper.c

  Log Message:
  -----------
  target/ppc: Remove msr_le macro

msr_le macro hides the usage of env->msr, which is a bad behavior
Substitute it with FIELD_EX64 calls that explicitly use env->msr
as a parameter.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504210541.115256-5-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: 26363616c67633aef7f53db24050b8adfd2da3b6
      
https://github.com/qemu/qemu/commit/26363616c67633aef7f53db24050b8adfd2da3b6
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.h
    M target/ppc/mmu_common.c

  Log Message:
  -----------
  target/ppc: Remove msr_ds macro

msr_ds macro hides the usage of env->msr, which is a bad behavior
Substitute it with FIELD_EX64 calls that explicitly use env->msr
as a parameter.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504210541.115256-6-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: 3868540f05c5e678d9cd889700dbcd66330c43cc
      
https://github.com/qemu/qemu/commit/3868540f05c5e678d9cd889700dbcd66330c43cc
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.h

  Log Message:
  -----------
  target/ppc: Remove msr_ile macro

msr_ile macro hides the usage of env->msr, which is a bad behavior
Substitute it with FIELD_EX64 calls that explicitly use env->msr
as a parameter.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504210541.115256-7-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: 0939b8f8df43ad163a602d36f989dc9fd6e378f4
      
https://github.com/qemu/qemu/commit/0939b8f8df43ad163a602d36f989dc9fd6e378f4
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.h
    M target/ppc/cpu_init.c
    M target/ppc/excp_helper.c
    M target/ppc/kvm.c

  Log Message:
  -----------
  target/ppc: Remove msr_ee macro

msr_ee macro hides the usage of env->msr, which is a bad behavior
Substitute it with FIELD_EX64 calls that explicitly use env->msr
as a parameter.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504210541.115256-8-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: acc861c2e95dec0795581016a6a8b044d28b1d61
      
https://github.com/qemu/qemu/commit/acc861c2e95dec0795581016a6a8b044d28b1d61
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.h
    M target/ppc/excp_helper.c

  Log Message:
  -----------
  target/ppc: Remove msr_ce macro

msr_ce macro hides the usage of env->msr, which is a bad behavior
Substitute it with FIELD_EX64 calls that explicitly use env->msr
as a parameter.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504210541.115256-9-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: 8e54ad65c218a547111c9dfadec792c43b933600
      
https://github.com/qemu/qemu/commit/8e54ad65c218a547111c9dfadec792c43b933600
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.h
    M target/ppc/excp_helper.c
    M target/ppc/helper_regs.c

  Log Message:
  -----------
  target/ppc: Remove msr_pow macro

msr_pow macro hides the usage of env->msr, which is a bad behavior
Substitute it with FIELD_EX64 calls that explicitly use env->msr
as a parameter.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504210541.115256-10-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: c354d85828a44e374ccc68b418989dcd26f650db
      
https://github.com/qemu/qemu/commit/c354d85828a44e374ccc68b418989dcd26f650db
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.h
    M target/ppc/excp_helper.c

  Log Message:
  -----------
  target/ppc: Remove msr_me macro

msr_me macro hides the usage of env->msr, which is a bad behavior
Substitute it with FIELD_EX64 calls that explicitly use env->msr
as a parameter.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504210541.115256-11-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: 10b2b373919ff24c8fabec035f40a4fdb1c40da3
      
https://github.com/qemu/qemu/commit/10b2b373919ff24c8fabec035f40a4fdb1c40da3
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.h
    M target/ppc/helper_regs.c
    M target/ppc/mmu_helper.c

  Log Message:
  -----------
  target/ppc: Remove msr_gs macro

msr_gs macro hides the usage of env->msr, which is a bad behavior
Substitute it with FIELD_EX64 calls that explicitly use env->msr
as a parameter.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504210541.115256-12-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: 39695e156ff519a466dda8ad3dd6b37b5ef85e78
      
https://github.com/qemu/qemu/commit/39695e156ff519a466dda8ad3dd6b37b5ef85e78
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.h
    M target/ppc/excp_helper.c

  Log Message:
  -----------
  target/ppc: Remove msr_fp macro

msr_fp macro hides the usage of env->msr, which is a bad behavior
Substitute it with FIELD_EX64 calls that explicitly use env->msr
as a parameter.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504210541.115256-13-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: cda2336027d2ef744d04271810bb64085ab2cd29
      
https://github.com/qemu/qemu/commit/cda2336027d2ef744d04271810bb64085ab2cd29
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.h
    M target/ppc/mmu_common.c
    M target/ppc/mmu_helper.c

  Log Message:
  -----------
  target/ppc: Remove msr_cm macro

msr_cm macro hides the usage of env->msr, which is a bad behavior
Substitute it with FIELD_EX64 calls that explicitly use env->msr
as a parameter.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504210541.115256-14-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: 4d979c9ffbe19931bd8b44810eb3c1c396798911
      
https://github.com/qemu/qemu/commit/4d979c9ffbe19931bd8b44810eb3c1c396798911
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.h
    M target/ppc/helper_regs.c
    M target/ppc/mmu_common.c

  Log Message:
  -----------
  target/ppc: Remove msr_ir macro

msr_ir macro hides the usage of env->msr, which is a bad behavior
Substitute it with FIELD_EX64 calls that explicitly use env->msr
as a parameter.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504210541.115256-15-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: e4eea6ef667a9bf75114ad860d0e6b239b74b537
      
https://github.com/qemu/qemu/commit/e4eea6ef667a9bf75114ad860d0e6b239b74b537
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.h
    M target/ppc/helper_regs.c
    M target/ppc/mmu_common.c

  Log Message:
  -----------
  target/ppc: Remove msr_dr macro

msr_dr macro hides the usage of env->msr, which is a bad behavior
Substitute it with FIELD_EX64 calls that explicitly use env->msr
as a parameter.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504210541.115256-16-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: 502423309159a4305f315e55ff6ec75aa61a91b0
      
https://github.com/qemu/qemu/commit/502423309159a4305f315e55ff6ec75aa61a91b0
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.h
    M target/ppc/helper_regs.c

  Log Message:
  -----------
  target/ppc: Remove msr_ep macro

msr_ep macro hides the usage of env->msr, which is a bad behavior
Substitute it with FIELD_EX64 calls that explicitly use env->msr
as a parameter.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504210541.115256-17-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: da806a6c63c8a62700fcb7bc09ba908f0f5e5648
      
https://github.com/qemu/qemu/commit/da806a6c63c8a62700fcb7bc09ba908f0f5e5648
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.h
    M target/ppc/excp_helper.c

  Log Message:
  -----------
  target/ppc: Remove msr_fe0 and msr_fe1 macros

msr_fe0 and msr_fe1 macros hide the usage of env->msr, which is a bad
behavior. Substitute it with FIELD_EX64 calls that explicitly use
env->msr as a parameter.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504210541.115256-18-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: ca241959cd824e1feeabed4948e2c754d1e2b635
      
https://github.com/qemu/qemu/commit/ca241959cd824e1feeabed4948e2c754d1e2b635
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.h
    M target/ppc/kvm.c
    M target/ppc/machine.c

  Log Message:
  -----------
  target/ppc: Remove msr_ts macro

msr_ts macro hides the usage of env->msr, which is a bad
behavior. Substitute it with FIELD_EX64 calls that explicitly use
env->msr as a parameter.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504210541.115256-19-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: 9de754d30d54b9d5d2ba0756bcbd63625c82e63c
      
https://github.com/qemu/qemu/commit/9de754d30d54b9d5d2ba0756bcbd63625c82e63c
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.h
    M target/ppc/cpu_init.c
    M target/ppc/excp_helper.c
    M target/ppc/mem_helper.c
    M target/ppc/misc_helper.c
    M target/ppc/mmu-radix64.c

  Log Message:
  -----------
  target/ppc: Remove msr_hv macro

msr_hv macro hides the usage of env->msr, which is a bad
behavior. Substitute it with FIELD_EX64 calls that explicitly use
env->msr as a parameter.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504210541.115256-20-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: 67935ecdd9a5d5dfed83cb0a7e7f6be925a7d761
      
https://github.com/qemu/qemu/commit/67935ecdd9a5d5dfed83cb0a7e7f6be925a7d761
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.h
    M target/ppc/helper_regs.c

  Log Message:
  -----------
  target/ppc: Remove msr_de macro

msr_de macro hides the usage of env->msr, which is a bad
behavior. Substitute it with FIELD_EX64 calls that explicitly use
env->msr as a parameter.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504210541.115256-21-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: 39af1384faec88e49e14dc066f7653f219d79850
      
https://github.com/qemu/qemu/commit/39af1384faec88e49e14dc066f7653f219d79850
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.h

  Log Message:
  -----------
  target/ppc: Add unused msr bits FIELDs

Add FIELDs macros for msr bits that had an unused msr_* before.

Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Acked-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504210541.115256-22-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: bf3dd1e6d0d7c5c4906f89776e15dddc22af784b
      
https://github.com/qemu/qemu/commit/bf3dd1e6d0d7c5c4906f89776e15dddc22af784b
  Author: Víctor Colombo <victor.colombo@eldorado.org.br>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M target/ppc/cpu.h

  Log Message:
  -----------
  target/ppc: Change MSR_* to follow POWER ISA numbering convention

Today we have the issue where MSR_* values are the 'inverted order'
bit numbers from what the ISA specifies. e.g. MSR_LE is bit 63 but
is defined as 0 in QEMU.

Add a macro to be used to convert from QEMU order to ISA order.

This solution requires less changes than to use the already defined
PPC_BIT macro, which would turn MSR_* in masks instead of the numbers
itself.

Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Acked-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504210541.115256-23-victor.colombo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>


  Commit: 31abf61c4929a91275fe32f1fafe6e6b3e840b2a
      
https://github.com/qemu/qemu/commit/31abf61c4929a91275fe32f1fafe6e6b3e840b2a
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M hw/intc/xive.c
    M hw/intc/xive2.c
    M hw/ppc/pegasos2.c
    M hw/ppc/spapr.c
    M hw/virtio/vhost-user.c
    M include/hw/ppc/xive.h
    M target/ppc/cpu.c
    M target/ppc/cpu.h
    M target/ppc/cpu_init.c
    M target/ppc/excp_helper.c
    M target/ppc/fpu_helper.c
    M target/ppc/gdbstub.c
    M target/ppc/helper_regs.c
    M target/ppc/kvm.c
    M target/ppc/machine.c
    M target/ppc/mem_helper.c
    M target/ppc/misc_helper.c
    M target/ppc/mmu-radix64.c
    M target/ppc/mmu_common.c
    M target/ppc/mmu_helper.c

  Log Message:
  -----------
  Merge tag 'pull-ppc-20220505' of https://gitlab.com/danielhb/qemu into staging

ppc patch queue for 2022-05-05:

The star of the show in this PR is the 'Remove hidden usages of *env'
work done by Víctor, which impacts a lot of target/ppc code and we want
to get it landed ASAP so future target/ppc contributions can be based on
it.

Other changes:

- XIVE fixes in guest interrupt handling
- BookE debug interrupt fix
- vhost-user TARGET_PPC64 macro fix
- valgrind fixes in kvmppc functions

# -----BEGIN PGP SIGNATURE-----
#
# iHUEABYKAB0WIQQX6/+ZI9AYAK8oOBk82cqW3gMxZAUCYnQbpgAKCRA82cqW3gMx
# ZM1ZAQChjU/oBVDlhrlfInGjOcdXlM4l0R0pDQZ6dm1NYVqcvgD/WRNWj+tQ2H1V
# xmKXSzrGlDyYFu1uozfU8kvYJeHaKgw=
# =eRrg
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 05 May 2022 01:47:02 PM CDT
# gpg:                using EDDSA key 17EBFF9923D01800AF2838193CD9CA96DE033164
# gpg: Good signature from "Daniel Henrique Barboza <danielhb413@gmail.com>" 
[unknown]
# 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: 17EB FF99 23D0 1800 AF28  3819 3CD9 CA96 DE03 3164

* tag 'pull-ppc-20220505' of https://gitlab.com/danielhb/qemu: (30 commits)
  target/ppc: Change MSR_* to follow POWER ISA numbering convention
  target/ppc: Add unused msr bits FIELDs
  target/ppc: Remove msr_de macro
  target/ppc: Remove msr_hv macro
  target/ppc: Remove msr_ts macro
  target/ppc: Remove msr_fe0 and msr_fe1 macros
  target/ppc: Remove msr_ep macro
  target/ppc: Remove msr_dr macro
  target/ppc: Remove msr_ir macro
  target/ppc: Remove msr_cm macro
  target/ppc: Remove msr_fp macro
  target/ppc: Remove msr_gs macro
  target/ppc: Remove msr_me macro
  target/ppc: Remove msr_pow macro
  target/ppc: Remove msr_ce macro
  target/ppc: Remove msr_ee macro
  target/ppc: Remove msr_ile macro
  target/ppc: Remove msr_ds macro
  target/ppc: Remove msr_le macro
  target/ppc: Remove msr_pr macro
  ...

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


Compare: https://github.com/qemu/qemu/compare/e91b8994115d...31abf61c4929



reply via email to

[Prev in Thread] Current Thread [Next in Thread]