svn commit: r284535 - head/sys/kern
Konstantin Belousov
kostikbel at gmail.com
Thu Jun 18 03:07:21 UTC 2015
On Thu, Jun 18, 2015 at 02:04:21AM +0000, Sean Bruno wrote:
> Author: sbruno
> Date: Thu Jun 18 02:04:20 2015
> New Revision: 284535
> URL: https://svnweb.freebsd.org/changeset/base/284535
>
> Log:
> This change replaces the mutex with a sx lock for the interpreter list to
> avoid the problem of holding a non-sleep lock during a page fault as
> reported by witness. It also uses atomics where possible to avoid having
> to acquire the exclusive lock. In addition, it consistently uses
> memset()/memcpy() instead of bzero()/bcopy().
>
> Differential Revision: https://reviews.freebsd.org/D1971
> Submitted by: sson
> Reviewed by: jhb
What are the page faults during image activator run ?
Or, if the page faults are not during image activation, then where ?
>
> @@ -404,12 +404,12 @@ imgact_binmisc_get_all_entries(struct sy
> imgact_binmisc_entry_t *ibe;
> int error = 0, count;
>
> - mtx_lock(&interp_list_mtx);
> + sx_slock(&interp_list_sx);
> count = interp_list_entry_count;
> /* Don't block in malloc() while holding lock. */
> xbe = malloc(sizeof(*xbe) * count, M_BINMISC, M_NOWAIT|M_ZERO);
This is definitely no longer true statement.
Even the original use of M_NOWAIT there is not warranted.
> if (!xbe) {
> - mtx_unlock(&interp_list_mtx);
> + sx_sunlock(&interp_list_sx);
> return (ENOMEM);
> }
>
More information about the svn-src-head
mailing list