[LTP] [PATCH 1/1] mremap06: Add mremap() reproducer for 7e7757876f25

Petr Vorel pvorel@suse.cz
Mon Jul 10 14:26:16 CEST 2023


> On 7/4/23 13:46, Petr Vorel wrote:
> > Hi Cyril,

> >> > +#define PAGE_SIZE 4096

> >> This wouldn't work on 64k page size.

> >> > +#define MMAP_SIZE ((ARRAY_SIZE(tcases)+1)*PAGE_SIZE)
> >> > +#define MREMAP_SIZE (ARRAY_SIZE(tcases)*PAGE_SIZE)

> >> These have to be variables initialized on the fly with getpagesize()
> >> instead of PAGE_SIZE.

> > Yep, I thought about getpagesize().

> Agreed.

> Also IMHO it's awkward to have the number of pages and the iterations
> expressed using ARRAY_SIZE(tcases). I'd say it's just an accident that the
> number of pages involved in the merging and the number of testcases is both
> 3. I'd rather separate those.

Thanks for info. I'll define NUM_PAGES 3 then.

> > ...
> >> > +static int check_pages(void)
> >> > +{
> >> > +	int fail = 0, i;
> >> > +	char val;
> >> > +
> >> > +	for (i = 0; i < (int)ARRAY_SIZE(tcases); i++) {
> >> > +		val = buf[i * PAGE_SIZE];
> >> > +		if (val != 0x30 + i) {
> >> > +			tst_res(TFAIL, "page %d wrong value %d (0x%x)", i, val - 0x30, val);

> >> Woudn't this generate too many FAILURE messages? Maybe we should just
> >> break the for cycle here.

> > It could be. I wasn't sure if it's important to know which pages were wrong.

> There's just 3 pages to print so it won't be that many messages, I'd just
> print them all.

+1

Kind regards,
Petr

> > Kind regards,
> > Petr



More information about the ltp mailing list