From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi0-f44.google.com (mail-oi0-f44.google.com [209.85.218.44]) by dpdk.org (Postfix) with ESMTP id B02696A96 for ; Mon, 20 Oct 2014 16:32:54 +0200 (CEST) Received: by mail-oi0-f44.google.com with SMTP id x69so3781763oia.31 for ; Mon, 20 Oct 2014 07:41:05 -0700 (PDT) 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:date :message-id:subject:from:to:cc:content-type; bh=c3z8fUhsW0bWKDnv+LhVWiOeAjveaH+XD83UFWl58GQ=; b=efLyqgXhDsOIXpM0YI9UPFzvRYxZ5HhCUL9Qm74JwIGnnyFZk+kEqkvaS7G8v91LaM wd5neJq8UvnIQroRBrfREG4vvOyh6oRP/AFp299J8lmQD2TtD81FeOc9GgVDY1Lw2PXQ fuh/YNn+72JoYgXPyxTVc6GLc597I73jcd7iR8Tvng93MXCliKVwFK+tb2uRtXds8WWx SVzbYqrRt0WMSzk9dsVBmjb5NubO/c7Bmme3DmmSymmL2y/YB5KmTpr2akbqjj0Z2x9e tD/j/RKo5ltdsxTvSWTiMnQnKnAgcO2+zsPOj1CvGtcC9egK/grjtv5UuPskw5wxXD72 1ZbA== X-Gm-Message-State: ALoCoQnXSUCf9A9ZCnJ/YN0g/eNjf6OCjCXDLUFSOUkAtyfILAks7Fu0j9Ii+Rpmlriofd8cIpbz MIME-Version: 1.0 X-Received: by 10.202.174.76 with SMTP id x73mr22476441oie.12.1413816065685; Mon, 20 Oct 2014 07:41:05 -0700 (PDT) Received: by 10.202.106.79 with HTTP; Mon, 20 Oct 2014 07:41:05 -0700 (PDT) In-Reply-To: <20141018173832.GD16406@mhcomputing.net> References: <20141018173832.GD16406@mhcomputing.net> Date: Mon, 20 Oct 2014 10:41:05 -0400 Message-ID: From: Kamraan Nasim To: Matthew Hall Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: dev@dpdk.org Subject: Re: [dpdk-dev] IPC/message passing between DPDK application and non-DPDK userspace application 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, 20 Oct 2014 14:32:55 -0000 Thank you Matthew. On closer inspection, I see that DPDK is simply using pthreads and pthread_get/set_affinity() to bind to particular cores(as specified in coremask) so no real magic there as you said... Looking at the load_balancer app for inspiration. --Kam On Sat, Oct 18, 2014 at 1:38 PM, Matthew Hall wrote: > On Fri, Oct 17, 2014 at 10:14:50PM -0400, Kamraan Nasim wrote: > > I have a DPI daemon running in userspace which uses libpcap for packet RX > > that I would like to replace with DPDK ethernet PMD. However it is not > > feasible to convert the entire application to run within the DPDK > framework > > which is why I would like to split packet RX to use DPDK and have my > > applications higher order functions continue using Linux pthread. > > The DPDK's lcore threads are just Linux pthreads bound onto specific cores. > They aren't doing any secret stuff there really. > > So you could configure the DPDK to do stuff on some cores, and do your own > stuff on other cores using the DPDK's "coremask" setting to say which > cores it > should launch itself on. > > > Is it possible to exchange data between DPDK processes and regular > > userspace processes via some shared mem or IPC mechanism? I am not sure > if > > the SW ring buffers that DPDK provides can be used in this context? > > You can put extra threads in DPDK processes... the DPDK timer does this for > example. Or you can pass stuff around... they have some example apps which > have a master app and slave apps as separate Linux processes which can > exchange data using the rings. > > > Please let me know if others have come across this. Any help from the > DPDK > > community would be greatly appreciated :) > > Yes, check through the various sample apps and see if there's something you > can borrow from them. Good luck! > > Matthew. >