Re: [PATCH v6 0/7] reference implementation of RSS and hash report
On 2020/3/26 下午9:32, Michael S. Tsirkin wrote: On Fri, Mar 20, 2020 at 01:57:44PM +0200, Yuri Benditovich wrote: Support for VIRTIO_NET_F_RSS and VIRTIO_NET_F_HASH_REPORT features in QEMU for reference purpose. Implements Toeplitz hash calculation for incoming packets according to configuration provided by driver. Uses calculated hash for decision on receive virtqueue and/or reports the hash in the virtio header Series: Reviewed-by: Michael S. Tsirkin Queued for 5.1. Thanks Changes from v5: RSS migration state moved to subsection and migrated only if enabled (patch 7) Updated sign off (patch 6) Yuri Benditovich (7): virtio-net: introduce RSS and hash report features virtio-net: implement RSS configuration command virtio-net: implement RX RSS processing tap: allow extended virtio header with hash info virtio-net: reference implementation of hash report vmstate.h: provide VMSTATE_VARRAY_UINT16_ALLOC macro virtio-net: add migration support for RSS and hash report hw/net/trace-events| 3 + hw/net/virtio-net.c| 448 +++-- include/hw/virtio/virtio-net.h | 16 ++ include/migration/vmstate.h| 10 + net/tap.c | 11 +- 5 files changed, 460 insertions(+), 28 deletions(-) -- 2.17.1
Re: [PATCH v6 0/7] reference implementation of RSS and hash report
On Fri, Mar 20, 2020 at 01:57:44PM +0200, Yuri Benditovich wrote: > Support for VIRTIO_NET_F_RSS and VIRTIO_NET_F_HASH_REPORT > features in QEMU for reference purpose. > Implements Toeplitz hash calculation for incoming > packets according to configuration provided by driver. > Uses calculated hash for decision on receive virtqueue > and/or reports the hash in the virtio header Series: Reviewed-by: Michael S. Tsirkin > Changes from v5: > RSS migration state moved to subsection and migrated > only if enabled (patch 7) > Updated sign off (patch 6) > > Yuri Benditovich (7): > virtio-net: introduce RSS and hash report features > virtio-net: implement RSS configuration command > virtio-net: implement RX RSS processing > tap: allow extended virtio header with hash info > virtio-net: reference implementation of hash report > vmstate.h: provide VMSTATE_VARRAY_UINT16_ALLOC macro > virtio-net: add migration support for RSS and hash report > > hw/net/trace-events| 3 + > hw/net/virtio-net.c| 448 +++-- > include/hw/virtio/virtio-net.h | 16 ++ > include/migration/vmstate.h| 10 + > net/tap.c | 11 +- > 5 files changed, 460 insertions(+), 28 deletions(-) > > -- > 2.17.1
Re: [PATCH v6 0/7] reference implementation of RSS and hash report
On Fri, Mar 20, 2020 at 06:38:51AM -0700, no-re...@patchew.org wrote: > qemu-system-x86_64: -accel kvm: failed to initialize kvm: No such file or > directory > qemu-system-x86_64: falling back to tcg > = > ==8831==ERROR: AddressSanitizer: stack-buffer-overflow on address > 0x7ffc0dacbe80 at pc 0x55ee01d9e92a bp 0x7ffc0dac7080 sp 0x7ffc0dac6830 > READ of size 1518 at 0x7ffc0dacbe80 thread T0 > #0 0x55ee01d9e929 in __asan_memcpy > (/tmp/qemu-test/build/x86_64-softmmu/qemu-system-x86_64+0x1acb929) > #1 0x55ee04694dad in iov_from_buf_full /tmp/qemu-test/src/util/iov.c:33:13 Hmm this seems to be iov related so could be triggered by the new patches. Could you investigate pls? -- MST
Re: [PATCH v6 0/7] reference implementation of RSS and hash report
Patchew URL: https://patchew.org/QEMU/20200320115751.19446-1-yuri.benditov...@daynix.com/ 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 ==7068==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7082==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 PASS 2 test-coroutine /basic/lifecycle PASS 3 test-coroutine /basic/yield ==7082==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffe5820d000; bottom 0x7f659db2; size: 0x0098ba6ed000 (655962853376) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 4 fdc-test /x86_64/fdc/media_change --- PASS 11 test-aio /aio/event/wait PASS 12 test-aio /aio/event/flush PASS 13 test-aio /aio/event/wait/no-flush-cb ==7098==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 11 fdc-test /x86_64/fdc/read_no_dma_18 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" ==7103==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-aio-multithread /aio/multi/lifecycle PASS 2 test-aio-multithread /aio/multi/schedule PASS 3 test-aio-multithread /aio/multi/mutex/contended PASS 12 fdc-test /x86_64/fdc/read_no_dma_19 PASS 13 fdc-test /x86_64/fdc/fuzz-registers MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/qtest/ide-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="ide-test" ==7130==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 ==7136==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 4 test-aio-multithread /aio/multi/mutex/handoff PASS 2 ide-test /x86_64/ide/flush PASS 5 test-aio-multithread /aio/multi/mutex/mcs ==7147==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 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" ==7158==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7164==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 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" PASS 4 ide-test /x86_64/ide/bmdma/trim ==7169==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-thread-pool /thread-pool/submit PASS 2 test-thread-pool /thread-pool/submit-aio PASS 3 test-thread-pool /thread-pool/submit-co PASS 4 test-thread-pool /thread-pool/submit-many ==7171==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 5 test-thread-pool /thread-pool/cancel PASS 6 test-thread-pool /thread-pool/cancel-async MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-hbitmap -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-hbitmap" --- PASS 15 test-hbitmap /hbitmap/set/overlap PASS 16 test-hbitmap /hbitmap/reset/empty PASS 17 test-hbitmap /hbitmap/reset/general ==7246==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 18 test-hbitmap /hbitmap/reset/all PASS 19 te
[PATCH v6 0/7] reference implementation of RSS and hash report
Support for VIRTIO_NET_F_RSS and VIRTIO_NET_F_HASH_REPORT features in QEMU for reference purpose. Implements Toeplitz hash calculation for incoming packets according to configuration provided by driver. Uses calculated hash for decision on receive virtqueue and/or reports the hash in the virtio header Changes from v5: RSS migration state moved to subsection and migrated only if enabled (patch 7) Updated sign off (patch 6) Yuri Benditovich (7): virtio-net: introduce RSS and hash report features virtio-net: implement RSS configuration command virtio-net: implement RX RSS processing tap: allow extended virtio header with hash info virtio-net: reference implementation of hash report vmstate.h: provide VMSTATE_VARRAY_UINT16_ALLOC macro virtio-net: add migration support for RSS and hash report hw/net/trace-events| 3 + hw/net/virtio-net.c| 448 +++-- include/hw/virtio/virtio-net.h | 16 ++ include/migration/vmstate.h| 10 + net/tap.c | 11 +- 5 files changed, 460 insertions(+), 28 deletions(-) -- 2.17.1