Xavier Galleri wrote:
[...]
>> You've been complaining about this problem for at least a week.
>> Producing some code so that we can test couldn't take more than a
>> couple of hours and would have probably had your issue resolved
>> by now.
>>
>> This is why I'm irritated that you still haven't provided any code
>> to reproduce it.
>
[...]
> Well, actually, it sounds that I did go to far to be able to retract
> myself, so I will let you know of any progress I will make asap ;-)
Ok, I'm back again ;-) and this time, I got something for you ...
Basically, what I did, is to write a little SYSCALL kld module to allow
controlling calls to MALLOC/FREE from user space. This way, I can issue
some filesystem-intensive command (tar
something-bigger-than-memory-size) in order to create the free list
shortage. Then, I use my test program to issue several MALLOC in kernel
space. What I actually noticed is that, when the free list felt below
120 or alike, I can issue several thousands successful MALLOC as long as
the asked size is no more than one or a few pages. But, when I ask for
numerous pages (32Kb), then the process is falling asleep (this is
analysed with my manual stack analysis process ;-), whilst the M_NOWAIT
flag has been set (of course !).
Everything is almost entirely self-documented in the attached
kmem.tar.gz file. I hope this will help and I am eager to hear from you
soon.
Have a nice WE,
Regards
Xavier
kmem.tar.gz