2014-12-04 22:56:46

by Chen Gang

[permalink] [raw]
Subject: [PATCH] arch: uapi: asm: mman.h: Let MADV_FREE have same value for all architectures

For uapi, need try to let all macros have same value, and MADV_FREE is
added into main branch recently, so need redefine MADV_FREE for it.

At present, '8' can be shared with all architectures, so redefine it to
'8'.

Signed-off-by: Chen Gang <[email protected]>
---
arch/alpha/include/uapi/asm/mman.h | 2 +-
arch/mips/include/uapi/asm/mman.h | 2 +-
arch/parisc/include/uapi/asm/mman.h | 2 +-
arch/xtensa/include/uapi/asm/mman.h | 2 +-
include/uapi/asm-generic/mman-common.h | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/arch/alpha/include/uapi/asm/mman.h b/arch/alpha/include/uapi/asm/mman.h
index 836fbd4..0b8a5de 100644
--- a/arch/alpha/include/uapi/asm/mman.h
+++ b/arch/alpha/include/uapi/asm/mman.h
@@ -44,9 +44,9 @@
#define MADV_WILLNEED 3 /* will need these pages */
#define MADV_SPACEAVAIL 5 /* ensure resources are available */
#define MADV_DONTNEED 6 /* don't need these pages */
-#define MADV_FREE 7 /* free pages only if memory pressure */

/* common/generic parameters */
+#define MADV_FREE 8 /* free pages only if memory pressure */
#define MADV_REMOVE 9 /* remove these pages & resources */
#define MADV_DONTFORK 10 /* don't inherit across fork */
#define MADV_DOFORK 11 /* do inherit across fork */
diff --git a/arch/mips/include/uapi/asm/mman.h b/arch/mips/include/uapi/asm/mman.h
index 106e741..d247f54 100644
--- a/arch/mips/include/uapi/asm/mman.h
+++ b/arch/mips/include/uapi/asm/mman.h
@@ -67,9 +67,9 @@
#define MADV_SEQUENTIAL 2 /* expect sequential page references */
#define MADV_WILLNEED 3 /* will need these pages */
#define MADV_DONTNEED 4 /* don't need these pages */
-#define MADV_FREE 5 /* free pages only if memory pressure */

/* common parameters: try to keep these consistent across architectures */
+#define MADV_FREE 8 /* free pages only if memory pressure */
#define MADV_REMOVE 9 /* remove these pages & resources */
#define MADV_DONTFORK 10 /* don't inherit across fork */
#define MADV_DOFORK 11 /* do inherit across fork */
diff --git a/arch/parisc/include/uapi/asm/mman.h b/arch/parisc/include/uapi/asm/mman.h
index 6cb8db7..700d83f 100644
--- a/arch/parisc/include/uapi/asm/mman.h
+++ b/arch/parisc/include/uapi/asm/mman.h
@@ -40,9 +40,9 @@
#define MADV_SPACEAVAIL 5 /* insure that resources are reserved */
#define MADV_VPS_PURGE 6 /* Purge pages from VM page cache */
#define MADV_VPS_INHERIT 7 /* Inherit parents page size */
-#define MADV_FREE 8 /* free pages only if memory pressure */

/* common/generic parameters */
+#define MADV_FREE 8 /* free pages only if memory pressure */
#define MADV_REMOVE 9 /* remove these pages & resources */
#define MADV_DONTFORK 10 /* don't inherit across fork */
#define MADV_DOFORK 11 /* do inherit across fork */
diff --git a/arch/xtensa/include/uapi/asm/mman.h b/arch/xtensa/include/uapi/asm/mman.h
index 1b19f25..77eaca4 100644
--- a/arch/xtensa/include/uapi/asm/mman.h
+++ b/arch/xtensa/include/uapi/asm/mman.h
@@ -80,9 +80,9 @@
#define MADV_SEQUENTIAL 2 /* expect sequential page references */
#define MADV_WILLNEED 3 /* will need these pages */
#define MADV_DONTNEED 4 /* don't need these pages */
-#define MADV_FREE 5 /* free pages only if memory pressure */

