From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-vk0-f67.google.com (mail-vk0-f67.google.com [209.85.213.67]) by dpdk.org (Postfix) with ESMTP id 27F68C2FC for ; Wed, 8 Jun 2016 21:48:45 +0200 (CEST) Received: by mail-vk0-f67.google.com with SMTP id x7so3030103vkf.3 for ; Wed, 08 Jun 2016 12:48:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=vDsgHfpu9zkYnncvBmIMasYldIRZPp8vJ6P/xhGLViU=; b=W+sNy/zYA06sqiokpGWBG+CkMAp8pJvzdWFcobwTiNFFIc0koTEQrQbISrmrlM8USo 1TVHSWF+3BiclDrX/o+DMP682hTblnlouluqHn6p6SUDN5o3qVJdyUl4g/CicAcmPznS 9BwKJxC7GTkAw1dT/xbD39k5yFUcA/T9qSlhq6lQ9hYhM+9Dw+J3zvb/2j+cjs9NwhPZ jm2Zvo9I9hmjf4YYPXg4ahxPaEe9Ify7BrvaiklGVfD6Y2Ed7+pe0GU7ao5y6ZzO4x9S bKgW9ka3foZlzSjSllboUVMJrpj5NIxCRk3btIev7vAzOlwW7L6ty4DVdtPmzpJNDZBK heRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=vDsgHfpu9zkYnncvBmIMasYldIRZPp8vJ6P/xhGLViU=; b=kZUn7qafT9a/sS/xMAZZCH0NwGHSn6S9mE/rRk7uKiPz2/UPyD1YVNs3ltrX1P0UD4 oHiZYe33R4OSZhM/utojoruyY9ixgce6VwVb3n+xtzOtzQWEAPzOI42+tjrYuBh0d66O B+RZxFoAd0GDyg0wCSq8LnUHrw3r6X7Ap3sjMOzEGJP0BNVfWxjzCvbMHf2h6W4cIiVD TAXNrD+YwyOJvH4R2JimNj7jCUA8XkclQfJj/USrOWq/nbyz44V8CgEp1B16+IVdT272 XiI0YiOx/xKmcbeZAjy1UrDaBYWMSX2yP4/3e/m8J4yL4t4bLXtmDAOals1RWfeICY8W HEBA== X-Gm-Message-State: ALyK8tKt8dXMGCTcFNp9Ws6BMfu2H35oBOg0QRZSXGMV9Y3AyjzX841RqLw3i+rwDt8EXq3VN8m8PPlCD/vC7Q== X-Received: by 10.176.2.112 with SMTP id 103mr3172533uas.41.1465415324602; Wed, 08 Jun 2016 12:48:44 -0700 (PDT) MIME-Version: 1.0 Received: by 10.159.37.183 with HTTP; Wed, 8 Jun 2016 12:48:43 -0700 (PDT) In-Reply-To: <57587289.7050805@intel.com> References: <57587289.7050805@intel.com> From: Cliff Burdick Date: Wed, 8 Jun 2016 12:48:43 -0700 Message-ID: To: Ferruh Yigit Cc: users Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-users] KNI Threads/Cores X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jun 2016 19:48:45 -0000 Hi Yigit, when you say "I guess it's possible" is that not common? I would think that the amount of traffic people would want to forward to Linux for normal DPDK applications would be quite small. If you had to have a core dedicated for KNI on each interface that would get very wasteful. On Wed, Jun 8, 2016 at 12:31 PM, Ferruh Yigit wrote: > On 6/8/2016 5:30 PM, Cliff Burdick wrote: > > Hi, I have an application with two sockets where each core I'm planning > to > > transmit and receive a fairly large amount of traffic per core. Each core > > right now handles a single queue of either TX or RX of a given port. > Across > > all the cores, I may be processing up to 12 ports. I also need to handle > > things like ARP and ping, so I'm going to add in the KNI driver to handle > > that. Since the amount of traffic I'm expecting that I'll need to forward > > to Linux is very small, it seems like I should be able to dedicate one > > lcore per socket to handle this functionality and have the dataplane > cores > > pass the traffic off to this core using rte_kni_tx_burst(). > > > > My question is, first of all, is this possible? It seems like I can > > configure the KNI driver to start in "single thread" mode. From that > point, > > I want to initialize one KNI device for each port, and have each kernel > > lcore on each processor handle that traffic. I believe if I call > > rte_kni_alloc with core_id set to the kernel lcore for each device, then > in > > the end I'll have something like 6 KNI devices on socket one being > handled > > by lcore 0, and 6 KNI devices on socket 2 being handled by lcore 31 as an > > example. Then my threads that are handling the dataplane tx/rx can simply > > be passed a pointer to their respective rte_kni device. Does this sound > > correct? > > If rte_kni module used "single thread" mode, kernel core_id is not used > at all. For single thread mode, a single thread created, this is used to > for all kni devices and not able to pin to any specific lcore. > > For what you have described, first need to insert module with > kthread_mode=multiple param. This will create a kernel thread per kni > interface. But I guess it is possible to provide same > rte_kni_conf->core_id for some of them, and yes rte_kni_conf->force_pin > is required, otherwise core_id is not useful. According your sample, > first 6 kni devices will have core_id value 0, and other 6 kni devices > will have core_id value 31, with all have force_bind set. This will > create 12 kernel threads, will bind 6 of them to core 0 and other 6 to > core 31. > > > > > Also, the sample says the core affinity needs to be set using taskset. Is > > that already taken care of with conf.core_id in rte_kni_alloc or do I > still > > need to set it? > > > > Thanks > > > >