svn commit: r289279 - in head/sys: kern vm

Adrian Chadd adrian.chadd at gmail.com
Sat Nov 7 03:59:26 UTC 2015


hiya,

Just bringing this to peoples attention again - the same issue (buf
exhaustion, stuck in a loop trying to wake things up) exists.

I'm going to commit the sched_yield() change with a big  comment about
why it's here and that it needs further investigation. That way things
are stable again enough to use whilst this gets debugged.

Thanks!


-adrian


On 4 November 2015 at 12:43, Adrian Chadd <adrian.chadd at gmail.com> wrote:
> HI,
>
> FYI - this patch did fix my initial issue, but further work in
> multi-user mode caused it to still hang. I haven't diagnosed it yet; I
> just put back the yield call so bufdaemon could run.
>
> So yeah, we still have some work to do. It hit the same problem; stuck
> in a loop calling the path to wakeup bufdaemon, but then not sleeping
> on anything.
>
>
>
> -adrian
>
>
> On 2 November 2015 at 14:13, Adrian Chadd <adrian.chadd at gmail.com> wrote:
>> Hi Tijl, and others;
>>
>> Here's something that Jeff came up with that fixes my problem:
>>
>> adrian at victoria:~/work/freebsd/head-embedded/src % svn diff sys/kern/
>> Index: sys/kern/vfs_bio.c
>> ===================================================================
>> --- sys/kern/vfs_bio.c  (revision 290048)
>> +++ sys/kern/vfs_bio.c  (working copy)
>> @@ -2910,7 +2910,7 @@
>>         } while(buf_scan(false) == 0);
>>
>>         if (reserved)
>> -               bufspace_release(maxsize);
>> +               atomic_subtract_long(&bufspace, maxsize);
>>         if (bp != NULL) {
>>                 bp->b_flags |= B_INVAL;
>>                 brelse(bp);
>>
>>
>> Would you/others please try this and see if it improves things? It
>> improves things for me on these memory-starved MIPS boards.
>>
>>
>>
>> -a


More information about the svn-src-all mailing list