From owner-freebsd-arch@FreeBSD.ORG Sun Jul 20 09:33:12 2008 Return-Path: Delivered-To: arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 454261065680 for ; Sun, 20 Jul 2008 09:33:12 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: from wa-out-1112.google.com (wa-out-1112.google.com [209.85.146.178]) by mx1.freebsd.org (Postfix) with ESMTP id 246A18FC12 for ; Sun, 20 Jul 2008 09:33:12 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: by wa-out-1112.google.com with SMTP id j4so477646wah.3 for ; Sun, 20 Jul 2008 02:33:11 -0700 (PDT) Received: by 10.114.25.3 with SMTP id 3mr1767112way.22.1216546391599; Sun, 20 Jul 2008 02:33:11 -0700 (PDT) Received: from ?10.0.1.199? ( [24.94.72.120]) by mx.google.com with ESMTPS id m40sm6176263waf.46.2008.07.20.02.33.09 (version=SSLv3 cipher=RC4-MD5); Sun, 20 Jul 2008 02:33:10 -0700 (PDT) Date: Sat, 19 Jul 2008 23:33:02 -1000 (HST) From: Jeff Roberson X-X-Sender: jroberson@desktop To: Attilio Rao In-Reply-To: <3bbf2fe10807190525y65facf80uad2a974619198186@mail.gmail.com> Message-ID: <20080719233219.O954@desktop> References: <20080718163231.B954@desktop> <3bbf2fe10807190525y65facf80uad2a974619198186@mail.gmail.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: arch@freebsd.org, ivmaykov@gmail.com Subject: Re: witness performance improvements X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2008 09:33:12 -0000 On Sat, 19 Jul 2008, Attilio Rao wrote: > 2008/7/19, Jeff Roberson : >> Hello, >> >> I have a patch that improves witness performance available at: >> >> http://people.freebsd.org/~jeff/witness.diff >> >> This improvement comes at the cost of some significant space overhead. It >> changes the witness graph from a linked tree to a matrix based approach. >> Relationships can be quickly resolved with a table lookup. The table size >> is WITNESS_COUNT^2, or 1MB with the current count of 1024. >> >> This patch also makes struct witness objects persistent even after the last >> lock using this name has been removed. This is helpful for short lived >> objects which may be created frequently. >> >> To reduce lock contention on SMP witness_checkorder() now runs without the >> w_mtx when there are no lock violations. I also cache a lock_list_entry in >> each thread as allocating these requires the w_mtx. The entry is disposed >> of at thread_exit(). >> >> There is also a new sysctl that produces dot output which graphs lock order >> relationships with the graphviz program. > > As I alredy said, I don't like this. > I mostly prefer the current approach (comma separated stuff) that one > can shape as its need. > If you also think there are some informations the current sysctl > doesn't export and it should we could fix it, but IMHO we should axe > this part of the patch (I have still to look at this patch, but I > remind in the Isilon's version it was a good amount of structures and > modifies just to handle that part). Can you estimate how much effort it would take to port your previous graph solution to the current witness code? > >> Most of this work was done by Ilya Maykov while he was at Isilon systems. >> The locking work and some cleanup/porting/refinement was done by me on >> behalf of Nokia. >> >> The performance improvement can be significant. It is only on the order of >> 10-20% for buildkernel but on a packet forwarding test at nokia it sped >> things up by 5x putting a witness enabled kernel within about 50% of the >> performance of a kernel without. I believe buildworld isn't helped as much >> because forking and exiting a lot would then contend on the witness lock. >> >> I'm mostly interested in hearing what people have to say about the space >> bloat. I believe it is in a commit ready state. > > This should not be a big problem, it is a debugging kernel after all > if it has WITNESS. > > I hope I will have more time for a detailed revision in the day. I would appreciate that. Thanks, Jeff > > Thanks, > Attilio > > > -- > Peace can only be achieved by understanding - A. Einstein >