/* common parameters: try to keep these consistent across architectures */
+#define MADV_FREE 8 /* free pages only if memory pressure */
#define MADV_REMOVE 9 /* remove these pages & resources */
#define MADV_DONTFORK 10 /* don't inherit across fork */
#define MADV_DOFORK 11 /* do inherit across fork */
diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h
index 7a94102..8695959 100644
--- a/include/uapi/asm-generic/mman-common.h
+++ b/include/uapi/asm-generic/mman-common.h
@@ -34,9 +34,9 @@
#define MADV_SEQUENTIAL 2 /* expect sequential page references */
#define MADV_WILLNEED 3 /* will need these pages */
#define MADV_DONTNEED 4 /* don't need these pages */
-#define MADV_FREE 5 /* free pages only if memory pressure */

/* common parameters: try to keep these consistent across architectures */
+#define MADV_FREE 8 /* free pages only if memory pressure */
#define MADV_REMOVE 9 /* remove these pages & resources */
#define MADV_DONTFORK 10 /* don't inherit across fork */
#define MADV_DOFORK 11 /* do inherit across fork */
--
1.9.3


2014-12-05 00:15:32

by Darrick J. Wong

[permalink] [raw]
Subject: Re: [PATCH] arch: uapi: asm: mman.h: Let MADV_FREE have same value for all architectures

On Fri, Dec 05, 2014 at 06:58:29AM +0800, Chen Gang wrote:
> For uapi, need try to let all macros have same value, and MADV_FREE is
> added into main branch recently, so need redefine MADV_FREE for it.
>
> At present, '8' can be shared with all architectures, so redefine it to
> '8'.

Hmmm... you might want to talk to the dietlibc people if you do this:

$ grep -rn MADV_FREE /usr/include/
/usr/include/diet/sys/mman.h:101:#define MADV_FREE 0x5 /* (Solaris) contents can be freed */

Though the sole definition only exists on sparc/powerpc/powerpc64, so who
knows...

--D

>
> Signed-off-by: Chen Gang <[email protected]>
> ---
> arch/alpha/include/uapi/asm/mman.h | 2 +-
> arch/mips/include/uapi/asm/mman.h | 2 +-
> arch/parisc/include/uapi/asm/mman.h | 2 +-
> arch/xtensa/include/uapi/asm/mman.h | 2 +-
> include/uapi/asm-generic/mman-common.h | 2 +-
> 5 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/arch/alpha/include/uapi/asm/mman.h b/arch/alpha/include/uapi/asm/mman.h
> index 836fbd4..0b8a5de 100644
> --- a/arch/alpha/include/uapi/asm/mman.h
> +++ b/arch/alpha/include/uapi/asm/mman.h
> @@ -44,9 +44,9 @@
> #define MADV_WILLNEED 3 /* will need these pages */
> #define MADV_SPACEAVAIL 5 /* ensure resources are available */
> #define MADV_DONTNEED 6 /* don't need these pages */
> -#define MADV_FREE 7 /* free pages only if memory pressure */
>
> /* common/generic parameters */
> +#define MADV_FREE 8 /* free pages only if memory pressure */
> #define MADV_REMOVE 9 /* remove these pages & resources */
> #define MADV_DONTFORK 10 /* don't inherit across fork */
> #define MADV_DOFORK 11 /* do inherit across fork */
> diff --git a/arch/mips/include/uapi/asm/mman.h b/arch/mips/include/uapi/asm/mman.h
> index 106e741..d247f54 100644
> --- a/arch/mips/include/uapi/asm/mman.h
> +++ b/arch/mips/include/uapi/asm/mman.h
> @@ -67,9 +67,9 @@
> #define MADV_SEQUENTIAL 2 /* expect sequential page references */
> #define MADV_WILLNEED 3 /* will need these pages */
> #define MADV_DONTNEED 4 /* don't need these pages */
> -#define MADV_FREE 5 /* free pages only if memory pressure */
>
> /* common parameters: try to keep these consistent across architectures */
> +#define MADV_FREE 8 /* free pages only if memory pressure */
> #define MADV_REMOVE 9 /* remove these pages & resources */
> #define MADV_DONTFORK 10 /* don't inherit across fork */
> #define MADV_DOFORK 11 /* do inherit across fork */
> diff --git a/arch/parisc/include/uapi/asm/mman.h b/arch/parisc/include/uapi/asm/mman.h
> index 6cb8db7..700d83f 100644
> --- a/arch/parisc/include/uapi/asm/mman.h
> +++ b/arch/parisc/include/uapi/asm/mman.h
> @@ -40,9 +40,9 @@
> #define MADV_SPACEAVAIL 5 /* insure that resources are reserved */
> #define MADV_VPS_PURGE 6 /* Purge pages from VM page cache */
> #define MADV_VPS_INHERIT 7 /* Inherit parents page size */
> -#define MADV_FREE 8 /* free pages only if memory pressure */
>
> /* common/generic parameters */
> +#define MADV_FREE 8 /* free pages only if memory pressure */
> #define MADV_REMOVE 9 /* remove these pages & resources */
> #define MADV_DONTFORK 10 /* don't inherit across fork */
> #define MADV_DOFORK 11 /* do inherit across fork */
> diff --git a/arch/xtensa/include/uapi/asm/mman.h b/arch/xtensa/include/uapi/asm/mman.h
> index 1b19f25..77eaca4 100644
> --- a/arch/xtensa/include/uapi/asm/mman.h
> +++ b/arch/xtensa/include/uapi/asm/mman.h
> @@ -80,9 +80,9 @@
> #define MADV_SEQUENTIAL 2 /* expect sequential page references */
> #define MADV_WILLNEED 3 /* will need these pages */
> #define MADV_DONTNEED 4 /* don't need these pages */
> -#define MADV_FREE 5 /* free pages only if memory pressure */
>
> /* common parameters: try to keep these consistent across architectures */
> +#define MADV_FREE 8 /* free pages only if memory pressure */
> #define MADV_REMOVE 9 /* remove these pages & resources */
> #define MADV_DONTFORK 10 /* don't inherit across fork */
> #define MADV_DOFORK 11 /* do inherit across fork */
> diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h
> index 7a94102..8695959 100644
> --- a/include/uapi/asm-generic/mman-common.h
> +++ b/include/uapi/asm-generic/mman-common.h
> @@ -34,9 +34,9 @@
> #define MADV_SEQUENTIAL 2 /* expect sequential page references */
> #define MADV_WILLNEED 3 /* will need these pages */
> #define MADV_DONTNEED 4 /* don't need these pages */
> -#define MADV_FREE 5 /* free pages only if memory pressure */
>
> /* common parameters: try to keep these consistent across architectures */
> +#define MADV_FREE 8 /* free pages only if memory pressure */
> #define MADV_REMOVE 9 /* remove these pages & resources */
> #define MADV_DONTFORK 10 /* don't inherit across fork */
> #define MADV_DOFORK 11 /* do inherit across fork */
> --
> 1.9.3
> --
> To unsubscribe from this list: send the line "unsubscribe linux-api" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

2014-12-05 06:53:45

by Minchan Kim

[permalink] [raw]
Subject: Re: [PATCH] arch: uapi: asm: mman.h: Let MADV_FREE have same value for all architectures

On Fri, Dec 05, 2014 at 06:58:29AM +0800, Chen Gang wrote:
> For uapi, need try to let all macros have same value, and MADV_FREE is
> added into main branch recently, so need redefine MADV_FREE for it.
>
> At present, '8' can be shared with all architectures, so redefine it to
> '8'.
>
> Signed-off-by: Chen Gang <[email protected]>


Hello Chen,

Thanks for looking at this.
Feel free to add my sign.

Acked-by: Minchan Kim <[email protected]>

--
Kind regards,
Minchan Kim

2014-12-05 21:50:04

by Chen Gang

[permalink] [raw]
Subject: Re: [PATCH] arch: uapi: asm: mman.h: Let MADV_FREE have same value for all architectures

