This commit introduces an (undocumented) option for dummy Interfaces to specify a dummy numa_id, to which the device belongs. It will be used to test the pmd threads in dpif-netdev.
Signed-off-by: Daniele Di Proietto <diproiet...@vmware.com> --- lib/netdev-dummy.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/lib/netdev-dummy.c b/lib/netdev-dummy.c index aa244b6..ecb6385 100644 --- a/lib/netdev-dummy.c +++ b/lib/netdev-dummy.c @@ -111,6 +111,7 @@ struct netdev_dummy { struct netdev_stats stats OVS_GUARDED; enum netdev_flags flags OVS_GUARDED; int ifindex OVS_GUARDED; + int numa_id OVS_GUARDED; struct dummy_packet_conn conn OVS_GUARDED; @@ -123,8 +124,9 @@ struct netdev_dummy { /* The following properties are for dummy-pmd and they cannot be changed * when a device is running, so we remember the request and update them * next time netdev_dummy_reconfigure() is called. */ - int requested_n_txq; - int requested_n_rxq; + int requested_n_txq OVS_GUARDED; + int requested_n_rxq OVS_GUARDED; + int requested_numa_id OVS_GUARDED; }; /* Max 'recv_queue_len' in struct netdev_dummy. */ @@ -671,6 +673,7 @@ netdev_dummy_construct(struct netdev *netdev_) netdev->ifindex = -EOPNOTSUPP; netdev->requested_n_rxq = netdev_->n_rxq; netdev->requested_n_txq = netdev_->n_txq; + netdev->numa_id = 0; dummy_packet_conn_init(&netdev->conn); @@ -818,7 +821,7 @@ netdev_dummy_set_config(struct netdev *netdev_, const struct smap *args) { struct netdev_dummy *netdev = netdev_dummy_cast(netdev_); const char *pcap; - int new_n_rxq; + int new_n_rxq, new_numa_id; ovs_mutex_lock(&netdev->mutex); netdev->ifindex = smap_get_int(args, "ifindex", -EOPNOTSUPP); @@ -855,8 +858,11 @@ netdev_dummy_set_config(struct netdev *netdev_, const struct smap *args) } new_n_rxq = MAX(smap_get_int(args, "n_rxq", netdev->requested_n_rxq), 1); - if (new_n_rxq != netdev->requested_n_rxq) { + new_numa_id = smap_get_int(args, "numa_id", 0); + if (new_n_rxq != netdev->requested_n_rxq + || new_numa_id != netdev->requested_numa_id) { netdev->requested_n_rxq = new_n_rxq; + netdev->requested_numa_id = new_numa_id; netdev_request_reconfigure(netdev_); } @@ -866,9 +872,16 @@ exit: } static int -netdev_dummy_get_numa_id(const struct netdev *netdev_ OVS_UNUSED) +netdev_dummy_get_numa_id(const struct netdev *netdev_) { - return 0; + struct netdev_dummy *netdev = netdev_dummy_cast(netdev_); + int numa_id; + + ovs_mutex_lock(&netdev->mutex); + numa_id = netdev->numa_id; + ovs_mutex_unlock(&netdev->mutex); + + return numa_id; } /* Requests the number of tx queues for the dummy PMD interface. */ @@ -901,6 +914,7 @@ netdev_dummy_reconfigure(struct netdev *netdev_) netdev_->n_txq = netdev->requested_n_txq; netdev_->n_rxq = netdev->requested_n_rxq; + netdev->numa_id = netdev->requested_numa_id; ovs_mutex_unlock(&netdev->mutex); return 0; -- 2.8.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev