From owner-freebsd-hackers@FreeBSD.ORG Sat May 24 04:22:44 2014 Return-Path: Delivered-To: freebsd-hackers@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 A4681296 for ; Sat, 24 May 2014 04:22:44 +0000 (UTC) Received: from h2.funkthat.com (gate2.funkthat.com [208.87.223.18]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "funkthat.com", Issuer "funkthat.com" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 6818726D7 for ; Sat, 24 May 2014 04:22:44 +0000 (UTC) Received: from h2.funkthat.com (localhost [127.0.0.1]) by h2.funkthat.com (8.14.3/8.14.3) with ESMTP id s4O4MgqT031132 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 23 May 2014 21:22:42 -0700 (PDT) (envelope-from jmg@h2.funkthat.com) Received: (from jmg@localhost) by h2.funkthat.com (8.14.3/8.14.3/Submit) id s4O4Mgsl031130; Fri, 23 May 2014 21:22:42 -0700 (PDT) (envelope-from jmg) Date: Fri, 23 May 2014 21:22:42 -0700 From: John-Mark Gurney To: "Littlefield, Tyler" Subject: Re: no SSE in kernel build? Message-ID: <20140524042242.GA43976@funkthat.com> Mail-Followup-To: "Littlefield, Tyler" , "freebsd-hackers@freebsd.org" References: <537FFE81.2080504@tysdomain.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <537FFE81.2080504@tysdomain.com> User-Agent: Mutt/1.4.2.3i X-Operating-System: FreeBSD 7.2-RELEASE i386 X-PGP-Fingerprint: 54BA 873B 6515 3F10 9E88 9322 9CB1 8F74 6D3F A396 X-Files: The truth is out there X-URL: http://resnet.uoregon.edu/~gurney_j/ X-Resume: http://resnet.uoregon.edu/~gurney_j/resume.html X-TipJar: bitcoin:13Qmb6AeTgQecazTWph4XasEsP7nGRbAPE X-to-the-FBI-CIA-and-NSA: HI! HOW YA DOIN? can i haz chizburger? X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.2.2 (h2.funkthat.com [127.0.0.1]); Fri, 23 May 2014 21:22:43 -0700 (PDT) Cc: "freebsd-hackers@freebsd.org" X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 24 May 2014 04:22:44 -0000 Littlefield, Tyler wrote this message on Fri, May 23, 2014 at 22:05 -0400: > Hello all: > I had a quick question I was hoping someone could explain for me. I was > looking at some of the kernel source, just trying to familiarize myself > with it. I notice that SSE, MMX and other such instruction sets are > explicitly disabled during kernel compilation--is there any particular > reason why? I'm sure it's pretty obvious, but my knowledge of kernel > workings is pretty limited. I've seen functions like memset/memcpy that > make use of SSE and are incredibly fast; perhaps this could be useful on > architectures that support it? The issue is that saving the entire FPU context on entry to the kernel would be expensive even though most syscalls might not use the FPU at all... There are functions that enable the use of the FPU in your thread... One example is the aesni module, as the AES-NI instructions use the FPU/MMX registers... I believe there is a screen saver or two that also makes use of the FPU... > Finally, I'm interested in doing some performance work on the > kernel--perhaps to help out somewhere. Is there anything at the kernel > level a beginner could help out with? Where else might my help be > useful? I know -some-, as I've worked a bit on a barebones OS, but I'm > no means a kernel hacker. Have you familarized yourself w/ pmcstat/kcachegrind and dtrace? As for specific areas, look on the mailing list for parts the people think don't perform very well, and investigate... There are lots of different causes for performance issues from too many locking operations, to bad algorithm choice, to bad use of large mallocs and I'm sure there are other common issues in the kernel... -- John-Mark Gurney Voice: +1 415 225 5579 "All that I will do, has been done, All that I have, has not."