public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
From: Martin Hicks <mort@wildopensource.com>
To: linux-ia64@vger.kernel.org
Subject: Re: [Linux-ia64] [PATCH] 2.5 - Another user stack size patch
Date: Fri, 23 May 2003 19:28:00 +0000	[thread overview]
Message-ID: <marc-linux-ia64-105590723706014@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105590723706006@msgid-missing>

On Fri, May 23, 2003 at 02:15:55PM -0400, Martin Hicks wrote:
> 
> David,
> 
> I hope this user stack size patch is better.  This one places the RBS
> based on the max size of the stack.  The max size of the user stack
> is 1TB.

Thanks to willy for pointing out an error in the patch.  I forgot to
delete a line of debug code.

> 
> diff -Nru a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c
> --- a/arch/ia64/mm/init.c	Fri May 23 14:14:06 2003
> +++ b/arch/ia64/mm/init.c	Fri May 23 14:14:06 2003
> @@ -67,6 +67,17 @@
>  	}
>  }
>  
> +inline unsigned long ia64_rbs_bot(void)
> +{
> +        unsigned long stack_base = current->rlim[RLIMIT_STACK].rlim_max;
> +
> +        if (stack_base > MAX_USER_STACK)
> +                stack_base = MAX_USER_STACK;
> +	stack_base = PAGE_ALIGN(STACK_TOP - stack_base + PAGE_SIZE);

        ^^^^^ This line right here is wrong and should be removed.

> +        return PAGE_ALIGN(STACK_TOP - stack_base + PAGE_SIZE);
> +}
> +
> +
>  /*

-- 
Wild Open Source Inc.                  mort@wildopensource.com

# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#	           ChangeSet	1.1101  -> 1.1104 
#	include/asm-ia64/processor.h	1.44    -> 1.45   
#	 arch/ia64/mm/init.c	1.37    -> 1.40   
#	include/asm-ia64/a.out.h	1.4     -> 1.5    
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/05/23	mort@green.i.bork.org	1.1102
# Change the maximum user stack size and the location of the Register 
# Backing Store to be based on the stack size rlimit.
# --------------------------------------------
# 03/05/23	mort@green.i.bork.org	1.1103
# Remove an extra #include that isn't needed.
# --------------------------------------------
# 03/05/23	mort@green.i.bork.org	1.1104
# Fix a stupid bug that was left over from debug code.
# --------------------------------------------
#
diff -Nru a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c
--- a/arch/ia64/mm/init.c	Fri May 23 15:24:54 2003
+++ b/arch/ia64/mm/init.c	Fri May 23 15:24:54 2003
@@ -67,6 +67,16 @@
 	}
 }
 
+inline unsigned long ia64_rbs_bot(void)
+{
+        unsigned long stack_base = current->rlim[RLIMIT_STACK].rlim_max;
+
+        if (stack_base > MAX_USER_STACK)
+                stack_base = MAX_USER_STACK;
+        return PAGE_ALIGN(STACK_TOP - stack_base + PAGE_SIZE);
+}
+
+
 /*
  * This performs some platform-dependent address space initialization.
  * On IA-64, we want to setup the VM area for the register backing
@@ -86,7 +96,7 @@
 	vma = kmem_cache_alloc(vm_area_cachep, SLAB_KERNEL);
 	if (vma) {
 		vma->vm_mm = current->mm;
-		vma->vm_start = IA64_RBS_BOT;
+		vma->vm_start = ia64_rbs_bot();
 		vma->vm_end = vma->vm_start + PAGE_SIZE;
 		vma->vm_page_prot = protection_map[VM_DATA_DEFAULT_FLAGS & 0x7];
 		vma->vm_flags = VM_READ|VM_WRITE|VM_MAYREAD|VM_MAYWRITE|VM_GROWSUP;
diff -Nru a/include/asm-ia64/a.out.h b/include/asm-ia64/a.out.h
--- a/include/asm-ia64/a.out.h	Fri May 23 15:24:54 2003
+++ b/include/asm-ia64/a.out.h	Fri May 23 15:24:54 2003
@@ -32,7 +32,7 @@
 #ifdef __KERNEL__
 # include <asm/page.h>
 # define STACK_TOP	(0x6000000000000000UL + (1UL << (4*PAGE_SHIFT - 12)) - PAGE_SIZE)
-# define IA64_RBS_BOT	(STACK_TOP - 0x80000000L + PAGE_SIZE)	/* bottom of reg. backing store */
+# define MAX_USER_STACK (1UL<<40)
 #endif
 
 #endif /* _ASM_IA64_A_OUT_H */
diff -Nru a/include/asm-ia64/processor.h b/include/asm-ia64/processor.h
--- a/include/asm-ia64/processor.h	Fri May 23 15:24:54 2003
+++ b/include/asm-ia64/processor.h	Fri May 23 15:24:54 2003
@@ -296,6 +296,8 @@
 	.fph =		{{{{0}}}, }		\
 }
 
+extern unsigned long ia64_rbs_bot(void);
+
 #define start_thread(regs,new_ip,new_sp) do {							\
 	set_fs(USER_DS);									\
 	regs->cr_ipsr = ((regs->cr_ipsr | (IA64_PSR_BITS_TO_SET | IA64_PSR_CPL))		\
@@ -303,7 +305,7 @@
 	regs->cr_iip = new_ip;									\
 	regs->ar_rsc = 0xf;		/* eager mode, privilege level 3 */			\
 	regs->ar_rnat = 0;									\
-	regs->ar_bspstore = IA64_RBS_BOT;							\
+	regs->ar_bspstore = ia64_rbs_bot();							\
 	regs->ar_fpsr = FPSR_DEFAULT;								\
 	regs->loadrs = 0;									\
 	regs->r8 = current->mm->dumpable;	/* set "don't zap registers" flag */		\



      parent reply	other threads:[~2003-05-23 19:28 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-23 18:15 [Linux-ia64] [PATCH] 2.5 - Another user stack size patch Martin Hicks
2003-05-23 18:22 ` DESAI,RAJESH (HP-Cupertino,ex1)
2003-05-23 18:34 ` Martin Hicks
2003-05-23 18:37 ` DESAI,RAJESH (HP-Cupertino,ex1)
2003-05-23 19:04 ` Martin Hicks
2003-05-23 19:28 ` Martin Hicks [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=marc-linux-ia64-105590723706014@msgid-missing \
    --to=mort@wildopensource.com \
    --cc=linux-ia64@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox