Re: [PATCH] Tweak tracing allocation sizes

Lachlan McIlroy
2008-09-02T06:03:13Z

Dave Chinner wrote:
> On Tue, Sep 02, 2008 at 03:48:46PM +1000, Lachlan McIlroy wrote:
>> The size of a single ktrace entry is 16 pointers so 128 bytes. For the case
>> of XFS_RW_KTRACE_SIZE which is 128 entries this equates to 16KB and on a system
>> with 4KB pages that is under memory pressure this can stall that process for a
>> significant time while it hunts for 4 free pages. Cutting this value back to
>> 32 means it will only need one page.
>
> That will effectively render that type of tracing useless - 32
> entries is not enough history to capture enough
> read/write/map/invalidate trace events to be meaningful. In the past
> I've often had to increase this to 256 or 512 entries to be able to
> capture the events necessary to debug problems...

A system that constantly locks up and/or stalls is useless too. Allocating
4 or more pages for every inode just taxes the system. Can you offer an
alternative - maybe a very large global trace buffer that is allocated at mount
time and shared by all inodes?