eal: support attach/detach shared device from secondary
authorQi Zhang <qi.z.zhang@intel.com>
Tue, 16 Oct 2018 00:16:29 +0000 (08:16 +0800)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 17 Oct 2018 08:16:18 +0000 (10:16 +0200)
commitac9e4a17370f19497d41da46bdb2d89bd307e59f
treec33e9a10c8d556a180704a57e4112e2471dd110f
parent244d5130719ca69038c2331e306c7d0934f93b28
eal: support attach/detach shared device from secondary

This patch cover the multi-process hotplug case when a device
attach/detach request be issued from a secondary process

device attach on secondary:
a) secondary send sync request to the primary.
b) primary receive the request and attach the new device if
   failed goto i).
c) primary forward attach sync request to all secondary.
d) secondary receive the request and attach the device and send a reply.
e) primary check the reply if all success goes to j).
f) primary send attach rollback sync request to all secondary.
g) secondary receive the request and detach the device and send a reply.
h) primary receive the reply and detach device as rollback action.
i) send attach fail to secondary as a reply of step a), goto k).
j) send attach success to secondary as a reply of step a).
k) secondary receive reply and return.

device detach on secondary:
a) secondary send sync request to the primary.
b) primary send detach sync request to all secondary.
c) secondary detach the device and send a reply.
d) primary check the reply if all success goes to g).
e) primary send detach rollback sync request to all secondary.
f) secondary receive the request and attach back device. goto h).
g) primary detach the device if success goto i), else goto e).
h) primary send detach fail to secondary as a reply of step a), goto j).
i) primary send detach success to secondary as a reply of step a).
j) secondary receive reply and return.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
lib/librte_eal/common/hotplug_mp.c