From owner-freebsd-arch@FreeBSD.ORG  Sun May 22 00:49:29 2005
Return-Path: <owner-freebsd-arch@FreeBSD.ORG>
X-Original-To: freebsd-arch@freebsd.org
Delivered-To: freebsd-arch@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 79B2816A41C
	for <freebsd-arch@freebsd.org>; Sun, 22 May 2005 00:49:29 +0000 (GMT)
	(envelope-from cperciva@freebsd.org)
Received: from pd2mo2so.prod.shaw.ca (shawidc-mo1.cg.shawcable.net
	[24.71.223.10])	by mx1.FreeBSD.org (Postfix) with ESMTP id 2BEA843D1F
	for <freebsd-arch@freebsd.org>; Sun, 22 May 2005 00:49:28 +0000 (GMT)
	(envelope-from cperciva@freebsd.org)
Received: from pd3mr3so.prod.shaw.ca
 (pd3mr3so-qfe3.prod.shaw.ca [10.0.141.179]) by l-daemon
 (Sun ONE Messaging Server 6.0 HotFix 1.01 (built Mar 15 2004))
 with ESMTP id <0IGV00JDF8YGIIF0@l-daemon> for freebsd-arch@freebsd.org; Sat,
 21 May 2005 18:49:28 -0600 (MDT)
Received: from pn2ml7so.prod.shaw.ca ([10.0.121.151])
 by pd3mr3so.prod.shaw.ca (Sun ONE Messaging Server 6.0 HotFix 1.01 (built Mar
 15 2004)) with ESMTP id <0IGV0018R8YGV700@pd3mr3so.prod.shaw.ca> for
 freebsd-arch@freebsd.org; Sat, 21 May 2005 18:49:28 -0600 (MDT)
Received: from [192.168.0.60]
 (S0106006067227a4a.vc.shawcable.net [24.87.209.6]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.18 (built Jul 28 2003))
 with ESMTP id <0IGV0029N8YFXX@l-daemon> for freebsd-arch@freebsd.org; Sat,
 21 May 2005 18:49:28 -0600 (MDT)
Date: Sat, 21 May 2005 17:49:20 -0700
From: Colin Percival <cperciva@freebsd.org>
In-reply-to: <aef05e1ae6104223181ad3cf03e11390@xcllnt.net>
To: Marcel Moolenaar <marcel@xcllnt.net>
Message-id: <428FD710.4060200@freebsd.org>
MIME-version: 1.0
Content-type: text/plain; charset=ISO-8859-1
Content-transfer-encoding: 7bit
X-Accept-Language: en-us, en
X-Enigmail-Version: 0.91.0.0
References: <428FC00B.3080909@freebsd.org>
 <aef05e1ae6104223181ad3cf03e11390@xcllnt.net>
User-Agent: Mozilla Thunderbird 1.0.2 (X11/20050406)
cc: freebsd-arch@freebsd.org
Subject: Re: Scheduler fixes for hyperthreading
X-BeenThere: freebsd-arch@freebsd.org
X-Mailman-Version: 2.1.1
Precedence: list
List-Id: Discussion related to FreeBSD architecture
	<freebsd-arch.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-arch>,
	<mailto:freebsd-arch-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-arch>
List-Post: <mailto:freebsd-arch@freebsd.org>
List-Help: <mailto:freebsd-arch-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-arch>,
	<mailto:freebsd-arch-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 22 May 2005 00:49:29 -0000

Marcel Moolenaar wrote:
> On May 21, 2005, at 4:11 PM, Colin Percival wrote:
>>   The following must be done before hyperthreading is re-enabled:
>> [snip]
> 
> Maybe it's a better idea to describe the problem in much more
> detail, rather than dictate what you want someone else to do?
> A pointer to where the problem is described/discussed would
> do.

The problem is described in my paper "Cache missing for fun and profit":
http://www.daemonology.net/papers/htt.pdf

Put simply, threads which share a processor core can monitor each others'
memory access patterns, so we need to ensure that such co-scheduling never
happens between threads which have different privileges.

The reason I cut through to explaining what needed to be done is that
I discussed this at length with several people from the FreeBSD security
team before and during BSDCan; but these discussions were obviously not
public, so I can't give a reference to them.

Colin Percival