[HELP] Systemtap fails to load kernel module

Jovi Zhangwei jovi@cloudflare.com
Thu Jan 7 17:22:00 GMT 2016


Hi Frank,

Thanks for your reply.

On Tue, Jan 5, 2016 at 9:13 PM, Frank Ch. Eigler <fche@redhat.com> wrote:
>
> Hi, Jovi -
>
> jovi wrote:
>
>> [...]  I found one workaround is decrease the value of
>> /proc/sys/vm/min_free_kbytes, it works, but it's still a workaround,
>> and it's annoying to change that value again and again.
>
> We could put such logic into staprun perhaps - to try to empty out a
> bit of kernel memory just before loading the module.
>
>
>> We also tried to use bulk mode in systemtap, it eliminated the
>> memory allocation error, but the retrieved output is unreadable, so
>> we discard the bulk mode.
>
> One uses the stap_merge script to combine the per-cpu output files
> into a single readable file.
>
>
>> Note that there have a lot of free memory in system, it's not
>> because of out of memory, it's memory fragmentation.
>
> Have you experimented with a smaller "stap -s1"?  (Maybe we could
> support fractions-of-megabytes.)  Or maybe we are using an
> unnecessarily fragmentation-sensitive allocation machinery in that
> part of the runtime code.
>
Tried with "stap -s1", still failed.

ERROR: context (size 66144) allocation failed
WARNING: /usr/local/systemtap/bin/staprun exited with status: 1
Pass 5: run failed.  [man error::pass5]

Is there have something wrong? I think that smaller allocation should
be successful.
And the context size doesn't changes after add "-s1".



More information about the Systemtap mailing list