From owner-freebsd-arch@FreeBSD.ORG Thu May 8 15:51:16 2014 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 031DEE53 for ; Thu, 8 May 2014 15:51:16 +0000 (UTC) Received: from mail104.syd.optusnet.com.au (mail104.syd.optusnet.com.au [211.29.132.246]) by mx1.freebsd.org (Postfix) with ESMTP id B6BF7FF2 for ; Thu, 8 May 2014 15:51:15 +0000 (UTC) Received: from c122-106-147-133.carlnfd1.nsw.optusnet.com.au (c122-106-147-133.carlnfd1.nsw.optusnet.com.au [122.106.147.133]) by mail104.syd.optusnet.com.au (Postfix) with ESMTPS id A6333422C9E; Fri, 9 May 2014 01:51:13 +1000 (EST) Date: Fri, 9 May 2014 01:51:12 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= Subject: Re: RFC: PCI SR-IOV Driver interface In-Reply-To: <86r444wl9q.fsf@nine.des.no> Message-ID: <20140509013938.H3451@besplex.bde.org> References: <20140507141652.K1349@besplex.bde.org> <86r444wl9q.fsf@nine.des.no> MIME-Version: 1.0 X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=QIpRGG7L c=1 sm=1 tr=0 a=7NqvjVvQucbO2RlWB8PEog==:117 a=PO7r1zJSAAAA:8 a=dNjAHJjcj_oA:10 a=JzwRw_2MAAAA:8 a=nlC_4_pT8q9DhB4Ho9EA:9 a=cz2ZRIgtxKwA:10 a=wJWlkF7cXJYA:10 a=RLYB6GcqJLkgtVKBTukA:9 a=45ClL6m2LaAA:10 Content-Type: TEXT/PLAIN; charset=X-UNKNOWN; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE X-Content-Filtered-By: Mailman/MimeDel 2.1.18 Cc: Ryan Stone , "freebsd-arch@freebsd.org" X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 May 2014 15:51:16 -0000 On Thu, 8 May 2014, [utf-8] Dag-Erling Sm=C3=B8rgrav wrote: > Bruce Evans writes: >> Hrmph. style(9) explicitly forbids typedefs like nvlist_t. > > ...as does C, which reserves *_t, IIRC. Although I'm guilty of abusing > that namespace myself. No, _t is not reserved in C, and is reserved for the implementation in POSIX. nv is an implementation. style(9) says not to use _t for typedefs, but that is for applications. Kernel code can be considered as both an implementation and an application. I normally consider it as an application, but wouldn't want to disallow using _t in it. Bruce From owner-freebsd-arch@FreeBSD.ORG Fri May 9 03:43:41 2014 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 48BCB156; Fri, 9 May 2014 03:43:41 +0000 (UTC) Received: from mail-qg0-x22a.google.com (mail-qg0-x22a.google.com [IPv6:2607:f8b0:400d:c04::22a]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C9E2FBAE; Fri, 9 May 2014 03:43:40 +0000 (UTC) Received: by mail-qg0-f42.google.com with SMTP id q107so3956682qgd.1 for ; Thu, 08 May 2014 20:43:40 -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=ATMJLviVwmwdf45KoU4fojsPVik27wgy2hx46+60Obk=; b=d1vp0gGXFhdI7ZbFC8yUVaj4wrEKfeVJkOpRFLiF3YJZjLk+7IhrOEZg2bMbSt+uUc /Et1o/sy0BVM6CKmeUyDJfxfyhXP9EKs+usogHnL50Md4+cWy252POZHXPqpRvNR+y/S gCc4ispm8b6U8ciBw8AparMJiD0Ei8DDAE6fFw/1+XWI7gf87wVVFu2kQ2V8+0dm/ZL6 xypXhCkx9YMHDMW4G1wPjExGAJ/yCJN5e+4xqDT3bX9uKV428XrCkHjQ6O2IiV0AgHJx u5FWUAWf67cXclCh/ueshs+CsQEHrQmGR4uLiQNbWaefL8h90uj+YsgKSjJQ82MGAO6S 2A1Q== MIME-Version: 1.0 X-Received: by 10.140.96.51 with SMTP id j48mr10396376qge.24.1399607020007; Thu, 08 May 2014 20:43:40 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.224.191.201 with HTTP; Thu, 8 May 2014 20:43:39 -0700 (PDT) In-Reply-To: References: <530508B7.7060102@FreeBSD.org> <201402191602.54465.jhb@freebsd.org> <201402201417.34148.jhb@freebsd.org> Date: Thu, 8 May 2014 20:43:39 -0700 X-Google-Sender-Auth: hSGWD_R_1S6yPq0xpmFKcVndWRI Message-ID: Subject: Re: [rfc] bind per-cpu timeout threads to each CPU From: Adrian Chadd To: John Baldwin Content-Type: text/plain; charset=UTF-8 Cc: Alexander Motin , freebsd-current , "freebsd-arch@freebsd.org" X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 May 2014 03:43:41 -0000 Hi, I'd like to revisit this now. I'd like to commit this stuff as-is and then take some time to revisit the catch-all softclock from cpu0 swi. It's more complicated than it needs to be as it just assumes timeout_cpu == cpuid of cpu 0. So there's no easy way to slide in a new catch-all softclock. Once that's done I'd like to then experiment with turning on the pcpu tcp timer stuff and gluing that into the RSS CPU ID / netisr ID stuff. Thanks, -a On 20 February 2014 13:48, Adrian Chadd wrote: > On 20 February 2014 11:17, John Baldwin wrote: > >> (A further variant of this would be to divorce cpu0's swi from the >> catch-all softclock and let the catch-all softclock float, but bind >> all the per-cpu swis) > > I like this idea. If something (eg per-CPU TCP timers, if it's turned > on) makes a very specific decision about the CPU then it should be > fixed. Otherwise a lot of the underlying assumptions for things like > RSS just aren't guaranteed to hold. > > It could also perhaps extend to some abstract pool of CPUs later, if > we wanted to do things like one flowing swi per socket or whatnot when > we start booting on 1024 core boxes... > > -a