mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* RE: [discuss] [Patch] X86_64 TASK_SIZE cleanup
@ 2005-04-20 17:17 Zou, Nanhai
  2005-04-21 11:50 ` Andi Kleen
  2005-04-21 11:54 ` [discuss] [Patch] X86_64 TASK_SIZE cleanup - more comments Andi Kleen
  0 siblings, 2 replies; 6+ messages in thread
From: Zou, Nanhai @ 2005-04-20 17:17 UTC (permalink / raw)
  To: Andi Kleen; +Cc: discuss, linux-kernel, Siddha, Suresh B

Hi Andi,
   What is your comment on this patch?
Here is another example bug this patch will fix.
The following piece of code will get a success mmap even if compiled
with -m32. 
   
   int *p;
   p = mmap((void *)(0xFFFFE000UL), 0x10000UL, PROT_READ|PROT_WRITE,
                MAP_FIXED|MAP_PRIVATE|MAP_ANON, 0, 0);

I believe there are other kind of corner case bugs around mm and fs. 
e.g in mremap and munmap.
Those bugs will be fixed by this patch. 

Zou Nan hai
> -----Original Message-----
> From: Zou, Nanhai
> Sent: Tuesday, April 19, 2005 12:37 AM
> To: 'Andi Kleen'
> Cc: discuss@x86-64.org; linux-kernel@vger.kernel.org; Siddha, Suresh B
> Subject: RE: [discuss] [Patch] X86_64 TASK_SIZE cleanup
> 
> 
> When a 32bit program is mapping a lot of hugepage vm_areas,
> hugetlb_get_unmapped_area may search beyond 4G, then the program will
get a
> SIGFAULT instead of an errno of ENOMEM.
> This patch will fix that.
> I believe there are other inconsistent cases in generic code like mm
and fs.
> 
> Zou Nan hai
> 
> > -----Original Message-----
> > From: Andi Kleen [mailto:ak@suse.de]
> > Sent: Monday, April 18, 2005 5:06 PM
> > To: Zou, Nanhai
> > Cc: discuss@x86-64.org; Andi Kleen; linux-kernel@vger.kernel.org;
Siddha,
> > Suresh B
> > Subject: Re: [discuss] [Patch] X86_64 TASK_SIZE cleanup
> >
> > On Sat, Apr 16, 2005 at 09:34:25AM +0800, Zou, Nanhai wrote:
> > >
> > > Hi,
> > >    This patch will clean up the X86_64 compatibility mode
TASK_SIZE
> > > define thus fix some bugs found in X86_64 compatibility mode
program.
> >
> > Fix what bugs exactly?  Please a detailed description.
> >
> > -Andi

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [discuss] [Patch] X86_64 TASK_SIZE cleanup
  2005-04-20 17:17 [discuss] [Patch] X86_64 TASK_SIZE cleanup Zou, Nanhai
@ 2005-04-21 11:50 ` Andi Kleen
  2005-04-21 11:54 ` [discuss] [Patch] X86_64 TASK_SIZE cleanup - more comments Andi Kleen
  1 sibling, 0 replies; 6+ messages in thread
From: Andi Kleen @ 2005-04-21 11:50 UTC (permalink / raw)
  To: Zou, Nanhai; +Cc: Andi Kleen, discuss, linux-kernel, Siddha, Suresh B

On Thu, Apr 21, 2005 at 01:17:40AM +0800, Zou, Nanhai wrote:
> Hi Andi,
>    What is your comment on this patch?

There is at least one wrong change in there, you have a check
for test_thread_flag(TIF_IA32) && (flags & MAP_32BIT)

and that is wrong because MAP_32BIT is used from 64bit code

-Andi

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [discuss] [Patch] X86_64 TASK_SIZE cleanup - more comments
  2005-04-20 17:17 [discuss] [Patch] X86_64 TASK_SIZE cleanup Zou, Nanhai
  2005-04-21 11:50 ` Andi Kleen
@ 2005-04-21 11:54 ` Andi Kleen
  1 sibling, 0 replies; 6+ messages in thread
From: Andi Kleen @ 2005-04-21 11:54 UTC (permalink / raw)
  To: Zou, Nanhai; +Cc: Andi Kleen, discuss, linux-kernel, Siddha, Suresh B


Another comment:

In general I am not too happy about the variable size TASK_SIZE.
There was a patch for this earlier, but it broke 32bit emulation
completely. And I think it needs auditing of all uses of TASK_SIZE,
because I suspect there are more bugs lurking in it.