On 12/05/2014 08:14 AM, Darrick J. Wong wrote:
> On Fri, Dec 05, 2014 at 06:58:29AM +0800, Chen Gang wrote:
>> For uapi, need try to let all macros have same value, and MADV_FREE is
>> added into main branch recently, so need redefine MADV_FREE for it.
>>
>> At present, '8' can be shared with all architectures, so redefine it to
>> '8'.
>
> Hmmm... you might want to talk to the dietlibc people if you do this:
>
> $ grep -rn MADV_FREE /usr/include/
> /usr/include/diet/sys/mman.h:101:#define MADV_FREE 0x5 /* (Solaris) contents can be freed */
>
> Though the sole definition only exists on sparc/powerpc/powerpc64, so who
> knows...
>

Excuse me, I am not quite familiar about dietlibc. If possible, please
help forward this mail to them, and Cc me (if necessary).

Thanks.
--
Chen Gang

Open share and attitude like air water and life which God blessed

2014-12-05 21:59:02

by Chen Gang

[permalink] [raw]
Subject: Re: [PATCH] arch: uapi: asm: mman.h: Let MADV_FREE have same value for all architectures

On 12/05/2014 02:54 PM, Minchan Kim wrote:
> On Fri, Dec 05, 2014 at 06:58:29AM +0800, Chen Gang wrote:
>> For uapi, need try to let all macros have same value, and MADV_FREE is
>> added into main branch recently, so need redefine MADV_FREE for it.
>>
>> At present, '8' can be shared with all architectures, so redefine it to
>> '8'.
>>
>> Signed-off-by: Chen Gang <[email protected]>
>
>
> Hello Chen,
>
> Thanks for looking at this.
> Feel free to add my sign.
>
> Acked-by: Minchan Kim <[email protected]>
>

OK, thanks.

Originally I sent the same patch like you sent (but later than yours).
Geert suggested to use same value for MADV_FREE, and Carlos confirmed
it and suggested more things (sorry, I forgot to Cc them in this mail).


Thanks.
--
Chen Gang

Open share and attitude like air water and life which God blessed

2014-12-06 15:55:34

by Chen Gang

[permalink] [raw]
Subject: Re: [PATCH] arch: uapi: asm: mman.h: Let MADV_FREE have same value for all architectures

Hello Maintainers:

After this patch, our parisc can pass allmodconfig in linux next tree,
for me, we can say parisc specific code have no touch for allmodconfig.
:-)

But for parisc gcc latest upstream compiler, I found several issues, and
I shall try to analyse them and communicate with gcc related members.

And I also want to consult about parisc assembly instructions, I can not
find the related reference documents, could you help to have a check (or
provide some related information for it)? related contents are below:

parisc support several store instructions: 'stb' (for store byte),
'stw(m)' (for store word), and 'std' (for store double word).

They should be in the same format in binary code, and have neighbour
numbers, and 'stw(m)' need be in the middle of 'stb' and 'std'. one
sample for the instruction 'inst' (it is 'unsigned int'):

- for ((inst >> 26) != 0x3):

stb: 0x18, or 0x19,
stw: 0x1a, stwm: 0x1b,
std: 0x1c.

- else ((inst >> 26) == 0x3), need check '(inst >> 6) & 0xf':

stb: 0x08, or 0x09,
stw: 0x0a,
std: 0x0b.

it is about my binutils/gdb patch for parisc, gdb want to recognize
'st??' to find the position for saving relate context (registers).


Welcome any suggestions, ideas, and completions.

Thanks.


On 12/06/2014 06:00 AM, Chen Gang wrote:
> On 12/05/2014 02:54 PM, Minchan Kim wrote:
>> On Fri, Dec 05, 2014 at 06:58:29AM +0800, Chen Gang wrote:
>>> For uapi, need try to let all macros have same value, and MADV_FREE is
>>> added into main branch recently, so need redefine MADV_FREE for it.
>>>
>>> At present, '8' can be shared with all architectures, so redefine it to
>>> '8'.
>>>
>>> Signed-off-by: Chen Gang <[email protected]>
>>
>>
>> Hello Chen,
>>
>> Thanks for looking at this.
>> Feel free to add my sign.
>>
>> Acked-by: Minchan Kim <[email protected]>
>>
>
> OK, thanks.
>
> Originally I sent the same patch like you sent (but later than yours).
> Geert suggested to use same value for MADV_FREE, and Carlos confirmed
> it and suggested more things (sorry, I forgot to Cc them in this mail).
>
>
> Thanks.
>


--
Chen Gang

Open share and attitude like air water and life which God blessed

2014-12-07 16:20:08

by John David Anglin

[permalink] [raw]
Subject: Re: [PATCH] arch: uapi: asm: mman.h: Let MADV_FREE have same value for all architectures

On 6-Dec-14, at 10:57 AM, Chen Gang wrote:

> And I also want to consult about parisc assembly instructions, I can
> not
> find the related reference documents, could you help to have a check
> (or
> provide some related information for it)? related contents are below:

https://parisc.wiki.kernel.org/index.php/Technical_Documentation

Dave
--
John David Anglin [email protected]


2014-12-07 22:28:47

by Chen Gang

[permalink] [raw]
Subject: Re: [PATCH] arch: uapi: asm: mman.h: Let MADV_FREE have same value for all architectures


On 12/8/14 00:14, John David Anglin wrote:
> On 6-Dec-14, at 10:57 AM, Chen Gang wrote:
>
>> And I also want to consult about parisc assembly instructions, I can not
>> find the related reference documents, could you help to have a check (or
>> provide some related information for it)? related contents are below:
>
> https://parisc.wiki.kernel.org/index.php/Technical_Documentation

OK, thank you very much!!

For me, these information is enough, I checked the related sub link, it
has a full description for all related instruction (stb/h, stw, std).

https://parisc.wiki.kernel.org/images-parisc/7/73/Parisc2.0.pdf

For me, my original comments need be improved: need mention about STH,
and maybe also need consider about additional related instructions of
parisc 2.0 (STDA, STWA, STBY, STDBY).


Thanks.
--
Chen Gang

Open, share, and attitude like air, water, and life which God blessed

2014-12-10 01:38:44

by Chen Gang

[permalink] [raw]
Subject: Re: [PATCH] arch: uapi: asm: mman.h: Let MADV_FREE have same value for all architectures

Hello Andrew:

Could you help check this patch, when you have time. And apply it if
possible.

I guess, this patch is a little urgent, since it changes uapi, if wait
a little longer, more user mode programs (e.g. libc) may use MADV_FREE
as various values.

Thanks.

On 12/6/14 06:00, Chen Gang wrote:
> On 12/05/2014 02:54 PM, Minchan Kim wrote:
>> On Fri, Dec 05, 2014 at 06:58:29AM +0800, Chen Gang wrote:
>>> For uapi, need try to let all macros have same value, and MADV_FREE is
>>> added into main branch recently, so need redefine MADV_FREE for it.
>>>
>>> At present, '8' can be shared with all architectures, so redefine it to
>>> '8'.
>>>
>>> Signed-off-by: Chen Gang <[email protected]>
>>
>>
>> Hello Chen,
>>
>> Thanks for looking at this.
>> Feel free to add my sign.
>>
>> Acked-by: Minchan Kim <[email protected]>
>>
>
> OK, thanks.
>
> Originally I sent the same patch like you sent (but later than yours).
> Geert suggested to use same value for MADV_FREE, and Carlos confirmed
> it and suggested more things (sorry, I forgot to Cc them in this mail).
>

--
Chen Gang

Open, share, and attitude like air, water, and life which God blessed

2014-12-24 15:27:29

by Chen Gang

[permalink] [raw]
Subject: Re: [PATCH] arch: uapi: asm: mman.h: Let MADV_FREE have same value for all architectures

On 12/06/2014 11:57 PM, Chen Gang wrote:
> Hello Maintainers:
>
[...]
>
> But for parisc gcc latest upstream compiler, I found several issues, and
> I shall try to analyse them and communicate with gcc related members.
>

Oh, sorry, there is one my configuration issue when cross compiling
parisc, after give a correct configuration, most of issues are disapear.

Thanks.

[...]
>

--
Chen Gang

Open, share, and attitude like air, water, and life which God blessed