On Wed, 17 Mar 2021 09:47:45 +0800 Huazhong Tan wrote: > On 2021/3/16 4:00, Jakub Kicinski wrote: > > On Mon, 15 Mar 2021 20:23:47 +0800 Huazhong Tan wrote: > >> From: Jian Shen <shenjia...@huawei.com> > >> > >> Currently, there are 3 flow director work modes in HNS3 driver, > >> include EP(ethtool), tc flower and aRFS. The flow director rules > >> are configured synchronously and need holding spin lock. With this > >> limitation, all the commands with firmware are also needed to use > >> spin lock. > >> > >> To eliminate the limitation, configure flow director rules > >> asynchronously. The rules are still kept in the fd_rule_list > >> with below states. > >> TO_ADD: the rule is waiting to add to hardware > >> TO_DEL: the rule is waiting to remove from hardware > >> ADDING: the rule is adding to hardware > >> ACTIVE: the rule is already added in hardware > >> > >> When receive a new request to add or delete flow director rule, > >> check whether the rule location is existent, update the rule > >> content and state, and request to schedule the service task to > >> finish the configuration. > >> > >> Signed-off-by: Jian Shen <shenjia...@huawei.com> > >> Signed-off-by: Huazhong Tan <tanhuazh...@huawei.com> > > How is the application supposed to know if the ethtool rule was already > > installed or installation is still pending? > > > Yes, it's unable for the application to know whether pending or installed. > > The primitive motivation is to move out the aRFS rule configuration from > IO path. To keep consistent, so does the ethtool way. We thought > of it before, considered that the time window between the two state is > very small. > > How about keep aRFS asynchronously, and the ethtool synchronously?
That'd be fine by me.