The way hugetlb etc. mmap were supposed to be handled was to 
let the mmap succeed and then check in the mmap wrapper
if any address is > 4GB and free it. Probably that code
has some problems or got broken (I think it worked at least
in 2.4, but there might have been regressions later)

-Andi

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [discuss] [Patch] X86_64 TASK_SIZE cleanup
@ 2005-04-21 15:43 Zou, Nanhai
  0 siblings, 0 replies; 6+ messages in thread
From: Zou, Nanhai @ 2005-04-21 15:43 UTC (permalink / raw)
  To: Andi Kleen; +Cc: discuss, linux-kernel, Siddha, Suresh B


Isn't that a 
!test_thread_flag(TIF_IA32) && (flags & MAP_32BIT)
in my patch?

Zou Nan hai

> -----Original Message-----
> From: Andi Kleen [mailto:ak@suse.de]
> Sent: Thursday, April 21, 2005 7:51 PM
> To: Zou, Nanhai
> Cc: Andi Kleen; discuss@x86-64.org; linux-kernel@vger.kernel.org;
Siddha,
> Suresh B
> Subject: Re: [discuss] [Patch] X86_64 TASK_SIZE cleanup
> 
> On Thu, Apr 21, 2005 at 01:17:40AM +0800, Zou, Nanhai wrote:
> > Hi Andi,
> >    What is your comment on this patch?
> 
> There is at least one wrong change in there, you have a check
> for test_thread_flag(TIF_IA32) && (flags & MAP_32BIT)
> 
> and that is wrong because MAP_32BIT is used from 64bit code
> 
> -Andi

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [discuss] [Patch] X86_64 TASK_SIZE cleanup
@ 2005-04-18 16:37 Zou, Nanhai
  0 siblings, 0 replies; 6+ messages in thread
From: Zou, Nanhai @ 2005-04-18 16:37 UTC (permalink / raw)
  To: Andi Kleen; +Cc: discuss, linux-kernel, Siddha, Suresh B


When a 32bit program is mapping a lot of hugepage vm_areas, 
hugetlb_get_unmapped_area may search beyond 4G, then the program will
get a SIGFAULT instead of an errno of ENOMEM.
This patch will fix that.
I believe there are other inconsistent cases in generic code like mm and
fs.

Zou Nan hai

> -----Original Message-----
> From: Andi Kleen [mailto:ak@suse.de]
> Sent: Monday, April 18, 2005 5:06 PM
> To: Zou, Nanhai
> Cc: discuss@x86-64.org; Andi Kleen; linux-kernel@vger.kernel.org;
Siddha,
> Suresh B
> Subject: Re: [discuss] [Patch] X86_64 TASK_SIZE cleanup
> 
> On Sat, Apr 16, 2005 at 09:34:25AM +0800, Zou, Nanhai wrote:
> >
> > Hi,
> >    This patch will clean up the X86_64 compatibility mode TASK_SIZE
> > define thus fix some bugs found in X86_64 compatibility mode
program.
> 
> Fix what bugs exactly?  Please a detailed description.
> 
> -Andi

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [discuss] [Patch] X86_64 TASK_SIZE cleanup
  2005-04-16  1:34 Zou, Nanhai
@ 2005-04-18  9:06 ` Andi Kleen
  0 siblings, 0 replies; 6+ messages in thread
From: Andi Kleen @ 2005-04-18  9:06 UTC (permalink / raw)
  To: Zou, Nanhai; +Cc: discuss, Andi Kleen, linux-kernel, Siddha, Suresh B

On Sat, Apr 16, 2005 at 09:34:25AM +0800, Zou, Nanhai wrote:
> 
> Hi,
>    This patch will clean up the X86_64 compatibility mode TASK_SIZE
> define thus fix some bugs found in X86_64 compatibility mode program.

Fix what bugs exactly?  Please a detailed description.

-Andi

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2005-04-21 15:44 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-04-20 17:17 [discuss] [Patch] X86_64 TASK_SIZE cleanup Zou, Nanhai
2005-04-21 11:50 ` Andi Kleen
2005-04-21 11:54 ` [discuss] [Patch] X86_64 TASK_SIZE cleanup - more comments Andi Kleen
  -- strict thread matches above, loose matches on Subject: below --
2005-04-21 15:43 [discuss] [Patch] X86_64 TASK_SIZE cleanup Zou, Nanhai
2005-04-18 16:37 Zou, Nanhai
2005-04-16  1:34 Zou, Nanhai
2005-04-18  9:06 ` [discuss] " Andi Kleen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®