lkml.org 
[lkml]   [2011]   [Apr]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: mm: convert vma->vm_flags to 64bit
Date
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@google.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





\
 
 \ /
  Last update: 2011-04-18 03:23    [W:0.255 / U:0.076 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site