Re: [Qemu-devel] [RFC v7 12/16] configure: Use slow-path for atomic only when the softmmu is enabled
On Thu, Feb 18, 2016 at 5:40 PM, Alex Bennéewrote: > > Alvise Rigo writes: > >> Use the new slow path for atomic instruction translation when the >> softmmu is enabled. >> >> At the moment only arm and aarch64 use the new LL/SC backend. It is >> possible to disable such backed with --disable-arm-llsc-backend. > > Do we want to disable the backend once it is merged? Does it serve a > purpose other than to confuse the user? I added this option in order to have a quick way to compile a binary with an without backend, it has been useful in the development process. Now it's probably time to drop it. Thank you, alvise > >> >> Suggested-by: Jani Kokkonen >> Suggested-by: Claudio Fontana >> Signed-off-by: Alvise Rigo >> --- >> configure | 14 ++ >> 1 file changed, 14 insertions(+) >> >> diff --git a/configure b/configure >> index 44ac9ab..915efcc 100755 >> --- a/configure >> +++ b/configure >> @@ -294,6 +294,7 @@ solaris="no" >> profiler="no" >> cocoa="no" >> softmmu="yes" >> +arm_tcg_use_llsc="yes" >> linux_user="no" >> bsd_user="no" >> aix="no" >> @@ -880,6 +881,10 @@ for opt do >>;; >>--disable-debug-tcg) debug_tcg="no" >>;; >> + --enable-arm-llsc-backend) arm_tcg_use_llsc="yes" >> + ;; >> + --disable-arm-llsc-backend) arm_tcg_use_llsc="no" >> + ;; >>--enable-debug) >># Enable debugging options that aren't excessively noisy >>debug_tcg="yes" >> @@ -4751,6 +4756,7 @@ echo "host CPU $cpu" >> echo "host big endian $bigendian" >> echo "target list $target_list" >> echo "tcg debug enabled $debug_tcg" >> +echo "arm use llsc backend" $arm_tcg_use_llsc >> echo "gprof enabled $gprof" >> echo "sparse enabled$sparse" >> echo "strip binaries$strip_opt" >> @@ -4806,6 +4812,7 @@ echo "Install blobs $blobs" >> echo "KVM support $kvm" >> echo "RDMA support $rdma" >> echo "TCG interpreter $tcg_interpreter" >> +echo "use ld/st excl$softmmu" > > I think we can drop everything above here. > >> echo "fdt support $fdt" >> echo "preadv support$preadv" >> echo "fdatasync $fdatasync" >> @@ -5863,6 +5870,13 @@ fi >> echo "LDFLAGS+=$ldflags" >> $config_target_mak >> echo "QEMU_CFLAGS+=$cflags" >> $config_target_mak >> >> +# Use tcg LL/SC tcg backend for exclusive instruction is arm/aarch64 >> +# softmmus targets >> +if test "$arm_tcg_use_llsc" = "yes" ; then >> + if test "$target" = "arm-softmmu" ; then >> +echo "CONFIG_ARM_USE_LDST_EXCL=y" >> $config_target_mak >> + fi >> +fi > > This isn't going to be just ARM specific and it will be progressively > turned on for other arches. So perhaps with the CONFIG_SOFTMMU section: > > if test "$target_softmmu" = "yes" ; then > echo "CONFIG_SOFTMMU=y" >> $config_target_mak > > # Use SoftMMU LL/SC primitives? > case "$target_name" in > arm | aarch64) > echo "CONFIG_USE_LDST_EXCL=y" >> $config_target_mak > ;; > esac > fi > > >> done # for target in $targets >> >> if [ "$pixman" = "internal" ]; then > > > -- > Alex Bennée
Re: [Qemu-devel] [RFC v7 12/16] configure: Use slow-path for atomic only when the softmmu is enabled
Alex Bennéewrites: > Alvise Rigo writes: > >> Use the new slow path for atomic instruction translation when the >> softmmu is enabled. >> >> At the moment only arm and aarch64 use the new LL/SC backend. It is >> possible to disable such backed with --disable-arm-llsc-backend. > > Do we want to disable the backend once it is merged? Does it serve a > purpose other than to confuse the user? Also this needs to be after the actual implementation has been filled in or you'll have a broken build! > >> >> Suggested-by: Jani Kokkonen >> Suggested-by: Claudio Fontana >> Signed-off-by: Alvise Rigo >> --- >> configure | 14 ++ >> 1 file changed, 14 insertions(+) >> >> diff --git a/configure b/configure >> index 44ac9ab..915efcc 100755 >> --- a/configure >> +++ b/configure >> @@ -294,6 +294,7 @@ solaris="no" >> profiler="no" >> cocoa="no" >> softmmu="yes" >> +arm_tcg_use_llsc="yes" >> linux_user="no" >> bsd_user="no" >> aix="no" >> @@ -880,6 +881,10 @@ for opt do >>;; >>--disable-debug-tcg) debug_tcg="no" >>;; >> + --enable-arm-llsc-backend) arm_tcg_use_llsc="yes" >> + ;; >> + --disable-arm-llsc-backend) arm_tcg_use_llsc="no" >> + ;; >>--enable-debug) >># Enable debugging options that aren't excessively noisy >>debug_tcg="yes" >> @@ -4751,6 +4756,7 @@ echo "host CPU $cpu" >> echo "host big endian $bigendian" >> echo "target list $target_list" >> echo "tcg debug enabled $debug_tcg" >> +echo "arm use llsc backend" $arm_tcg_use_llsc >> echo "gprof enabled $gprof" >> echo "sparse enabled$sparse" >> echo "strip binaries$strip_opt" >> @@ -4806,6 +4812,7 @@ echo "Install blobs $blobs" >> echo "KVM support $kvm" >> echo "RDMA support $rdma" >> echo "TCG interpreter $tcg_interpreter" >> +echo "use ld/st excl$softmmu" > > I think we can drop everything above here. > >> echo "fdt support $fdt" >> echo "preadv support$preadv" >> echo "fdatasync $fdatasync" >> @@ -5863,6 +5870,13 @@ fi >> echo "LDFLAGS+=$ldflags" >> $config_target_mak >> echo "QEMU_CFLAGS+=$cflags" >> $config_target_mak >> >> +# Use tcg LL/SC tcg backend for exclusive instruction is arm/aarch64 >> +# softmmus targets >> +if test "$arm_tcg_use_llsc" = "yes" ; then >> + if test "$target" = "arm-softmmu" ; then >> +echo "CONFIG_ARM_USE_LDST_EXCL=y" >> $config_target_mak >> + fi >> +fi > > This isn't going to be just ARM specific and it will be progressively > turned on for other arches. So perhaps with the CONFIG_SOFTMMU section: > > if test "$target_softmmu" = "yes" ; then > echo "CONFIG_SOFTMMU=y" >> $config_target_mak > > # Use SoftMMU LL/SC primitives? > case "$target_name" in > arm | aarch64) > echo "CONFIG_USE_LDST_EXCL=y" >> $config_target_mak > ;; > esac > fi > > >> done # for target in $targets >> >> if [ "$pixman" = "internal" ]; then -- Alex Bennée
Re: [Qemu-devel] [RFC v7 12/16] configure: Use slow-path for atomic only when the softmmu is enabled
Alvise Rigowrites: > Use the new slow path for atomic instruction translation when the > softmmu is enabled. > > At the moment only arm and aarch64 use the new LL/SC backend. It is > possible to disable such backed with --disable-arm-llsc-backend. Do we want to disable the backend once it is merged? Does it serve a purpose other than to confuse the user? > > Suggested-by: Jani Kokkonen > Suggested-by: Claudio Fontana > Signed-off-by: Alvise Rigo > --- > configure | 14 ++ > 1 file changed, 14 insertions(+) > > diff --git a/configure b/configure > index 44ac9ab..915efcc 100755 > --- a/configure > +++ b/configure > @@ -294,6 +294,7 @@ solaris="no" > profiler="no" > cocoa="no" > softmmu="yes" > +arm_tcg_use_llsc="yes" > linux_user="no" > bsd_user="no" > aix="no" > @@ -880,6 +881,10 @@ for opt do >;; >--disable-debug-tcg) debug_tcg="no" >;; > + --enable-arm-llsc-backend) arm_tcg_use_llsc="yes" > + ;; > + --disable-arm-llsc-backend) arm_tcg_use_llsc="no" > + ;; >--enable-debug) ># Enable debugging options that aren't excessively noisy >debug_tcg="yes" > @@ -4751,6 +4756,7 @@ echo "host CPU $cpu" > echo "host big endian $bigendian" > echo "target list $target_list" > echo "tcg debug enabled $debug_tcg" > +echo "arm use llsc backend" $arm_tcg_use_llsc > echo "gprof enabled $gprof" > echo "sparse enabled$sparse" > echo "strip binaries$strip_opt" > @@ -4806,6 +4812,7 @@ echo "Install blobs $blobs" > echo "KVM support $kvm" > echo "RDMA support $rdma" > echo "TCG interpreter $tcg_interpreter" > +echo "use ld/st excl$softmmu" I think we can drop everything above here. > echo "fdt support $fdt" > echo "preadv support$preadv" > echo "fdatasync $fdatasync" > @@ -5863,6 +5870,13 @@ fi > echo "LDFLAGS+=$ldflags" >> $config_target_mak > echo "QEMU_CFLAGS+=$cflags" >> $config_target_mak > > +# Use tcg LL/SC tcg backend for exclusive instruction is arm/aarch64 > +# softmmus targets > +if test "$arm_tcg_use_llsc" = "yes" ; then > + if test "$target" = "arm-softmmu" ; then > +echo "CONFIG_ARM_USE_LDST_EXCL=y" >> $config_target_mak > + fi > +fi This isn't going to be just ARM specific and it will be progressively turned on for other arches. So perhaps with the CONFIG_SOFTMMU section: if test "$target_softmmu" = "yes" ; then echo "CONFIG_SOFTMMU=y" >> $config_target_mak # Use SoftMMU LL/SC primitives? case "$target_name" in arm | aarch64) echo "CONFIG_USE_LDST_EXCL=y" >> $config_target_mak ;; esac fi > done # for target in $targets > > if [ "$pixman" = "internal" ]; then -- Alex Bennée
[Qemu-devel] [RFC v7 12/16] configure: Use slow-path for atomic only when the softmmu is enabled
Use the new slow path for atomic instruction translation when the softmmu is enabled. At the moment only arm and aarch64 use the new LL/SC backend. It is possible to disable such backed with --disable-arm-llsc-backend. Suggested-by: Jani KokkonenSuggested-by: Claudio Fontana Signed-off-by: Alvise Rigo --- configure | 14 ++ 1 file changed, 14 insertions(+) diff --git a/configure b/configure index 44ac9ab..915efcc 100755 --- a/configure +++ b/configure @@ -294,6 +294,7 @@ solaris="no" profiler="no" cocoa="no" softmmu="yes" +arm_tcg_use_llsc="yes" linux_user="no" bsd_user="no" aix="no" @@ -880,6 +881,10 @@ for opt do ;; --disable-debug-tcg) debug_tcg="no" ;; + --enable-arm-llsc-backend) arm_tcg_use_llsc="yes" + ;; + --disable-arm-llsc-backend) arm_tcg_use_llsc="no" + ;; --enable-debug) # Enable debugging options that aren't excessively noisy debug_tcg="yes" @@ -4751,6 +4756,7 @@ echo "host CPU $cpu" echo "host big endian $bigendian" echo "target list $target_list" echo "tcg debug enabled $debug_tcg" +echo "arm use llsc backend" $arm_tcg_use_llsc echo "gprof enabled $gprof" echo "sparse enabled$sparse" echo "strip binaries$strip_opt" @@ -4806,6 +4812,7 @@ echo "Install blobs $blobs" echo "KVM support $kvm" echo "RDMA support $rdma" echo "TCG interpreter $tcg_interpreter" +echo "use ld/st excl$softmmu" echo "fdt support $fdt" echo "preadv support$preadv" echo "fdatasync $fdatasync" @@ -5863,6 +5870,13 @@ fi echo "LDFLAGS+=$ldflags" >> $config_target_mak echo "QEMU_CFLAGS+=$cflags" >> $config_target_mak +# Use tcg LL/SC tcg backend for exclusive instruction is arm/aarch64 +# softmmus targets +if test "$arm_tcg_use_llsc" = "yes" ; then + if test "$target" = "arm-softmmu" ; then +echo "CONFIG_ARM_USE_LDST_EXCL=y" >> $config_target_mak + fi +fi done # for target in $targets if [ "$pixman" = "internal" ]; then -- 2.7.0