Re: Memory limits - mm_segment_t - MAKE_MM_SEG

From: Arnd Bergmann
Date: Thu Apr 30 2009 - 09:52:46 EST


On Wednesday 29 April 2009, Michal Simek wrote:
> I look at some things which I need to clear for MMU Microblaze patches and
> I would like to know your opinion about.
>
> First of all I found that almost all archs use MAKE_MM_SEG macro which
> should be good to move to generic location (asm-generic/uaccess.h ? )
> #define MAKE_MM_SEG(s) ((mm_segment_t) { (s) })

I have a generic uaccess.h queued up, which I'm planning to submit for
2.6.30 that includes this.

> The second thing is about place where is stored limit for processes -> mm_segment_t structure
>
> Where is the proper location for storing mm_segment_t? Some arch use
> thread_info some of them thread_struct

The method that is used here is different on some architectures.
Most of them use the address limit, which is a property of the
thread, and sensibly belongs into the thread_info. s390 and possibly
others have separate address spaces for user access and use a CPU
feature for this, which belongs into thread_struct.

> Here is the small table for cpus which are in linux kernel and location and type for them.
> The most of them uses thread_info structure for it and name is addr_limit.
> The location of mm_segment_t is different too -> we should move it to any generic location too.
> What do you think?

Sounds fair to me. I think uaccess.h is the best place for this, or maybe
a new mm_segment.h, but not segment.h which is used traditionally for
real segments on x86.

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