Page MenuHomeFreeBSD

Use a reader count instead of holding lock.
AbandonedPublic

Authored by sson on Mar 19 2015, 3:54 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Dec 10, 9:03 PM
Unknown Object (File)
Nov 7 2024, 4:51 AM
Unknown Object (File)
Oct 19 2024, 6:55 AM
Unknown Object (File)
Oct 16 2024, 1:31 PM
Unknown Object (File)
Oct 5 2024, 12:52 PM
Unknown Object (File)
Oct 5 2024, 4:44 AM
Unknown Object (File)
Oct 4 2024, 8:44 PM
Unknown Object (File)
Oct 2 2024, 6:37 AM
Subscribers

Details

Reviewers
sbruno
Summary

This change uses a reader count instead of holding the mutex for the
interpreter list to avoid the problem of holding a non-sleep lock during
a page fault as reported by witness. In addition, it consistently uses
memset()/memcpy() instead of bzero()/bcopy().

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

sson retitled this revision from to Use a reader count instead of holding lock..
sson updated this object.
sson edited the test plan for this revision. (Show Details)
sson added a reviewer: sbruno.
sson set the repository for this revision to rS FreeBSD src repository - subversion.
sson added a subscriber: sbruno.
sbruno requested changes to this revision.Mar 24 2015, 2:10 AM
sbruno edited edge metadata.

Wasn't sure if this was ready or not, but I've updated tasty.ysv.freebsd.org and applied this patch to it. Doesn't look very happy as poudriere immediately fails as basic sysctl's are not working from withing the ARM jail I'm using:

root@tasty.ysv:/home/sbruno # poudriere testport -j 11armv6 -o www/webkit-qt5 -I
[00:00:00] ====>> Creating the reference jail... done
[00:00:01] ====>> Mounting system devices for 11armv6-default
[00:00:01] ====>> Mounting ports/packages/distfiles
[00:00:01] ====>> Using packages from previously failed build
[00:00:01] ====>> Mounting packages from: /usr/local/poudriere/data/packages/11armv6-default
[00:00:01] ====>> Mounting /var/db/ports from: /usr/local/etc/poudriere.d/options
/etc/resolv.conf -> /usr/local/poudriere/data/.m/11armv6-default/ref/etc/resolv.conf
[00:00:01] ====>> Starting jail 11armv6-default
sysctl: unknown oid 'kern.smp/sbin/sysctl': No such file or directory
make: "/usr/ports/Mk/bsd.port.mk" line 2053: warning: "/sbin/sysctl -n kern.smp.cpus" returned non-zero status
WARNING (www/webkit-qt5): sysctl: unknown oid 'kern.smp/sbin/sysctl': No such file or directory 
WARNING (www/webkit-qt5): make[1]: "/usr/ports/Mk/bsd.port.mk" line 2053: warning: "/sbin/sysctl -n kern.smp.cpus" returned non-zero status 
WARNING (www/webkit-qt5): sysctl: unknown oid 'kern.arg/sbin/sysctl': No such file or directory 
WARNING (www/webkit-qt5): make[1]: "/usr/ports/Mk/bsd.port.mk" line 2684: warning: "/sbin/sysctl -n kern.argmax" returned non-zero status 
WARNING (www/webkit-qt5): sysctl: unknown oid 'kern.smp/sbin/sysctl': No such file or directory 
WARNING (www/webkit-qt5): make: "/usr/ports/Mk/bsd.port.mk" line 2053: warning: "/sbin/sysctl -n kern.smp.cpus" returned non-zero status 
[00:00:04] ====>> Logs: /usr/local/poudriere/data/logs/bulk/11armv6-default/2015-03-24_02h07m40s
This revision now requires changes to proceed.Mar 24 2015, 2:10 AM