Re: [PATCH 16/16] 64bit Resource: finally enable 64bit resource sizes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jun 15, 2006 at 06:35:43PM -0700, Greg KH wrote:
> On Thu, Jun 15, 2006 at 11:56:43AM -0400, Vivek Goyal wrote:
> > On Thu, Jun 15, 2006 at 01:47:43PM +0200, Geert Uytterhoeven wrote:
> > > On Thu, 15 Jun 2006, Vivek Goyal wrote:
> > > > On Wed, Jun 14, 2006 at 04:35:07PM -0700, Greg KH wrote:
> > > > > On Wed, Jun 14, 2006 at 02:20:06PM +0200, Geert Uytterhoeven wrote:
> > > > > > On Mon, 12 Jun 2006, Greg KH wrote:
> > > > > > > From: Greg Kroah-Hartman <[email protected]>
> > > > > > > 
> > > > > > > Introduce the Kconfig entry and actually switch to a 64bit value, if
> > > > > > > wanted, for resource_size_t.
> > > > > > 
> > > > > > > diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
> > > > > > > index 805b81f..22dcaa5 100644
> > > > > > > --- a/arch/m68k/Kconfig
> > > > > > > +++ b/arch/m68k/Kconfig
> > > > > > > @@ -368,6 +368,13 @@ config 060_WRITETHROUGH
> > > > > > >  
> > > > > > >  source "mm/Kconfig"
> > > > > > >  
> > > > > > > +config RESOURCES_32BIT
> > > > > > > +	bool "32 bit Memory and IO resources (EXPERIMENTAL)"
> > > > > > > +	depends on EXPERIMENTAL
> > > > > > > +	help
> > > > > > > +	  By default resources are 64 bit. This option allows memory and IO
> > > > > > > +	  resources to be 32 bit to optimize code size.
> > > > > > > +
> > > > > > >  endmenu
> > > > > > 
> > > > > > Why is the default 64 bit? Because 32 bit became experimental?
> > > > > 
> > > > > That's a really good question.  Vivek, why did you change it to be this
> > > > > way?  In thinking about it some more, this should be a 64bit option
> > > > > instead.
> > > > > 
> > > > 
> > > > I thought 64bit is more inclusive. Works both for 32bit and 64bit BARs.
> > > 
> > > >From a PCI viewpoint? Not all machines have PCI.
> > > 
> > > > Also exports memory more than 4G through /proc/iomem without selecting
> > > > an additional option in config file. The flip side is that it introduces
> > > > little memory overhead. I thought most of the users should be ok with this
> > > > increased memory usage and those who are particular, they can choose
> > > > RESOURCES_32BIT.
> > > 
> > > Not all 32 bit platforms support more than 4 GiB of memory, so it's of no use
> > > to waste memory on 64 bit resources.
> > > 
> > 
> > Hmm.. That makes sense. I will rework the patch.
> 
> Thanks, just rework the last one.
> 
> And it looks like you can add just one entry to mm/Kconfig instead of
> touching every arch's Kconfig file.

Greg, Please find attached the reworked-patch. I have gotten rid of
CONFIG_RESOURCES_32BIT and instead introduced CONFIG_RESOURCES_64BIT in 
arch intenepndent file mm/Kconfig.

This patch assumes that 64bit kernels will define CONFIG_64BIT. All the
architectures seems to be adhering to this but can't find CONFIG_64BIT for 
sh64. Don't know much about this arch.



o Introuces CONFIG_RESOURCES_64BIT Kconfig option.

o This option is available only for 32bit platforms/kernels (!CONFIG_64BIT),
  as for 64bit kernels, resources have to be 64 bits and they already
  are.

Signed-off-by: Vivek Goyal <[email protected]>
---

 linux-2.6.17-rc6-1M-vivek/arch/i386/Kconfig     |    1 +
 linux-2.6.17-rc6-1M-vivek/include/linux/types.h |    7 ++++++-
 linux-2.6.17-rc6-1M-vivek/mm/Kconfig            |    7 +++++++
 3 files changed, 14 insertions(+), 1 deletion(-)

diff -puN mm/Kconfig~64bit-resources-modify-kconfig-options mm/Kconfig
--- linux-2.6.17-rc6-1M/mm/Kconfig~64bit-resources-modify-kconfig-options	2006-06-16 14:40:15.000000000 -0400
+++ linux-2.6.17-rc6-1M-vivek/mm/Kconfig	2006-06-16 14:51:31.000000000 -0400
@@ -145,3 +145,10 @@ config MIGRATION
 	  while the virtual addresses are not changed. This is useful for
 	  example on NUMA systems to put pages nearer to the processors accessing
 	  the page.
+
+config RESOURCES_64BIT
+	bool "64 bit Memory and IO resources (EXPERIMENTAL)"
+	depends on (EXPERIMENTAL && !64BIT)
+	default n
+	help
+	  This option allows memory and IO resources to be 64 bit.
diff -puN include/linux/types.h~64bit-resources-modify-kconfig-options include/linux/types.h
--- linux-2.6.17-rc6-1M/include/linux/types.h~64bit-resources-modify-kconfig-options	2006-06-16 14:40:15.000000000 -0400
+++ linux-2.6.17-rc6-1M-vivek/include/linux/types.h	2006-06-16 14:49:28.000000000 -0400
@@ -179,7 +179,12 @@ typedef __u64 __bitwise __be64;
 #ifdef __KERNEL__
 typedef unsigned __bitwise__ gfp_t;
 
-typedef unsigned long resource_size_t;
+#if defined(CONFIG_RESOURCES_64BIT) || defined(CONFIG_64BIT)
+typedef u64 resource_size_t;
+#else
+typedef u32 resource_size_t;
+#endif
+
 #endif
 
 struct ustat {
diff -puN arch/i386/Kconfig~64bit-resources-modify-kconfig-options arch/i386/Kconfig
--- linux-2.6.17-rc6-1M/arch/i386/Kconfig~64bit-resources-modify-kconfig-options	2006-06-16 14:40:15.000000000 -0400
+++ linux-2.6.17-rc6-1M-vivek/arch/i386/Kconfig	2006-06-16 14:40:15.000000000 -0400
@@ -511,6 +511,7 @@ config X86_PAE
 	bool
 	depends on HIGHMEM64G
 	default y
+	select RESOURCES_64BIT
 
 # Common NUMA Features
 config NUMA
_
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux