2014-04-10 08:11:49

by Jianyu Zhan

[permalink] [raw]
Subject: [PATCH] scripts/tags.sh: add regular expression replacement pattern for memcg

Currently, no regular expression replacement pattern for PageCgroug*
defined, which causes quite a few pain while reading code. Just get
rid of it.

Also, add a comment to inform people to add pattern for whatever new
flags they add.

Signed-off-by: Jianyu Zhan <[email protected]>
---
include/linux/page_cgroup.h | 6 ++++++
scripts/tags.sh | 8 ++++++++
2 files changed, 14 insertions(+)

diff --git a/include/linux/page_cgroup.h b/include/linux/page_cgroup.h
index 777a524..16b4f15 100644
--- a/include/linux/page_cgroup.h
+++ b/include/linux/page_cgroup.h
@@ -44,6 +44,12 @@ static inline void __init page_cgroup_init(void)
struct page_cgroup *lookup_page_cgroup(struct page *page);
struct page *lookup_cgroup_page(struct page_cgroup *pc);

+/*
+ * Note, whenever you add a new flag here, please add a
+ * regular expression replacement pattern in scripts/tags.sh
+ * to inform our friendly and smart tags generator.
+ */
+
#define TESTPCGFLAG(uname, lname) \
static inline int PageCgroup##uname(struct page_cgroup *pc) \
{ return test_bit(PCG_##lname, &pc->flags); }
diff --git a/scripts/tags.sh b/scripts/tags.sh
index 58c4559..c0d52d1 100755
--- a/scripts/tags.sh
+++ b/scripts/tags.sh
@@ -171,12 +171,16 @@ exuberant()
--regex-c++='/PAGEFLAG\(([^,)]*).*/ClearPage\1/' \
--regex-c++='/TESTSETFLAG\(([^,)]*).*/TestSetPage\1/' \
--regex-c++='/TESTPAGEFLAG\(([^,)]*).*/Page\1/' \
+ --regex-c++='/TESTPCGFLAG\(([^,)]*).*/PageCgroup\1/' \
--regex-c++='/SETPAGEFLAG\(([^,)]*).*/SetPage\1/' \
--regex-c++='/__SETPAGEFLAG\(([^,)]*).*/__SetPage\1/' \
+ --regex-c++='/SETPCGFLAG\(([^,)]*).*/SetPageCgroup\1/' \
--regex-c++='/TESTCLEARFLAG\(([^,)]*).*/TestClearPage\1/' \
--regex-c++='/__TESTCLEARFLAG\(([^,)]*).*/TestClearPage\1/' \
+ --regex-c++='/TESTCLEARPCGFLAG\(([^,)]*).*/TestClearPageCgroup\1/' \
--regex-c++='/CLEARPAGEFLAG\(([^,)]*).*/ClearPage\1/' \
--regex-c++='/__CLEARPAGEFLAG\(([^,)]*).*/__ClearPage\1/' \
+ --regex-c++='/CLEARPCGFLAG\(([^,)]*).*/ClearPageCgroup\1/' \
--regex-c++='/__PAGEFLAG\(([^,)]*).*/__SetPage\1/' \
--regex-c++='/__PAGEFLAG\(([^,)]*).*/__ClearPage\1/' \
--regex-c++='/PAGEFLAG_FALSE\(([^,)]*).*/Page\1/' \
@@ -229,12 +233,16 @@ emacs()
--regex='/PAGEFLAG(\([^,)]*\).*/ClearPage\1/' \
--regex='/TESTSETFLAG(\([^,)]*\).*/TestSetPage\1/' \
--regex='/TESTPAGEFLAG(\([^,)]*\).*/Page\1/' \
+ --regex='/TESTPCGFLAG\(([^,)]*).*/PageCgroup\1/' \
--regex='/SETPAGEFLAG(\([^,)]*\).*/SetPage\1/' \
--regex='/__SETPAGEFLAG(\([^,)]*\).*/__SetPage\1/' \
+ --regex='/SETPCGFLAG\(([^,)]*).*/SetPageCgroup\1/' \
--regex='/TESTCLEARFLAG(\([^,)]*\).*/TestClearPage\1/' \
--regex='/__TESTCLEARFLAG(\([^,)]*\).*/TestClearPage\1/' \
+ --regex='/TESTCLEARPCGFLAG\(([^,)]*).*/TestClearPageCgroup\1/' \
--regex='/CLEARPAGEFLAG(\([^,)]*\).*/ClearPage\1/' \
--regex='/__CLEARPAGEFLAG(\([^,)]*\).*/__ClearPage\1/' \
+ --regex='/CLEARPCGFLAG\(([^,)]*).*/ClearPageCgroup\1/' \
--regex='/__PAGEFLAG(\([^,)]*\).*/__SetPage\1/' \
--regex='/__PAGEFLAG(\([^,)]*\).*/__ClearPage\1/' \
--regex='/PAGEFLAG_FALSE(\([^,)]*\).*/Page\1/' \
--
1.9.0.GIT


2014-04-10 12:59:04

by Jianyu Zhan

[permalink] [raw]
Subject: Re: [PATCH] scripts/tags.sh: add regular expression replacement pattern for memcg

Sorry, the comment in previous patch is somewhat misguiding, this patch
replaces that one.

Currently, no regular expression replacement patterns for PageCgroup*
flag-ops are defined, which causes quite a few pain while reading code.
Just get rid of it.

Also, add a comment to inform people to add pattern for whatever new
flag-ops they add.

Signed-off-by: Jianyu Zhan <[email protected]>
---
include/linux/page_cgroup.h | 6 ++++++
scripts/tags.sh | 8 ++++++++
2 files changed, 14 insertions(+)

diff --git a/include/linux/page_cgroup.h b/include/linux/page_cgroup.h
index 777a524..9c60b77 100644
--- a/include/linux/page_cgroup.h
+++ b/include/linux/page_cgroup.h
@@ -44,6 +44,12 @@ static inline void __init page_cgroup_init(void)
struct page_cgroup *lookup_page_cgroup(struct page *page);
struct page *lookup_cgroup_page(struct page_cgroup *pc);

+/*
+ * Note, whenever you add a *PCGFLAG operation here, please add a
+ * regular expression replacement pattern in scripts/tags.sh
+ * to inform our friendly and smart tags generator.
+ */
+
#define TESTPCGFLAG(uname, lname) \
static inline int PageCgroup##uname(struct page_cgroup *pc) \
{ return test_bit(PCG_##lname, &pc->flags); }
diff --git a/scripts/tags.sh b/scripts/tags.sh
index 58c4559..c0d52d1 100755
--- a/scripts/tags.sh
+++ b/scripts/tags.sh
@@ -171,12 +171,16 @@ exuberant()
--regex-c++='/PAGEFLAG\(([^,)]*).*/ClearPage\1/' \
--regex-c++='/TESTSETFLAG\(([^,)]*).*/TestSetPage\1/' \
--regex-c++='/TESTPAGEFLAG\(([^,)]*).*/Page\1/' \
+ --regex-c++='/TESTPCGFLAG\(([^,)]*).*/PageCgroup\1/' \
--regex-c++='/SETPAGEFLAG\(([^,)]*).*/SetPage\1/' \
--regex-c++='/__SETPAGEFLAG\(([^,)]*).*/__SetPage\1/' \
+ --regex-c++='/SETPCGFLAG\(([^,)]*).*/SetPageCgroup\1/' \
--regex-c++='/TESTCLEARFLAG\(([^,)]*).*/TestClearPage\1/' \
--regex-c++='/__TESTCLEARFLAG\(([^,)]*).*/TestClearPage\1/' \
+ --regex-c++='/TESTCLEARPCGFLAG\(([^,)]*).*/TestClearPageCgroup\1/' \
--regex-c++='/CLEARPAGEFLAG\(([^,)]*).*/ClearPage\1/' \
--regex-c++='/__CLEARPAGEFLAG\(([^,)]*).*/__ClearPage\1/' \
+ --regex-c++='/CLEARPCGFLAG\(([^,)]*).*/ClearPageCgroup\1/' \
--regex-c++='/__PAGEFLAG\(([^,)]*).*/__SetPage\1/' \
--regex-c++='/__PAGEFLAG\(([^,)]*).*/__ClearPage\1/' \
--regex-c++='/PAGEFLAG_FALSE\(([^,)]*).*/Page\1/' \
@@ -229,12 +233,16 @@ emacs()
--regex='/PAGEFLAG(\([^,)]*\).*/ClearPage\1/' \
--regex='/TESTSETFLAG(\([^,)]*\).*/TestSetPage\1/' \
--regex='/TESTPAGEFLAG(\([^,)]*\).*/Page\1/' \
+ --regex='/TESTPCGFLAG\(([^,)]*).*/PageCgroup\1/' \
--regex='/SETPAGEFLAG(\([^,)]*\).*/SetPage\1/' \
--regex='/__SETPAGEFLAG(\([^,)]*\).*/__SetPage\1/' \
+ --regex='/SETPCGFLAG\(([^,)]*).*/SetPageCgroup\1/' \
--regex='/TESTCLEARFLAG(\([^,)]*\).*/TestClearPage\1/' \
--regex='/__TESTCLEARFLAG(\([^,)]*\).*/TestClearPage\1/' \
+ --regex='/TESTCLEARPCGFLAG\(([^,)]*).*/TestClearPageCgroup\1/' \
--regex='/CLEARPAGEFLAG(\([^,)]*\).*/ClearPage\1/' \
--regex='/__CLEARPAGEFLAG(\([^,)]*\).*/__ClearPage\1/' \
+ --regex='/CLEARPCGFLAG\(([^,)]*).*/ClearPageCgroup\1/' \
--regex='/__PAGEFLAG(\([^,)]*\).*/__SetPage\1/' \
--regex='/__PAGEFLAG(\([^,)]*\).*/__ClearPage\1/' \
--regex='/PAGEFLAG_FALSE(\([^,)]*\).*/Page\1/' \
--
1.9.0.GIT

2014-04-16 21:24:12

by Michal Marek

[permalink] [raw]
Subject: Re: [PATCH] scripts/tags.sh: add regular expression replacement pattern for memcg

Dne 10.4.2014 14:58, Jianyu Zhan napsal(a):
> Sorry, the comment in previous patch is somewhat misguiding, this patch
> replaces that one.
>
> Currently, no regular expression replacement patterns for PageCgroup*
> flag-ops are defined, which causes quite a few pain while reading code.
> Just get rid of it.
>
> Also, add a comment to inform people to add pattern for whatever new
> flag-ops they add.
>
> Signed-off-by: Jianyu Zhan <[email protected]>
> ---
> include/linux/page_cgroup.h | 6 ++++++
> scripts/tags.sh | 8 ++++++++
> 2 files changed, 14 insertions(+)
>
> diff --git a/include/linux/page_cgroup.h b/include/linux/page_cgroup.h
> index 777a524..9c60b77 100644
> --- a/include/linux/page_cgroup.h
> +++ b/include/linux/page_cgroup.h
> @@ -44,6 +44,12 @@ static inline void __init page_cgroup_init(void)
> struct page_cgroup *lookup_page_cgroup(struct page *page);
> struct page *lookup_cgroup_page(struct page_cgroup *pc);
>
> +/*
> + * Note, whenever you add a *PCGFLAG operation here, please add a
> + * regular expression replacement pattern in scripts/tags.sh
> + * to inform our friendly and smart tags generator.
> + */
> +
> #define TESTPCGFLAG(uname, lname) \

Cgroup hackers - OK to add the above comment? It does not look like new
macros are being defined here on a weekly basis...


> static inline int PageCgroup##uname(struct page_cgroup *pc) \
> { return test_bit(PCG_##lname, &pc->flags); }
> diff --git a/scripts/tags.sh b/scripts/tags.sh
> index 58c4559..c0d52d1 100755
> --- a/scripts/tags.sh
> +++ b/scripts/tags.sh
> @@ -171,12 +171,16 @@ exuberant()
> --regex-c++='/PAGEFLAG\(([^,)]*).*/ClearPage\1/' \
> --regex-c++='/TESTSETFLAG\(([^,)]*).*/TestSetPage\1/' \
> --regex-c++='/TESTPAGEFLAG\(([^,)]*).*/Page\1/' \
> + --regex-c++='/TESTPCGFLAG\(([^,)]*).*/PageCgroup\1/' \
> --regex-c++='/SETPAGEFLAG\(([^,)]*).*/SetPage\1/' \
> --regex-c++='/__SETPAGEFLAG\(([^,)]*).*/__SetPage\1/' \
> + --regex-c++='/SETPCGFLAG\(([^,)]*).*/SetPageCgroup\1/' \
> --regex-c++='/TESTCLEARFLAG\(([^,)]*).*/TestClearPage\1/' \
> --regex-c++='/__TESTCLEARFLAG\(([^,)]*).*/TestClearPage\1/' \
> + --regex-c++='/TESTCLEARPCGFLAG\(([^,)]*).*/TestClearPageCgroup\1/' \
> --regex-c++='/CLEARPAGEFLAG\(([^,)]*).*/ClearPage\1/' \
> --regex-c++='/__CLEARPAGEFLAG\(([^,)]*).*/__ClearPage\1/' \
> + --regex-c++='/CLEARPCGFLAG\(([^,)]*).*/ClearPageCgroup\1/' \
> --regex-c++='/__PAGEFLAG\(([^,)]*).*/__SetPage\1/' \
> --regex-c++='/__PAGEFLAG\(([^,)]*).*/__ClearPage\1/' \
> --regex-c++='/PAGEFLAG_FALSE\(([^,)]*).*/Page\1/' \

Please do not interleave the new defines with the <linux/page-flags.h>
defines.

Michal

> @@ -229,12 +233,16 @@ emacs()
> --regex='/PAGEFLAG(\([^,)]*\).*/ClearPage\1/' \
> --regex='/TESTSETFLAG(\([^,)]*\).*/TestSetPage\1/' \
> --regex='/TESTPAGEFLAG(\([^,)]*\).*/Page\1/' \
> + --regex='/TESTPCGFLAG\(([^,)]*).*/PageCgroup\1/' \
> --regex='/SETPAGEFLAG(\([^,)]*\).*/SetPage\1/' \
> --regex='/__SETPAGEFLAG(\([^,)]*\).*/__SetPage\1/' \
> + --regex='/SETPCGFLAG\(([^,)]*).*/SetPageCgroup\1/' \
> --regex='/TESTCLEARFLAG(\([^,)]*\).*/TestClearPage\1/' \
> --regex='/__TESTCLEARFLAG(\([^,)]*\).*/TestClearPage\1/' \
> + --regex='/TESTCLEARPCGFLAG\(([^,)]*).*/TestClearPageCgroup\1/' \
> --regex='/CLEARPAGEFLAG(\([^,)]*\).*/ClearPage\1/' \
> --regex='/__CLEARPAGEFLAG(\([^,)]*\).*/__ClearPage\1/' \
> + --regex='/CLEARPCGFLAG\(([^,)]*).*/ClearPageCgroup\1/' \
> --regex='/__PAGEFLAG(\([^,)]*\).*/__SetPage\1/' \
> --regex='/__PAGEFLAG(\([^,)]*\).*/__ClearPage\1/' \
> --regex='/PAGEFLAG_FALSE(\([^,)]*\).*/Page\1/' \
>

2014-04-17 13:37:14

by Jianyu Zhan

[permalink] [raw]
Subject: Re: [PATCH] scripts/tags.sh: add regular expression replacement pattern for memcg

Hi, Marek.

> It does not look like new macros are being defined here on a weekly basis...

Hmm, I think so. I've removed this comment.

> Please do not interleave the new defines with the <linux/page-flags.h>
> defines.

Ok.

Here is the renewed patch:
---


Currently, no regular expression replacement pattern for PageCgroug*
defined, which causes quite a few pain while reading code. Just get
rid of it.

Signed-off-by: Jianyu Zhan <[email protected]>
---
scripts/tags.sh | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/scripts/tags.sh b/scripts/tags.sh
index f2c5b00..7d3ebfe 100755
--- a/scripts/tags.sh
+++ b/scripts/tags.sh
@@ -187,6 +187,10 @@ exuberant()
--regex-c++='/TESTCLEARFLAG_FALSE\(([^,)]*).*/TestClearPage\1/' \
--regex-c++='/__TESTCLEARFLAG_FALSE\(([^,)]*).*/__TestClearPage\1/' \
--regex-c++='/_PE\(([^,)]*).*/PEVENT_ERRNO__\1/' \
+ --regex-c++='/TESTPCGFLAG\(([^,)]*).*/PageCgroup\1/' \
+ --regex-c++='/SETPCGFLAG\(([^,)]*).*/SetPageCgroup\1/' \
+ --regex-c++='/CLEARPCGFLAG\(([^,)]*).*/ClearPageCgroup\1/' \
+ --regex-c++='/TESTCLEARPCGFLAG\(([^,)]*).*/TestClearPageCgroup\1/' \
--regex-c='/PCI_OP_READ\((\w*).*[1-4]\)/pci_bus_read_config_\1/' \
--regex-c='/PCI_OP_WRITE\((\w*).*[1-4]\)/pci_bus_write_config_\1/' \
--regex-c='/DEFINE_(MUTEX|SEMAPHORE|SPINLOCK)\((\w*)/\2/v/' \
@@ -244,6 +248,10 @@ emacs()
--regex='/__CLEARPAGEFLAG_NOOP(\([^,)]*\).*/__ClearPage\1/' \
--regex='/TESTCLEARFLAG_FALSE(\([^,)]*\).*/TestClearPage\1/' \
--regex='/__TESTCLEARFLAG_FALSE(\([^,)]*\).*/__TestClearPage\1/' \
+ --regex='/TESTPCGFLAG\(([^,)]*).*/PageCgroup\1/' \
+ --regex='/SETPCGFLAG\(([^,)]*).*/SetPageCgroup\1/' \
+ --regex='/CLEARPCGFLAG\(([^,)]*).*/ClearPageCgroup\1/' \
+ --regex='/TESTCLEARPCGFLAG\(([^,)]*).*/TestClearPageCgroup\1/' \
--regex='/_PE(\([^,)]*\).*/PEVENT_ERRNO__\1/' \
--regex='/PCI_OP_READ(\([a-z]*[a-z]\).*[1-4])/pci_bus_read_config_\1/' \
--regex='/PCI_OP_WRITE(\([a-z]*[a-z]\).*[1-4])/pci_bus_write_config_\1/'
--
1.9.0.GIT