Message ID | 20180320090813.852-1-laurent@vivier.eu |
---|---|
State | New |
Headers | show |
On 20 March 2018 at 09:08, Laurent Vivier <laurent@vivier.eu> wrote: > The following changes since commit 55901900ec69d6fd6f332003d8ab81b2f8a38529: > > Merge remote-tracking branch 'remotes/vivier2/tags/linux-user-for-2.12-pull-request' into staging (2018-03-15 17:58:28 +0000) > > are available in the Git repository at: > > git://github.com/vivier/qemu-m68k.git tags/m68k-for-2.12-pull-request > > for you to fetch changes up to ecc207d2fc1d45fabb16c38742a6675a7ba56cbc: > > target/m68k: add a mechanism to automatically free TCGv (2018-03-20 09:38:58 +0100) > > ---------------------------------------------------------------- > This series of patches is needed to fix a problem > in the m68k translator that can crash QEMU when translation > cache has too many instructions: > > qemu-m68k: tcg/tcg.c:883: tcg_temp_alloc: Assertion `n < 512' failed. > qemu: uncaught target signal 11 (Segmentation fault) - core dumped > > I have reproduced it in linux user mode, with "ghc", and in > system mode with the debian-installer for unstable distro > from debian-ports. > ---------------------------------------------------------------- > > Laurent Vivier (2): > target/m68k: add DisasContext parameter to gen_extend() > target/m68k: add a mechanism to automatically free TCGv > > target/m68k/translate.c | 102 +++++++++++++++++++++++++++++++----------------- > 1 file changed, 66 insertions(+), 36 deletions(-) Applied, thanks. -- PMM
On 03/20/2018 04:08 AM, Laurent Vivier wrote:> This series of patches is needed to fix a problem > in the m68k translator that can crash QEMU when translation > cache has too many instructions: > > qemu-m68k: tcg/tcg.c:883: tcg_temp_alloc: Assertion `n < 512' failed. > qemu: uncaught target signal 11 (Segmentation fault) - core dumped > > I have reproduced it in linux user mode, with "ghc", and in > system mode with the debian-installer for unstable distro > from debian-ports. If someone wanted to follow along with your "boot linux on qemu-system-m68k" work on https://github.com/vivier/qemu-m68k, which of the 51 branches should qemu-system-m68k with like -M q800 or whatever you had working be built from? Also, "git pull" of the last tree I had from there exploded into a fireball of automerge conflicts. Is there something I should know? Rob
Le 30/03/2018 à 18:54, Rob Landley a écrit : > On 03/20/2018 04:08 AM, Laurent Vivier wrote:> This series of patches is needed > to fix a problem >> in the m68k translator that can crash QEMU when translation >> cache has too many instructions: >> >> qemu-m68k: tcg/tcg.c:883: tcg_temp_alloc: Assertion `n < 512' failed. >> qemu: uncaught target signal 11 (Segmentation fault) - core dumped >> >> I have reproduced it in linux user mode, with "ghc", and in >> system mode with the debian-installer for unstable distro >> from debian-ports. > > If someone wanted to follow along with your "boot linux on qemu-system-m68k" > work on https://github.com/vivier/qemu-m68k, which of the 51 branches should > qemu-system-m68k with like -M q800 or whatever you had working be built from? The branch to use is q800-dev > > Also, "git pull" of the last tree I had from there exploded into a fireball of > automerge conflicts. Is there something I should know? As I rebase the branch regularly, a simple "git pull" will not work. If the branch already exist locally git checkout q800-dev git reset --hard vivier/q800-dev [I guess the remote name is "vivier"] otherwise, a simple "git checkout q800-dev" should create the branch from scrash. Thanks, Laurent
On 03/30/2018 12:00 PM, Laurent Vivier wrote: > Le 30/03/2018 à 18:54, Rob Landley a écrit : >> On 03/20/2018 04:08 AM, Laurent Vivier wrote:> This series of patches is needed >> to fix a problem >>> in the m68k translator that can crash QEMU when translation >>> cache has too many instructions: >>> >>> qemu-m68k: tcg/tcg.c:883: tcg_temp_alloc: Assertion `n < 512' failed. >>> qemu: uncaught target signal 11 (Segmentation fault) - core dumped >>> >>> I have reproduced it in linux user mode, with "ghc", and in >>> system mode with the debian-installer for unstable distro >>> from debian-ports. >> >> If someone wanted to follow along with your "boot linux on qemu-system-m68k" >> work on https://github.com/vivier/qemu-m68k, which of the 51 branches should >> qemu-system-m68k with like -M q800 or whatever you had working be built from? > > The branch to use is q800-dev There isn't any m68k support in musl-libc yet, so I grabbed my old https://github.com/landley/aboriginal project, did a "./build.sh m68k", built your q800-dev branch, added the m68k-softmmu from that to the start of the $PATH, and ran "more/dev-environment-from-build.sh m68k". It booted Linux to a shell prompt, I could wget a file from the internet, and /home had the 2 gigabyte ext3 mount from the virtual block device. I.E. it works for me. Why is it still out of tree? Rob
Le 02/04/2018 à 20:13, Rob Landley a écrit : > On 03/30/2018 12:00 PM, Laurent Vivier wrote: >> Le 30/03/2018 à 18:54, Rob Landley a écrit : >>> On 03/20/2018 04:08 AM, Laurent Vivier wrote:> This series of patches is needed >>> to fix a problem >>>> in the m68k translator that can crash QEMU when translation >>>> cache has too many instructions: >>>> >>>> qemu-m68k: tcg/tcg.c:883: tcg_temp_alloc: Assertion `n < 512' failed. >>>> qemu: uncaught target signal 11 (Segmentation fault) - core dumped >>>> >>>> I have reproduced it in linux user mode, with "ghc", and in >>>> system mode with the debian-installer for unstable distro >>>> from debian-ports. >>> >>> If someone wanted to follow along with your "boot linux on qemu-system-m68k" >>> work on https://github.com/vivier/qemu-m68k, which of the 51 branches should >>> qemu-system-m68k with like -M q800 or whatever you had working be built from? >> >> The branch to use is q800-dev > > There isn't any m68k support in musl-libc yet, so I grabbed my old > https://github.com/landley/aboriginal project, did a "./build.sh m68k", built > your q800-dev branch, added the m68k-softmmu from that to the start of the > $PATH, and ran "more/dev-environment-from-build.sh m68k". > > It booted Linux to a shell prompt, I could wget a file from the internet, and > /home had the 2 gigabyte ext3 mount from the virtual block device. > > I.E. it works for me. Why is it still out of tree? Remaining patches need some cleanup before being submitted. I have to submit some enhancements in the FPU emulation, but as they modify fpu/softfloat.c, I don't want to put them as is in an m68k pull-req: target/m68k: manage FPU exceptions softfloat: define floatx80_is_any_nan for m68k softfloat: disable floatx80_invalid_encoding() for m68k I have to add some specific m68k hardware emulation: m68k: add via support m68k: add video card q800: Apple Sound Chip (ASC) emulation q800: add Nubus support q800: add a dummy SWIM floppy controller m68k: define Macintosh Quadra 800 but via support should be rewritten as Mark has introduced a new generic mos6522 VIA device. I have to update some existing hardware emulation: ESP: add pseudo-DMA as used by Macintosh escc: introduce a selector for the register bit dp8393x: fix receiving buffer exhaustion dp8393x: put DMA temp buffer in the state, not in the stack dp8393x: manage big endian bus dp8393x: fix dp8393x_receive So, this only needs some work and time. I hope q800 will be available in QEMU 2.13. Thanks, Laurent
On 04/02/2018 02:05 PM, Laurent Vivier wrote: > Le 02/04/2018 à 20:13, Rob Landley a écrit : >>> The branch to use is q800-dev ... >> It booted Linux to a shell prompt, I could wget a file from the internet, and >> /home had the 2 gigabyte ext3 mount from the virtual block device. >> >> I.E. it works for me. Why is it still out of tree? ... > I have to submit some enhancements in the FPU emulation... > I have to add some specific m68k hardware emulation... > but via support should be rewritten... > I have to update some existing hardware emulation... ... > So, this only needs some work and time. 10 years ago: https://lists.gnu.org/archive/html/qemu-devel/2007-10/msg00248.html 6 years ago: https://lists.gnu.org/archive/html/qemu-devel/2011-08/msg02123.html > I hope q800 will be available in QEMU 2.13. Good luck, Rob