DPDK patches and discussions
 help / color / mirror / Atom feed
From: Henry Nadeau <hnadeau@iol.unh.edu>
To: dev@dpdk.org
Subject: [PATCH v2] devtools: spell check
Date: Fri, 12 Nov 2021 13:14:45 -0500	[thread overview]
Message-ID: <20211112181444.168035-1-hnadeau@iol.unh.edu> (raw)

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 <hnadeau@iol.unh.edu>
---
 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.
-- 
2.30.2


             reply	other threads:[~2021-11-12 18:15 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-12 18:14 Henry Nadeau [this message]
2021-11-12 19:23 ` Stephen Hemminger
2021-12-01 14:47 ` [PATCH v3] " Henry Nadeau
2021-12-01 16:59 ` [PATCH v4] " Henry Nadeau
2022-01-20 15:10   ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211112181444.168035-1-hnadeau@iol.unh.edu \
    --to=hnadeau@iol.unh.edu \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).