svn commit: r260898 - head/sys/kern

Scott Long scott4long at yahoo.com
Tue Jan 21 22:19:24 UTC 2014


On Jan 21, 2014, at 9:26 AM, John Baldwin <jhb at freebsd.org> wrote:

> On Monday, January 20, 2014 5:18:44 pm Alexander Kabaev wrote:
>> On Mon, 20 Jan 2014 11:32:29 -0500
>> John Baldwin <jhb at freebsd.org> wrote:
>> 
>>> On Sunday 19 January 2014 18:18:03 Rui Paulo wrote:
>>>> On 19 Jan 2014, at 17:59, Neel Natu <neel at FreeBSD.org> wrote:
>>>>> Author: neel
>>>>> Date: Mon Jan 20 01:59:35 2014
>>>>> New Revision: 260898
>>>>> URL: http://svnweb.freebsd.org/changeset/base/260898
>>>>> 
>>>>> Log:
>>>>> Bump up WITNESS_COUNT from 1024 to 1536 so there are sufficient
>>>>> entries for
>>>>> WITNESS to actually work.
>>>> 
>>>> This value should be automatically tuned...
>>> 
>>> How do you propose to do so?  This is the count of locks initialized
>>> before witness' own SYSINIT is executed and the array it sizes is
>>> allocated statically at compile time.  This used to not be a static
>>> array, but an intrusive list embedded in locks themselves, but we
>>> decided to shave a pointer off of each lock that was only used for
>>> that and to use a statically sized table instead.
>>> 
>>> -- 
>>> John Baldwin
>> 
>> As <CONSTANT1> + <CONSTANT2> * MAXCPU, as evidently most recent
>> overflows reported were caused by jacking MAXCPU up from its default
>> value? 
> 
> If raising MAXCPU changes the number of unique lock names used, then the
> locks are named incorrectly.  We don't use the 'pid' in the name for
> PROC_LOCK precisely so that WITNESS will treat them all the same so
> that if if it learns a lock order for pid 37 it enforces the same lock
> order for pid 38.  Device locks should follow a similar rule.  They
> should generally not include the device name (and in some cases they
> really shouldn't even have the driver name).

Why shouldn’t they have a driver and device name?  Wouldn’t it help identify
possible deadlocks from driver instances calling into each other?

Scott



More information about the svn-src-head mailing list