public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Fw: Linux v2.5.54
@ 2003-01-03  8:40 dada1
  2003-01-03  9:26 ` Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: dada1 @ 2003-01-03  8:40 UTC (permalink / raw)
  To: Linus Torvalds, Kernel Mailing List

>   o remove hugetlb syscalls

So finally they did it ...

But mmap(NULL, ...) is not yet supported, this is really sad.

And arch/i386/Kconfig and Documentation/vm/hugetlbpage.txt still document
the sys_alloc_hugepages()/sys_free_hugepages() syscalls.

A simple program that doesnt know at all how the memory is layed out by
kernel/glibc can not easily get some 4Mo pages in a single syscall.
sys_alloc_hugepage() was very convenient for that.

Another problem :

if you mount hugetlbfs in /huge, then create a file /huge/BIG of size 4Mo,
then use :

dd if=/huge/BIG of=/dev/null

the dd process hangs on 'D' state : the read() syscall just hang forever.

Thanks


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

* Re: Fw: Linux v2.5.54
  2003-01-03  8:40 Fw: Linux v2.5.54 dada1
@ 2003-01-03  9:26 ` Andrew Morton
  2003-01-03  9:55   ` William Lee Irwin III
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2003-01-03  9:26 UTC (permalink / raw)
  To: dada1, William Lee Irwin III; +Cc: Linus Torvalds, Kernel Mailing List

dada1 wrote:
> 
> >   o remove hugetlb syscalls
> 
> So finally they did it ...
> 
> But mmap(NULL, ...) is not yet supported, this is really sad.

Bill, this appears to be a matter of implementing a suitable ->get_unmapped_area()
within hugetlbfs?

> And arch/i386/Kconfig and Documentation/vm/hugetlbpage.txt still document
> the sys_alloc_hugepages()/sys_free_hugepages() syscalls.

OK.
 
> A simple program that doesnt know at all how the memory is layed out by
> kernel/glibc can not easily get some 4Mo pages in a single syscall.
> sys_alloc_hugepage() was very convenient for that.

Well.  One would expect userspace library functions to emerge.  The
glibc people take patches.

 
> Another problem :
> 
> if you mount hugetlbfs in /huge, then create a file /huge/BIG of size 4Mo,
> then use :
> 
> dd if=/huge/BIG of=/dev/null
> 
> the dd process hangs on 'D' state : the read() syscall just hang forever.
> 

erk.  Thanks.

--- 25/fs/hugetlbfs/inode.c~hugetlbfs_readpage-fix	Fri Jan  3 01:04:42 2003
+++ 25-akpm/fs/hugetlbfs/inode.c	Fri Jan  3 01:04:49 2003
@@ -79,6 +79,7 @@ static int hugetlbfs_file_mmap(struct fi
  */
 static int hugetlbfs_readpage(struct file *file, struct page * page)
 {
+	unlock_page(page);
 	return -EINVAL;
 }

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

* Re: Fw: Linux v2.5.54
  2003-01-03  9:26 ` Andrew Morton
@ 2003-01-03  9:55   ` William Lee Irwin III
  0 siblings, 0 replies; 3+ messages in thread
From: William Lee Irwin III @ 2003-01-03  9:55 UTC (permalink / raw)
  To: Andrew Morton; +Cc: dada1, Linus Torvalds, Kernel Mailing List

dada1 wrote:
>> So finally they did it ...
>> But mmap(NULL, ...) is not yet supported, this is really sad.

On Fri, Jan 03, 2003 at 01:26:31AM -0800, Andrew Morton wrote:
> Bill, this appears to be a matter of implementing a suitable
> ->get_unmapped_area() within hugetlbfs?

At the time of hugetlbfs' integration, it was desirable to be
minimalistic and the additional logic for placement had no clear
motivation, as both privilege and great self-awareness were assumed
of the applications using hugetlbfs. Since then, it's become apparent
that this placement logic is a requirement for userspace support.

Apologies in advance for great tardiness; however, I'll send in patches
implementing in-kernel automatic hugetlb vma placement within 36 hours.


dada1 wrote:
>> And arch/i386/Kconfig and Documentation/vm/hugetlbpage.txt still document
>> the sys_alloc_hugepages()/sys_free_hugepages() syscalls.

Documentation updates are also essential, they will also follow shortly,
in tandem with the automatic vma placement.


dada1 wrote:
>> A simple program that doesnt know at all how the memory is layed out by
>> kernel/glibc can not easily get some 4Mo pages in a single syscall.
>> sys_alloc_hugepage() was very convenient for that.

On Fri, Jan 03, 2003 at 01:26:31AM -0800, Andrew Morton wrote:
> Well.  One would expect userspace library functions to emerge.  The
> glibc people take patches.

Ulrich Drepper has already accepted a glibc patch integrating the
SHM_HUGETLB flag into glibc. dada1, I'm hopeful your distribution will
provide you with an upgrade path to a glibc version implementing it soon,
or that you'll otherwise be able to upgrade to a cvs glibc version.


dada1 wrote:
>> Another problem :
>> if you mount hugetlbfs in /huge, then create a file /huge/BIG of size 4Mo,
>> then use :
>> dd if=/huge/BIG of=/dev/null
>> the dd process hangs on 'D' state : the read() syscall just hang forever.

On Fri, Jan 03, 2003 at 01:26:31AM -0800, Andrew Morton wrote:
> erk.  Thanks.
> --- 25/fs/hugetlbfs/inode.c~hugetlbfs_readpage-fix	Fri Jan  3 01:04:42 2003
> +++ 25-akpm/fs/hugetlbfs/inode.c	Fri Jan  3 01:04:49 2003
> @@ -79,6 +79,7 @@ static int hugetlbfs_file_mmap(struct fi
>   */
>  static int hugetlbfs_readpage(struct file *file, struct page * page)
>  {
> +	unlock_page(page);
>  	return -EINVAL;
>  }

This fix is trivially correct; thanks for finding and addressing it.
Linus, please apply.


Thanks for the testing, bugreports, and fixes!


Thanks,
Bill

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

end of thread, other threads:[~2003-01-03  9:47 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-01-03  8:40 Fw: Linux v2.5.54 dada1
2003-01-03  9:26 ` Andrew Morton
2003-01-03  9:55   ` William Lee Irwin III

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