Hi, Shivang Thank you for the patch. On Thu, Nov 20, 2025 at 4:18 AM <[email protected]> wrote:
> Date: Wed, 19 Nov 2025 16:23:46 +0530 > From: Shivang Upadhyay <[email protected]> > Subject: [Crash-utility] [PATCH] make the MAX_MALLOC_BUFS customizable > To: [email protected], [email protected] > Cc: [email protected], [email protected] > Message-ID: <[email protected]> > > default value is kept to 2000, but can be changed with > command line with flag `--max-malloc-bufs`. > > Signed-off-by: Shivang Upadhyay <[email protected]> > --- > defs.h | 1 + > main.c | 4 ++++ > tools.c | 9 ++++++--- > 3 files changed, 11 insertions(+), 3 deletions(-) > > diff --git a/defs.h b/defs.h > index ab4aee8..863baf9 100644 > --- a/defs.h > +++ b/defs.h > @@ -5608,6 +5608,7 @@ void exec_args_input_file(struct command_table_entry > *, struct args_input_file * > /* > * tools.c > */ > +extern int MAX_MALLOC_BUFS; > FILE *set_error(char *); > int __error(int, char *, ...); > #define error __error /* avoid conflict with gdb error() */ > diff --git a/main.c b/main.c > index 71bcc15..e986792 100644 > --- a/main.c > +++ b/main.c > @@ -46,6 +46,7 @@ static struct option long_options[] = { > {"version", 0, 0, 0}, > {"buildinfo", 0, 0, 0}, > {"cpus", required_argument, 0, 0}, > + {"max-malloc-bufs", required_argument, 0, 0}, > {"no_ikconfig", 0, 0, 0}, > {"hyper", 0, 0, 0}, > {"p2m_mfn", required_argument, 0, 0}, > @@ -163,6 +164,9 @@ main(int argc, char **argv) > else if (STREQ(long_options[option_index].name, > "cpus")) > kt->cpus_override = optarg; > > + else if (STREQ(long_options[option_index].name, > "max-malloc-bufs")) > + MAX_MALLOC_BUFS = atoi(optarg); > + > else if (STREQ(long_options[option_index].name, > "hyper")) > pc->flags |= XEN_HYPER; > > diff --git a/tools.c b/tools.c > index a9ad18d..c9867e1 100644 > --- a/tools.c > +++ b/tools.c > @@ -5698,7 +5698,7 @@ ll_power(long long base, long long exp) > #define B32K (4) > > #define SHARED_BUF_SIZES (B32K+1) > -#define MAX_MALLOC_BUFS (2000) > +int MAX_MALLOC_BUFS = 2000; /* can be changed from command line args */ > Think it again and discuss with customers, that should be good to fold these two patches into one patch: https://www.mail-archive.com/[email protected]/msg01829.html That is to say, increase the default MAX_MALLOC_BUFS and also introduce the --max-malloc-bufs options, which can handle both cases: 1. most customers never hit the max limit 2. deal with large vmcores without blocking analysis What do you think? Thank Lianbo #define MAX_CACHE_SIZE (KILOBYTES(32)) > > struct shared_bufs { > @@ -5723,7 +5723,7 @@ struct shared_bufs { > long buf_8K_ovf; > long buf_32K_ovf; > int buf_inuse[SHARED_BUF_SIZES]; > - char *malloc_bp[MAX_MALLOC_BUFS]; > + char **malloc_bp; > long smallest; > long largest; > long embedded; > @@ -5744,6 +5744,7 @@ buf_init(void) > > bp->smallest = 0x7fffffff; > bp->total = 0.0; > + bp->malloc_bp = (char**) calloc(MAX_MALLOC_BUFS * sizeof(char*), > 1); > > #ifdef VALGRIND > VALGRIND_MAKE_MEM_NOACCESS(&bp->buf_1K, sizeof(bp->buf_1K)); > @@ -6130,7 +6131,9 @@ getbuf(long reqsize) > dump_shared_bufs(); > > return ((char *)(long) > - error(FATAL, "cannot allocate any more memory!\n")); > + error(FATAL, "cannot allocate any more memory!\n" > + "try increasing --max-malloc-bufs > (current value : %d)\n", > + MAX_MALLOC_BUFS)); > } > > /* > -- > 2.51.0 >
-- Crash-utility mailing list -- [email protected] To unsubscribe send an email to [email protected] https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/ Contribution Guidelines: https://github.com/crash-utility/crash/wiki
