From owner-freebsd-hackers@FreeBSD.ORG Sat Mar 28 18:23:57 2015 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 15653533 for ; Sat, 28 Mar 2015 18:23:57 +0000 (UTC) Received: from mail-ie0-x22b.google.com (mail-ie0-x22b.google.com [IPv6:2607:f8b0:4001:c03::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CCD58391 for ; Sat, 28 Mar 2015 18:23:56 +0000 (UTC) Received: by iecvj10 with SMTP id vj10so91778074iec.0 for ; Sat, 28 Mar 2015 11:23:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=n6yIG4ueYCfBXMlJy3UKQra5AxvheW/OA1hicM4fcg8=; b=dFHpk6dhBM/xojIxpxM4T6wTZ6QgH1tijauXzcJ3TbPt+c0SxXjLUx6r5dFAyFobqM TVIitqKgqyeQkkW0fQu41EKBgaQ9Wa6OjVGeK4gSw1K1I6z15QgK+ITrtmeJWtxx2441 npz5+FlfExc/AEpQMrvXOSt6PD1KaoHsc+kL7gyi9VM2muy490DJOsDCTqSDoXoEsqVQ 9xQubXTth3SQEbVwpDq2y97bx4OHQO4l/pbp9T9ARNNbzWDhwBKzlZjSmwPAFDQKCsTz oVJVGBUD/R0hmbEHTPqOvsjp/x2CmQNbtxNPgOG4QQblPuhsFgB4QisMWUcGmTXi1Mld ZR1Q== MIME-Version: 1.0 X-Received: by 10.107.39.72 with SMTP id n69mr22501581ion.8.1427567036073; Sat, 28 Mar 2015 11:23:56 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.36.17.194 with HTTP; Sat, 28 Mar 2015 11:23:56 -0700 (PDT) In-Reply-To: <20150328181026.GB23643@zxy.spb.ru> References: <20150328112035.GZ23643@zxy.spb.ru> <20150328154031.GA23643@zxy.spb.ru> <20150328181026.GB23643@zxy.spb.ru> Date: Sat, 28 Mar 2015 11:23:56 -0700 X-Google-Sender-Auth: xMd557BZ8tuxEoHLMVSoU0yg_Eo Message-ID: Subject: Re: irq cpu binding From: Adrian Chadd To: Slawa Olhovchenkov Content-Type: text/plain; charset=UTF-8 Cc: "freebsd-hackers@freebsd.org" X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Mar 2015 18:23:57 -0000 Ah, I think that's because the taskqueues in the driver for deferred handling aren't also being pinned. I've talked to John about this - the problem is that all the taskqueues for all the drivers run under one kernel process. Find out their threadids and pin them too. Eg: # procstat -ta | grep em0 0 100024 kernel em0 que -1 8 sleep - 0 100025 kernel em0 txq -1 8 sleep - # vmstat -ia | grep em irq256: em0 68465 1 # cpuset -g -x 256 irq 256 mask: 0, 1 # cpuset -g -t 100024 tid 100024 mask: 0, 1 # cpuset -g -t 100025 tid 100025 mask: 0, 1 So you'd have to manually do that - there's no generic interface at the moment to be able to ask a device driver to re-mask its taskqueue thread(s) for a given queue and rewire its interrupt(s) for that queue. (That would be a nice smallish project to prototype, btw.) -adrian