From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f50.google.com (mail-wm0-f50.google.com [74.125.82.50]) by dpdk.org (Postfix) with ESMTP id 1FB6956B7 for ; Mon, 15 Feb 2016 14:24:36 +0100 (CET) Received: by mail-wm0-f50.google.com with SMTP id c200so113134939wme.0 for ; Mon, 15 Feb 2016 05:24:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=hraFeh6FJU+D8r05Uol3jLHwSqhsgqLXlrPg+y9OC18=; b=WjDnVdbKeA5a0PcEW7f8Tpl+BEmUU52/7Wuhdv7CIQ1eC4wgfIvaZlHomF9F1XixUX xc0kogf2UleyhnMzI4c+/NCE+a/Jt5FdnFkdO7C14UmgQzBh17cqzHiNzQF1G3jAiMKD SvLH6Yd1w0IDpYk1ELQ5FTX8O8BQvkQuZEJMhWdue+pJGudXJcnqE2Hd6Zk2+ECsIOvf BPZ0eYaQdpft//alHifI2fThVCeAGoRW+Ea6lB3/o6O9cvPTuBR28M6AhmmGi4Ii15gg iPj7kL7ZypC8I0f+O+XWkLYOj0n8aDbjc/KC2AdDK7HhR044SrsIQ4BEJhHHWeRXzC6c drGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=hraFeh6FJU+D8r05Uol3jLHwSqhsgqLXlrPg+y9OC18=; b=DQFhA+sB6xG113AQVKP80BnbD30WhMz15AD7SObSwUfRs5HSWLo5iPL/Sk1TMIWOHO ycQ+1D1TgS6boUn11ZifmPICbZAE4ryXlF65pD4RGWgLbUDQa4bVYpQWjQzB2cAQ40ea V8NB9xJ2EL1ZTsvzPANp2OHWfENHed8BmULkP+fvs4NbFlmDgvZCIJnYf2pZFoGmx+bQ RGMt7arBGfDGQKM+HJmckubYM9RUl9ZyoDlY+9CaEBo5uNiDBOpsKNZg9yMnz9TNrCrc PCNxxoWGkwIY1TkM8FpBvD6fob6RLV2o0Uk9EG39dKqx04uQ7LtFTsKRkSinKqDCBQCQ Az6w== X-Gm-Message-State: AG10YOQj68b9T4Kiq7khDzHH0wPf35Iluo4hCCnBipmpZ78/f+hdx7IuAj/Uo5YFap+L05+F X-Received: by 10.28.194.68 with SMTP id s65mr11976739wmf.65.1455542675979; Mon, 15 Feb 2016 05:24:35 -0800 (PST) Received: from gloops.dev.6wind.com (144.77.126.78.rev.sfr.net. [78.126.77.144]) by smtp.gmail.com with ESMTPSA id q75sm15784652wmd.6.2016.02.15.05.24.34 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 15 Feb 2016 05:24:35 -0800 (PST) From: David Marchand To: dev@dpdk.org Date: Mon, 15 Feb 2016 14:24:22 +0100 Message-Id: <1455542666-28895-1-git-send-email-david.marchand@6wind.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1454831317-4542-1-git-send-email-david.marchand@6wind.com> References: <1454831317-4542-1-git-send-email-david.marchand@6wind.com> Subject: [dpdk-dev] [PATCH v3 0/4] rework ioport access for virtio X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Feb 2016 13:24:36 -0000 Introduce a new pci ioport api in eal to mask all arch / kernel driver specifics. - rte_eal_pci_ioport_map is responsible for initialising an rte_pci_ioport object that is used in subsequent calls, this function must be tweaked per architecture and per kernel driver, - rte_eal_pci_ioport_read / rte_eal_pci_ioport_write uses a rte_pci_ioport object to read / write those resources, - rte_eal_pci_ioport_unmap releases resources used by a rte_pci_ioport object if necessary. There is still some more work to ensure intr handle are properly initialized and released when used in conjonction with rte_eal_map_device() api calls. BSD code has been neither run nor compiled, please can someone confirm I did not break too much stuff ? virtio legacy code has been updated accordingly. With this, virtio code should be ready for other archs now. So in the end, all that is missing on linux is some vfio update for support of all architectures that have vfio. Changes since v2: - rebased on HEAD - fixed a remaining reference to rte_ioport_t in comment - fixed virtio driver for bsd Changes since v1: - dropped rte_ioport and removed the arch headers, if performance is an issue, we will see how to enhance this in later patches Regards, -- David Marchand David Marchand (4): virtio/bsd: fix typo virtio: fix incorrect check when mapping pci resources eal: introduce pci ioport api virtio: use pci ioport api drivers/net/virtio/virtio_pci.c | 358 ++++-------------------- drivers/net/virtio/virtio_pci.h | 38 +-- lib/librte_eal/bsdapp/eal/eal_pci.c | 135 +++++++++ lib/librte_eal/bsdapp/eal/rte_eal_version.map | 4 + lib/librte_eal/common/include/rte_pci.h | 65 +++++ lib/librte_eal/linuxapp/eal/eal_pci.c | 170 +++++++++++ lib/librte_eal/linuxapp/eal/eal_pci_init.h | 16 ++ lib/librte_eal/linuxapp/eal/eal_pci_uio.c | 132 ++++++++- lib/librte_eal/linuxapp/eal/eal_pci_vfio.c | 37 +++ lib/librte_eal/linuxapp/eal/rte_eal_version.map | 4 + 10 files changed, 620 insertions(+), 339 deletions(-) -- 1.9.1