On Wed, Nov 23, 2016 at 09:11:54AM -0500, Neil Horman wrote:
> > Could we define some of the potential subtrees now and look to introduce 
> > them in the this release cycle? EAL and the Core libs, as suggested by 
> > Thomas, seem like 2 obvious ones.
> > 
> Sure, I'd suggest the following:

I would pull the git history to see which components are in
active status in last release (or even, in last few release).
And try to make a sub-tree if corresponding component is hot.

# the 2nd volume shows how many patches prefixed with a related component
[yliu at yliu-dev ~/dpdk]$ git log --oneline v16.07..v16.11 | awk '{print $2}' 
| \
                        sort | uniq -c  | sort -nr | head -30 | nl
     1       52 doc:
     2       40 net/ixgbe/base:
     3       38 app/test:
     4       37 kni:
     5       27 vhost:
     6       27 net/virtio:
     7       27 net/mlx5:
     8       26 app/testpmd:
     9       25 net/i40e:
    10       23 net/pcap:
    11       22 net/bnxt:
    12       20 net/enic:
    13       18 net/qede:
    14       17 net/thunderx:
    15       16 net/qede/base:
    16       16 eal:
    17       15 net/ixgbe:
    18       14 net:
    19       14 crypto/qat:
    20       13 scripts:
    21       13 net/bnx2x:
    22       12 net/i40e/base:
    23       12 examples/ipsec-secgw:
    24       11 mbuf:
    25       11 hash:
    26       10 lib:
    27       10 examples/ip_pipeline:
    28       10 ethdev:
    29        9 pci:
    30        7 net/vmxnet3:
    ...
    46        3 pdump:
    47        3 net/virtio_user:
    48        3 net/ring:
    49        3 net/nfp:
    50        3 net/mlx:
    51        3 net/ena:
    52        3 net/e1000:
    53        3 net/bonding:
    ...
    56        2 sched:
    57        2 port:
    ...
    65        1 timer:
    66        1 remove
    67        1 pmdinfogen:
    68        1 net/igb:
    69        1 net/enic/base:
    70        1 meter:
    ...
    84        1 cfgfile:
    85        1 app/procinfo:
    86        1 app/proc_info:
    87        1 acl:

Something obvious is that:

- "doc" deserves a sub-tree, and John is a perfect committer for that
  if he's willing to.

- generally, I'd agree with Neil that most (if not all) pmds may need
  a sub-tree. While, some others may not, for example, net/ring, net/pcap.

  For those non-active pmds, I think it's okay to let the generic
  pmd committer to cover them.

- it's not that wise to me to list all the components we have so far
  and make a sub-tree for each of them.

  For example, some components like librte_{port, pdump, cfgfile, acl,
  and etc} just have few (or even, just one) commits in last release.
  It makes no sense to me to introduce a tree for each of them.

Another thought is we could also create sub-trees based on category
but not on components like Neil suggested, especially that EAL looks
way too big to be maintained in one tree. Instead, it could be something
like:

- a tree for BSD

- a tree for ARM (and some other trees for other platforms)

- a tree for mem related (mempool, mbuf, hugepage, etc)

- a tree for BUS

- ...


Last but not the least, I think it's general good to have more and
more trees in the end. But I don't think it's a good idea to go
radically and create all those trees once (say in one release).

Something I would like to suggest is one or two (or a bit more) at
a release. For example, if I remember them well, we have next-net
tree at 16.04, and next-virtio (including vhost) at 16.07, and a
recent one, next-crypto at 16.11.

        --yliu


>       * net-pmds:
>               - all network pmds located under drivers/net
>               - librte_net
>               - libtre_ether
>               - librte_ip_frag
>               - librte_pdump
>               - librte_port
>       * crypto-pmds:
>               - all crypto pmds located under drivers/crypto
>               - librte_cryptodev
>       * eal:
>               - librte_eal
>       * core:
>               - librte_cfgfile
>               - librte_cmdline
>               - librte_compat
>               - librte_kvargs
>               - librte_kni
>               - librte_compat
>       * misc:
>               - librte_acl
>               - librte_distributor
>               - librte_hash
>               - librte_jobstats
>               - librte_lpm
>               - librte_meter
>               - librte_pipeline
>               - librte_power
>               - librte_reorder
>               - librte_ring
>               - librte_sched
>               - librte_table
>               - librte_timer
>               - librte_vhost
> 
> Thats just a rough stab mind, but perhaps it would get the ball rolling.  I'd 
> be
> willing to take maintainership of one of these subtrees if there is consensus
> around my doing so.

Reply via email to