23/11/2021 12:07, sk...@marvell.com: > --- a/devtools/check-doc-vs-code.sh > +++ b/devtools/check-doc-vs-code.sh > +all_event_drivers() > +{ > + find $rootdir/drivers/event -mindepth 1 -maxdepth 1 -type d | > + sed 's,.*/,,' | > + sort > +} > + > +check_event_dev() # <driver> > +{ > + code=$rootdir/drivers/event/$1 > + doc=$rootdir/doc/guides/eventdevs/features/$1.ini > + [ -d $code ] || return 0 > + [ -f $doc ] || return 0 > + report=$($selfdir/parse-event-support.sh $code $doc) > + if [ -n "$report" ]; then > + error "doc out of sync for $1" > + echo "$report" | sed 's,^,\t,' > + fi > +}
These 2 functions are mostly copy/paste of rte_flow functions. Given there will be more in future, I would prefer code being factorized. > if [ -z "$trusted_commit" ]; then > # check all > for driver in $(all_net_drivers); do > check_rte_flow $driver > done > + I would remove this blank line. > + for driver in $(all_event_drivers); do > + check_event_dev $driver > + done > exit $result > fi [...] > +if has_code_change 'RTE_EVENT_DEV_CAP_*' || > + has_code_change 'RTE_EVENT_ETH_RX_ADAPTER_CAP_*' || > + has_code_change 'RTE_EVENT_ETH_TX_ADAPTER_CAP_*' || > + has_code_change 'RTE_EVENT_CRYPTO_ADAPTER_CAP_*' || > + has_code_change 'RTE_EVENT_TIMER_ADAPTER_CAP_*' || Can it be a single query? > + has_file_change 'doc/guides/eventdevs/features'; then > + for driver in $(all_event_drivers); do No need to check all drivers. For rte_flow, only changed drivers are checked. > + check_event_dev $driver > + done > +fi [...] > +# generate INI section > +list() # <title> <pattern> <extra_patterns> > +{ > + echo "[$1]" > + word0=$(git grep -who "$2[[:alnum:]_]*" $dir) > + word1=$(echo "$3") Why echo? > + words="$word0""$word1" Why so many quotes? > + echo "$words" | sort -u | > + awk 'sub(/'$2'/, "") {printf "%-20s = Y\n", tolower($0)}' > +} [...] > +event_dev_rx_adptr_support() > +{ > + title="Eth Rx adapter Features" > + pattern=$(echo "RTE_EVENT_ETH_RX_ADAPTER_CAP_" | > + awk '{print toupper($0)}') > + check_rx_adptr_sw_capa || > extra='RTE_EVENT_ETH_RX_ADAPTER_CAP_OVERRIDE_FLOW_ID > + RTE_EVENT_ETH_RX_ADAPTER_CAP_MULTI_EVENTQ > + RTE_EVENT_ETH_RX_ADAPTER_CAP_EVENT_VECTOR' Why having extra parameter, instead of updating the pattern? By the way, the pattern RTE_EVENT_ETH_RX_ADAPTER_CAP_ already include all of this. > + list "$title" "$pattern" "$extra" > +} [...] > +# compare with reference input > +event_dev_sched_compare() > +{ > + section="Scheduling Features]" > + { > + event_dev_sched_support > + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' > + } | > + sed '/]/d' | # ignore section title > + sed 's, *=.*,,' | # ignore value (better in doc than generated one) > + sort | uniq -u | # show differences > + sed "s,^,Scheduling Features ," # prefix with category name > +} > + > +event_dev_rx_adptr_compare() > +{ > + section="Eth Rx adapter Features]" > + { > + event_dev_rx_adptr_support > + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' > + } | > + sed '/]/d' | # ignore section title > + sed 's, *=.*,,' | # ignore value (better in doc than generated one) > + sort | uniq -u | # show differences > + sed "s,^,Eth Rx adapter Features ," # prefix with category name > +} > + > +event_dev_tx_adptr_compare() > +{ > + section="Eth Tx adapter Features]" > + { > + event_dev_tx_adptr_support > + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' > + } | > + sed '/]/d' | # ignore section title > + sed 's, *=.*,,' | # ignore value (better in doc than generated one) > + sort | uniq -u | # show differences > + sed "s,^,Eth Tx adapter Features ," # prefix with category name > +} > + > +event_dev_crypto_adptr_compare() > +{ > + section="Crypto adapter Features]" > + { > + event_dev_crypto_adptr_support > + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' > + } | > + sed '/]/d' | # ignore section title > + sed 's, *=.*,,' | # ignore value (better in doc than generated one) > + sort | uniq -u | # show differences > + sed "s,^,Crypto adapter Features ," # prefix with category name > +} > + > +event_dev_timer_adptr_compare() > +{ > + section="Timer adapter Features]" > + { > + event_dev_timer_adptr_support > + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' > + } | > + sed '/]/d' | # ignore section title > + sed 's, *=.*,,' | # ignore value (better in doc than generated one) > + sort | uniq -u | # show differences > + sed "s,^,Timer adapter Features ," # prefix with category name > +} I think these functions can be factorized.