[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