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.
<...>

Reply via email to