[dpdk-dev] [PATCH v2 07/12] eal: add channel for primary/secondary communication

Burakov, Anatoly anatoly.burakov at intel.com
Thu Sep 28 17:29:37 CEST 2017


On 28-Sep-17 4:01 PM, Ananyev, Konstantin wrote:
> Hi Jianfeng,
> 
> 
>> -----Original Message-----
>> From: Tan, Jianfeng
>> Sent: Thursday, September 28, 2017 2:56 PM
>> To: dev at dpdk.org
>> Cc: Richardson, Bruce <bruce.richardson at intel.com>; Ananyev, Konstantin <konstantin.ananyev at intel.com>; De Lara Guarch, Pablo
>> <pablo.de.lara.guarch at intel.com>; thomas at monjalon.net; yliu at fridaylinux.org; maxime.coquelin at redhat.com; mtetsuyah at gmail.com;
>> Yigit, Ferruh <ferruh.yigit at intel.com>; Tan, Jianfeng <jianfeng.tan at intel.com>
>> Subject: [PATCH v2 07/12] eal: add channel for primary/secondary communication
>>
>> Previouly, there is only one way for primary/secondary to exchange
>> messages, that is, primary process writes info into some predefind
>> file, and secondary process reads info out. That cannot address
>> the requirements:
>>    a. Secondary wants to send info to primary, for example, secondary
>>       would like to send request (about some specific vdev to primary).
>>    b. Sending info at any time, instead of just initialization time.
>>    c. Share FDs with the other side, for vdev like vhost, related FDs
>>       (memory region, kick) should be shared.
>>
>> This patch proposes to create a communication channel, as an unix
>> socket connection, for above requirements. Primary will listen on
>> the unix socket; secondary will connect this socket to talk.
>>
>> Three new APIs are added:
>>
>>    1. rte_eal_mp_action_register is used to register an action,
>>       indexed by a string; if the calling component wants to
>>       response the messages from the corresponding component in
>>       its primary process or secondary processes.
>>    2. rte_eal_mp_action_unregister is used to unregister the action
>>       if the calling component does not want to response the messages.
>>    3. rte_eal_mp_sendmsg is used to send a message.
> 
> I think we already have similar channel in librte_pdump().
> Also it seems like eal_vfio also has it's own socket to communicate between mp/sp.
> Could we probably make it generic - so same code (and socket) be used by all such  places.
> Konstantin
> 

Agreed, however looking at this, it's already a generic-enough solution, 
and other places could be fixed to use this in later releases. That 
said, i believe this particular part of the patchset should go in as a 
separate patchset and more design consideration and input from others.

-- 
Thanks,
Anatoly


More information about the dev mailing list