Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
memcg: replace unsigned long by u64 to avoid overflow
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  13 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Wanpeng Li  
View profile  
 More options Jun 23 2012, 2:15 am
Newsgroups: fa.linux.kernel
From: Wanpeng Li <liwp.li...@gmail.com>
Date: Sat, 23 Jun 2012 06:15:58 UTC
Local: Sat, Jun 23 2012 2:15 am
Subject: [PATCH 1/6] memcg: replace unsigned long by u64 to avoid overflow
From: Wanpeng Li <l...@linux.vnet.ibm.com>

Since the return value variable in mem_cgroup_zone_nr_lru_pages and
mem_cgroup_node_nr_lru_pages functions are u64, so replace the return
value of funtions by u64 to avoid overflow.

Signed-off-by: Wanpeng Li <liwp.li...@gmail.com>
---
 mm/memcontrol.c |    5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index a2677e0..724bd02 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -776,8 +776,7 @@ mem_cgroup_zone_nr_lru_pages(struct mem_cgroup *memcg, int nid, int zid,
        return ret;
 }

-static unsigned long
-mem_cgroup_node_nr_lru_pages(struct mem_cgroup *memcg,
+static u64 mem_cgroup_node_nr_lru_pages(struct mem_cgroup *memcg,
                        int nid, unsigned int lru_mask)
 {
        u64 total = 0;
@@ -790,7 +789,7 @@ mem_cgroup_node_nr_lru_pages(struct mem_cgroup *memcg,
        return total;
 }

-static unsigned long mem_cgroup_nr_lru_pages(struct mem_cgroup *memcg,
+static u64 mem_cgroup_nr_lru_pages(struct mem_cgroup *memcg,
                        unsigned int lru_mask)
 {
        int nid;
--
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Johannes Weiner  
View profile  
 More options Jun 23 2012, 4:15 am
Newsgroups: fa.linux.kernel
From: Johannes Weiner <han...@cmpxchg.org>
Date: Sat, 23 Jun 2012 08:15:57 UTC
Local: Sat, Jun 23 2012 4:15 am
Subject: Re: [PATCH 1/6] memcg: replace unsigned long by u64 to avoid overflow

On Sat, Jun 23, 2012 at 02:15:34PM +0800, Wanpeng Li wrote:
> From: Wanpeng Li <l...@linux.vnet.ibm.com>

> Since the return value variable in mem_cgroup_zone_nr_lru_pages and
> mem_cgroup_node_nr_lru_pages functions are u64, so replace the return
> value of funtions by u64 to avoid overflow.

I wonder what 16 TB of memory must think running on a 32-bit kernel...
"What is this, an address space for ants?"
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Wanpeng Li  
View profile  
 More options Jun 23 2012, 5:04 am
Newsgroups: fa.linux.kernel
From: Wanpeng Li <liwp.li...@gmail.com>
Date: Sat, 23 Jun 2012 09:04:15 UTC
Local: Sat, Jun 23 2012 5:04 am
Subject: Re: [PATCH 1/6] memcg: replace unsigned long by u64 to avoid overflow

On Sat, Jun 23, 2012 at 10:15:14AM +0200, Johannes Weiner wrote:
>On Sat, Jun 23, 2012 at 02:15:34PM +0800, Wanpeng Li wrote:
>> From: Wanpeng Li <l...@linux.vnet.ibm.com>

>> Since the return value variable in mem_cgroup_zone_nr_lru_pages and
>> mem_cgroup_node_nr_lru_pages functions are u64, so replace the return
>> value of funtions by u64 to avoid overflow.

>I wonder what 16 TB of memory must think running on a 32-bit kernel...
>"What is this, an address space for ants?"

Hi Johannes,

You mean change all u64 in memcg to unsigned long? or something I
miss....

Regards,
Wanpeng Li
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Johannes Weiner  
View profile  
 More options Jun 23 2012, 5:27 am
Newsgroups: fa.linux.kernel
From: Johannes Weiner <han...@cmpxchg.org>
Date: Sat, 23 Jun 2012 09:27:21 UTC
Local: Sat, Jun 23 2012 5:27 am
Subject: Re: [PATCH 1/6] memcg: replace unsigned long by u64 to avoid overflow

Not _all_ of them, we have some that count bytes.  But those counting
pages should probably be ulong, yes.

I think Kame added the ones that you wanted to adjust the surroundings
for in particular, so let's ask him.  Kame?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Kamezawa Hiroyuki  
View profile  
 More options Jun 25 2012, 12:26 am
Newsgroups: fa.linux.kernel
From: Kamezawa Hiroyuki <kamezawa.hir...@jp.fujitsu.com>
Date: Mon, 25 Jun 2012 04:26:55 UTC
Local: Mon, Jun 25 2012 12:26 am
Subject: Re: [PATCH 1/6] memcg: replace unsigned long by u64 to avoid overflow
(2012/06/23 18:26), Johannes Weiner wrote:

I've been using 'unsigned long' for the number of pages and 'u64' for the number of
bytes. I think it's enough and it should be. I don't have any reason to use u64 for
the number of pages on 32bit archs.
If 'bytes' are handled by 'unsigned long', please fix it.

BTW, zone_page_state()::/include/linux/vmstat.h returns 'unsigned long'.
If you want to change this in memcg, please change zone's ones first.

Thanks,
-Kame

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Wanpeng Li  
View profile  
 More options Jun 25 2012, 12:46 am
Newsgroups: fa.linux.kernel
From: Wanpeng Li <liwp.li...@gmail.com>
Date: Mon, 25 Jun 2012 04:46:54 UTC
Local: Mon, Jun 25 2012 12:46 am
Subject: Re: [PATCH 1/6] memcg: replace unsigned long by u64 to avoid overflow

Thank you for your comments Kame! :-) I will do this in next version.
Is any suggestion about patches in this patchset.

Regards,
Wanpeng Li

>Thanks,
>-Kame

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Wanpeng Li  
View profile  
 More options Jun 25 2012, 2:04 am
Newsgroups: fa.linux.kernel
From: Wanpeng Li <liwp.li...@gmail.com>
Date: Mon, 25 Jun 2012 06:04:47 UTC
Local: Mon, Jun 25 2012 2:04 am
Subject: [PATCH 1/5 v2] memcg: replace unsigned long by u64 to avoid overflow
Changlog:

V2 -> V1:
* fix zone_page_state()::/include/linux/vmstat.h returns 'unsigned long'

From: Wanpeng Li <l...@linux.vnet.ibm.com>

Since the return value variable in mem_cgroup_zone_nr_lru_pages and
mem_cgroup_node_nr_lru_pages functions are u64, so replace the return
value of funtions by u64 to avoid overflow.

Signed-off-by: Wanpeng Li <liwp.li...@gmail.com>
---
 include/linux/vmstat.h |    2 +-
 mm/memcontrol.c        |    5 ++---
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h
index 65efb92..6a14291 100644
--- a/include/linux/vmstat.h
+++ b/include/linux/vmstat.h
@@ -106,7 +106,7 @@ static inline unsigned long global_page_state(enum zone_stat_item item)
        return x;
 }

-static inline unsigned long zone_page_state(struct zone *zone,
+static inline u64 zone_page_state(struct zone *zone,
                                        enum zone_stat_item item)
 {
        long x = atomic_long_read(&zone->vm_stat[item]);
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index a2677e0..724bd02 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -776,8 +776,7 @@ mem_cgroup_zone_nr_lru_pages(struct mem_cgroup *memcg, int nid, int zid,
        return ret;
 }

-static unsigned long
-mem_cgroup_node_nr_lru_pages(struct mem_cgroup *memcg,
+static u64 mem_cgroup_node_nr_lru_pages(struct mem_cgroup *memcg,
                        int nid, unsigned int lru_mask)
 {
        u64 total = 0;
@@ -790,7 +789,7 @@ mem_cgroup_node_nr_lru_pages(struct mem_cgroup *memcg,
        return total;
 }

-static unsigned long mem_cgroup_nr_lru_pages(struct mem_cgroup *memcg,
+static u64 mem_cgroup_nr_lru_pages(struct mem_cgroup *memcg,
                        unsigned int lru_mask)
 {
        int nid;
--
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Johannes Weiner  
View profile  
 More options Jun 25 2012, 3:52 am
Newsgroups: fa.linux.kernel
From: Johannes Weiner <han...@cmpxchg.org>
Date: Mon, 25 Jun 2012 07:52:39 UTC
Local: Mon, Jun 25 2012 3:52 am
Subject: Re: [PATCH 1/5 v2] memcg: replace unsigned long by u64 to avoid overflow

We established that there is no known reason to use ulong for page
counters and that IF YOU HAD ONE, you should obviously say so and then
do a wholesale conversion.  But I don't think you have one.

This patch makes absolutely no sense.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Kamezawa Hiroyuki  
View profile  
 More options Jun 25 2012, 4:32 am
Newsgroups: fa.linux.kernel
From: Kamezawa Hiroyuki <kamezawa.hir...@jp.fujitsu.com>
Date: Mon, 25 Jun 2012 08:32:39 UTC
Local: Mon, Jun 25 2012 4:32 am
Subject: Re: [PATCH 1/5 v2] memcg: replace unsigned long by u64 to avoid overflow
(2012/06/25 16:52), Johannes Weiner wrote:

I agree. Then, Nack from me.

Thanks,
-Kame

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Wanpeng Li  
View profile  
 More options Jul 4 2012, 8:24 am
Newsgroups: fa.linux.kernel
From: Wanpeng Li <liwp.li...@gmail.com>
Date: Wed, 04 Jul 2012 12:24:45 UTC
Local: Wed, Jul 4 2012 8:24 am
Subject: Re: [PATCH 1/5 v2] memcg: replace unsigned long by u64 to avoid overflow

static unsigned long
mem_cgroup_node_nr_lru_pages(struct mem_cgroup *memcg,
                        int nid, unsigned int lru_mask)
{
        u64 total = 0;
        int zid;

        for (zid = 0; zid < MAX_NR_ZONES; zid++)
                total += mem_cgroup_zone_nr_lru_pages(memcg,
                                            nid, zid, lru_mask);

        return total;

}

Since you use unsigned long to caculate nr_pages and unsigned long long
to caculate bytes, so u64 in function mem_cgroup_node_nr_lru_pages should
replace by unsigned long to save kernel stack, right?

Regards,
Wanpeng Li


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Glauber Costa  
View profile  
 More options Jul 4 2012, 8:32 am
Newsgroups: fa.linux.kernel
From: Glauber Costa <glom...@parallels.com>
Date: Wed, 04 Jul 2012 12:32:38 UTC
Local: Wed, Jul 4 2012 8:32 am
Subject: Re: [PATCH 1/5 v2] memcg: replace unsigned long by u64 to avoid overflow
On 07/04/2012 04:24 PM, Wanpeng Li wrote:

How many bytes do you intend to save by replacing "u64" with "unsigned
long" ? Have you asked yourself this question ?

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Johannes Weiner  
View profile  
 More options Jul 4 2012, 9:16 am
Newsgroups: fa.linux.kernel
From: Johannes Weiner <han...@cmpxchg.org>
Date: Wed, 04 Jul 2012 13:16:46 UTC
Local: Wed, Jul 4 2012 9:16 am
Subject: Re: [PATCH 1/5 v2] memcg: replace unsigned long by u64 to avoid overflow

I think fixing these types is a good thing.  Not for their memory
savings but to clarify the code.  Otherwise, people will scratch their
heads and waste time over whether there is something that requires the
counter to be 64-bit on a 32-bit system when really there isn't.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Glauber Costa  
View profile  
 More options Jul 4 2012, 9:21 am
Newsgroups: fa.linux.kernel
From: Glauber Costa <glom...@parallels.com>
Date: Wed, 04 Jul 2012 13:21:19 UTC
Local: Wed, Jul 4 2012 9:21 am
Subject: Re: [PATCH 1/5 v2] memcg: replace unsigned long by u64 to avoid overflow
On 07/04/2012 05:16 PM, Johannes Weiner wrote:

I don't see a reason not to be type consistent, it's just not a stack
issue at all. Being just a type fix, its benefits need to be offset
against any problems it may bring, such as conflicts with other people
working on that, risking doing a mid-term conversion that break
something, and all the likes.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »