From patchwork Fri Nov 12 18:14:45 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Henry Nadeau X-Patchwork-Id: 104254 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0EF59A034F; Fri, 12 Nov 2021 19:15:42 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 90DDE410E3; Fri, 12 Nov 2021 19:15:41 +0100 (CET) Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) by mails.dpdk.org (Postfix) with ESMTP id 074A940692 for ; Fri, 12 Nov 2021 19:15:40 +0100 (CET) Received: by mail-io1-f54.google.com with SMTP id f9so12169225ioo.11 for ; Fri, 12 Nov 2021 10:15:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=hPfAULqiDvn4oBWB1/TVf5yjQo6QVEz5G/TX5oeX+m0=; b=G4aeNpoEoMflRUOXCOsW/cgI0/Ff+rfsG196ZE3C6FviPRFuGX6lkTw+V3fAsYJTOw nGB+9NehCTGcA+HqeeFjiEr0Y0Y84e1aTce6Tmy8B9njM9VZdWaqznjhr58czaN9Z2p9 qWTL5xc+syyCv/dYsUg9s1Ne7/21Rdh0wGZEE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=hPfAULqiDvn4oBWB1/TVf5yjQo6QVEz5G/TX5oeX+m0=; b=yfd1q/L/HqLxQxRUs05bVHeV0+wMIRQJK3xJ73QElFKjfY82ByFQeYjsMEadwY8T7B smzwnf0UErB0H2fLYnjMtzG6OFCW1TdEPIrjvPeatOT8TWHQJL17pAgs51/0iVapblvl jSh9oFeqzdaHQxD7IrqlwsbXSk8g8a95YfNV+wDZH3SH5DN9qXl7DsyhPsMNIMlXun0K /hiiGR6n9j0EgkfVi+4ATJQPGAgOsVUInvrGS5Zv9X27A+YsNFwLPSO6U66UklrAxsKt IxvPUT8pN8lSprRuzdoTEPCbBtSxjA3h4Qo1OBuII/xoPpnyzEranKwISyRqWuWMcAAq zDNw== X-Gm-Message-State: AOAM5311Ve7OMHoExZxi3BZWhUPJw50uj74J33jL7nkGHVl6he7aG3pF OTVqw15Q6cYbWsMgitvktpsFJtmftbmm2OEv7EaTUUnfdI6dxQM8mAgHN2kYiDXAgFhHWDL1mrP UNH72ImRhh/i6hDRcz4c2zZRMP5TUr4gNsXbw34LvT/dyZZKeyrVCNOLULvo= X-Google-Smtp-Source: ABdhPJy4y8FUvPkbk9c0hUPTUBuraqvQs8tptLBiueZr6XaXYs9f09GygQykKRBzHbwk4KXHccxj0g== X-Received: by 2002:a5d:9650:: with SMTP id d16mr11527762ios.15.1636740938644; Fri, 12 Nov 2021 10:15:38 -0800 (PST) Received: from hnadeau-thinkpad.dpdklab.iol.unh.edu (netscreen.iol.unh.edu. [132.177.123.2]) by smtp.gmail.com with ESMTPSA id c4sm3522598ioo.48.2021.11.12.10.15.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Nov 2021 10:15:38 -0800 (PST) From: Henry Nadeau To: dev@dpdk.org Subject: [PATCH v2] devtools: spell check Date: Fri, 12 Nov 2021 13:14:45 -0500 Message-Id: <20211112181444.168035-1-hnadeau@iol.unh.edu> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org A spell check script that checks for spelling errors in modified .rst files using git. There is also an optional flag to have the script check the entire doc directory for errors. The dictionary is used for word exceptions, and the regex file will exclude any regex patterns supplied on each line. Errors will be logged and printed to console, and by default the log will be stored in devtools. The output directory can be modified with a flag. The script can be executed from anywhere within the dpdk repo. Signed-off-by: Henry Nadeau --- devtools/spell_check.sh | 202 +++ devtools/spell_check_dictionary.txt | 2154 +++++++++++++++++++++++++++ devtools/spell_check_regex.txt | 2 + 3 files changed, 2358 insertions(+) create mode 100755 devtools/spell_check.sh create mode 100644 devtools/spell_check_dictionary.txt create mode 100644 devtools/spell_check_regex.txt diff --git a/devtools/spell_check.sh b/devtools/spell_check.sh new file mode 100755 index 0000000000..548d0d8e85 --- /dev/null +++ b/devtools/spell_check.sh @@ -0,0 +1,202 @@ +#!/bin/bash + +dpdk_dir=$(git rev-parse --show-toplevel) +if [ -z "$dpdk_dir" ]; then + echo "Please execute this script from within a git repo" + exit 1 +fi + +set -e +allowed_words='' # path to allowed words file +all_check='false' # optional flag to check all documentation +verbose_logging='false' +branch=$(git rev-parse --abbrev-ref HEAD) # Gets current working branch +regex_dir='' + +while test $# -gt 0; do + case "$1" in + -h | --help) + echo "Spell Check" + echo " " + echo "spell_check [options] [arguments]" + echo " " + echo "options:" + echo "-h, --help + Show shows list of flags and usages." + echo "-a, --all-doc + Specify if all documentation should be checked." + echo "-b + Specify a different branch to be checked against." + echo "-d + Specify a different dictionary to be used by aspell." + echo "-o, --output-dir=DIR + Specify a directory to store output in." + echo "-r + Specify a different regex pattern file." + echo "-v + Specify verbose logging." + exit 0 + ;; + -a | --all-doc) + shift + export all_check='true' + ;; + -b) + shift + export remote_branch=$1 + shift + ;; + -r) + shift + export regex_dir=$1 + shift + ;; + -d) + shift + export allowed_words=$1 + shift + ;; + -v) + shift + echo "Verbose logging active!" + export verbose_logging='true' + ;; + -o) + shift + if test $# -gt 0; then + export output=$1 + else + echo "no output dir specified" + exit 1 + fi + shift + ;; + --output-dir*) + export output=$(echo $1 | sed -e 's/^[^=]*=//g') + shift + ;; + *) + break + ;; + esac +done + +if [ "" = "$output" ]; then + output="$dpdk_dir/devtools/spell_check.log" +else + output+=/spell_check.log +fi + +if [ "" = "$regex_dir" ]; then + regex_dir="$dpdk_dir/devtools/spell_check_regex.txt" +fi + +PKG_OK=$(which aspell) + +if [ $verbose_logging = 'true' ]; then + echo Checking for Aspell: "$PKG_OK" +fi + +if [ "" = "$PKG_OK" ]; then + echo "Missing Required Package: Aspell" + exit 1 +fi + +PKG_OK=$(which git) + +if [ $verbose_logging = 'true' ]; then + echo Checking for Git: "$PKG_OK" +fi + +if [ "" = "$PKG_OK" ]; then + echo "Missing Required Package: Git" + exit 1 +fi + +PKG_OK=$(which parallel) + +if [ $verbose_logging = 'true' ]; then + echo Checking for Parallel: "$PKG_OK" +fi + +if [ "" = "$PKG_OK" ]; then + echo "Missing Required Package: Parallel" + exit 1 +fi + +# Checking if remote branch flag was set +if [ "" = "$remote_branch" ]; then + remote_branch=$branch +fi + +# Checking if separate dictionary was supplied, if not defaults to +# spell_check_dictionary.txt in current dir +if [ "" = "$allowed_words" ]; then + allowed_words=$dpdk_dir'/devtools/spell_check_dictionary.txt' +fi + +# function to spell check a single file +function spellcheck_file() { + file="$3/$1" + dictionary="$2" + sed -e "$4" "$file" | # used to simplify lines sent to aspell + tr -d '*' | + tr -d '`' | + aspell --lang=en --encoding=utf-8 --ignore-case \ + --ignore-repl pipe list -d en --ignore=3 --personal="$dictionary" | + sed -r '/\*/d; /^\s*$/d' | + cut -d ' ' -f 2 | + sort -u | + sed '/International/d' | + grep -Z "" | + xargs -0 -I % grep -on "%" "$file" | + awk -v file="$file" -F ':' '{ printf "%s:%s %s\n", file, $1, $2 }' +} + +# Build regex pattern from files +regex_pattern="'s/(R)//; " +while IFS= read -r line; do + if [[ ! $line =~ "#" ]]; then + regex_pattern+="s/$line/ /; " + fi +done < "$regex_dir" +regex_pattern="${regex_pattern::-1}'" + +if [ "'" = "$regex_pattern" ]; then + regex_pattern='' +fi + +# Make sure output file is present and empty +touch "$output" +truncate -s 0 "$output" + +# setup so that parallel can use the function +export -f spellcheck_file +export SHELL="$(type -p bash)" + +# Compares diff between current branch and it's remote counterpart +if [ ! $all_check = 'true' ]; then + git diff "$branch" origin/"$remote_branch" --name-only | + grep ".*\.rst" | + # run the spellcheck function over each file in parallel, appending + # misspellings to the output file + parallel -j "$(nproc)" spellcheck_file {} "$allowed_words" "$dpdk_dir" \ + "$regex_pattern" >> "$output" + else + cd "$dpdk_dir" + find . -name "*.rst" -type f | parallel -j "$(nproc)" spellcheck_file {} \ + "$allowed_words" "$dpdk_dir" "$regex_pattern" >>"$output" +fi + + +cat "$output" + +# remove empty lines in the output +sed -i '/^$/d' "$output" + +# Errors can be counted by counting the number of lines in the output +errors="$(wc -l "$output" | cut -d ' ' -f 1)" +printf "Errors found: %d\n" "$errors" | tee -a "$output" + +# Make the exit code the number of errors +exit "$errors" diff --git a/devtools/spell_check_dictionary.txt b/devtools/spell_check_dictionary.txt new file mode 100644 index 0000000000..ceb2694c30 --- /dev/null +++ b/devtools/spell_check_dictionary.txt @@ -0,0 +1,2154 @@ +personal_ws-1.1 en 2153 +AArch +ABI's +ABIs +ACAT +ACKs +ACLs +ADAT +AEEOT +AENQ +AESN +AFUs +AIOP +ALEF +ALTQ +AMDA +APCI +API's +APIs +ARKA +ARKP +ARMv +ASCAT +ASIC +ASLR +ASan +AUPE +AddressSanitizer +AdminQ +Agilex +Agilio +AltArch +AltiVec +Alveo +Aquantia +Aquantia's +Arkville +Arkville's +Arria +BBDev +BBdev +BCAT +BDFs +BMan +BPSK +BSPs +BUFS +BXNT +Backports +Blocklisting +BlueField +Broadcom +Broadwell +Broder +BusA +CAVP +CAVS +CBAR +CBDMA +CBFC +CCAT +CCITT +CCed +CDAT +CEIL +CFLAG +CIDR +CIMC +CLIs +CNTRS +COMPDEV +CPUFLAG +CPUFreq +CPUIdle +CPUs +CamelCase +Cavium +Cavium's +CentOS +Centos +Cesnet +Chelsio +CollectD +CommitID +CompressDev +ConnectX +Coverity +CryptoDev +DALLOW +DCBX +DDEBUG +DDIO +DEINTERLEAVE +DEINTERLEAVER +DESTDIR +DEVMEM +DEVS +DIMM +DIMMs +DLActive +DLB's +DMAdev +DMFS +DOCSISBPI +DPBP +DPBPs +DPDK's +DPDKVMS +DPIO +DPIOs +DPMAC +DPMCP +DPRCs +DRHD +DRTE +DSPs +DTLB +DVPT +DWRR +Dbuildtype +Ddisable +Deinitialising +Denable +DevA +DevB +DevC +DevD +DevF +DevX +DevxEnabled +DevxFsRules +Dexamples +Dflexran +DiffServ +Diffie +Dmachine +Dmax +Dmitry +Dockerfile +DomBDF +Doption +Dplatform +DrvA +DrvB +DstMAC +Dwerror +EBUSY +ECAT +ECDSA +ECPFs +ECPM +EDAT +EEARBC +EEXIST +EFD's +EINVAL +ENAv +ENOSPC +ENOSYS +ENOTSUP +EPOLLIN +ERANGE +ESXi +ETAG +ETHPORTS +ETQF +ETrackId +EVLAN +EZchip +Enablement +EncryptExtIV +EqualizationComplete +Ericsson +EthApp +EtherType +EventDev +Extranet +FAILOVER +FALLTHROUGH +FANOUT +FCCT +FDIRCTL +FEXTNVM +FFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFF +FIFOs +FMan +FPGAs +FQID +FRAMESIZE +FastLinQ +FleXRAN +FlexRAN +FlexSparc +FortPark +Fortville +Foxville +FpgaDev +FrameCheckSequenceErrors +FreeBSD +FreeBSD's +Freescale +GBASE +GCAT +GCMVS +GFSbox +GGAs +GGRP +GGRPs +GLINKSETTINGS +GNinja +GPAs +GPGPU +GPIO +GPLv +GPUs +GRE's +GRENAT +GROed +GSET +GSO'd +GSOed +GTPC +GTPU +GTPoGRE +GTPv +Gbps +HCAT +HIFS +HQoS +HTSS +HUGEFILE +HUGETLB +HWRM +HWaddr +Haswell +HiSilicon +HowTo +Huawei +HugePages +Hugepagesize +IANA +ICMPv +IFCVF's +IGEL +IGMP +INTLBK +INTx +IOPL +IOSF +IOTLB +IOVM +IPADs +IPHDR +IPSec +IPsec +IRQs +ITERS +IXIA +InfiniBand +InifiniBand +Inkscape +IntN +Intels +Ironpond +JITed +KBytes +Kaminsky +KeySbox +Kozlyuk +Kunpeng +Kunpeng's +LDFLAG +LEDs +LETCAM +LF's +LFSR +LIBDIR +LIBEAL +LINEARBUF +LINKINFO +LKCF +LKML +LLDP +LLQv +LLRs +LSB's +LSBs +LSDK +LTTng +Linaro +LineSidePort +LiquidIO +LnkSta +Lpmcore +MACSec +MACsec +MAIA +MAINT +MBUFs +MBytes +MDATA +MDIO +MEMLOCK +MESI +MKEY +MMAP's +MMIO +MODINV +MPLSoGRE +MPLSoUDP +MPMC +MPMCF +MPSC +MSBs +MSDN +MSIx +MSRs +MSVC +MTUs +MWAIT +Maipo +Mellanox +MemC +MemCache +MinGW +Mitzenmacher +Moongen +MySpecialDev +MySpecialDrv +NASM +NCSI +NDIS +NGIO +NIC's +NICs +NICsfor +NIST +NNNNN +NOFILE +NOLIVE +NOTREACHED +NREGIONS +NSDI +NSECPERSEC +NXP's +NetUIO +NetVSC +NetXtreme +Netcope +Netlink +Netmap +Netronome's +Niantic +Npcap +OFPAT +OKTET +OPADs +OPAE +OR'd +OcteonTX +OcteonTx +Ootpa +OpenCL +OpenFabrics +OpenFlow +OpenSSL +OpenWRT +OpenWrt +PBSIZE +PCDs +PCIADDR +PCIe +PCRE +PCTYPES +PF's +PFVF +PFVMTXSSW +PGSIZE +PHYREG +PMD's +PMDs +POSIX +PPPOED +PPPOES +PPPoE +PPPoL +PQoS +PRIu +PRNG +PROBLEMTYPE +PYTHONPATH +Pankaj +Parallelize +Paravirtual +Pensando +Permop +Pfaff +Pipelevel +Powerlinux +Prepend +QATE +QEMU's +QLogic +QMan +QNUM +QSFP +QinQ +QorIQ +QuickAssist +QuickData +RETA's +RETAs +RFCE +RFOE +RHEL +RINGSIZE +ROUNDROBIN +RSERV +RSMBL +RSPCIPHY +ReEx +ReTa +Readme +Redhat +Regexes +Retransmit +Rootfile +RxQs +RxTx +SA's +SADB +SAIDX +SATP +SCLK +SELINUXTYPE +SELinux +SFID +SFNX +SGBT +SGLs +SIGBUS +SIGCOMM +SIGHUP +SIGINT +SLAs +SLES +SLINKSETTINGS +SMMU +SMMUv +SMTP +SOC's +SOCs +SPDK +SPDX +SPSC +SRAM +SRTD +SSET +SSOW +SSOWS +SXGMII +ScaleBricks +SeLockMemoryPrivilege +SecMon +Semihalf +Sendto +Shumway +Silicom +Skylake +SlotClk +SmartNICs +SoCs +SoftNIC +SolarCapture +Solarflare +SpeedStep +StrataGX +Subfield +Subkey +Subtarget +Sunsetting +TAGCTRL +TCAM +TCPHDR +TCPv +TDES +TIMvf +TIPG +TLBs +TLVs +TPAUSE +TPID's +TSDL +TSOed +TSOv +TestPMD +TestPoint +TestPointShared +Testpoint +ThunderX +Timebase +ToolChain +TrErr +TruFlow +Twinpond +UCSM +UCTX +UDPv +UEFI +UMWAIT +UTRA +Unary +UniPHY +Unregistration +VADT +VCBs +VDAT +VEBs +VF's +VFTA +VICs +VIRQFD +VLANs +VLVF +VLXAN +VM's +VMBus +VMDq +VMware +VPCLMULQDQ +VRRP +VTEP +VTune +VXLan +VarText +Varkey +Versal +VirtIO +VirtQ +Virtio's +VxLAN +WAITPKG +WORKDIR +WQEs +WangXun +Wangxun +WinOF +WinPcap +Wmissing +XCAT +XGBE +XORed +XXCC +XXXXXXXXXX +Xenial +Xeon +Xilinx +XtremeScale +Yocto +ZIPVF +Zhou +aQtion +aaaa +aarch +abar +abcdefgh +abidiff +accel +accessor +acked +acking +acks +acpi +activeate +addif +addr +addrs +adminq +adptrs +aead +aesni +affinitize +affinitized +affinitizing +aflag +algo +algos +allmulti +allmulticast +alloc +allocator +allocator's +allocators +allowlist +allports +alrt +altivec +amumble +amzn +antispoof +apis +argc +args +argv +armv +asan +asym +async +atexit +atmost +atoi +atomicNN +atomicity +atomics +attr +auth +autoconf +autodetected +autogen +autoload +autoneg +autonegotiation +autotest +autotests +autotools +axgbe +babeltrace +backend +backends +backplane +backport +backported +backporting +backpressure +backquotes +baddr +balancer +barcharts +baseband +basegraph +basename +bbdev +bbdevs +bcac +bcast +bcde +bcmfs +beefd +benchmarking +bflag +binded +binutils +bitcnt +bitfield +bitfields +bitmask +bitmasks +bitrate +bitrates +bitratestats +bitstream +bitwidth +bitwidths +bitwise +bler +blocklist +blocksz +bluefield +bnxt +bondingX +bool +bootargs +bootindex +boxplot +bphy +bpid +bpool +branchless +brctl +breakpoint +bsize +bufring +bufsz +bugfixes +builddir +buildroot +buildtools +buildtype +builtins +bursty +busybox +byname +bytecode +byteswap +cBPF +caam +caba +cacheline +cack +calc +callee +callfd +calloc +callout +capa +cbaf +cbps +ccac +ccbbffffaa +cdev +cdfd +centric +cfgfile +cfilter +cflags +cgroup +cgroups +chacha +changings +charcrypto +chardev +charp +cheatsheet +checkpatch +checkpatches +checksumming +checksums +chipset +chipsets +chkr +chksum +chlen +chmod +chnk +chown +cint +ciphertext +cksum +classif +cldemote +clks +cmac +cmake +cman +cmdif +cmdline +cmds +cmit +cnic +cntvct +cnxk +codespell +combov +commandline +committer's +comms +compN +comparator +comparators +compat +compilervars +compressdev +compressdevs +cond +conf +config +configfile +configruration +configs +connectx +conntrack +const +contig +contigmalloc +contigmem +contiguousness +contrib +conv +copybreak +coredump +coredumpsize +corei +corelist +coremask +cperf +cppc +cpuX +cpufreq +cpuinfo +cpumask +cpus +cpuset +cputune +cron +crypto +cryptodev +cryptodev's +cryptodevs +cryptographic +cryptolib +cryptoperf +csiostor +cstream +csum +csumonly +ctod +ctrl +ctrlmbuf +cuda +cudaStream +currentMemory +cvlan +cvss +cxgb +cxgbe +cxgbetool +cxgbevf +cxgbtool +cyclecount +dPacket +daemonize +data's +datagram +datagrams +datapath +datapaths +dataplane +dataroom +datasheet +dataunit +dbdf +deallocate +deallocated +deallocates +deallocating +deallocation +debugbuild +debugfs +debugoptimized +decap +decaped +decaps +decapsulate +decapsulated +decapsulating +decapsulation +decomp +decrementing +decrypt +decrypted +dedent +dedented +defs +degradations +deinit +deinitialization +deinitialized +denylist +deps +deqd +deque +dequeing +dequeue +dequeued +dequeueing +dequeues +dequeuing +dereference +dereferenced +dereferencing +desc +descs +dest +deterministically +devarg +devargs +devbind +devel +develconfig +deviceID +deviceid +devid +devinfo +devinit +devlink +devtools +devtype +devuninit +diag +dirname +disaggregated +distr +distrib +distro +distros +dlopen +dmac +dmadev +dmadevs +dmafwd +dmar +dmarXXX +dmas +dmesg +dmidecode +docsis +dont +dostuff +downlink +downscript +doxy +doxygen +dpaa +dpci +dpcon +dpdk +dpdmai +dpni +dport +dprc +dpseci +dptmapi +dqud +dracut +driverctl +dropless +droppper +drvinfo +drwxr +dscp +dsts +dtap +dtunX +dumpcap +dynf +dynfield +dynflag +eBPF +eCPRI +eMPW +ecid +ecmp +ecpri +edab +eeprom +eetrack +elftools +elif +elts +emulatorpin +encap +encaped +encapped +endPtr +endian +endianness +endif +enetc +enic +enqd +enqueue +enqueued +enqueueing +enqueues +enqueuing +entrancy +entres +entryx +enum +enums +enumtype +epoll +errno +essb +eswitch +ethdev +ethdev's +ethdevs +ethertype +ethertypes +ethtool +evdev +eventdev +eventdevs +eventport +eventq +evtim +ewma +exdsa +executables +expirations +extbuf +extconf +extern +extmbuf +extmem +extstats +fPIC +facto +failsafe +fastpath +fbarray +fd's +fdir +fdir's +fdirmatch +fdirmiss +fdisk +fdopen +ffadc +ffade +ffea +ffff +ffffff +filepath +filesystem +filetype +fillcrypto +filtermask +filtermode +fini +fips +firmwares +fixline +flexbytes +flexpayload +flexran +flib +flowapi +flowgen +flowid +flowptr +flowttl +flowtype +flushtime +fman +fmlib +foohead +foreach +formatters +fpavf +fpga +fprintf +framecnt +framesz +freebsd +freqs +frontend +frontends +fslmc +fstab +ftag +fullbuild +fullchk +fullq +func +funcs +fwdbuild +fwding +geneve +getcpuclockid +getopt +getschedparam +getspecific +getwork +gfni +glibc +globbing +glort +gmac +gmake +gnueabihf +goto +gpudev +gpus +gragment +grehdr +grep'ed +groupinstall +guarant +gzip +hairpinq +hardcoded +harq +hdls +helloworld +hexmask +hier +highlevel +higig +hinic +hisilicon +hmac +hostdev +hostfwd +hostname +hostnet +hotplug +hotplugged +hotplugging +howto +hpet +hrtp +hthresh +htonl +hugepage +hugepages +hugepagesz +hugetlbfs +hwcap +hwgrp +hwissue +hwloc +hyperthreading +hyst +iAVF +iSCSI +iavf +ibadcrc +ibadlen +ibverbs +ibytes +icmp +icmpecho +icmpv +idxd +ient +ierrors +ietf +iface +ifaceX +ifconfig +ifcvf +ifdef +ifname +ifndef +ifpga +ifup +igbvf +imcasts +imissed +imix +impl +implementers +incrementing +infa +infiniband +inflight +inflights +infos +init +initializer +initializers +initializion +inlined +inlining +inmigrate +inorder +insmod +intXX +interleaver +interprocedural +intf +intr +intra +intrinsics +ints +intx +ioat +ioeventfd +iofwd +iomem +iommu +ioport +ioports +iova +ipackets +ipip +iproute +ipsec +irqs +isal +iscard +isdigit +isolcpus +isonum +iter +ivshmem +ixgbe +ixgbevf +jansson +jhash +jitter +jobstats +json +kaleido +kasumi +kbytes +kdrv +keepalive +keepcfg +kenv +keyX +keygen +keytag +keywidth +kflows +killall +kldload +kldstat +kldunload +kmod +kmods +kni's +kqueue +kstrtoul +kthread +kthreads +ktrace +kvargs +lacp +latencystats +layerscape +lbrm +lcore +lcoreid +lcores +ldconfig +ldflags +ldpc +ldpcdec +ldpcenc +libAArch +libSSO +libX +libabigail +libarchive +libasan +libatomic +libbpf +libc +libcrypto +libcryptodev +libdpdk +libefx +libelf +libeventdev +libexecinfo +libgcc +libibverbs +libisal +libjansson +libmemif +libmlx +libmusdk +libname +libnfb +libnl +libnuma +libpcap +libpqos +librte +libs +libsze +libtool +libudev +libvhost +libvirt +libz +linearization +linearize +linearized +linearizing +linuxapp +liovf +liquidio +literalinclude +liveness +lkup +lladdr +llvm +lmac +loadcfg +loadfw +loadu +lockfree +lockless +loglevel +loglevels +logtype +lookaside +lookups +loopback +lossy +lrand +lrte +lrwxrwxrwx +lscpu +lsmod +lspci +lstopo +lthread +lthreads +lundef +macExtS +macaddr +macaddrs +macsec +macswap +mainloop +makefile +makefiles +malloc +manpages +mappable +maskable +maskbits +masklen +maxdepth +maxflows +maxhash +maxlen +maxp +maxth +mbcache +mbox +mbps +mbuf +mbuf's +mbufs +mcam +mcast +mcfg +mcpu +mcus +mdev +memAccess +memconfig +memcopy +memcpy +memdev +memdump +memfd +memhdr +memif +meminfo +memoryBacking +mempool +mempool's +mempools +memseg +memsegs +memset +memsize +memzone +memzones +menthod +menuconfig +mergeable +mesonconf +mgmt +microarchitecture +microarchitectures +microblock +middleboxes +milli +mingw +miniCQE +mins +minth +misalign +misprediction +mkconfig +mkdir +mlnx +mlnxofedinstall +mlockall +mlxconfig +mlxdevm +mlxfwreset +mlxreg +mmap +mmap'ed +mmaping +mmapped +mmaps +modex +modexp +modinfo +modprobe +mountpoint +mpls +mplsogre +mplsoudp +mpool +mpps +mprq +mrvl +msgs +msix +mspdc +mtod +mtophys +mtrapi +mtrr +mtune +multicast +multicasting +multicasts +multicore +multilib +multiline +multiport +multiprocess +multiqueue +multithread +multithreaded +multithreading +musdk +musl +mutex +mutexes +mvneta +mvpp +mvsam +myapp +mydoc +mynet +nack +namespace +nano +nanosleep +napi +natively +nbcore +nbport +negllr +neoverse +neta +netcat +netdev +netdev's +netdevice +netif +netlogdecode +netperf +netronome +netuio +netvf +netvsc +newdir +newsize +nexts +nffw +ngbe +nics +nicvf +nitrox +nixlf +nocbs +nodefaults +nodeid +nodeps +nodesc +nodeset +nodev +nodrop +nographic +nohz +nointxmask +noiommu +nombuf +noncontiguous +nonleaf +noreturn +nowait +npalf +nrange +nsec +nseg +ntohl +ntuple +numa +numactl +numatune +numref +numvfs +nvgre +oUDP +obase +objdump +objhdr +objs +obytes +octeon +octeontx +oerror +oerrors +ofed +offsetof +olflags +onchip +onwards +opackets +opdl +openibd +openssl +openwrt +optype +osdep +outb +outes +outoffset +overcommitted +oversubscription +ovlan +ovrd +pCPU +pCPUs +packetbuffer +pagefault +pagemap +pagemaps +pagesize +param +paramX +paramY +paramZ +params +paravirtualized +parm +parsers +passlist +passthrough +passthru +patchset +patchsets +pcap +pcapng +pcaps +pciconf +pcidb +pcifunc +pcisf +pcpu +pctype +pdcp +pdev +pdpe +pdump +perf +performant +personalization +pfcp +pflink +pfnum +phdr +physaddr +physmem +pipelined +pipelining +pkgconf +pkgconfig +pkgo +pkill +pkivf +pkmbuf +pkovf +pktgen +pktlen +pktmbuf +pktmbufs +pktmode +pkts +plaintext +plcores +plotly +pluggable +plugindir +pmdinfo +pmdinfogen +pmds +pmgmt +policer +popd +portId +portconf +portid +portlist +portmap +portmask +portn +portnum +portstats +postcopy +postfix +postmigrate +powermonitor +ppfe +pppoe +pqos +prealloc +preallocate +preallocated +preallocating +prebuilt +precompiled +precomputed +preconfigured +preemptible +prefetch +prefetchable +prefetched +prefetches +prefetching +prefree +prepended +prepends +preprocessor +prerelease +printf +printk +prio +priv +proc +processfor +procinfo +procs +profileid +prog +programmatically +promisc +promiscusity +proto +prototyped +psec +pseudocode +pstate +psutil +ptest +ptests +pthread +pthreads +pthresh +ptpclient +ptrs +ptype +ptypes +pushd +pvalue +pvid +pyelftools +qavg +qbman +qconf +qcow +qdisc +qdma +qede +qedf +qedi +qedr +qemu +qidA +qidB +qidx +qinq +qint +qmap +qmapping +qoriq +qpairs +qsbr +qsize +qtime +queueid +rarp +rawdev +rawdevice +rawdevices +rawdevs +rdline +rdlock +rdma +rdtsc +reStructuredText +readline +readlink +realloc +rebalanced +rebalancing +reconfigurable +reconfiguring +reconnection +recv +refcnt +refdir +regbit +regexdev +regexdevs +regfield +regs +reinitializes +reinitializing +repo +representator +representor +representors +reqs +requestor +responder +restool +resv +reta +retransmission +retransmissions +retval +ringparam +rlimit +rmmod +roadmap +rootfs +rply +rqmts +rsize +rsrc +rsvd +rsync +rtecryptodev +rtemap +rudimental +runstate +runtime +rvIndex +rwlock +rwlocks +rxbuf +rxconf +rxfreet +rxht +rxmode +rxoffload +rxoffs +rxonly +rxpkts +rxportconf +rxpt +rxqs +rxtx +rxwt +sPAPR +sact +sadv +safexcel +sbin +scalability +scalable +scaleup +scapy +sched +scheduler's +sctp +sdap +secgw +secpol +segs +segsize +segsz +seid +selectable +selftest +selinux +sendemail +sendmsg +sendp +seqn +sess +sessionless +setaffinity +setcancelstate +setcanceltype +setcap +setpci +setschedparam +setspecific +setspeed +sfboot +sfnum +sgmii +shaper +shapers +shconf +shmfd +shortname +signoff +simd +sizeof +skiplist +smac +smallbuild +smap +smartNIC +smartnic +smtpencryption +smtpserver +smtpserverport +smtpuser +snat +snprintf +socat +socketid +socktype +socs +softirqs +softmmu +softnic +softrss +soname +sonames +spinlock +spinlocks +spoofable +srTCM +srcs +sriov +srtcm +srtcmp +ssopf +ssovf +stateful +statefully +stderr +stdin +stdint +stdlib +stdout +stlist +stmt +strace +strcmp +strcpy +strerror +stripq +strlen +stroul +strscpy +strtoll +strtoull +struct +structs +stty +stype +subblock +subdir +subdirectories +subdirectory +subdirs +subexpression +subfolder +sublists +submode +submodes +subnet +subport +subports +substream +subtuple +subvariant +sudo +sunsetted +superpages +svlan +switchdev +syncthreads +sysctl +sysfile +sysfs +syslog +sysroot +systemd +szedata +szedataII +tabularcolumns +taildrop +tailroom +tapvm +taskset +tcpdump +tcpv +teid +telco +testapp +testbbdev +testcancel +testcase +testcases +testeventdev +testpmd +testpmd's +testregex +testsuite +testsuites +thash +threadIdx +threadfence +thunderx +timedlock +timedrdlock +timedwait +timedwrlock +timerdev +timespec +timestamping +timesync +timvf +titi +tmapi +tmgr +toctree +toeplitz +toolchain +toolchains +topologies +totalvfs +tpid +tpmd +trTCM +tracebuild +tracecompass +tracepoint +tracepoints +tradeoff +transactional +transceiving +trie +trtcm +trylock +tryrdlock +trywrlock +tshark +tswap +ttyAMA +tunX +tuntap +turb +tuser +txconf +txfreet +txgbe +txgbevf +txht +txmode +txoffload +txonly +txpkts +txport +txportconf +txpt +txqflags +txqnum +txqs +txqueuelen +txrate +txrst +txsplit +txtimes +txwt +typedef +typedefs +ucast +udata +udevd +udpv +uevent +uint +uintXX +uintptr +uioX +ulimit +umem +umount +unack +unacked +uname +uncachable +uncomment +uncompiled +uncompress +uncompressing +unencrypted +unfree +unicast +uninit +uninitialization +uninitialize +uninitializes +unint +unioned +uniq +unittest +unlink +unmap +unmapped +unmapping +unmount +unregister +unregistering +unreserve +unreserving +unrouted +unsetting +untag +untagged +untags +untar +upgradable +uplink +upstreamable +upstreamed +uptime +usec +userdata +userland +userspace +usertools +usleep +usvhost +uucp +uuid +uverbs +uwire +vCPE +vCPU +vCPUs +vDPA +vEth +vHost +vIOMMU +vNIC +vNICs +vPMD +vPro +vRAN +vSphere +vSwitch +vSwitches +validator +vals +variadic +vchan +vcpu +vcpupin +vdev +vdevarg +vdevs +vdmq +vdpa +vdpadevs +vdrv +vect +vectorization +vectorize +vectorized +vendid +vendorID +verwrite +verylongtypename +vfio +vhost +vhostforce +vhostuser +virbr +virsh +virt +virtaddr +virtenv +virtio +virtq +virtqueue +virtqueues +virtualised +virtualized +virtualport +vlan +vmbus +vmdq +vmname +vmware +vmxnet +vnic +vring +vrings +vswitch +vsym +vxlan +wakeup +webpage +werror +werrorbuild +wget +whitespace +wireshark +wlcore +wlcores +workqueue +workqueues +workslot +wred +writeback +wrlock +wrptr +wthresh +wwww +xFEE +xFFEF +xFFF +xFFFD +xFFFELLU +xFFFF +xFFFFEF +xFFFFFFFF +xJvf +xXXXXXXXX +xbzrle +xcast +xcbc +xdata +xefff +xenvirt +xffff +xffffff +xffffffff +xffffffffffffffff +xform +xforms +xmem +xmemhuge +xmeta +xmit +xmode +xoff +xored +xstat +xstats +xtype +xxxx +xxxxxx +xxxxxxx +yyyy +zcat +zlib +zmalloc +zxof diff --git a/devtools/spell_check_regex.txt b/devtools/spell_check_regex.txt new file mode 100644 index 0000000000..efa8f63450 --- /dev/null +++ b/devtools/spell_check_regex.txt @@ -0,0 +1,2 @@ +# This file is used to exclude regex patterns from being passed to Aspell. +# Each line is read as a single pattern.