From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Subject: [dpdk-dev] [PATCH 8/8] virtio: simplify the hardware structure
Date: Fri, 13 Jun 2014 18:06:25 -0700 [thread overview]
Message-ID: <20140614010930.106119615@networkplumber.org> (raw)
In-Reply-To: <20140614010617.902738763@networkplumber.org>
[-- Attachment #1: virtio-hw-simplify.patch --]
[-- Type: text/plain, Size: 3221 bytes --]
The host_features are never used after negotiation.
The PCI information is unused (and available in rte_pci if needed).
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
--- a/lib/librte_pmd_virtio/virtio_ethdev.c 2014-06-13 18:01:46.905019605 -0700
+++ b/lib/librte_pmd_virtio/virtio_ethdev.c 2014-06-13 18:02:16.605057212 -0700
@@ -559,7 +559,7 @@ virtio_get_hwaddr(struct virtio_hw *hw)
static void
virtio_negotiate_features(struct virtio_hw *hw)
{
- uint32_t guest_features, mask;
+ uint32_t host_features, mask;
mask = VIRTIO_NET_F_CTRL_RX | VIRTIO_NET_F_CTRL_VLAN;
mask |= VIRTIO_NET_F_CSUM | VIRTIO_NET_F_GUEST_CSUM;
@@ -578,20 +578,20 @@ virtio_negotiate_features(struct virtio_
mask |= VIRTIO_RING_F_INDIRECT_DESC;
/* Prepare guest_features: feature that driver wants to support */
- guest_features = VTNET_FEATURES & ~mask;
+ hw->guest_features = VTNET_FEATURES & ~mask;
PMD_INIT_LOG(DEBUG, "guest_features before negotiate = %x",
guest_features);
/* Read device(host) feature bits */
- hw->host_features = VIRTIO_READ_REG_4(hw, VIRTIO_PCI_HOST_FEATURES);
+ host_features = VIRTIO_READ_REG_4(hw, VIRTIO_PCI_HOST_FEATURES);
PMD_INIT_LOG(DEBUG, "host_features before negotiate = %x",
- hw->host_features);
+ host_features);
/*
* Negotiate features: Subset of device feature bits are written back
* guest feature bits.
*/
- hw->guest_features = vtpci_negotiate_features(hw, guest_features);
+ hw->guest_features = vtpci_negotiate_features(hw, host_features);
PMD_INIT_LOG(DEBUG, "features after negotiate = %x",
hw->guest_features);
}
@@ -730,8 +730,6 @@ eth_virtio_dev_init(__rte_unused struct
pci_dev = eth_dev->pci_dev;
- hw->device_id = pci_dev->id.device_id;
- hw->vendor_id = pci_dev->id.vendor_id;
#ifdef RTE_EXEC_ENV_LINUXAPP
{
char dirname[PATH_MAX];
--- a/lib/librte_pmd_virtio/virtio_pci.c 2014-06-13 18:01:46.905019605 -0700
+++ b/lib/librte_pmd_virtio/virtio_pci.c 2014-06-13 18:01:46.901019599 -0700
@@ -82,14 +82,14 @@ vtpci_write_dev_config(struct virtio_hw
}
uint32_t
-vtpci_negotiate_features(struct virtio_hw *hw, uint32_t guest_features)
+vtpci_negotiate_features(struct virtio_hw *hw, uint32_t host_features)
{
uint32_t features;
/*
* Limit negotiated features to what the driver, virtqueue, and
* host all support.
*/
- features = (hw->host_features) & guest_features;
+ features = host_features & hw->guest_features;
VIRTIO_WRITE_REG_4(hw, VIRTIO_PCI_GUEST_FEATURES, features);
return features;
--- a/lib/librte_pmd_virtio/virtio_pci.h 2014-06-13 18:01:46.905019605 -0700
+++ b/lib/librte_pmd_virtio/virtio_pci.h 2014-06-13 18:01:46.905019605 -0700
@@ -162,21 +162,13 @@ struct virtqueue;
#define VIRTIO_MAX_VIRTQUEUES 8
struct virtio_hw {
+ struct virtqueue *cvq;
uint32_t io_base;
- uint32_t host_features;
uint32_t guest_features;
- struct virtqueue *cvq;
-
- uint16_t vtnet_hdr_size;
-
uint32_t max_tx_queues;
uint32_t max_rx_queues;
- uint16_t device_id;
- uint16_t vendor_id;
- uint16_t subsystem_device_id;
- uint16_t subsystem_vendor_id;
- uint8_t revision_id;
+ uint16_t vtnet_hdr_size;
uint8_t mac_addr[ETHER_ADDR_LEN];
};
next prev parent reply other threads:[~2014-06-14 1:09 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-14 1:06 [dpdk-dev] [PATCH 0/8] virtio driver phase 2 Stephen Hemminger
2014-06-14 1:06 ` [dpdk-dev] [PATCH 1/8] virtio: maintain stats per queue Stephen Hemminger
2014-06-14 1:06 ` [dpdk-dev] [PATCH 2/8] virtio: dont double space log messages Stephen Hemminger
2014-06-14 1:06 ` [dpdk-dev] [PATCH 3/8] virtio: deinline some code Stephen Hemminger
2014-06-14 1:06 ` [dpdk-dev] [PATCH 4/8] virtio: check for transmit checksum config error Stephen Hemminger
2014-06-14 1:06 ` [dpdk-dev] [PATCH 5/8] virtio: check for ip checksum offload Stephen Hemminger
2014-06-14 1:06 ` [dpdk-dev] [PATCH 6/8] virtio: remove unused virtqueue name Stephen Hemminger
2014-06-14 1:06 ` [dpdk-dev] [PATCH 7/8] virtio: remove unused adapter_stopped field Stephen Hemminger
2014-06-14 1:06 ` Stephen Hemminger [this message]
2014-06-17 23:35 ` [dpdk-dev] [PATCH 0/8] virtio driver phase 2 Stephen Hemminger
2014-06-19 10:14 ` Carew, Alan
2014-06-20 13:34 ` Carew, Alan
2014-07-22 13:19 ` Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140614010930.106119615@networkplumber.org \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).