mirror of
git://code.qt.io/qt/qt5.git
synced 2026-10-19 21:48:12 +08:00
The CI VIP images were built with NUM_FILES, RTP_FD_NUM_MAX and
HRFS_DEFAULT_MAX_FILES at 300. That is too tight for the Qt autotests.
A single test binary runs several style suites in one RTP, and each Qt
thread's event dispatcher costs two descriptors for its wakeup pipe, on
top of windows, the QML disk cache on /ram0 and test data read over NFS.
tst_qquickpopup exhausted the per-RTP descriptor table roughly five
sixths of the way through its run and aborted with
QFATAL : QEventDispatcherUNIXPrivate(): Cannot continue without a
thread pipe
which is pipe() failing for want of a free descriptor.
NUM_FILES is the kernel-wide table, shared with the SSH daemon, the NFS
client and the serial console, so the same exhaustion starves those
services: the guest stops answering SSH, the test runner cannot reach it
any more and has to reboot the emulator. tst_qquickmenu wedges its guest
the same way.
Raise all three parameters to 1000. Descriptor table entries are a few
tens of bytes, so the memory cost is negligible on the emulated targets,
and the value stays well below FD_SETSIZE (2048) for any code that still
uses select(); Qt itself polls. This leaves an estimated two to three
times headroom over the peak demand of the heaviest test binary, which
is enough to stop the limit being the binding constraint while keeping a
genuine descriptor leak visible rather than merely delayed.
Fixes: QTBUG-150363
Pick-to: 6.12
Change-Id: I42e26afe0b21215d19b8ed5755a425d8bfed5278
Reviewed-by: Toni Saario <[email protected]>
92 lines
3.8 KiB
Bash
Executable File
92 lines
3.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Copyright (C) 2023 The Qt Company Ltd.
|
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
|
|
|
# This script installs vxworks libs and toolchain.
|
|
|
|
set -ex
|
|
|
|
# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh
|
|
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
|
|
# shellcheck source=../unix/SetEnvVar.sh
|
|
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
|
|
|
######### VXworks libs #########
|
|
# Installs to /opt/vxworks
|
|
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_libs_2603.tar.gz"
|
|
AltUrl=""
|
|
sha1="e9337894d4591e1d9e67640181c3d48fdb3d4a12"
|
|
targetFolder="/opt"
|
|
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
|
|
SetEnvVar "VXWORKS_HOME" "/opt/vxworks"
|
|
SetEnvVar "VXWORKS_SSH" "[email protected]"
|
|
|
|
# IMX 6
|
|
VXWORKS_BUILD_VER="24-09-2026"
|
|
######### VXworks toolchain #########
|
|
# Installs to /opt/fsl_imx6_2_0_6_3_VSB
|
|
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_arm_vsb_${VXWORKS_BUILD_VER}.tar.gz"
|
|
AltUrl=""
|
|
sha1="aaa8d51a2e9d67573f808e92d71112926bfc2657"
|
|
targetFolder="/opt/"
|
|
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
|
|
SetEnvVar "WIND_CC_SYSROOT" "/opt/fsl_imx6_2_0_6_3_VSB"
|
|
|
|
######### VXworks VIP kernel #########
|
|
# Installs to /opt/fsl_imx6_2_0_6_3_VIP_QEMU
|
|
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_arm_vip_${VXWORKS_BUILD_VER}.tar.gz"
|
|
AltUrl=""
|
|
sha1="3b69676a8621776d162d3d14cb97681c5075a4e7"
|
|
targetFolder="/opt/"
|
|
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
|
|
|
|
# IMX 8
|
|
# Installs to /opt/nxp_imx8_1_0_7_1_VSB
|
|
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_arm_imx8_vsb_${VXWORKS_BUILD_VER}.tar.gz"
|
|
AltUrl=""
|
|
sha1="2b79925bf2f439ae23dbbd6d9f0eb7f12f5b5b30"
|
|
targetFolder="/opt/"
|
|
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
|
|
|
|
# Installs to /opt/itl_generic_skylake_VSB
|
|
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_intel_vsb_${VXWORKS_BUILD_VER}.tar.gz"
|
|
AltUrl=""
|
|
sha1="59a4f78844d6d228fa9d74605a6a219a32f77ca8"
|
|
targetFolder="/opt/"
|
|
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
|
|
# Installs to /opt/itl_generic_skylake_VIP_QEMU
|
|
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_intel_vip_${VXWORKS_BUILD_VER}.tar.gz"
|
|
AltUrl=""
|
|
sha1="b56be2e8617004448dc918ff061347a44e653db7"
|
|
targetFolder="/opt/"
|
|
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
|
|
|
|
######### VXworks fonts and certs #########
|
|
# Installs to /opt/fsl_imx6_2_0_6_3_VSB
|
|
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_misc.tar.gz"
|
|
AltUrl=""
|
|
sha1="1bc529b90b35b0b249f219e47d5798225a9b68d8"
|
|
targetFolder="/opt/fsl_imx6_2_0_6_3_VSB/"
|
|
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
|
|
######### VXworks fonts and certs #########
|
|
# Installs to /opt/itl_generic_skylake_VSB
|
|
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_misc.tar.gz"
|
|
AltUrl=""
|
|
sha1="1bc529b90b35b0b249f219e47d5798225a9b68d8"
|
|
targetFolder="/opt/itl_generic_skylake_VSB/"
|
|
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
|
|
|
|
# Enable ipv4 routing from vxWorks to Qt DNS
|
|
if [ -f /etc/sysctl.conf ]; then
|
|
sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
|
|
else
|
|
# There's no /etc/sysctl.conf in Ubuntu 26.04, use sysctl.d instead
|
|
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-vxworks.conf
|
|
fi
|
|
sudo iptables -I FORWARD 1 -j ACCEPT
|
|
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
|
|
|
|
# Copy start script in place
|
|
cp "${BASH_SOURCE%/*}/../linux/vxworks_qemu_launcher.sh" "${HOME}"
|
|
SetEnvVar "VXWORKS_EMULATOR" "${HOME}/vxworks_qemu_launcher.sh"
|