On 05/22/2017 02:29 PM, Ferruh Yigit wrote:
On 5/18/2017 3:00 PM, Andrew Rybchenko wrote:
Signed-off-by: Andrew Rybchenko <arybche...@solarflare.com>
Reviewed-by: Andy Moreton <amore...@solarflare.com>
<...>
Linux VFIO = Y
diff --git a/drivers/net/sfc/sfc.h b/drivers/net/sfc/sfc.h
index 772a713..007ed24 100644
--- a/drivers/net/sfc/sfc.h
+++ b/drivers/net/sfc/sfc.h
@@ -225,7 +225,18 @@ struct sfc_adapter {
uint8_t rss_key[SFC_RSS_KEY_SIZE];
#endif
+ /*
+ * Shared memory copy of the Rx datapath name to be used by
+ * the secondary process to find Rx datapath to be used.
+ */
+ char *dp_rx_name;
Why not use sa->dp_rx->dp.name to find the dp_rx? That variable should
be shared between processes already?
sa->dp_rx is a pointer to .data section (sfc_efx_rx or sfc_ef10_rx)
which is (may be) different in primary and secondary processes.
<...>
diff --git a/drivers/net/sfc/sfc_ef10_rx.c b/drivers/net/sfc/sfc_ef10_rx.c
index 1484bab..60812cb 100644
--- a/drivers/net/sfc/sfc_ef10_rx.c
+++ b/drivers/net/sfc/sfc_ef10_rx.c
@@ -699,7 +699,7 @@ struct sfc_dp_rx sfc_ef10_rx = {
.type = SFC_DP_RX,
.hw_fw_caps = SFC_DP_HW_FW_CAP_EF10,
},
- .features = 0,
+ .features = SFC_DP_RX_FEAT_MULTI_PROCESS,
Why this flag is needed, I mean why multi process support is not always
enabled by default?
libefx-based datapath intensively uses function pointers (primary
process function pointers stored in data structures). So, it does not
work in multi process.
<...>