summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2023-10-07 09:02:04 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-10-10 09:53:32 +0100
commit44b4c74cad0a5126d46408afa9e86ed50899aec3 (patch)
tree2d1efcd72517425960c43e9c37abbdfcbee789d6
parentef7e7b446a5d3bbc82b3df7118318ad249423581 (diff)
downloadpoky-44b4c74cad0a5126d46408afa9e86ed50899aec3.tar.gz
runqemu/qemurunner: Use nodelay with tcp serial connections
This disables Nagle's algorithm for our tcp serial connections which may be causing data transfer issues. (From OE-Core rev: f8eff4c427881a98333fdf7c42f66ed6603e4f03) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/conf/machine/include/loongarch/qemuloongarch.inc2
-rw-r--r--meta/conf/machine/include/riscv/qemuriscv.inc2
-rw-r--r--meta/conf/machine/qemuarm.conf2
-rw-r--r--meta/conf/machine/qemuarm64.conf2
-rw-r--r--meta/lib/oeqa/utils/qemurunner.py1
-rwxr-xr-xscripts/runqemu4
6 files changed, 7 insertions, 6 deletions
diff --git a/meta/conf/machine/include/loongarch/qemuloongarch.inc b/meta/conf/machine/include/loongarch/qemuloongarch.inc
index 30f560532e..e1bcfabc43 100644
--- a/meta/conf/machine/include/loongarch/qemuloongarch.inc
+++ b/meta/conf/machine/include/loongarch/qemuloongarch.inc
@@ -30,6 +30,6 @@ QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"
30QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@" 30QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@"
31QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0" 31QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0"
32QB_SERIAL_OPT = "-device virtio-serial-pci -chardev null,id=virtcon -device virtconsole,chardev=virtcon" 32QB_SERIAL_OPT = "-device virtio-serial-pci -chardev null,id=virtcon -device virtconsole,chardev=virtcon"
33QB_TCPSERIAL_OPT = " -device virtio-serial-pci -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon" 33QB_TCPSERIAL_OPT = " -device virtio-serial-pci -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1,nodelay=on -device virtconsole,chardev=virtcon"
34# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy 34# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
35QB_OPT_APPEND = " -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-device,rng=rng0" 35QB_OPT_APPEND = " -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-device,rng=rng0"
diff --git a/meta/conf/machine/include/riscv/qemuriscv.inc b/meta/conf/machine/include/riscv/qemuriscv.inc
index c977a266ca..8da5b0b0c8 100644
--- a/meta/conf/machine/include/riscv/qemuriscv.inc
+++ b/meta/conf/machine/include/riscv/qemuriscv.inc
@@ -34,6 +34,6 @@ QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"
34QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@" 34QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@"
35QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0" 35QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0"
36QB_SERIAL_OPT = "-device virtio-serial-device -chardev null,id=virtcon -device virtconsole,chardev=virtcon" 36QB_SERIAL_OPT = "-device virtio-serial-device -chardev null,id=virtcon -device virtconsole,chardev=virtcon"
37QB_TCPSERIAL_OPT = " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon" 37QB_TCPSERIAL_OPT = " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1,nodelay=on -device virtconsole,chardev=virtcon"
38QB_GRAPHICS = "-device bochs-display" 38QB_GRAPHICS = "-device bochs-display"
39QB_OPT_APPEND = "-device virtio-tablet-pci -device virtio-keyboard-pci" 39QB_OPT_APPEND = "-device virtio-tablet-pci -device virtio-keyboard-pci"
diff --git a/meta/conf/machine/qemuarm.conf b/meta/conf/machine/qemuarm.conf
index aa9ce88203..9f07664bef 100644
--- a/meta/conf/machine/qemuarm.conf
+++ b/meta/conf/machine/qemuarm.conf
@@ -27,6 +27,6 @@ QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@"
27QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0" 27QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0"
28# Virtio serial console 28# Virtio serial console
29QB_SERIAL_OPT = "-device virtio-serial-device -chardev null,id=virtcon -device virtconsole,chardev=virtcon" 29QB_SERIAL_OPT = "-device virtio-serial-device -chardev null,id=virtcon -device virtconsole,chardev=virtcon"
30QB_TCPSERIAL_OPT = "-device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon" 30QB_TCPSERIAL_OPT = "-device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1,nodelay=on -device virtconsole,chardev=virtcon"
31 31
32KMACHINE:qemuarm = "qemuarma15" 32KMACHINE:qemuarm = "qemuarma15"
diff --git a/meta/conf/machine/qemuarm64.conf b/meta/conf/machine/qemuarm64.conf
index 2f0f0e4f84..51600d40a4 100644
--- a/meta/conf/machine/qemuarm64.conf
+++ b/meta/conf/machine/qemuarm64.conf
@@ -28,4 +28,4 @@ QB_NETWORK_DEVICE = "-device virtio-net-pci,netdev=net0,mac=@MAC@"
28QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-pci,drive=disk0" 28QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-pci,drive=disk0"
29# Virtio serial console 29# Virtio serial console
30QB_SERIAL_OPT = "-device virtio-serial-pci -chardev null,id=virtcon -device virtconsole,chardev=virtcon" 30QB_SERIAL_OPT = "-device virtio-serial-pci -chardev null,id=virtcon -device virtconsole,chardev=virtcon"
31QB_TCPSERIAL_OPT = "-device virtio-serial-pci -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon" 31QB_TCPSERIAL_OPT = "-device virtio-serial-pci -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1,nodelay=on -device virtconsole,chardev=virtcon"
diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py
index 554946e2d7..574696eb7e 100644
--- a/meta/lib/oeqa/utils/qemurunner.py
+++ b/meta/lib/oeqa/utils/qemurunner.py
@@ -97,6 +97,7 @@ class QemuRunner:
97 try: 97 try:
98 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 98 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
99 sock.setblocking(0) 99 sock.setblocking(0)
100 sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
100 sock.bind(("127.0.0.1",0)) 101 sock.bind(("127.0.0.1",0))
101 sock.listen(2) 102 sock.listen(2)
102 port = sock.getsockname()[1] 103 port = sock.getsockname()[1]
diff --git a/scripts/runqemu b/scripts/runqemu
index 0668e12e61..6fca7439a1 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -842,11 +842,11 @@ to your build configuration.
842 if self.get('QB_TCPSERIAL_OPT'): 842 if self.get('QB_TCPSERIAL_OPT'):
843 self.qemu_opt_script += ' ' + self.get('QB_TCPSERIAL_OPT').replace('@PORT@', port) 843 self.qemu_opt_script += ' ' + self.get('QB_TCPSERIAL_OPT').replace('@PORT@', port)
844 else: 844 else:
845 self.qemu_opt_script += ' -serial tcp:127.0.0.1:%s' % port 845 self.qemu_opt_script += ' -serial tcp:127.0.0.1:%s,nodelay=on' % port
846 846
847 if len(ports) > 1: 847 if len(ports) > 1:
848 for port in ports[1:]: 848 for port in ports[1:]:
849 self.qemu_opt_script += ' -serial tcp:127.0.0.1:%s' % port 849 self.qemu_opt_script += ' -serial tcp:127.0.0.1:%s,nodelay=on' % port
850 850
851 def check_and_set(self): 851 def check_and_set(self):
852 """Check configs sanity and set when needed""" 852 """Check configs sanity and set when needed"""