newfs locks entire machine for 20seconds

Steven Hartland killing at multiplay.co.uk
Fri Feb 1 05:32:45 PST 2008


----- Original Message ----- 
From: "Eric Anderson" <anderson at freebsd.org>
> Wait - if it returns EAGAIN for a while, then look at that code above. 
> It will hold the sysctl lock for some indefinite amount of time.  Maybe 
> it should look like this instead:
> 
> 
>    do {
>        SYSCTL_LOCK();
>        req.oldidx = 0;
>        req.newidx = 0;
>        error = sysctl_root(0, name, namelen, &req);
>        SYSCTL_UNLOCK();
>    } while (error == EAGAIN);
> 
>    if (req.lock == REQ_WIRED && req.validlen > 0)
>        vsunlock(req.oldptr, req.validlen);
> 

Tried no difference unfortunately, possibly its give the closeness
of the lock unlock its just reacquiring the lock straight after releasing
it hence not giving the other thread chance to run / obtain the lock?

    Regards
    Steve

================================================
This e.mail is private and confidential between Multiplay (UK) Ltd. and the person or entity to whom it is addressed. In the event of misdirection, the recipient is prohibited from using, copying, printing or otherwise disseminating it or any information contained in it. 

In the event of misdirection, illegible or incomplete transmission please telephone +44 845 868 1337
or return the E.mail to postmaster at multiplay.co.uk.



More information about the freebsd-performance mailing list