[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20110418102128.933A.A69D9226@jp.fujitsu.com>
Date: Mon, 18 Apr 2011 10:21:29 +0900 (JST)
From: KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>
To: Hugh Dickins <hughd@...gle.com>
Cc: kosaki.motohiro@...fujitsu.com,
LKML <linux-kernel@...r.kernel.org>,
linux-mm <linux-mm@...ck.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Dave Hansen <dave@...ux.vnet.ibm.com>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>,
Paul Mundt <lethal@...ux-sh.org>,
Russell King <linux@....linux.org.uk>
Subject: Re: mm: convert vma->vm_flags to 64bit
Hi
> On Tue, 12 Apr 2011, KOSAKI Motohiro wrote:
> >
> > Benjamin, Hugh, I hope to add your S-O-B to this one because you are original author.
> > Can I do?
>
> Well, now you've fixed the mm/fremap.c omission, you're welcome to my
> Acked-by: Hugh Dickins <hughd@...gle.com>
Thank you!
> I happen not to shared Ben's aversion to unsigned long long, I just
> don't really care one way or another on that; but I do get irritated by
> obfuscatory types which we then have to cast or unfold all over the place,
> I don't know if vm_flags_t would have been in that category or not.
I agree.
> You've made a few different choices than I did, okay: the only place
> where it might be worth disagreeing with you, is on mm->def_flags:
> I would rather make that an unsigned int than an unsigned long long,
> to save 4 bytes on 64-bit (if it were moved) rather than waste 4 bytes
> on 32-bit - in the unlikely event that someone adds a high VM_flag to
> def_flags, I'd rather hope they would test its effect. However,
> it's every mm not every vma, so maybe not worth worrying about.
Yeap. I thought it is one of typical easy-read-code vs memory-footprint
trade-off. And after I looked size of task_struct, I was lost interest to
spned my time to keep small mm_struct size. ;-)
off-topic, if mm_struct size is performance important, we have to
get rid of mm->cpu_vm_mask from mm_struct at first. cpumask_t use
NR_CPUS/8 bytes and NR_CPUS==4096 when we use recent distros. it's
one of root cause of mm_struct bloat.
> I am surprised that
> #define VM_EXEC 0x00000004ULL
> does not cause trouble for arch/arm/kernel/asm-offsets.c,
> but you tried cross-building it which I never did.
>
> Does your later addition of __nocast on vm_flags not make trouble
> for the unsigned long casts in arch/arm/include/asm/cacheflush.h?
> (And if it does not, then just what does __nocast do?)
If my understanding is correct, __nocast mean warn _implicit_ narrowing
conversion. Thus, arm defconfig cross build doesn't make any warn nor
error. :)
side note: honestly says, I know arm defconfig doesn't build many
subarch specific cacheflush code. But I have no way to confirm it. ;)
>
> Thanks for seeing this through,
> Hugh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists