On Thu, Sep 21, 2017 at 03:04:39PM +0800, Tan, Jianfeng wrote: > >On Fri, Aug 25, 2017 at 09:40:50AM +0000, Jianfeng Tan wrote: > >>To support kick in secondary process, we propose callfd_pri and > >>kickfd_pri to store the value in primary process; and by a new > >>API, rte_vhost_set_vring_effective_fd(), we can set effective > >>callfd and kickfd which can be used by secondary process. > >> > >>Note in this case, either primary process or the secondary process > >>can kick the frontend; that is, they cannot kick a vring at the > >>same time. > >Since only one can work, why not just overwriting the fd? Say, you > >could introudce some APIs like "rte_vhost_set_vring_callfd", then > >you don't need to introduce few more fields like "callfd_pri". > > That cannot address the below case: > 1. Primary starts; > 2. Secondary one starts; (if we overwrite it without storing it in some > other fields) > 3. Secondary one exits; > 4. Secondary two starts. (primary cannot share the fd with this secondary > process now, as this fd does not mean anything to the primary process)
I was thinking that those fds will be retrieved by the primary process once? So thsoe it got at beginning are still valid? --yliu