Re: [RFC v2 0/5] Move notdirty handling to cputlb
On 9/18/19 11:02 AM, Richard Henderson wrote: > However this time the changes are extremely minimal, and now > I really *really* don't understand why they don't work, because > as far as I can tell the new locking is *identical* with the > current i/o path. The difference was failing to set cpu->mem_io_pc, so that TARGET_HAS_PRECISE_SMC within tb_invalidate_phys_page_range__locked could look up the current TB, and potentially restore state and exit to the main loop. Version 3 will have this fixed. r~
Re: [Qemu-devel] [RFC v2 0/5] Move notdirty handling to cputlb
Patchew URL: https://patchew.org/QEMU/20190918180251.32003-1-richard.hender...@linaro.org/ Hi, This series failed the docker-mingw@fedora build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. === TEST SCRIPT BEGIN === #! /bin/bash export ARCH=x86_64 make docker-image-fedora V=1 NETWORK=1 time make docker-test-mingw@fedora J=14 NETWORK=1 === TEST SCRIPT END === The full log is available at http://patchew.org/logs/20190918180251.32003-1-richard.hender...@linaro.org/testing.docker-mingw@fedora/?type=message. --- Email generated automatically by Patchew [https://patchew.org/]. Please send your feedback to patchew-de...@redhat.com
Re: [Qemu-devel] [RFC v2 0/5] Move notdirty handling to cputlb
Patchew URL: https://patchew.org/QEMU/20190918180251.32003-1-richard.hender...@linaro.org/ Hi, This series failed the asan build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. === TEST SCRIPT BEGIN === #!/bin/bash export ARCH=x86_64 make docker-image-fedora V=1 NETWORK=1 time make docker-test-debug@fedora TARGET_LIST=x86_64-softmmu J=14 NETWORK=1 === TEST SCRIPT END === PASS 1 fdc-test /x86_64/fdc/cmos PASS 2 fdc-test /x86_64/fdc/no_media_on_start PASS 3 fdc-test /x86_64/fdc/read_without_media ==11380==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 4 fdc-test /x86_64/fdc/media_change PASS 5 fdc-test /x86_64/fdc/sense_interrupt PASS 6 fdc-test /x86_64/fdc/relative_seek --- PASS 32 test-opts-visitor /visitor/opts/range/beyond PASS 33 test-opts-visitor /visitor/opts/dict/unvisited MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-coroutine -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-coroutine" ==11451==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-coroutine /basic/no-dangling-access ==11451==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffe0881a000; bottom 0x7f2efb5f8000; size: 0x00cf0d222000 (889278570496) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 2 test-coroutine /basic/lifecycle --- PASS 11 test-aio /aio/event/wait PASS 12 test-aio /aio/event/flush PASS 13 test-aio /aio/event/wait/no-flush-cb ==11470==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 14 test-aio /aio/timer/schedule PASS 15 test-aio /aio/coroutine/queue-chaining PASS 16 test-aio /aio-gsource/flush --- PASS 28 test-aio /aio-gsource/timer/schedule MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-aio-multithread -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-aio-multithread" PASS 1 test-aio-multithread /aio/multi/lifecycle ==11481==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 2 test-aio-multithread /aio/multi/schedule ==11494==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 ide-test /x86_64/ide/identify PASS 3 test-aio-multithread /aio/multi/mutex/contended ==11505==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 2 ide-test /x86_64/ide/flush ==11516==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 3 ide-test /x86_64/ide/bmdma/simple_rw ==11522==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 4 ide-test /x86_64/ide/bmdma/trim ==11528==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 5 ide-test /x86_64/ide/bmdma/short_prdt PASS 4 test-aio-multithread /aio/multi/mutex/handoff ==11534==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 6 ide-test /x86_64/ide/bmdma/one_sector_short_prdt ==11545==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 5 test-aio-multithread /aio/multi/mutex/mcs PASS 7 ide-test /x86_64/ide/bmdma/long_prdt ==11556==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==11556==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7fff95131000; bottom 0x7f3856998000; size: 0x00c73e799000 (855746646016) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 8 ide-test /x86_64/ide/bmdma/no_busmaster PASS 6 test-aio-multithread /aio/multi/mutex/pthread MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-throttle -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-throttle" ==11565==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-throttle /throttle/leak_bucket PASS 2 test-throttle /throttle/compute_wait PASS 3 test-throttle /throttle/init --- PASS 14 test-throttle /throttle/config/max PASS 15 test-throttle /throttle/config/iops_size MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-thread-pool -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-thread-pool" ==11573==WARNING: ASan doesn't fully
Re: [Qemu-devel] [RFC v2 0/5] Move notdirty handling to cputlb
Patchew URL: https://patchew.org/QEMU/20190918180251.32003-1-richard.hender...@linaro.org/ Hi, This series failed the docker-quick@centos7 build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. === TEST SCRIPT BEGIN === #!/bin/bash make docker-image-centos7 V=1 NETWORK=1 time make docker-test-quick@centos7 SHOW_ENV=1 J=14 NETWORK=1 === TEST SCRIPT END === libpmem support no libudev no default devices yes warning: Python 2 support is deprecated warning: Python 3 will be required for building future versions of QEMU cross containers no --- TESTiotest-qcow2: 265 Passed all 107 iotests ** ERROR:/tmp/qemu-test/src/tests/boot-sector.c:161:boot_sector_test: assertion failed (signature == SIGNATURE): (0x == 0xdead) ERROR - Bail out! ERROR:/tmp/qemu-test/src/tests/boot-sector.c:161:boot_sector_test: assertion failed (signature == SIGNATURE): (0x == 0xdead) make: *** [check-qtest-x86_64] Error 1 Traceback (most recent call last): File "./tests/docker/docker.py", line 664, in The full log is available at http://patchew.org/logs/20190918180251.32003-1-richard.hender...@linaro.org/testing.docker-quick@centos7/?type=message. --- Email generated automatically by Patchew [https://patchew.org/]. Please send your feedback to patchew-de...@redhat.com
[Qemu-devel] [RFC v2 0/5] Move notdirty handling to cputlb
RFC because it *still* doesn't work, just like v1. However this time the changes are extremely minimal, and now I really *really* don't understand why they don't work, because as far as I can tell the new locking is *identical* with the current i/o path. In particular, the actual access happens between _prepare and _complete, just like before. Indeed, since this doesn't work as-is, then I can't believe the atomic path works either. I have included the TLB_BSWAP stuff just so that the patch set is self-contained. I did experiment with qemu_ram_addr_from_host_nofail(), but an assertion for equality with addr + iotlbentry->addr does not trigger. As expected, really, since that's what the i/o path uses. One more cleanup for the atomics path... Ideas? r~ Richard Henderson (5): cputlb: Disable __always_inline__ without optimization cputlb: Replace switches in load/store_helper with callback cputlb: Introduce TLB_BSWAP exec: Adjust notdirty tracing cputlb: Move NOTDIRTY handling from I/O path to TLB path include/exec/cpu-all.h| 2 + include/exec/cpu-common.h | 1 - include/qemu/compiler.h | 11 ++ accel/tcg/cputlb.c| 243 +- exec.c| 57 + memory.c | 20 trace-events | 4 +- 7 files changed, 157 insertions(+), 181 deletions(-) -- 2.17.1