The TCG helpers where added in b92e5a22ec3 in softmmu_template.h.
probe_write() was added in there in 3b4afc9e75a to be moved out
to accel/tcg/cputlb.c in 3b08f0a9254, and was later refactored
as probe_access() in c25c283df0f.
Since it is a TCG specific helper, add a stub to avoid failures
when building without TCG, such:
target/arm/helper.o: In function `probe_read':
include/exec/exec-all.h:345: undefined reference to `probe_access'
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
Cc: Richard Henderson <rth@twiddle.net>
Cc: Emilio G. Cota <cota@braap.org>
Cc: Alex Bennée <alex.bennee@linaro.org>
Cc: David Hildenbrand <david@redhat.com>
---
accel/stubs/tcg-stub.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/accel/stubs/tcg-stub.c b/accel/stubs/tcg-stub.c
index 677191a69c..e4bbf997aa 100644
--- a/accel/stubs/tcg-stub.c
+++ b/accel/stubs/tcg-stub.c
@@ -22,3 +22,10 @@ void tb_flush(CPUState *cpu)
void tlb_set_dirty(CPUState *cpu, target_ulong vaddr)
{
}
+
+void *probe_access(CPUArchState *env, target_ulong addr, int size,
+ MMUAccessType access_type, int mmu_idx, uintptr_t retaddr)
+{
+ /* Handled by hardware accelerator. */
+ g_assert_not_reached();
+}
--
2.21.1
On 23.04.20 09:10, Philippe Mathieu-Daudé wrote: > The TCG helpers where added in b92e5a22ec3 in softmmu_template.h. > probe_write() was added in there in 3b4afc9e75a to be moved out > to accel/tcg/cputlb.c in 3b08f0a9254, and was later refactored > as probe_access() in c25c283df0f. > Since it is a TCG specific helper, add a stub to avoid failures > when building without TCG, such: > > target/arm/helper.o: In function `probe_read': > include/exec/exec-all.h:345: undefined reference to `probe_access' I think you're missing the most important commit: 0d57b4999220 ("target/arm: Add support for DC CVAP & DC CVADP ins") I do wonder if dccvap_writefn() and calling code should be compiled for TCG only (CONFIG_TCG). I assume it is only called from TCG code - otherwise it would already be semi-broken. > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > Cc: Richard Henderson <rth@twiddle.net> > Cc: Emilio G. Cota <cota@braap.org> > Cc: Alex Bennée <alex.bennee@linaro.org> > Cc: David Hildenbrand <david@redhat.com> > --- > accel/stubs/tcg-stub.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/accel/stubs/tcg-stub.c b/accel/stubs/tcg-stub.c > index 677191a69c..e4bbf997aa 100644 > --- a/accel/stubs/tcg-stub.c > +++ b/accel/stubs/tcg-stub.c > @@ -22,3 +22,10 @@ void tb_flush(CPUState *cpu) > void tlb_set_dirty(CPUState *cpu, target_ulong vaddr) > { > } > + > +void *probe_access(CPUArchState *env, target_ulong addr, int size, > + MMUAccessType access_type, int mmu_idx, uintptr_t retaddr) > +{ > + /* Handled by hardware accelerator. */ > + g_assert_not_reached(); > +} > Still, this makes sense to me as well Reviewed-by: David Hildenbrand <david@redhat.com> -- Thanks, David / dhildenb
On Thu, Apr 23, 2020 at 9:49 AM David Hildenbrand <david@redhat.com> wrote: > > On 23.04.20 09:10, Philippe Mathieu-Daudé wrote: > > The TCG helpers where added in b92e5a22ec3 in softmmu_template.h. > > probe_write() was added in there in 3b4afc9e75a to be moved out > > to accel/tcg/cputlb.c in 3b08f0a9254, and was later refactored > > as probe_access() in c25c283df0f. > > Since it is a TCG specific helper, add a stub to avoid failures > > when building without TCG, such: > > > > target/arm/helper.o: In function `probe_read': > > include/exec/exec-all.h:345: undefined reference to `probe_access' > > I think you're missing the most important commit: > > 0d57b4999220 ("target/arm: Add support for DC CVAP & DC CVADP ins") > > I do wonder if dccvap_writefn() and calling code should be compiled for > TCG only (CONFIG_TCG). I assume it is only called from TCG code - > otherwise it would already be semi-broken. I can only recommend you to read the thread after this previous patch, as I don't have the knowledge to explain...: https://www.mail-archive.com/qemu-devel@nongnu.org/msg689115.html > > > > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > > --- > > Cc: Richard Henderson <rth@twiddle.net> > > Cc: Emilio G. Cota <cota@braap.org> > > Cc: Alex Bennée <alex.bennee@linaro.org> > > Cc: David Hildenbrand <david@redhat.com> > > --- > > accel/stubs/tcg-stub.c | 7 +++++++ > > 1 file changed, 7 insertions(+) > > > > diff --git a/accel/stubs/tcg-stub.c b/accel/stubs/tcg-stub.c > > index 677191a69c..e4bbf997aa 100644 > > --- a/accel/stubs/tcg-stub.c > > +++ b/accel/stubs/tcg-stub.c > > @@ -22,3 +22,10 @@ void tb_flush(CPUState *cpu) > > void tlb_set_dirty(CPUState *cpu, target_ulong vaddr) > > { > > } > > + > > +void *probe_access(CPUArchState *env, target_ulong addr, int size, > > + MMUAccessType access_type, int mmu_idx, uintptr_t retaddr) > > +{ > > + /* Handled by hardware accelerator. */ > > + g_assert_not_reached(); > > +} > > > > Still, this makes sense to me as well > > Reviewed-by: David Hildenbrand <david@redhat.com> > > -- > Thanks, > > David / dhildenb >
On 23.04.20 09:59, Philippe Mathieu-Daudé wrote: > On Thu, Apr 23, 2020 at 9:49 AM David Hildenbrand <david@redhat.com> wrote: >> >> On 23.04.20 09:10, Philippe Mathieu-Daudé wrote: >>> The TCG helpers where added in b92e5a22ec3 in softmmu_template.h. >>> probe_write() was added in there in 3b4afc9e75a to be moved out >>> to accel/tcg/cputlb.c in 3b08f0a9254, and was later refactored >>> as probe_access() in c25c283df0f. >>> Since it is a TCG specific helper, add a stub to avoid failures >>> when building without TCG, such: >>> >>> target/arm/helper.o: In function `probe_read': >>> include/exec/exec-all.h:345: undefined reference to `probe_access' >> >> I think you're missing the most important commit: >> >> 0d57b4999220 ("target/arm: Add support for DC CVAP & DC CVADP ins") >> >> I do wonder if dccvap_writefn() and calling code should be compiled for >> TCG only (CONFIG_TCG). I assume it is only called from TCG code - >> otherwise it would already be semi-broken. > > I can only recommend you to read the thread after this previous patch, > as I don't have the knowledge to explain...: > https://www.mail-archive.com/qemu-devel@nongnu.org/msg689115.html Yeah, me neither. Sounds wrong to me to have TCG-only code stick around in !CONFIG_TCG builds. But I am pretty sure ARM people know what they are doing. -- Thanks, David / dhildenb
On 23/04/20 10:04, David Hildenbrand wrote: >> I can only recommend you to read the thread after this previous patch, >> as I don't have the knowledge to explain...: >> https://www.mail-archive.com/qemu-devel@nongnu.org/msg689115.html > Yeah, me neither. Sounds wrong to me to have TCG-only code stick around > in !CONFIG_TCG builds. But I am pretty sure ARM people know what they > are doing. It's better if helpers are left out via obj-$(CONFIG_TCG), but it's not the end of the world if they aren't---as long as it compiles of course! This case is definitely borderline. Paolo
© 2016 - 2024 Red Hat, Inc.