From owner-freebsd-hackers@FreeBSD.ORG Tue May 29 20:08:24 2012 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 77B75106566C; Tue, 29 May 2012 20:08:24 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pz0-f54.google.com (mail-pz0-f54.google.com [209.85.210.54]) by mx1.freebsd.org (Postfix) with ESMTP id 48BC78FC18; Tue, 29 May 2012 20:08:24 +0000 (UTC) Received: by dadv36 with SMTP id v36so6152299dad.13 for ; Tue, 29 May 2012 13:08:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; bh=SVTqjfinZA/WF1kSabt/HuWRzL04RXBKe8uYSlaZZw0=; b=VKgb1Lnt92R3M992ag41Bc28EdZ+PKL8Fs6MmBxlqla+a/3LliwYU5hFBdLLMRhXn0 DBNLY3x+Zm9XDRrKo7WI31Bm+pGzmB/EECBgypQajkBzWXuTIY6d+U5MUiO8CK84/gOQ dYPswJwIULa7aRs5VQ6Qi29ViO0SnIQKLrqm2VTgJTq1QT5ttgewHyE7exwseMClR24z ECd4lyUq2An7K6n2G8l1bEh1Dydh3/JbrSsxVFtXrUAOHFKzViJ3VSnwfOxeYdBXvhoS Kr5xKWVv/rbz5XzZPyxgG+4so5ZE5FtAvtR4r5X6QFd+KjGO1Y5I5ITBqEA8pr+cUlV+ Hknw== MIME-Version: 1.0 Received: by 10.68.211.170 with SMTP id nd10mr17472569pbc.68.1338322103861; Tue, 29 May 2012 13:08:23 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.142.203.2 with HTTP; Tue, 29 May 2012 13:08:23 -0700 (PDT) Date: Tue, 29 May 2012 13:08:23 -0700 X-Google-Sender-Auth: oXmgbPQDJUrbhZTmVPtlV_SY_rA Message-ID: From: Adrian Chadd To: Alexander Motin , freebsd-hackers@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Cc: Subject: ULE/sched issues on stable/9 - why isn't preemption occuring? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 May 2012 20:08:24 -0000 Hi Alexander and others, I've been tinkering with ath(4) IO scheduling and taskqueues. In order to get proper "in order" TX IO occuring, I've placed ath_start() into a taskqueue so now whenever ath_start() is called, it just schedules a taskqueue entry to run. However, performance is worse. :-) Here's a schedgraph trace. http://people.freebsd.org/~adrian/ath/ktr.4-ath-iperf-using-taskqueue-for-tx.ktr.gz I've thrown this through schedgraph.py on stable/9 and I've found some rather annoying behaviour. It seems that the ath0 taskqueue stays in the "runq add" state for quite a long time (1.5ms and longer) because something else is going on on CPU #0. I'm very confused about what's going on. I'd like a hand trying to figure out why the schedgraph output is the way it is. Thanks! Adrian