From: Cyril Hrubis <chrubis@suse.cz>
To: ltp@lists.linux.it
Subject: [LTP] [PATCH V4] syscalls/madvise02: reconstruct and convert to new API
Date: Tue, 7 Jun 2016 16:24:14 +0200 [thread overview]
Message-ID: <20160607142414.GA4397@rei.lan> (raw)
In-Reply-To: <1465287565-32639-1-git-send-email-liwang@redhat.com>
Hi!
> + unsigned int i;
> +
> + for (i = 0; i < ARRAY_SIZE(tcases); i++) {
> + struct tcase *tc = &tcases[i];
> +
> + switch (tc->advice) {
> + case MADV_NORMAL:
> + if (tc->exp_errno == EINVAL)
> + nonalign = file1 + 100;
> + else
> + /* Test for MADV_NORMAL ENOMEM */
> + SAFE_MUNMAP(file2 + st.st_size - pagesize,
> + pagesize);
> + break;
> +
> + case MADV_DONTNEED:
> + #if !defined(UCLINUX)
> + if (mlock(file1, st.st_size) < 0)
> + tst_brk(TBROK | TERRNO, "mlock failed");
> + tc->skip = 0;
> + #endif /* if !defined(UCLINUX) */
> + break;
> +
> + case MADV_MERGEABLE:
> + case MADV_UNMERGEABLE:
> + if ((tst_kvercmp(2, 6, 32)) < 0)
> + tc->skip = 1;
> +
> + if (access(KSM_SYS_DIR, F_OK) == 0)
> + /* kernel configured with CONFIG_KSM,
> + * skip EINVAL test for MADV_MERGEABLE. */
> + tc->skip = 1;
> + break;
> +
> + case MADV_WILLNEED:
> + /* Test for MADV_WILLNEED EBADF */
> + ptr_addr = SAFE_MALLOC(st.st_size);
> + /* Take temporary pointer for later use, freeing up the
> + * original one. */
> + tmp_addr = ptr_addr;
> + tmp_addr =
> + (char *)(((unsigned long)tmp_addr + pagesize - 1)
> + & ~(pagesize - 1));
> +
> + /* In kernel commit 1998cc0, madvise(MADV_WILLNEED) to
> + * anon mem doesn't return -EBADF now, as now we support
> + * swap prefretch. */
> + if ((tst_kvercmp(3, 9, 0)) > 0 &&
> + tc->exp_errno == EBADF)
> + tc->skip = 1;
> + break;
> + }
I've moved the setup-like parts from the filter function to setup, so
that the filter function only filters the testcases.
And also used the LTP_ALIGN() macro to align the tmp_addr and pushed,
thanks.
--
Cyril Hrubis
chrubis@suse.cz
next prev parent reply other threads:[~2016-06-07 14:24 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-07 8:19 [LTP] [PATCH V4] syscalls/madvise02: reconstruct and convert to new API Li Wang
2016-06-07 14:24 ` Cyril Hrubis [this message]
2016-06-08 3:22 ` Li Wang
2016-06-08 9:43 ` Cyril Hrubis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160607142414.GA4397@rei.lan \
--to=chrubis@suse.cz \
--cc=ltp@lists.linux.it \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.