diff options
Diffstat (limited to '')
| -rw-r--r-- | results/classifier/118/socket/1837 | 65 | ||||
| -rw-r--r-- | results/classifier/118/socket/1837651 | 51 |
2 files changed, 116 insertions, 0 deletions
diff --git a/results/classifier/118/socket/1837 b/results/classifier/118/socket/1837 new file mode 100644 index 000000000..9ea903523 --- /dev/null +++ b/results/classifier/118/socket/1837 @@ -0,0 +1,65 @@ +socket: 0.927 +user-level: 0.885 +architecture: 0.824 +device: 0.713 +arm: 0.687 +network: 0.685 +peripherals: 0.625 +PID: 0.609 +graphic: 0.530 +ppc: 0.514 +kernel: 0.460 +performance: 0.442 +files: 0.421 +semantic: 0.352 +vnc: 0.301 +TCG: 0.289 +boot: 0.279 +risc-v: 0.244 +VMM: 0.242 +debug: 0.185 +i386: 0.156 +mistranslation: 0.150 +x86: 0.136 +assembly: 0.130 +virtual: 0.115 +KVM: 0.114 +register: 0.093 +hypervisor: 0.078 +permissions: 0.022 + +Support IP_MULTICAST_IF socket option in linux-user +Additional information: +I've run into this limitation in qemu-aarch64-static version Debian 1:6.2+dfsg-2ubuntu6.12, but from the link above, it doesn't seem to be implemented on master yet. + +Here's some source code that demonstrates the failure: +``` +#include <sys/socket.h> +#include <arpa/inet.h> +#include <netinet/ip.h> +#include <unistd.h> +#include <assert.h> +#include <stdio.h> + +int main() +{ + int fd, ret; + struct in_addr addr = {htonl(INADDR_LOOPBACK)}; + + fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); + assert(fd >= 0); + ret = setsockopt(fd, IPPROTO_IP, IP_MULTICAST_IF, &addr, sizeof(addr)); + if (ret < 0) + { + perror("setsockopt failed"); + return 1; + } + close(fd); + printf("Success!\n"); + return 0; +} +``` + +When run under qemu, it gives the error `setsockopt failed: Protocol not available`. + +It doesn't look like it should be too hard to support (certainly no worse than IP_ADD_MEMBERSHIP). Let me know if I can help with a patch. diff --git a/results/classifier/118/socket/1837651 b/results/classifier/118/socket/1837651 new file mode 100644 index 000000000..fa216ac21 --- /dev/null +++ b/results/classifier/118/socket/1837651 @@ -0,0 +1,51 @@ +i386: 0.972 +socket: 0.931 +performance: 0.775 +network: 0.766 +graphic: 0.712 +x86: 0.710 +device: 0.659 +vnc: 0.598 +ppc: 0.589 +kernel: 0.457 +architecture: 0.456 +mistranslation: 0.450 +PID: 0.444 +permissions: 0.441 +debug: 0.426 +peripherals: 0.424 +semantic: 0.408 +files: 0.399 +register: 0.396 +arm: 0.344 +user-level: 0.342 +boot: 0.299 +TCG: 0.290 +hypervisor: 0.270 +risc-v: 0.232 +virtual: 0.220 +VMM: 0.212 +assembly: 0.096 +KVM: 0.067 + +-netdev socket uses 100% cpu on Windows host + +On Windows hosts, any `-netdev socket` option (tcp listen, tcp connect, udp passing a fd) causes qemu to use 100% cpu. The guest still runs, but only sluggishly. + +A simple testcase is: + +> qemu-system-i386.exe -netdev socket,listen=:8000,id=n + +And, in another command prompt: + +> echo foo | nc.exe localhost 8000 + +Where nc.exe is netcat. + +Tested on qemu 3.1 (from https://qemu.weilnetz.de/w64/) and 4.0 (self compiled). + +The QEMU project is currently considering to move its bug tracking to another system. For this we need to know which bugs are still valid and which could be closed already. Thus we are setting older bugs to "Incomplete" now. +If you still think this bug report here is valid, then please switch the state back to "New" within the next 60 days, otherwise this report will be marked as "Expired". Or mark it as "Fix Released" if the problem has been solved with a newer version of QEMU already. Thank you and sorry for the inconvenience. + +[Expired for QEMU because there has been no activity for 60 days.] + |