From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [148.163.129.52]) by dpdk.org (Postfix) with ESMTP id 55B561B4B0 for ; Thu, 7 Feb 2019 13:18:16 +0100 (CET) X-Virus-Scanned: Proofpoint Essentials engine Received: from webmail.solarflare.com (webmail.solarflare.com [12.187.104.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1-us3.ppe-hosted.com (Proofpoint Essentials ESMTP Server) with ESMTPS id 686FC600061 for ; Thu, 7 Feb 2019 12:18:15 +0000 (UTC) Received: from ocex03.SolarFlarecom.com (10.20.40.36) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Thu, 7 Feb 2019 04:18:10 -0800 Received: from opal.uk.solarflarecom.com (10.17.10.1) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1395.4 via Frontend Transport; Thu, 7 Feb 2019 04:18:10 -0800 Received: from ukv-loginhost.uk.solarflarecom.com (ukv-loginhost.uk.solarflarecom.com [10.17.10.39]) by opal.uk.solarflarecom.com (8.13.8/8.13.8) with ESMTP id x17CI9fM013284 for ; Thu, 7 Feb 2019 12:18:09 GMT Received: from ukv-loginhost.uk.solarflarecom.com (localhost [127.0.0.1]) by ukv-loginhost.uk.solarflarecom.com (Postfix) with ESMTP id 317631613EB for ; Thu, 7 Feb 2019 12:18:09 +0000 (GMT) From: Andrew Rybchenko To: Date: Thu, 7 Feb 2019 12:17:44 +0000 Message-ID: <1549541873-17403-22-git-send-email-arybchenko@solarflare.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1549541873-17403-1-git-send-email-arybchenko@solarflare.com> References: <1549541873-17403-1-git-send-email-arybchenko@solarflare.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-Product-Ver: SMEX-12.5.0.1300-8.5.1010-24412.006 X-TM-AS-Result: No-6.274000-4.000000-10 X-TMASE-MatchedRID: 8KqAZX9NEj5JI0Xw8qTX29bVO5cqfV4RXccelkX/ubB662jkTvVLlU8f Y4SH/55suYMRq2HC5hXijpjet3oGSGoifrpIp6QYDB+ErBr0bANKgIbix5+XxGJkJOQVCIpwJpy dtKGcwJzg8KMQOpnf1hyY12ilMLMM+L/XoupUTw5c/msUC5wFQYn4DdeD/uLNBm9f7S94IJyCv2 1ERZid9cF9H9ZT7pg4opcYHG4fpAe9F7NKcWMllW3NvezwBrVmv8yqWnJhUsGYh23xcUPEK6PFj JEFr+olwXCBO/GKkVqOhzOa6g8KrQk4mnyfHyGNUcwKSziUHLx4vCemPx8ZfpBS8kEyvSV4sJuw s5L5PbRDDKa3G4nrLQ== X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--6.274000-4.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.5.1010-24412.006 X-MDID: 1549541896-tXDmrJ3k6B4K Subject: [dpdk-dev] [PATCH 21/30] net/sfc: start to factor out multi-process shared data X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Feb 2019 12:18:16 -0000 sfc_adapter structure will become primary process only private data. Start to factor out shared data into dedicated structure which will become separate structure finally. Signed-off-by: Andrew Rybchenko --- drivers/net/sfc/sfc.h | 15 +++++++++++++-- drivers/net/sfc/sfc_debug.h | 9 +++++---- drivers/net/sfc/sfc_ethdev.c | 8 ++++++-- drivers/net/sfc/sfc_log.h | 13 +++++++------ drivers/net/sfc/sfc_mcdi.c | 2 +- 5 files changed, 32 insertions(+), 15 deletions(-) diff --git a/drivers/net/sfc/sfc.h b/drivers/net/sfc/sfc.h index 7e95170bc..766336f8c 100644 --- a/drivers/net/sfc/sfc.h +++ b/drivers/net/sfc/sfc.h @@ -174,8 +174,15 @@ struct sfc_rss { uint8_t key[EFX_RSS_KEY_SIZE]; }; +/* Adapter private data shared by primary and secondary processes */ +struct sfc_adapter_shared { + struct rte_pci_addr pci_addr; + uint16_t port_id; +}; + /* Adapter process private data */ struct sfc_adapter_priv { + struct sfc_adapter_shared *shared; const struct sfc_dp_rx *dp_rx; const struct sfc_dp_tx *dp_tx; uint32_t logtype_main; @@ -199,6 +206,12 @@ struct sfc_adapter { */ struct sfc_adapter_priv priv; + /* + * Temporary placeholder for multi-process shared data for + * transition. + */ + struct sfc_adapter_shared _shared; + /* * PMD setup and configuration is not thread safe. Since it is not * performance sensitive, it is better to guarantee thread-safety @@ -207,8 +220,6 @@ struct sfc_adapter { */ rte_spinlock_t lock; enum sfc_adapter_state state; - struct rte_pci_addr pci_addr; - uint16_t port_id; struct rte_eth_dev *eth_dev; struct rte_kvargs *kvargs; int socket_id; diff --git a/drivers/net/sfc/sfc_debug.h b/drivers/net/sfc/sfc_debug.h index 62f3937e8..ea1b43295 100644 --- a/drivers/net/sfc/sfc_debug.h +++ b/drivers/net/sfc/sfc_debug.h @@ -25,13 +25,14 @@ /* Log PMD message, automatically add prefix and \n */ #define sfc_panic(sa, fmt, args...) \ do { \ - const struct sfc_adapter *_sa = (sa); \ + const struct sfc_adapter_shared *_sas; \ \ + _sas = (sa)->priv.shared; \ rte_panic("sfc " PCI_PRI_FMT \ " #%" PRIu16 ": " fmt "\n", \ - _sa->pci_addr.domain, _sa->pci_addr.bus, \ - _sa->pci_addr.devid, _sa->pci_addr.function, \ - _sa->port_id, ##args); \ + _sas->pci_addr.domain, _sas->pci_addr.bus, \ + _sas->pci_addr.devid, _sas->pci_addr.function,\ + _sas->port_id, ##args); \ } while (0) #endif /* _SFC_DEBUG_H_ */ diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c index aa857ec74..88dbecd46 100644 --- a/drivers/net/sfc/sfc_ethdev.c +++ b/drivers/net/sfc/sfc_ethdev.c @@ -2023,6 +2023,7 @@ static int sfc_eth_dev_init(struct rte_eth_dev *dev) { struct sfc_adapter *sa = dev->data->dev_private; + struct sfc_adapter_shared *sas; struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev); uint32_t logtype_main; int rc; @@ -2035,6 +2036,9 @@ sfc_eth_dev_init(struct rte_eth_dev *dev) SFC_LOGTYPE_MAIN_STR, RTE_LOG_NOTICE); + sa->priv.shared = &sa->_shared; + sas = sa->priv.shared; + if (rte_eal_process_type() != RTE_PROC_PRIMARY) return -sfc_eth_dev_secondary_init(dev, logtype_main); @@ -2047,8 +2051,8 @@ sfc_eth_dev_init(struct rte_eth_dev *dev) dev->process_private = sa; /* Required for logging */ - sa->pci_addr = pci_dev->addr; - sa->port_id = dev->data->port_id; + sas->pci_addr = pci_dev->addr; + sas->port_id = dev->data->port_id; sa->priv.logtype_main = logtype_main; sa->eth_dev = dev; diff --git a/drivers/net/sfc/sfc_log.h b/drivers/net/sfc/sfc_log.h index 405cc2a26..97de9ae53 100644 --- a/drivers/net/sfc/sfc_log.h +++ b/drivers/net/sfc/sfc_log.h @@ -34,17 +34,18 @@ extern uint32_t sfc_logtype_driver; /* Log PMD message, automatically add prefix and \n */ #define SFC_LOG(sa, level, type, ...) \ do { \ - const struct sfc_adapter *__sa = (sa); \ + const struct sfc_adapter_shared *_sas; \ \ + _sas = (sa)->priv.shared; \ rte_log(level, type, \ RTE_FMT("PMD: sfc_efx " \ PCI_PRI_FMT " #%" PRIu16 \ ": " RTE_FMT_HEAD(__VA_ARGS__ ,) "\n", \ - __sa->pci_addr.domain, \ - __sa->pci_addr.bus, \ - __sa->pci_addr.devid, \ - __sa->pci_addr.function, \ - __sa->port_id, \ + _sas->pci_addr.domain, \ + _sas->pci_addr.bus, \ + _sas->pci_addr.devid, \ + _sas->pci_addr.function, \ + _sas->port_id, \ RTE_FMT_TAIL(__VA_ARGS__,))); \ } while (0) diff --git a/drivers/net/sfc/sfc_mcdi.c b/drivers/net/sfc/sfc_mcdi.c index e485e07d6..dede33688 100644 --- a/drivers/net/sfc/sfc_mcdi.c +++ b/drivers/net/sfc/sfc_mcdi.c @@ -256,7 +256,7 @@ sfc_mcdi_init(struct sfc_adapter *sa) if (rc != 0) goto fail_dma_alloc; - mcdi->logtype = sfc_register_logtype(&sa->pci_addr, + mcdi->logtype = sfc_register_logtype(&sa->priv.shared->pci_addr, SFC_LOGTYPE_MCDI_STR, RTE_LOG_NOTICE); -- 2.17.1